//+------------------------------------------------------------------+
//| openorders_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version "1.00"
#property strict
#property script_show_inputs
input int orders = 4; //всего ордеров в серии
input bool buy = true; //флаг разрешающий/запрещающий покупки
input bool sell = false; //флаг разрешающий/запрещающий продажи
input int magic = 100500; //уникальный номер для ордеров, открываемых этим скриптом
input double lot = 0.01; //объем каждого ордера серии
input int tp = 100; //тейк профит, в пунктах
input int sl = 100; //стоп лосс, в пунктах
input int slip = 2; //допустимое проскальзывание на открытии, в пунктах (для ECN, где открытие по рынку - игнор)
void OnStart()
{
int i = 0;
int ticket = 0;
if ( buy ) {
while ( i < orders ) {
RefreshRates();
ticket = OrderSend (Symbol(), OP_BUY, lot, NormalizeDouble(Ask, Digits), slip, 0, 0, "", magic, 0, clrBlue);
if ( ticket !=-1 ) {
if ( OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES) ) {
OrderModify (ticket, OrderOpenPrice(), NormalizeDouble(OrderOpenPrice()-sl*Point, Digits), NormalizeDouble(OrderOpenPrice()+tp*Point, Digits), 0, clrBlue);
}
}
i++;
}
}
i = 0;
if ( sell ) {
while ( i < orders ) {
RefreshRates();
ticket = OrderSend (Symbol(), OP_SELL, lot, NormalizeDouble(Bid, Digits), slip, 0, 0, "", magic, 0, clrRed);
if ( ticket !=-1 ) {
if ( OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES) ) {
OrderModify (ticket, OrderOpenPrice(), NormalizeDouble(OrderOpenPrice()+sl*Point, Digits), NormalizeDouble(OrderOpenPrice()-tp*Point, Digits), 0, clrRed);
}
}
i++;
}
}
}