Перезагрузите терминал. Если ошибка останется, распринтуйте выход данных после каждого прохода цикла.
Для закрытия ордера необходимо ставить номер тикета, а не номер позиции в списке.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пытаюсь высчитать общий профит по всем позициям объемом 0,01 лота от каждой открытой позиции большими лотами, но почемуто сумма рассчитывается неверно, как будто в рссчет принмиается весь объем а не часть.
tkb = ExBUY();
for(int cntb = 0; cntb < OrdersTotal(); cntb++)
{
OrderSelect(cntb, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY && OrderMagicNumber() == Magicbuy && OrderTicket() != tkb)
{
ctsummb = ctsummb + ((OrderProfit() + OrderSwap() + OrderCommission())/(OrderLots()*100));
}
}
потом пытаюсь закрыть от каждой позиции понемногу, но закрытие идет всем лотом а не указаным объемом
for(int cntbr = 0; cntbr < OrdersTotal(); cntbr++)
{
OrderSelect(cntbr, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY && OrderMagicNumber() == Magicbuy)
{
RefreshRates();
OrderClose(cntbr,0.01,Ask,3,Red);
}
}
где закралась ошибка?