double OpenClose( double Lots ) { int Ticket; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, 0, 0, "Withdrawal"); OrderClose(Ticket, Lots, Bid, 0); return (Lots); } void Withdrawal( double Amount ) { double Lots, LotStep, MinLot; Lots = Amount / ( MarketInfo(Symbol(), MODE_SPREAD) * MarketInfo(Symbol(), MODE_TICKVALUE)); MinLot = MarketInfo(Symbol(), MODE_MINLOT); LotStep = MathMin(MarketInfo(Symbol(), MODE_MAXLOT), AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED)); if (LotStep < MinLot) return; while (Lots >= LotStep + MinLot) { Lots -= OpenClose(LotStep); LotStep = MathMin(MarketInfo(Symbol(), MODE_MAXLOT), AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED)); } if (LotStep < MinLot) return; if (Lots > LotStep) Lots -= OpenClose(MinLot); if (Lots >= MinLot) OpenClose(Lots); return; }
А как учитывать нехватку средств для поддержания позиций? Это же тестер рассчитывает
Брокер не позволяет выводить средства ниже уровня Margin Call.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите какие-либо автоматические способы для изменения баланса счета при тестировании стратегий.
К примеру, после определённой прибыльной сделки мне нужно уменьшить балан счета до первоначального.
Я понимаю, что можно использовать переменную, в которой хранить "выведенные" средства, но это всё ухищрения.
Более-менее стандартно можно реализовать?