учитесь зарабатывать селяне [Эпизод 2] ! - страница 234

 
Roman.:

:-)

Ага, скорее - леди, которая проплачивает мои айрон... :-)


Так то нормально она нарубала) думаю еще нарубит, вот только соскакивать надо вовремя-а когда к сожалению не угадать.

 
7Konstantin7:

Пока сил нет искать, несколько часов ищу глаза в куче)


Не парься, Корстян - сливших у ней хватает - нех их искать... :-)
 
7Konstantin7:

Так то нормально она нарубала) думаю еще нарубит, вот только соскакивать надо вовремя-а когда к сожалению не угадать.



Дык она не пускает к себе во-время зайти... :-)
 

У KimIV есть то что нужно, но следит только за SL, а за TP нет.

Советник закрывает только те позиции, у которых убыток в пунктах превысил некоторое заданное значение. Какие именно позиции закрыть, покупки или продажи, а также, на каких именно торговых инструментах, можно настроить с помощью внешних параметров советника:

 
Roman.:

Дык она не пускает к себе во-время зайти... :-)

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

 
7Konstantin7:

У KimIV есть то что нужно, но следит только за SL, а за TP нет.

Советник закрывает только те позиции, у которых убыток в пунктах превысил некоторое заданное значение. Какие именно позиции закрыть, покупки или продажи, а также, на каких именно торговых инструментах, можно настроить с помощью внешних параметров советника:


Добавь к себе в сова - я организовал это так:


