pine-script - 当 calc_on_every_tick=true 时,Pine-script 如何在关闭时计算
问题描述
var line _lpLine = line.new(0, 0, 0, 0, extend=extend.left, style=line.style_dashed, color=color.yellow)
_lastTradedPrice = close
line.set_xy1(_lpLine, bar_index-1, _lastTradedPrice)
line.set_xy2(_lpLine, bar_index, _lastTradedPrice)
上面的代码绘制了最后价格线/为最后交易价格创建了一条线。它在指标脚本中完美运行,但在策略脚本中不适用,因为默认情况下 calc_on_every_tick 设置为 false。
如果我将 calc_on_every_tick 设置为 true,最后价格线现在将在策略中完美运行,但现在我面临另一个问题。该脚本现在将在柱形图仍在形成时进入交易,而不是仅在柱形图关闭后才进入交易。我该如何解决这个困境?
解决方案
您可以将您的订单信号延迟 1 根蜡烛,因此它会匹配calc_on_every_tick = false
行为,如下所示,默认策略:
//@version=4
strategy("My Strategy", overlay=true, margin_long=100, margin_short=100, calc_on_every_tick = true)
longCondition = crossover(sma(close, 14), sma(close, 28))
if nz(longCondition[1]) // signal 1 candle delayed
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if nz(shortCondition[1]) // signal 1 candle delayed
strategy.entry("My Short Entry Id", strategy.short)
推荐阅读
- mysql - 具有多个表的 SQL 分组最大查询
- python - 如何在 .venv 中正确安装 mypy 并配置测试框架 | VS代码
- c++ - Iconv:使用无效字符的替换字符将 Windows-1252 转换为 UTF-8?
- r - 在 R 数据框列的字符串中添加字符
- python - python导入文件路径相对于导入模块/使用模块而不安装
- node.js - ipython importlib.reload 的 nodejs 等价物是什么?
- webcam - 使用映像 nvcr.io/nvidia/deepstream-l4t:5.1-21.02-samples 在 k3s pod 中部署容器时出错
- javascript - 我的 DIV 元素变为对角线而不是水平线
- django - 无法使用视图名称“对话详细信息”解析超链接关系的 URL
- excel - 处理 1.15 亿个细胞的最快方法?