Пытаюсь в МТ5 узнать какое событие наступило раньше по времени внутри предыдущего бара
HIGH или LOW
К самой цене проблем с доступом нет, получаю так-
Но как узнать какое собитие наступило раньше по времени на этом баре
HIGH или LOW ?
Функция iTime не помогает т.к возвращает значение времени открытия бара
Подскажите пожалуйста
Ни как не узнаете. iHigh и iLow это не событие. Эти функции просто возвращают значения максимума и минимума свечи.
Пытаюсь в МТ5 узнать какое событие наступило раньше по времени внутри предыдущего бара
HIGH или LOW
К самой цене проблем с доступом нет, получаю так-
Но как узнать какое собитие наступило раньше по времени на этом баре
HIGH или LOW ?
Функция iTime не помогает т.к возвращает значение времени открытия бара
Подскажите пожалуйста
Попробуйте CopyTick() за период и найти минимум и максимум. А там по времени можно определить.
Ни как не узнаете. iHigh и iLow это не событие. Эти функции просто возвращают значения максимума и минимума свечи.
Я думаю узнать можно путем перебора времени прихода тиков и их цен в тот момент (но не знаю как это сделать) и сравнение с iHigh и iLow.
Либо есть варианты куда проще.
В любом случае прошу помощи в коде
Я думаю узнать можно путем перебора времени прихода тиков и их цен в тот момент (но не знаю как это сделать) и сравнение с iHigh и iLow.
Либо есть варианты куда проще.
В любом случае прошу помощи в коде
Я думаю вам подойдет совет от @Alexey Viktorov
Пытаюсь в МТ5 узнать какое событие наступило раньше по времени внутри предыдущего бара
HIGH или LOW
К самой цене проблем с доступом нет, получаю так-
Но как узнать какое собитие наступило раньше по времени на этом баре
HIGH или LOW ?
Функция iTime не помогает т.к возвращает значение времени открытия бара
Подскажите пожалуйста
CopyTicksRange() - запрашиваете тики за предыдущий бар, находите максимальный и минимальный bid. Который из них по времени раньше - тот и первый.
- www.mql5.com
CopyTicksRange() - запрашиваете тики за предыдущий бар, находите максимальный и минимальный bid. Который из них по времени раньше - тот и первый.
Артем, если не сложно - лаконичный код как это выглядит.
Бьюсь огород нагородить
void Test(void) { MqlTick ticks_array[]; ArraySetAsSeries(ticks_array,true); int total=CopyTicksRange(_Symbol,ticks_array,COPY_TICKS_INFO,iTime(_Symbol,PERIOD_CURRENT,1),iTime(_Symbol,PERIOD_CURRENT,0)); double bid[]; ArrayResize(bid,total); for(int i=0; i<total; i++) bid[i]=ticks_array[i].bid; Print((ArrayMaximum(bid)>ArrayMinimum(bid) ? "High" : "Low")," наступил раньше"); }
Как-то так.
Как-то так.
Думаю почему же принты всегда одинаковые. Не может же быть такого.
Добавил функцию проверки в ваш код.
Оказывается эксперт не может получить тики , ошибка 4014
void Test(void) { MqlTick ticks_array[]; ArraySetAsSeries(ticks_array,true); int total=CopyTicksRange(_Symbol,ticks_array,COPY_TICKS_INFO,iTime(_Symbol,PERIOD_CURRENT,1),iTime(_Symbol,PERIOD_CURRENT,0)); if(total==-1 || total==0) { Print("ERROR ,CopyTicksRange = ",total); Print("GetLastError CODE = ",GetLastError()); ResetLastError();// Обнуляем содержимое GetLastError return;//Выход если ошибка } Print("total = ",total); double bid[]; ArrayResize(bid,total); for(int i=0; i<total; i++) bid[i]=ticks_array[i].bid; Print((ArrayMaximum(bid)>ArrayMinimum(bid) ? "High" : "Low")," наступил раньше"); }
Думаю почему же принты всегда одинаковые. Не может же быть такого.
Добавил функцию проверки в ваш код.
Оказывается эксперт не может получить тики , ошибка 4014
Потому, что время должно быть в миллисекундах. В документации ведь чётко написано.
from_msc
[in] Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from_msc не указан, то отдаются тики от самого начала истории. Отдаются тики со временем >= from_msc.
to_msc
[in] Дата, по которую запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Отдаются тики со временем <= to_msc. Если параметр to_msc не указан, то отдаются все тики до конца истории.
Пытаюсь в МТ5 узнать какое событие наступило раньше по времени внутри предыдущего бара
HIGH или LOW
К самой цене проблем с доступом нет, получаю так-
Но как узнать какое собитие наступило раньше по времени на этом баре
HIGH или LOW ?
Функция iTime не помогает т.к возвращает значение времени открытия бара
Подскажите пожалуйста
Включите мозг и просто представьте КАК формируется свеча.
Впрочем, возможно это кому-то да надо... Всё-равно, представьте как формируется свеча, и Вы поймёте как определить... ))) Задача то, в принципе, элементарная.- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
HIGH или LOW
К самой цене проблем с доступом нет, получаю так-
Но как узнать какое собитие наступило раньше по времени на этом баре
HIGH или LOW ?
Функция iTime не помогает т.к возвращает значение времени открытия бара
Подскажите пожалуйста