Советники: Торговля по линиям

 

Торговля по линиям:

Советник выставляет ордера на основе расставленных Вами линий. Помощь в ручной торговле.

Author: Vladimir Khlystov

 
Можно ли расширить возможности этого советника?Например работа с трендовыми линиями,или только сигнализация при пробитии без открытия ордера.
 
arinez:
Можно ли расширить возможности этого советника?Например работа с трендовыми линиями,или только сигнализация при пробитии без открытия ордера.


То, что Вы просите я уже делал:

отложки по трендовым линиям

Управление отложками с помощью линий

Установка и закрытие ордеров с помощью перемещаемых линий

линии, при пересечении которых выдается сигнал

Думаю среди них Вы найдете вариант для себя.Есть и более сложный советник, который можно применять и для торговли и для сопровождения и даже для тестирования стратегий.

Удачной торговли!

 
cmillion:
arinez:
Можно ли расширить возможности этого советника?Например работа с трендовыми линиями,или только сигнализация при пробитии без открытия ордера.


То, что Вы просите я уже делал:

отложки по трендовым линиям

Управление отложками с помощью линий

Установка и закрытие ордеров с помощью перемещаемых линий

линии, при пересечении которых выдается сигнал

Думаю среди них Вы найдете вариант для себя.Есть и более сложный советник, который можно применять и для торговли и для сопровождения и даже для тестирования стратегий.

Удачной торговли!


Спасибо,посмотрю.
 

Здравствуйте, cmillion.

Я у Вас тут http://codebase.mql4.com/ru/7862 интересуюсь касаемо изменений в советнике.

 
 

Ребята! Помогите прикрепить к експерту  ур. стоплосс или ур. без убытка в пунктах от открытия. Покажите на примере, что нужно изменить в коде, чтобы добавилось эти 2 параметра.

Программисты!

 
Schmid:

Ребята! Помогите прикрепить к експерту  ур. стоплосс или ур. без убытка в пунктах от открытия. Покажите на примере, что нужно изменить в коде, чтобы добавилось эти 2 параметра.

Программисты!


Самый простой вариант добавить два отдельных блока по принципу установки тейкпрофита.

Сейчас тейк выставляется так:

   if (b+s>0)
   {
      for (i=0; i<OrdersTotal(); i++)
      {    
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            { 
               OT = OrderType(); 
               OTP = NormalizeDouble(OrderTakeProfit(),Digits);
               OSL = NormalizeDouble(OrderStopLoss(),Digits);
               TP=OTP;
               if (OT==OP_BUY)             
               {  
                  TP = NormalizeDouble(NLb + Takeprofit * Point,Digits);
                  if (NormalizeDouble((TP-Ask)/Point,0)<STOPLEVEL) TP=OTP;
                  if (TP != OTP) if (!OrderModify(OrderTicket(),OOP,OSL,TP,0,White)) Print("Error OrderModify ",GetLastError());
               }                                         
               if (OT==OP_SELL)        
               {
                  TP = NormalizeDouble(NLs - Takeprofit * Point,Digits);
                  if (NormalizeDouble((Bid-TP)/Point,0)<STOPLEVEL) TP=OTP;
                  if (TP != OTP) if (!OrderModify(OrderTicket(),OOP,OSL,TP,0,White)) Print("Error OrderModify ",GetLastError());
               } 
            }
         }
      }
   }

 сразу после этого блока вставьте такой:

   double SL;
   if (b+s>0)
   {
      for (i=0; i<OrdersTotal(); i++)
      {    
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {
            if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            { 
               OT = OrderType(); 
               OTP = NormalizeDouble(OrderTakeProfit(),Digits);
               OSL = NormalizeDouble(OrderStopLoss(),Digits);
               if (OT==OP_BUY)             
               {  
                  SL= NormalizeDouble(OOP - StopLoss* Point,Digits);
                  if (SL != OSL) if (!OrderModify(OrderTicket(),OOP,SL,OTP,0,White)) Print("Error OrderModify ",GetLastError());
               }                                         
               if (OT==OP_SELL)        
               {
                  SL = NormalizeDouble(OOP + StopLoss* Point,Digits);
                  if (SL != OSL) if (!OrderModify(OrderTicket(),OOP,SL,OTP,0,White)) Print("Error OrderModify ",GetLastError());
               } 
            }
         }
      }
   }

 Установку стоплосса в безубыток можно сделать по этому же принципу, только нужно перед установкой проверять прибыль ордера.

 

Просто добавил этот блок в код как вы подсказали. Но при компиляции 2 ошибки -

'StopLoss' - variable not defined    C:\Program Files\MT4\experts\cm-Breakdown Line 3.mq4 (124, 45)

'StopLoss' - variable not defined    C:\Program Files\MT4\experts\cm-Breakdown Line 3.mq4 (129, 46)

 
Schmid:

Просто добавил этот блок в код как вы подсказали. Но при компиляции 2 ошибки -

'StopLoss' - variable not defined    C:\Program Files\MT4\experts\cm-Breakdown Line 3.mq4 (124, 45)

'StopLoss' - variable not defined    C:\Program Files\MT4\experts\cm-Breakdown Line 3.mq4 (129, 46)


в самом начале нужно определить переменную stoploss так же как это сделано с  Takeprofit

extern int Takeprofit = 30; //прибыль ордера для закрытия всех 

для оперативности пишите в скайп или на почту
email: cmillion@narod.ru
Skype: mqlcmillion


Причина обращения: