我发现我的策略和指标之间存在不一致。如果我直接在指标上进行测量,那么我就有了正确的切入点。如果我在一个策略中完成所有操作,那么交易总是会延迟一根蜡烛。
更清楚:
我的想法很简单。如果 SAR 从蜡烛的顶部移动到蜡烛的底部,则为买入位置。如果 SAR 从蜡烛底部移动到蜡烛顶部,则为卖出头寸。
//@version=5
strategy("myStrategy", overlay=true,calc_on_every_tick = true, process_orders_on_close =true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2, "Max Value")
SAR = ta.sar(start, increment, maximum)
plot(SAR, "ParabolicSAR", style=plot.style_cross, color=#f2f4f8,linewidth = 4)
if SAR[1]>high[1] and SAR<low
strategy.entry("Buy", strategy.long,comment="Buy",qty=1)
if SAR[1]<low[1] and SAR>high
strategy.entry("Sell", strategy.short,comment="Sell",qty=1)
如果我用眼睛分析我的策略,当 SAR 指标在图表上绘制其图标时(在当前蜡烛的开盘点),我开仓。 但如果我通过 pine 脚本编辑器实施我的策略,它会在当前蜡烛的收盘点开仓。
我希望 pine 脚本在 SAR 运动后立即开仓(在蜡烛开盘时而不是在蜡烛收盘时) (见附件截图)
这种差异从何而来,我如何将策略中的交易设置为与指标绘制向下/向上箭头相同的蜡烛?
默认情况下,您的策略将在下一根蜡烛打开时进入交易。如果将
process_orders_on_close
调用的 strategy()
参数设置为 true
,则可以更改此设置。
您也可以通过属性窗口执行此操作。
process_orders_on_close (const bool) 当设置为 true 时,生成一个 在 bar 关闭和策略后额外尝试执行订单 计算完成。如果订单是市价订单,则 经纪人模拟器在下一个柱线开盘前执行它们。如果 订单是价格相关的,只有当价格 满足条件。如果您想关闭,此选项很有用 当前柱上的头寸。此设置也可以在 策略的“设置/属性”选项卡。选修的。默认为假。
默认情况下,策略不会在每次报价时都执行。因此,当您实时查看图表时,您可能看不到图表。要启用对每个报价单的计算,您可以将
calc_on_every_tick
函数的 strategy()
参数设置为 true
。
您也可以通过属性窗口执行此操作。
calc_on_every_tick (const bool) 指定策略是否应该 在每个实时报价上重新计算。如果为真,则策略为 在实时柱上运行,它将在每次图表更新时重新计算。 如果为假,该策略仅在实时柱关闭时计算。 使用的参数不影响历史上的策略计算 数据。此设置也可以在策略的 “设置/属性”选项卡。选修的。默认为假。
你能解决这个问题吗?如何?谢谢。