1

我正在尝试将最初从 MT4 写入 NT7 的指标。我在 MT4 中有以下计算:

     dayi = iBarShift(Symbol(), myPeriod, Time[i], false);
     Q = (iHigh(Symbol(), myPeriod,dayi+1) - iLow(Symbol(),myPeriod,dayi+1));

     L = iLow(NULL,myPeriod,dayi+1);
     H = iHigh(NULL,myPeriod,dayi+1);
     O = iOpen(NULL,myPeriod,dayi+1);  
     C = iClose(NULL,myPeriod,dayi+1);

myperiod是一个变量,我将周期以分钟为单位(1440 = 1 天)。NT7中与iBarShift、iHigh等等效的功能有哪些?

提前致谢

4

1 回答 1

1

对于 NinjaTrader:

iLow = Low or Lows for multi-time frame
iHigh = High or Highs
iOpen = Open or Opens
iClose = Close or Closes

所以一个例子是

double low = Low[0]; // Gets the low of the bar at index 0, or the last fully formed bar (If CalculateOnBarClose = true)

为了确保您在 1440 分钟的时间范围内工作,您需要在 Initialize() 方法中添加以下内容:

Add(PeriodType.Minute, 1440);

如果在此之前没有 Add 语句,它将把它放在二维数组中的索引 1(O 是图表默认索引)处。因此,要访问索引 0 处的 1440 分钟柱的低点将是:

double low = Lows[1][0];

对于 iBarShift 看

int barIndex = Bars.GetBar(time);

这将为您提供具有匹配时间的条形索引。如果您需要在 1440 个柱(或其他柱)上使用此函数,请使用 BarsArray 属性访问正确的 Bar 对象,然后对其使用 GetBar 方法。例如:

int barIndex = BarsArray[1].GetBar(time);

希望有帮助。

于 2013-12-24T20:24:52.000 回答