Если открыться скриптои OpenBuyPosition два раза подряд, то скрипт ClosePosition не закрывает всю позицию целиком.
Скрипт перестал работать правильно. Вместо закрытия позиций, открывает их. ((
В принципе, скрипт выполнен для брокеров, имеющих всего по одной позиции для каждой валюты. Потому как непонятно, а что, собственно говоря, закрывать, когда объект для приложения усилий не один, а во множественном числе.
Так что с открыванием проблема закрыта, новый код опубликуют, а вот с кучей позиций всё-равно будет некоррект.
Вроде, понятно же
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
#define Bid (SymbolInfoDouble(_Symbol, SYMBOL_BID))
#define Ask (SymbolInfoDouble(_Symbol, SYMBOL_ASK))
void OnStart()
{
for (int i = OrdersTotal() - 1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS) && (OrderSymbol() == _Symbol) && (OrderType() <= OP_SELL))
OrderClose(OrderTicket(), OrderLots(), (OrderType() == OP_BUY) ? Bid : Ask, Deviation);
}
Едва ли! Ваш код как носорог в посудной лавке просто грохнет все позиции и всё, а не закроет требуемый объём. Удачи.
Ну так элементарно же добавить в код закрытый объем.
Вы самой сути скрипта не понимаете! Название скрипта - "Закрыть позицию"! А позиций десять! В изначальной логике скрипта предполагается только одна позиция. И код ваш вообще никчемушний напрочь. Вполне достаточно строчки:
Вы самой сути скрипта не понимаете! Название скрипта - "Закрыть позицию"! А позиций десять! В изначальной логике скрипта предполагается только одна позиция.
Нетто-позиция даже на MT5-Hedge и MT4 всегда одна. Алгоритм такой
- Вычислили размер и направление нетто-позы.
- В противоход ей открыли позу на указанный объем.
- Схлопнули НОВУЮ позу по OrderCloseBy.
И код ваш вообще никчемушний напрочь. Вполне достаточно строчки:
Нетто-позиция даже на MT5-Hedge и MT4 всегда одна. Алгоритм такой
- Вычислили размер и направление нетто-позы.
- В противоход ей открыли позу на указанный объем.
- Схлопнули НОВУЮ позу по OrderCloseBy.
Это разговор ни об чём в стиле: "Ежели бы бабушка была бы дедушкой и имела бы пенис...." Скрипт закрывает всего одну позицию в терминале и всё!
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
ClosePosition:
Автор: Nikolay Kositsin