...
 // ------------------------------------------------Ищем наш ордер---------------------------------
   int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))     continue; // если ордер не выбран, то идем на следующий открытый
      if(OrderCloseTime()!=0) continue;                    // если тикет принадлежит закрытому ордеру, то берем следующий открытый
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) continue;
      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue;
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера          
          if (ticket>0)                                    // Если позиция открылась
              {
                while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                Sleep(100);                                 
                double OpenPrice=OrderOpenPrice();
       // Print("OrderTicket()=",OrderTicket(),  "OrderOpenTime()=",OrderOpenTime()); 
       // Print("TimeLocal()=",TimeLocal());                                                                    
                     //---------------------Запоминаем значения сл и тп ордера                     
                if (orderType == OP_BUY) 
                   {                
                     V_StopLossPips = NormalizeDouble(OpenPrice  - (StopLossPips * Point), Digits);
                     V_TakeProfitPips = NormalizeDouble(OpenPrice + (TakeProfitPips * Point), Digits);
                   }
            
                if (orderType == OP_SELL) 
                   {        
                     V_StopLossPips = NormalizeDouble(OpenPrice  + (StopLossPips * Point), Digits);
                     V_TakeProfitPips = NormalizeDouble(OpenPrice - (TakeProfitPips * Point), Digits);
                   }   
                            
              }
             
     // Проверка на предельную просадку      
      double loss = - ((orderProfit * 100.0) / AccountBalance());
      if (loss > MaxLoss)
      {
         Print ("MaxLoss");
         CloseAllOrders(MagicNumber);
         IsExpertFailed = true;
         return (0);
      }
    
       // Проверка закрытия открытой позиции (ордера) по стоп-лоссу           
      if ( V_StopLossPips != 0 )
        {
          if (OrderType() == OP_BUY && Bid <=  V_StopLossPips)  { CloseAllOrders(MagicNumber); Print (" Buy закрываем по сл, V_StopLossPips = ", V_StopLossPips); }             
          if (OrderType()== OP_SELL && Ask >=  V_StopLossPips)  { CloseAllOrders(MagicNumber); Print (" Sell закрываем по сл, V_StopLossPips = ", V_StopLossPips);}  
        }         
        
        // Проверка закрытия открытой позиции (ордера) по тейку        
        if ( V_TakeProfitPips != 0 && MathAbs(orderProfit) > MathAbs (Sum_Loss))
        {
          if (OrderType() == OP_BUY && Bid >=  V_TakeProfitPips)  { CloseAllOrders(MagicNumber); Print ("Buy закрываем по ТР, V_TakeProfitPips = ", V_TakeProfitPips); }             
          if (OrderType()== OP_SELL && Ask <=  V_TakeProfitPips)  { CloseAllOrders(MagicNumber); Print ("Sell закрываем по ТР,V_TakeProfitPips = ", V_TakeProfitPips); }  
        }        
      
      
      // Если тралить, то с соответствующего номера итерации при выполнении НЕОБХОДИМОГО УСЛОВИЯ соответствующим 
      // выбранному видом трала      
      
      if (UseTrailing==1) if ((Iteration >= k)&& (MathAbs(orderProfit) > (MathAbs (Sum_Loss))))
         switch(type)
          {
           case 0:  // простой трал по аналогии учебнику - в зависимости от параметра trlinloss (тралить ли в зоне лоссов)
                   if (orderType == OP_BUY)  SampleTrailing_texbook (0, V_StopLossPips, V_TakeProfitPips); // если бай
                   if (orderType == OP_SELL) SampleTrailing_texbook (1, V_StopLossPips, V_TakeProfitPips); // если селл
                   break;
           //трал по фракталам + отступ (Indent)
           case 1: TrailingByFractals_LAVINA(ticket,s_signal_period,Sum_Loss,Lots_New,V_StopLossPips,trlinloss); break; 
            //трал по теням N свечей + отступ (Indent)       
           case 2: TrailingByShadows  (ticket,s_signal_period,Sum_Loss,Lots_New,V_StopLossPips,trlinloss);  break;   
          }           
       
   //-----------------------------------ВЫВОДИМ ТЕКУЩУЮ ИНФОРМАЦИЮ О ТОРГАХ НА ЭКРАН------------------------------------------------------------ 
     
      string messageLoss = "";
      if (orderProfit < 0.0)  messageLoss = "Просадка = " + DoubleToStr(loss, 1) + "% (макс. " + MaxLoss + "%)";
   
      // Вывод текущего состояния
      Comment("Прибыль = ", DoubleToStr(orderProfit, 1), " (лот ", orderLots, ")  ", messageLoss, " Iteration= ", Iteration, "  Sum_Loss = ", MathAbs (Sum_Loss), " Ширина канала = ", StopLossPips, " TakeProfitPips  = ",TakeProfitPips,  " V_TakeProfitPips = ", V_TakeProfitPips, "  V_StopLossPips = ",  V_StopLossPips, " channel  = ", channel);      
      return (0);
   }
   
   Comment ("");   
...
 
7Konstantin7:

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


Не скажи, Костян - Паукас, ИМХО - рулит!!!!

К нему совсем скоро заряжу баблецо...

 
Roman.:

Добавь к себе в сова - я организовал это так:

Спасибо, но у меня полу декомпил, да пофиг) что ни будь придумаю.

просто на сильных движениях (уже было такое) цена улетает за пределы SL или TP и все ахтунг ничего не модифицирует

тесты с начала этого года, по сей день мин лотом

Пока 2 дня работает

 
Roman.:

Не скажи, Костян - Паукас, ИМХО - рулит!!!!

К нему совсем скоро заряжу баблецо...

Ага видел) ну может быть, просто что бы что то получить, нужно не мало вложить, а если много бабла вкладываешь, страшно же) тем более если были неудачные вложения, как то не очень весело доверять.

 
7Konstantin7:

Привет всем)

Товарищи подскажите, искал несколько часов все в пустую, подобного море, но все не то(

есть ли советник? Который при достижений виртуального SL-TP кроет ордера, следит за каждым ордером отдельно по всем парам.


Вот посмотрите, https://www.mql5.com/ru/code/10914, что бы работал по всем парам нужно удалить строки
if(OrderSymbol()==Symbol())
Причина обращения: