Есть советник который торгует каждый день до определенного результата в $. Он складывает все закрытые позиции из истории и открытые текущие позиции. Когда профит достиг ждет следующего дня.
К примеру, советник прошел три дня, и по профиту заработал каждый день по 50$, итого должно быть 150$ за три дня, а в итоге в отчете пишет что чистая прибыль 40$, общая прибыль 115, общий убыток -75.
Как так я не понимаю. Подскажите где моя ошибка?
Есть две функции которые это считают. Если цена достигда профита, закрываются все ордера
Если вы работаете с историей, то и кол-во надо брать с истории
//+------------------------------------------------------------------+ double CalculateProfitHistory() { double oProfit = 0; for(int i = OrdersTotal()-1; i>=0; i--) // OrdersHistoryTotal { if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { oProfit += OrderProfit(); } } } } return(oProfit); }
p.s. код написан корявенько.
Спасибо. Я уже решил эту задачу. Если интересно, то она здесь https://www.mql5.com/ru/forum/379784#comment_25268685
- 2021.10.15
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть советник который торгует каждый день до определенного результата в $. Он складывает все закрытые позиции из истории и открытые текущие позиции. Когда профит достиг ждет следующего дня.
К примеру, советник прошел три дня, и по профиту заработал каждый день по 50$, итого должно быть 150$ за три дня, а в итоге в отчете пишет что чистая прибыль 40$, общая прибыль 115, общий убыток -75.
Как так я не понимаю. Подскажите где моя ошибка?
Есть две функции которые это считают. Если цена достигда профита, закрываются все ордера