При торговле периодически возникает желание закрыть существующую позицию и открыться в обратном направлении. Если в рынке работает 1-2 ордера, то это не проблема, а вот если их больше десятка, то это уже целая беда.
Скрипт переворачивает имеющиеся открытые позиции по текущей валютной паре.
Параметры скрипта:
— нет
//+------------------------------------------------------------------+ //| ReversOrders.mq4 | //| Copyright 2018, xbms | //| mailto:xbms@mail.ru | //| http://mql.su | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, xbms" #property link "http://mql.su" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { double Lots; int ticket; for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { ticket = 0; if (OrderType() == OP_BUY) { Lots = OrderLots(); if (OrderClose(OrderTicket(), OrderLots(), Bid, 5, Black)) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 7, 0, 0, "Inverted order", 0, 0 , Red); } } if (OrderType() == OP_SELL) { Lots = OrderLots(); if (OrderClose(OrderTicket(), OrderLots(), Ask, 5, Black)) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 7, 0, 0, "Inverted order", 0, 0, Blue); } } if (ticket < 1) { Print("Не удалось перевернуть ордер с тикетом " + IntegerToString(OrderTicket())); } } } } } //+------------------------------------------------------------------+