Вот к чему приводит ордерная система учета - полное непонимание сути процесса (бай + селл = 0) ;)
Есть такое понятие, как "хеджированная маржа" - маржа, которая взимается за локированную позицию (когда есть бай и селл по одному инструменту).
Получить это значение можно с помощью функции MarketInfo - http://docs.mql4.com/ru/constants/environment_state/marketinfoconstants
MODE_MARGINHEDGED | 31 | Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот |
В терминале можно посмотреть в свойствах символа:
Информация об инструменте - Документация на MQL4
- docs.mql4.com
Информация об инструменте - Документация на MQL4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Описание проблемы в мт4 ( может быть такая проблема скопировалась в мт5)
Я выводил в советнике 670 билда ( в режиме тестера), через глобальную переменную для индикатора Функцию AccountMargin() (стоимость закупки позиций)
Последовательность действий
вот программа проверки: (не важно сколько лотов, для примера взят минимальный лот)
Полученный результат в зависимости от вариантов (см файлы)
В советнике происходит не правильный расчет AccountMargin()
1) лонги + (лонги +шорты)
2) лонги(шорты) + шорты ( лонги)
3) сразу лонги+ шорты открываем
4) сначала лонги + затем шорты или сначала шорты+ затем лонги
Ожидаемый результат
Если я все время открываю позиции , то обязан AccountMargin() все время увеличиваться, независимо от лонгов или шотов
AccountFreeMargin()= AccountEquity() -AccountMargin() связана уравнением с AccountMargin() и поэтому тоже неправильно считает.
Поэтому из-за этого неправильно маржинкол и стоп аут считается , и все другие параметры напрямую связанные с ошибкой.
Как исправил с своей программе (для полного закрытия любого j ордера) AccountMargin() на свой AccountMarginAccountMargin
AccountMarginAccountMargin всегда больше или равен нулю и логика работы четкая и ясная