Спрашивайте! - страница 18

 

извлечение значений бида и аск в t_1

Здравствуйте,

Я новичок в программировании и не знаю, как получить значение для предыдущего тика: предыдущие значения ask и bid.

Спасибо за помощь.

 

История запросов и предложений - witchazel

witchazel:
Здравствуйте, я работаю над советником .... .... я бы сделал если ask[-1] =iCustom но я не могу найти это здесь так как Ask и Bid не имеют истории.

У меня такой же вопрос, я хотел бы получить ask[-1] и bid[-1]и не знаю, как это сделать.

Если у вас есть решение, пожалуйста, опубликуйте его.

Большое спасибо.

 
 
 
 

Привет, FireDave, Спасибо за теплый прием. Рад видеть вас здесь тоже. Вы здесь модератор?

DayTrSuccess,

это должно помочь вам начать:

// Заполните ваш массив

MyArray[][3];

ArrayInitialize(MyArray,0);

for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)

{ MyArray[cnt][0]=OrderTicket();

if (OrderType()==OP_BUY)

{ MyArray[cnt][1]=1; // Покупка

MyArray[cnt][2]=OrderOpenPrice();

}

else

{ MyArray[cnt][1]=2; // Продажа

MyArray[cnt][2]=OrderOpenPrice();

}

}

}

// Поиск в массиве для OrderTicket

int MyArrayIndex=ArrayBsearch(MyArray,OrderTicket(),WHOLE_ARRAY,0,MODE_ASCEND);

if (MyArray[MyArrayIndex][0]==OrderTicket())

{ // Ваш код здесь

}

 
Yannis:
Привет, FireDave, Спасибо за теплый прием. Рад видеть вас здесь тоже. Вы здесь модератор?

Нет, просто еще один святоша, ищущий святыни.

 

Спасибо Яннис

Yannis:

DayTrSuccess,

это поможет вам начать:

.......................

}

Спасибо. Я буду использовать это.

 
 

Витчазел,

Я не понимаю, что вы имеете в виду, говоря "даст ли он мне закрытие последнего изменения?". Open/High/Low/Close относится к ценовым барам. Так что да, Close[1] даст вам закрытие предыдущего бара на таймфрейме, на котором сейчас находится ваш график. Вы можете использовать iClose(NULL,0,Shift) (iOpen/iHigh/iLow), чтобы получить эти значения на таймфрейме, отличном от того, на котором вы находитесь. "0" означает "текущий" таймфрейм, а "shift" - бары назад. Замените "0" на нужный вам таймфрейм (1,5,15,30,60,240....) и shift на количество баров назад, вы можете даже заменить "NULL" на "GBPUSD", если ваш текущий график EURUSD, но вам нужно обратиться к предыдущему закрытию GBP.

iClose(NULL,1,1) даст закрытие вашей текущей пары, на 1 мин графике, на 1 бар назад.

Я бы подумал о том, чтобы потратить некоторое время на чтение тем, посвященных кодированию MT4, я думаю, что CodesGuru имеет отличную тему для начинающих кодеров, а также файл помощи Metaeditor и бесплатные эксперты и индикаторы, размещенные повсюду.

Яннис

Причина обращения: