- Нужна помощь.
- Интересное и Юмор
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
Добрый вечер ! Помогите, мне написать кусок программы для получения двух значений цены за прошедшие два тика с помощью графика.
Программа какая:
- Скрипт.
- Индикатор.
- Эксперт?
эксперт
эксперт
наверное так:
#define Ntick 2 //размер массива Ask и Bid MqlTick tick; double myAsk[Ntick], myBid[Ntick]; //____________________________________________________________________ int OnInit(){ if(SymbolInfoTick(Symbol(),tick)){ ArrayInitialize(myAsk,tick.ask); ArrayInitialize(myBid,tick.bid); } else{ ArrayInitialize(myAsk,0.0); ArrayInitialize(myBid,0.0); } return(INIT_SUCCEEDED); } //____________________________________________________________________ void OnDeinit(const int reason){ } //____________________________________________________________________ void OnTick(){ if(!SymbolInfoTick(Symbol(),tick)){ Print("Ошибка получения данных из SymbolInfoTick"); return; } for(int i =0; i<Ntick-1;i++){ // сместим данные в массивах на одну позицию назад от начала массива myAsk[i+1] = myAsk[i]; myBid[i+1] = myBid[i]; } myAsk[0] = tick.ask; // присвоим новое значение нулевым элементам массивов myBid[0] = tick.bid; }
По этому если вам надо все таки учитывать все тики, а не выборочно какие-то да какие-то нет, как это делает эксперт, то пишите индикатор.
эксперт получает только текущее значение цены, и не получает те значения которые пришли когда он делал расчет.
По этому если вам надо все таки учитывать все тики, а не выборочно какие-то да какие-то нет, как это делает эксперт, то пишите индикатор.
а когда вводили - увы отсутствовал пару месяцев.
На графике мы видим только цены Bid. По ним же как правило и делают все расчеты советники.
если учесть что нужно только 2 тика, то заводим 2 переменных.
double bid0,bid1; void OnTick() { bid1=bid0; bid0=Bid; //для Мт4 bid0=Normalizedouble(SymbolInfoDouble(_Symbol,MODE_BID),Digits); //для МТ5 как то так, лень в справку смотреть }
На графике мы видим только цены Bid. По ним же как правило и делают все расчеты советники.
если учесть что нужно только 2 тика, то заводим 2 переменных.
Документация рекомендует:
Примечание
Если функция [SymbolInfoDouble()] используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с момента подключения терминала к торговому счету не было еще ни одной котировки. В таком случае запрашиваемое значение будет неопределенным...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования