Скачать MetaTrader 5

Советники: HlopMaster

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
MetaQuotes Software Corp.
Модератор
181170
MetaQuotes Software Corp. 2009.04.21 06:11 

HlopMaster:

Мартингейл + трейлинг ордеров.

Author: Юрий

MQL4 Comments
16319
MQL4 Comments 2009.04.21 13:43  

Почемуто не работает. Выдаёт ошибки №131 при открытии позиции . Поменял в настройках значение рips и profitpips с 25 на 250, после этого позиции открывает, но не может их трейлить.

Юрий
976
Юрий 2009.04.21 15:25  

Используйте брокера с 4 знаками после запятой. 

MQL4 Comments
16319
MQL4 Comments 2009.04.21 16:48  

у меня тоже не пошел .... и открыл в терминале с 4 знакамипосле запятой

MQL4 Comments
16319
MQL4 Comments 2009.04.21 17:27  
FORWASP:

Почемуто не работает. Выдаёт ошибки №131 при открытии позиции . Поменял в настройках значение рips и profitpips с 25 на 250, после этого позиции открывает, но не может их трейлить.

Рабтает в ДЦ где нулевой уровень СТОП-лосс и тейк профит.

Со стандартными параметрами сливатор. Может кто знает как нужно правильно настроить

Oleg
165
Oleg 2009.04.21 20:40  

Респект автору.

polopolo
14
polopolo 2009.04.22 08:43  

Function "SummProfit" is not referenced and will be removed from exp-file

а что с этой функцией не так? если можно - подробно.

Юрий
976
Юрий 2009.04.22 11:57  
polopolo:

Function "SummProfit" is not referenced and will be removed from exp-file

а что с этой функцией не так? если можно - подробно.



Пишет что она не используется просто, можете ее удалить из кода. 

Evgeniy Trofimov
2359
Evgeniy Trofimov 2009.04.23 11:20  

Чем отличается функция GetMaxLotOrder() от GetMaxLot() ???

Приведу их в удобный вид:

double GetMaxLot() {
   //Функция возвращает размер максимального лота,
   //найденного среди открытых позиций
   int i; double maxlot;
   for(i=1; i<=OrdersTotal(); i++) {
      if(OrderSelect(i-1,SELECT_BY_POS)) {                                   
         if(OrderType()<2 && OrderSymbol()==Symbol()) {
            if(maxlot<OrderLots()) {
               maxlot=OrderLots();
            }
         }
      }
   }   
   return(maxlot);
}//GetMaxLot()
//+------------------------------------------------------------------+
double GetMaxLotOrder() {
   int i;double maxlot;
   for(i=1; i<=OrdersTotal(); i++) {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) {                                   
         if(OrderType()<2 && OrderSymbol()==Symbol()) {
            if(maxlot<OrderLots()) {
               maxlot=OrderLots();
            }
         }
      }
   }   
   return(maxlot);
}//GetMaxLotOrder()

Если ничем, то где смысл в условии функции start()

      if(GetMaxLot()==GetMaxLotOrder()){
         ChangeOrder(GetMaxLot()*2);
      }
Юрий
976
Юрий 2009.04.23 13:19  
EvgeTrofi:

Чем отличается функция GetMaxLotOrder() от GetMaxLot() ???

Приведу их в удобный вид:

double GetMaxLot() {
   //Функция возвращает размер максимального лота,
   //найденного среди открытых позиций
   int i; double maxlot;
   for(i=1; i<=OrdersTotal(); i++) {
      if(OrderSelect(i-1,SELECT_BY_POS)) {                                   
         if(OrderType()<2 && OrderSymbol()==Symbol()) {
            if(maxlot<OrderLots()) {
               maxlot=OrderLots();
            }
         }
      }
   }   
   return(maxlot);
}//GetMaxLot()
//+------------------------------------------------------------------+
double GetMaxLotOrder() {
   int i;double maxlot;
   for(i=1; i<=OrdersTotal(); i++) {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) {                                   
         if(OrderType()<2 && OrderSymbol()==Symbol()) {
            if(maxlot<OrderLots()) {
               maxlot=OrderLots();
            }
         }
      }
   }   
   return(maxlot);
}//GetMaxLotOrder()

Если ничем, то где смысл в условии функции start()

      if(GetMaxLot()==GetMaxLotOrder()){
         ChangeOrder(GetMaxLot()*2);
      }

Вы видимо переусердствовали с приведением кода в удобный вид, бывает =)  

Еще раз взгляните на мой код:


//Описание функции: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=69
double GetMaxLot() 
{int i;double maxlot;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if((OrderType()==OP_BUY ||OrderType()==OP_SELL)  && OrderSymbol()==Symbol() && maxlot<OrderLots()){maxlot=OrderLots();}
       }
    }   
return(maxlot);
}
 
//Описание функции: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=70
double GetMaxLotOrder() 
{int i;double maxlot;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if((OrderType()==OP_BUYSTOP ||OrderType()==OP_SELLSTOP)  && OrderSymbol()==Symbol() && maxlot<OrderLots()){maxlot=OrderLots();}
       }
    }   
return(maxlot);
}
Nail Murtazin
386
Nail Murtazin 2009.04.23 15:19  
FORWASP:

Почемуто не работает. Выдаёт ошибки №131 при открытии позиции . Поменял в настройках значение рips и profitpips с 25 на 250, после этого позиции открывает, но не может их трейлить.

На тестере неплохо выглядит с большими значениями параметров. Но теряется частота сделок.

Смотрел на демо счете - тралит как-то не так. Наращивает минусы, все увеличивает лоты...

На мой взгляд очень неплохая стратегия, просто нужно ее научить тралить - вовремя выставлять ордера (с этим он капитально запаздывает)

Возможно нужно добавить функцию "слава богу", которая закрывает все открытые ордера, когда Эквити вырывается вверх баланса на Х%

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий