我正在将 ThinkScript 指标转换为 PineScript。我目前在将ThinkScript 的 barNumber()函数转换为 PineScript 时遇到问题。我想我知道用什么作为它的等价物,但即使在阅读了文档和示例之后,我也不确定我是否理解 barNumber()。
该指标基本上用作进入/退出指标。我认为使用 barNumber() 的代码正在执行的操作是在绘制新信号时删除信号,但如果该新信号无效,则它会恢复为先前的信号。
这是我对前几个 def 后面有更多内容感到困惑的代码部分,只是解释它们都应该作为浮点数返回是无关紧要的(def stateUp 到 def linDev):
def bar = barNumber();
def stateUp;
def stateDn;
def atrCCI;
def price;
def linDev;
def CCI = if linDev == 0
then 0
else (price - avg(price, length)) / linDev / 0.05;
def MT1 = if CCI > 0
then max(MT1[1], hl2 - ATRCCI)
else (min(MT1[1], hl2 + ATRCCI)
def state = if close > ST and close > MT1 then StateUp
else if close < ST and close < MT1 then StateDn
else State[1];
def newState = HighestAll(if state <> state[1] then bar else 0);
该代码使用了很多条件语句,以下是该代码的其他一些用法:
CSA = if bar >= newState then MT1 else Double.NaN;
signal = if bar >= newState and state == stateUp and. . .
在 PineScript 中是否有一种简单的方法来解决这个问题?
感谢您的帮助!