我正在尝试在 pine 脚本中编写一个随机 rsi 策略,以便在每小时 K 高于 D 且 K 低于 80 时做多,如下所示,但是当我对其进行回测时,它几乎没有返回任何交易,除非我只是从< 到 <= 告诉我有些事情不对劲。有人可以帮忙吗。
kH = security(syminfo.tickerid, "60", sma(stoch(close, high, low, stochLength), 3))
dH = sma(kH, 3)
stochConditionH = kH < dH and kH < 80
答案 0 :(得分:0)
要正确获取该条件,必须在安全调用的上下文中完成。否则,您将无法获得一小时时间范围的正确计算。假设您的图表是 15 分钟图表。
dh = sma(kH, 3)
将为您提供过去 3 个 15 分钟柱的 kH 平均值。如果您需要在 60 分钟的时间范围内执行操作,则需要将所有内容包装在函数中并将其传递给安全调用。
f_stochConditionH(_close, _high, _low, _len) =>
_kH = sma(stoch(_close, _high, _low, _len), 3)
_dH = sma(_kH, 3)
_stochConditionH = _kH < _dH and _kH < 80
_stochConditionH
stochConditionH = security(syminfo.tickerid, "60", f_stochConditionH(close, high, low, stochLength))
这允许在一小时的时间范围内正确完成操作。所以现在
当在安全调用中使用时,函数内的 _dh = sma(_kH,3)
现在是 _kH
的最后三个一小时值的平均值。