我正在尝试将一个指示器从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等有哪些等价功能?
提前感谢
发布于 2013-12-25 04:24:52
对于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);希望这能有所帮助。
https://stackoverflow.com/questions/20551108
复制相似问题