Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй программу в Маркете и продавай ее миллионам трейдеров!
lander
169
lander 2012.02.15 08:17 
Подскажите пожалуйста код для открытия сделок, в случае если предыдущая сделка была неудачной с удвоинным лотом, принцип мартингейла
Leonid Borsky
2363
Leonid Borsky 2012.02.15 08:27  

Наберите в поиске форума ЭКСПЕРТ МАРТИНГЕЙЛ и получите кучу примеров такого кода. Вот, навскидку:

https://www.mql4.com/ru/search#!keyword=ЭКСПЕРТ%20МАРТИНГЕЙЛ

lander
169
lander 2012.02.15 09:21  

Можно что-то поконкретнее. Например код такого типа: логическое условие - если предыдущая сделка убыточная, то лот удваивается, если прибыльная открываем ордер по минимальному лоту.

Leonid Borsky
2363
Leonid Borsky 2012.02.15 10:42  

Вам здесь помогут функции И.Кима https://www.mql5.com/ru/forum/131859

например, Функция isLossLastPos().
Эта функция возвращает флаг убыточности последней закрытой позиции. Флаг поднят - True - последняя позиция была закрыта с убытком. Флаг опущен - False - последняя позиция была закрыта либо в ноль, либо с прибылью.

https://www.mql5.com/ru/forum/131859/page4#434231

саму функцию скопируйте и расположите в коде вне ф-и СТАРТ. А условие можно задать так:

if (isLossLastPos(NULL, OP_BUY,-1)==True) {//если посл. бай-позиция закрылась с убытком
 OrderSend(Symbol(),0,2*Lot,Ask, ... ....);//удваиваем размер след. бай-позиции
                                       }
Mihail Marchukajtes
3295
Mihail Marchukajtes 2012.02.15 13:13  
double Last_Close_Loss(){
double Last_profit=0, Last_close_lots=0,Last_Type=0,Last_Open_Price=0 ; int time=0; 
//---------
   for (int i=OrdersHistoryTotal();i>=1;i--){
         if(OrderSelect(i-1, SELECT_BY_POS, MODE_HISTORY))
         if(OrderSymbol ()!= Symbol())continue;
         if(OrderType() <=1 )
           {if(OrderCloseTime()>time){time=OrderCloseTime();
                                      Last_profit=OrderProfit()+OrderSwap();
                                      Last_Type=OrderType();
                                      Last_Open_Price=OrderOpenPrice();
                                      }
           }
        }    
if(Last_profit<0){
   if (Last_Type==OP_SELL) Last_Open_Price=Last_Open_Price*(-1);
   return(Last_Open_Price);
}
 return (0);    
   
} 
Функчия возвращает не только какая позиция была закрыта с лосём, но и цену открытия той позиции, можно возвращать не цену открытия, а любой другой параметр этой позиции. Знак возвращаемого числа говорит о типе позиции тоесть бай или селлл.....
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий