Я новичок в программировании советников и работаю над проектом, который анализирует разницу цен между двумя моментами времени в секундах.
Моя цель — определить растянутые цены за короткие периоды времени.
У меня уже есть робот, который анализирует эту «растяжку» за считанные секунды, используя это:
TimeCurrent() <= (iTime(NULL, PERIOD_M1, 0) + 5)
Проблема в том, что параметром, который я использую для получения первой цены, является iOpen, а это, очевидно, цена открытия бара... То есть я не могу получить разницу в цене между вторыми 5 и 10 бара, так как iOpen всегда основывается на начале косой черты.
Я был бы очень признателен, если бы кто-нибудь мог дать мне представление о том, как получить цену в данную секунду бара (секунду 5, например)...
Всем большое объятие!
- Индикатор хранения цены во времени - не работает массив
- Как кодировать?
- Интересный вопрос!
Вот так
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2022.10.25 20:24
Как-же мне уже надоело читать всю эту ахинею… Ведь кода всего ЧЕТЫРЕ СТРОКИ, а обсуждений 3 страницы.
MqlTick mqlTick[], symbTick; // объявили переменные SymbolInfoTick(_Symbol, symbTick); // это последний тик CopyTicksRange(_Symbol, mqlTick, COPY_TICKS_ALL, symbTick.time_msc, symbTick.time_msc-20000); // Получили все тики за последние 20 секунд double delta = NormalizeDouble(mqlTick[ArraySize(mqlTick)-1].bid-mqlTick[0].bid, _Digits); // получили разницу крайних значений массива
20000 миллисекунд — это 20 секунд.
Дальше ставьте условие на размер переменной delta больше\меньше, влево\вправо или север\йух…
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь