Господа,
В связи с другой проблемой, я пытаюсь создать массив, содержимым которого являются предыдущие часовые значения закрытия EURUSD. У меня есть следующий код:
void Trade()
{
double longThresh = this.longThreshold;
double longTP = this.longTakeProfit;
double longSL = this.longStopLoss;
double shortThresh = this.shortThreshold;
double shortTP = this.shortTakeProfit;
double shortSL = this.shortStopLoss;
int dummyIndex = 0;
Print( "Triggered reload of stack data for trading routine" );
this.stackArray[0] = iClose( "EURUSD", PERIOD_H1, 1 );
this.stackArray[1] = iClose( "EURUSD", PERIOD_H1, 2 );
this.stackArray[2] = iClose( "EURUSD", PERIOD_H1, 3 );
this.stackArray[3] = iClose( "EURUSD", PERIOD_H1, 4 );
this.stackArray[4] = iClose( "EURUSD", PERIOD_H1, 5 );
this.stackArray[5] = iClose( "EURUSD", PERIOD_H1, 6 );
this.stackArray[6] = iClose( "EURUSD", PERIOD_H1, 7 );
this.stackArray[7] = iClose( "EURUSD", PERIOD_H1, 8 );
this.PrintStackArray();
}
Приведенная выше функция на самом деле является методом объекта. Объект создается, и цикл do-while
приводит к повторному выполнению описанного выше метода каждый час на пятиминутной отметке.
Проблема в том, что когда приведенный выше код выполняется через час, вывод PrintStackArray()
указывает на то, что функция iClose()
не поспевает за новыми свечами каждый час.
Иными словами, если бы код выполнялся в 5:05, он выдавал бы тот же результат, что и в 6:05, и, в свою очередь, выдавал бы такой же результат в 7:05.
Я не могу понять, почему повторное выполнение функций iClose()
не обновляет массив новыми значениями свечей. Несмотря на более чем две недели возни с этой проблемой, я не могу заставить свой советник обновлять и распознавать новые значения свечей.