我正在尝试将内置动量策略转换为带有警报的研究。我不知道我做对了没有。图表压缩为直线:( 请帮我。谢谢。
这是原始的内置动量策略:
//@version=4
strategy("Momentum Strategy", overlay=true)
length = input(12)
price = close
momentum(seria, length) =>
mom = seria - seria[length]
mom
mom0 = momentum(price, length)
mom1 = momentum( mom0, 1)
if (mom0 > 0 and mom1 > 0)
strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
strategy.cancel("MomLE")
if (mom0 < 0 and mom1 < 0)
strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
strategy.cancel("MomSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
这是我的警报研究:
//@version=4
study("Momentum Alert", overlay=true)
length = input(12)
price = close
momentum(seria, length) =>
mom = seria - seria[length]
mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
alertcondition(condition=mom0 > 0 and mom1 > 0, message="Momentum increased")
alertcondition(condition=mom0 < 0 and mom1 < 0, message="Momentum decreased")
plot(series=mom1)
答案 0 :(得分:0)
我对此代码感到愤怒。芽,我仍然不知道它是否与内置策略相同
//@version=4
study(title="Momentum", shorttitle="Mom")
len = input(40, minval=1, title="Length")
src = input(close, title="Source")
mom = src - src[len]
mom0 = mom(src,len)
mom1 = mom(mom0,1)
alertcondition(condition=mom0 > 0 and mom1 > 0, message="Momentum increased")
alertcondition(condition=mom0 < 0 and mom1 < 0, message="Momentum decreased")
plot(mom0, color=color.olive, title="Mom")
plot(mom1, color=color.red, title="Mom")
我不明白这一点: enter image description here
答案 1 :(得分:0)
您的代码将产生与策略相同的进入条件,但是要重现所有策略的行为,您将需要构建逻辑,以复制该策略所使用的特定`strategy。*()调用以及电视经纪人模拟器如何执行它们
例如,您的输入正在发布停止订单,当输入条件不再为真时,该订单将被取消,这不会反映在您的学习代码中。
您可以通过消除此行来改进代码,因为用内置名称来命名变量是不明智的做法,并且以后在脚本中不再使用该变量。 Pine中有一个名为mom()的内置函数(电视策略应实际使用该函数,而不是用户定义的函数执行相同的操作)。
mom = src - src[len]
您接下来的两行现在正在使用该函数,而不是前一行的mom
变量:
mom0 = mom(src,len)
mom1 = mom(mom0,1)