← К каталогу
Исходный код · ID 596

serg153 martingail.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

В определённых условиях советник способен открыть совмещённую позицию, суммирующую лоты из предыдущих шагов, для фиксации или перебалансировки портфеля. Для исполнения торговых операций используются стандартные функции торгового API MetaTrader 4, при этом советник работает исключительно на символе графика, к которому прикреплён.

Получить полный код

Поиск по коду файла

int               cnt, total,                      // ????????, ????????? ??????????
                     ticket1=0,                         // ????? ??????? ????????? ?? ?????? ???? ??????
                     ticket2=0,                         // ????? ??????? ??????, ????????? ? ??????????????? ??????? ?????????? ticket1 ?? ?????? ????
                     ticket3=0,
                     ticket4=0,
                     ticket5=0,
                     ticket6=0,
                     ticket7=0,
                     ticket8=0,                                                            
                     tiketPlus=0;                       // ?????????? ?????? ???????? ?????? ?????????? ??????, ??????????????? ????? ????????? ????? ?? ??????? ticket1 ??? ticket2 ???????????? ????? (?????? ?? ???????????) 
   int               OpenSell0_Byu1;                  // ????, ????????????, ? ????? ??????? ????????? ?????? ?????? ?????? (?? ??????? ?? ?????????? ????? ???????? ??????????? ????)

extern   int         Step1Pips=20,
                     Step2Pips=20,
                     Step3Pips=20,
                     Step4Pips=20,
                     Step5Pips=20;

extern   double         Step1Lots=1,
                     Step2Lots=1,
                     Step3Lots=2,
                     Step4Lots=4,
                     Step5Lots=8;

   int               StepMartingail=0;

int start()
  {
      // код доступен только после оплаты
   }
   total = 0;
   for (cnt=0;cnt<73;cnt++)
   {          

      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) total++;
      }
   }

   Comment("??????? ???: ", StepMartingail, "\nticket1: ", ticket1, "\nticket2: ", ticket2, "\nticket3: ", ticket3, "\nticket4: ", ticket4, "\nticket5: ", ticket5, "\nticket6: ", ticket6, "\nticket7: ", ticket7);

   if (StepMartingail==0 || StepMartingail==1000000)
   {

      tiketPlus   = 0;     // ??? ???? ????????? ??????
      ticket1     = 0;
      ticket2     = 0;
      ticket3     = 0;
      ticket4     = 0;
      ticket5     = 0;
      ticket6     = 0;
      ticket7     = 0;
      ticket8     = 0;                                                            
      tiketPlus   = 0; 

      StepMartingail = 1;

   }   
   else if (StepMartingail == 1)
   {

      if (ticket1 <= 0)
      {
         ticket1  =  OrderSend(Symbol(),   OP_BUY,  Step1Lots,  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (ticket2 <= 0)
      {
         ticket2  =  OrderSend(Symbol(),   OP_SELL, Step1Lots,  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }
   }   
   else if (StepMartingail == 2 && ticket3<=0)
   {
      if (OpenSell0_Byu1 == 1)
      {
         ticket3  =  OrderSend(Symbol(),   OP_BUY,  Step2Lots,  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (OpenSell0_Byu1 == 0)
      {
         ticket3  =  OrderSend(Symbol(),   OP_SELL, Step2Lots,  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }
   }   
   else if (StepMartingail == 3 && ticket4<=0)
   {
      if (OpenSell0_Byu1 == 1)
      {
         ticket4  =  OrderSend(Symbol(),   OP_BUY,  Step3Lots,  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (OpenSell0_Byu1 == 0)
      {
         ticket4  =  OrderSend(Symbol(),   OP_SELL, Step3Lots,  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }
   }   
   else if (StepMartingail == 4 && ticket5<=0)
   {
      if (OpenSell0_Byu1 == 1)
      {
         ticket5  =  OrderSend(Symbol(),   OP_BUY,  Step4Lots,  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (OpenSell0_Byu1 == 0)
      {
         ticket5  =  OrderSend(Symbol(),   OP_SELL, Step4Lots,  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }
   }
   else if (StepMartingail == 5 && ticket6<=0)
   {
      if (OpenSell0_Byu1 == 1)
      {
         ticket6  =  OrderSend(Symbol(),   OP_BUY,  Step5Lots,  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (OpenSell0_Byu1 == 0)
      {
         ticket6  =  OrderSend(Symbol(),   OP_SELL, Step5Lots,  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }
   }      
   else if (StepMartingail == 999) // go to LOCK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
   {
      if (OpenSell0_Byu1 == 0)
      {
         ticket7  =  OrderSend(Symbol(),   OP_BUY,  (Step2Lots+Step3Lots+Step4Lots+Step5Lots),  Ask,  3, Ask - 2000*Point,  Ask+2000*Point, "macd sample", 16384,   0, Green);
      }
      else if (OpenSell0_Byu1 == 1)
      {
         ticket7  =  OrderSend(Symbol(),   OP_SELL, (Step2Lots+Step3Lots+Step4Lots+Step5Lots),  Bid,  3, Bid + 2000*Point,  Bid-2000*Point, "macd sample", 16384,   0, Green);
      }

      StepMartingail = 1000000;
   }

      if (StepMartingail == 1 && ticket1>0 && ticket2>0)
      {
         if(OrderSelect(ticket1, SELECT_BY_TICKET, MODE_TRADES))
         {

             if (OrderOpenPrice() - Bid > Step1Pips*Point)
             {
                 StepMartingail = 2;
                 OpenSell0_Byu1 = 1;
                 tiketPlus = ticket2;                 
             }
         }  
         else if (OrderSelect(ticket2, SELECT_BY_TICKET, MODE_TRADES))
         {
             if (Ask - OrderOpenPrice() > Step1Pips*Point)
             {
                 StepMartingail = 2;
                 OpenSell0_Byu1 = 0;                 
                 tiketPlus = ticket1;
             }
         }
      }
      else if (StepMartingail == 2 && ticket3>0)
      {

         if(OrderSelect(ticket3, SELECT_BY_TICKET, MODE_TRADES) && OpenSell0_Byu1 == 1)
         {

             if (OrderOpenPrice() - Bid > Step2Pips*Poin

Показано первые 50% кода (символов: 6975)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
697,50₽ ≈ $8.52