Если в теле OnTick() открывается больше одной позиции, то проблема в том, что значение totalPositions не обновляется после открытия очередной позиции.
Если же после открытия позиции происходит выход из обработки тика, то причина непонятна, нужно больше кода.
например если неттинговый учёт :-)
ilmir2902:
int totalPositions = PositionsTotal();
int totalPositions = PositionsTotal();
надо сразу if( PositionsTotal() .........
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день. У меня при ограничении количества сделок MQL5 следующая проблема. Простой код на ограничение кол-ва сделок работает без проблем(сделка не открывается, если перед открытием сделки имеется хоть одна открытая позиция):
void OnTick() {
..................................
int totalPositions = PositionsTotal();
.........................................................
if ( totalPositions < 1) {
........................
}}
А вот если я ставлю if ( totalPositions < 2), хочу чтобы выполнялось условие ( сделка не открывается, если перед открытием сделки имеется более одной открытой позиции), то начинается бесконтрольное открытие позиций, которые в определенный момент закрываются одним большим стопом. Итак повторяется постоянно до слива депозита, что естественно. В чем фундаментальная причина этого ? Не помогает также применение более сложных конструкций с циклом for, результат тот же,
Буду очень благодарен, если объясните почему if ( totalPositions < 1) ограничивает кол-во открываемых сделок, а if ( totalPositions < 2) вообще уже ничего не ограничивает