Столько шума, а код в некоторых местах какой-то странный
К примеру часть поверки лота
// Get the minimum lot step for the symbol double stepvol = ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); if(stepvol > 0) // Calculate lot size rounded to the nearest valid step lt = stepvol * (int)(iLots / stepvol); // Check if calculated lot is less than minimum allowed lot if(lt < ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN)) lt = 0.0; // Set to 0 if below minimum (invalid) // Return successful initialization return(INIT_SUCCEEDED); }
Получили лот 0.0
Далее идём в OnTick() и открываем позицию с лотом "0.0"
if(trade.Buy(lt)) Интересный подход, наверно прибыльно будет идти торговля
--
Нет простейшей проверки на достаточность средств, без этой проверки ЕА даже в тестере страшно запускать, не то что в Демо-режиме
--
Не понимаю умысла, зачем такой подход, сделать не так "как все и везде"
if(new_time != old_time) // Update old_time and return true (new bar detected) if((old_time = new_time) != NULL) return(true);
--
Проверка на установку ордеров TP и SL реализована неверно - при неудаче позиция остаётся брошена на произвол с нулевыми значениями

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

VR Breakdown level - Торговая стратегия на пробой прошлого High или Low:
Торговая стратегия по простому пробитию предыдущих уровней High или Low
Автор: Vladimir Pastushak