当读取前一个蜡烛的条件时,我们使用[x]…但是如何调用位置未知的先前条件呢?对不起,我不熟悉脚本。
例如,我希望脚本检测当前条件是否大于前一个条件。没有具体的条数,只是"以前"。或者"最近"。
我不想打印"LONG"如果前一个信号是"LONG"…但是我不知道有多少酒吧前面的"LONG"因为这是一个可变距离。
printlong = shortsignal[most recently?]] lol
通常可以使用valuewhen()
来获取可用于比较的值。例如:
long_val0 = valuewhen(long_signal, val, 0) // the most recent value of val when long_signal occurred.
long_val1 = valuewhen(long_signal, val, 1) // the second most recent value of val
short_val0 = valuewhen(short_signal, val, 0)
short_val1 = valuewhen(short_signal, val, 1)
long_index0 = valuewhen(long_signal, bar_index, 0)
long_index1 = valuewhen(long_signal, bar_index, 1)
short_index0 = valuewhen(short_signal, bar_index, 0)
short_index1 = valuewhen(short_signal, bar_index, 1)
然后你可以使用一些逻辑测试来确定最近的信号和它们的值。例如,如果你只是想在前一个信号也是long的情况下否定重新输入long。
如果前一个信号是short_signal
,当前条是long_signal
,则返回true。这里我们不使用long_index0
,因为它会返回当前栏的bar_index
,因为它是最近的long_signal
if long_signal and long_index1 < short_index0
// enter a new long
如果您想要执行一些有条件的操作,例如,只有当变量高于上次long_signal
时才输入连续的longif long_signal
if long_index1 > short_index0 // If true, this would tell us if the last prior signal was long ( two consecutive long signals, current bar and previous signal)
if long_val0 > long_val1 // current val is higher than the last
// Do something like : still enter another long, otherwise if val is lower don't enter a long
else // in the case that short_index0 > long_index1 (the prior signal was short)
// Enter new long