//+------------------------------------------------------------------+
//| openorder_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version "3.00"
#property strict
#property script_show_inputs
input int orders = 4; //всего ордеров в серии
input bool buy = true; //флаг разрешающий/запрещающий покупки
input bool sell = false; //флаг разрешающий/запрещающий продажи
input int magic = 100500; //уникальный номер для ордеров, открываемых этим скриптом
double lot[] = {0.01, 0.01, 0.01, 0.01}; //массив объемов ордеров серии
int tp[] = {100,150,200,250}; //массив тейк профитов, в пунктах
int sl[] = {100,150,200,250}; //массив стоп лоссов, в пунктах
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[i], 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[i]*Point, Digits), NormalizeDouble(OrderOpenPrice()+tp[i]*Point, Digits), 0, clrBlue);
}
}
i++;
}
}
i = 0;
if ( sell ) {
while ( i < orders ) {
RefreshRates();
ticket = OrderSend (Symbol(), OP_SELL, lot[i], 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[i]*Point, Digits), NormalizeDouble(OrderOpenPrice()-tp[i]*Point, Digits), 0, clrRed);
}
}
i++;
}
}
}