unix-timestamp - 在 Pine Script 中,您如何每天做一次某事,或者跟踪当天是否已完成某事?
问题描述
我正在编写一个 TradingView 脚本 (Pine),并且我正在尝试在 5 分钟图表上使用我的每日柱线策略。为此,我基本上每天只需要检查一次条件。
我可以通过使用诸如 dailyCheck = false 之类的布尔变量来做到这一点,并在我运行该代码时将其设置为 true,然后在新的一天将其重置。
有谁知道该怎么做?从我在 pine 手册中读到的内容中,它说你可以获得 unix 时间......但我不知道如何使用它,除了数字形式的情节之外,我无法打印任何东西,所以我想不出了解如何判断新的一天何时开始。提前致谢!
解决方案
版本 1
有很多方法可以检测一天的变化。会话和时间信息用户手册页面显示了一些。
我喜欢检测dayofweek
或dayofmonth
内置变量的变化:
//@version=4
study("Once per Day")
var dailyTaskDone = false
newDay = change(dayofweek)
doOncePerDay = rising(close, 2) // Your condition here.
dailyTaskDone := doOncePerDay or (dailyTaskDone and not newDay)
plotchar(newDay, "newDay", "▼", location.top, transp = 60)
plotchar(doOncePerDay, "doOncePerDay", "•", location.top, transp = 0)
bgcolor(dailyTaskDone ? color.orange : na)
版本 2
根据 Michel 的评论,这使用了对日变化的更强大的检测:
//@version=4
study("Once per Day")
var dailyTaskDone = false
newDay = change(time("D"))
doOncePerDay = rising(close, 2) // Your condition here.
dailyTaskDone := doOncePerDay or (dailyTaskDone and not newDay)
plotchar(newDay, "newDay", "▼", location.top, transp = 60)
plotchar(doOncePerDay, "doOncePerDay", "•", location.top, transp = 0)
bgcolor(dailyTaskDone ? color.orange : na)
对于 OP,一个 v3 版本:
//@version=3
study("Once per Day v3")
dailyTaskDone = false
newDay = change(time("D"))
doOncePerDay = rising(close, 2) // Your condition here.
dailyTaskDone := doOncePerDay or (dailyTaskDone[1] and not newDay)
plotchar(newDay, "newDay", "▼", location.top, transp = 60)
plotchar(doOncePerDay, "doOncePerDay", "•", location.top, transp = 0)
bgcolor(dailyTaskDone ? orange : na)
推荐阅读
- docker - docker swarm 环境中的网络数据
- node.js - 在循环中的承诺中未定义承诺履行处理程序
- excel - 一行中的文本到重复列
- flutter - 如何注册 GCM 和 APNS,获取 DeviceId 并将我的 API 发送给它以进行数据库存储?
- mysql - Contcatform7 或 Ninja 表单数据存储在自定义数据库表中 - Wordpress
- visual-studio-code - 无法找到android sdk颤振
- jquery - 我有相同尺寸的笔记本电脑和平板电脑,但我想隐藏平板电脑上的按钮而不是笔记本电脑......我该怎么做?
- report - 如何使用 BIRT 报表设计器生成多个页面
- d3.js - 单击按钮后条形图无法执行转换
- php - 是否有一种 php 方法可以显示删除日期的项目已删除?