Trend_way_Pending





//+------------------------------------------------------------------+
//|                                            Trend_way_Pending.mq4 |
//|                                                Apostol-Aristotel |
//|                                  http://www.apostol-aristotel.ru |
//+------------------------------------------------------------------+
#property copyright "Apostol-Aristotel"
#property link      "http://www.apostol-aristotel.ru"
extern int TakeProfit=30;
extern int StopLoss=30;
extern int padding=50;
extern int Pending=1;
extern int Magic=678; // Magic òîëüêî äëÿ îòëîæåííûõ îðäåðîâ
int ticketB, ticketS, modify, Sell_Orders, Buy_Orders, Pending_Orders, sl; // Modify-áûë ëè îðäåð ìîäèôèöèðîâàí, 1 - äà, 0 - íåò. ticetB - òèêåò äëÿ îòëåæåííûõ îðäåðîâ íà ïîêóïêó, ticketS - íà ïðîäàæó.
 // sl - óðîâåíü òðåéëèíãà, îïðåäåëÿåòñÿ àâòîì. è = ìèí. ñòîïëîññó
extern double Lots;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    if(OrdersTotal()==0)
     {
      Sell_Orders=0;
      Buy_Orders=0;
      Pending_Orders=0;
      Lots=0;
      modify=0;
     }
    for (int i=1; i<=OrdersTotal(); i++)       //Öèêë ïî âñåì îðäåðàì,..
     {                                         //îòðàæ¸ííûì â òåðìèíàëå
      if(OrderSelect(i-1,SELECT_BY_POS)==true) // âûáèðàåì îðäåð
        {
         sl=MarketInfo(Symbol(),MODE_STOPLEVEL);   // Îïðåäåëÿåì ìèíèìàëüíûé ñòîï ëîññ                                     
         if(OrderType()==OP_BUY)
          {
           if(modify==0)
            {
             OrderModify(OrderTicket(),0,OrderOpenPrice()-Point*StopLoss,OrderOpenPrice()+Point*TakeProfit,0,Blue); // Ìîäèôèöèðóåì (èçìåíÿåì òï è ñë) îðäåð íà ïîêóïêó îòíîñèòåëüíî öåíû îòêðûòèÿ
             modify++;
             Buy_Orders++;
             Lots=OrderLots();
            }
           if(Bid>sl*Point+OrderOpenPrice())                              // Åñëè äîñòèãíóò óðîâåíü áåçóáûòêà
            OrderModify(OrderTicket(),0,Bid-Point*sl,OrderTakeProfit(),0,Blue); // Ìîäèôèöèðóåì îðäåð
           if(OrderTakeProfit()==Bid || OrderStopLoss()>OrderOpenPrice())                    // Åñëè ó îðäåðà òï èëè ñðàáîòàë òðåéëèíã
            {
             if(OP_SELLSTOP==1)                                        // Åñëè åñòü îòëîæåííèêè íà ïðîäàæó
              OrderDelete(ticketS);                                    // Óäàëÿåì åãî
            }
          }
         if(OrderType()==OP_SELL)
          {
           if(modify==0)
            {
             OrderModify(OrderTicket(),0,OrderOpenPrice()+Point*StopLoss,OrderOpenPrice()-Point*TakeProfit,0,Blue); // Ìîäèôèöèðóåì (èçìåíÿåì òï è ñë) îðäåð íà ïðîäàæó îòíîñèòåëüíî öåíû îòêðûòèÿ
             modify++;
             Sell_Orders++;
             Lots=OrderLots();
            }
           if(Ask<OrderOpenPrice()-sl*Point)                               // Åñëè äîñòèãíóò óðîâåíü áåçóáûòêà
             OrderModify(OrderTicket(),0,Ask+Point*sl,OrderTakeProfit(),0,Blue); // Ìîäèôèöèðóåì îðäåð
           if(OrderTakeProfit()==Ask || OrderStopLoss()<OrderOpenPrice())                    // Åñëè òï ó îðäåðà íà ïðîäàæó èëè ñðàáîòàë òðåéëèíã
            {
             if(OP_BUYSTOP==1)                                             // Åñëè åñòü îòëîæåííèêè íà ïîêóïêó
              OrderDelete(ticketB);                                      // Óäàëÿåì åãî
            }
          }
         if((OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) && OrderMagicNumber()==Magic && Pending_Orders<2  && Pending==1) // Åñëè îðäåð îòëîæåííûâé è ñåé÷àñ òîëüêî 1 îðäåð îòëîæåí
           Pending_Orders++;
        }
     } 

     if(Pending_Orders==0 && Pending==1) // Åñëè îòëîæåííûõ îðäåðîâ íåò è îòëîæåííèêè âêëþ÷åíû
      {
       if(Sell_Orders==1) // Åñëè åñòü îðäåð íà ïðîäàæó
        {
         ticketB++;
         OrderSend(Symbol(),OP_BUYSTOP,2*Lots,Ask+padding*Point,3,Bid-2*StopLoss*Point+padding*Point,Bid+0.5*TakeProfit*Point+padding*Point,"My order #"+ticketB,Magic,0,Green); //Ñòàâèì îòëîæåííûé íà ïîêóïêó
        }
       if(Buy_Orders==1)  // Åñëè åñòü îðäåð íà ïîêóïêó
        {
         ticketS++;
         OrderSend(Symbol(),OP_SELLSTOP,2*Lots,Bid-padding*Point,3,Ask+2*StopLoss*Point-padding*Point,Ask-0.5*TakeProfit*Point-padding*Point,"My order #"+ticketS,Magic,0,Green); //Ñòàâèì îòëîæåííûé íà ïðîäàæó
        }
      }
      
      if(OrderType()==OP_BUYSTOP && Pending==1) // Åñëè îòëîæåííûé îðäåð íà ïîêóïêó
       {
        if(OrderSelect(ticketB, SELECT_BY_TICKET)==true)  // Åñëè åãî óäàëîñü âûáðàòü
         {
          if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && Bid-Point*sl>OrderOpenPrice()) // Åñëè ñèìâîë ãðàôèêà = ñèìâîëó ñäåëêè, åñëè ìàãè÷åñêèé íîìåð ñîâïàäàåò, è äîñòèãíóò óð. áåçóáûòêà
           if(Bid-Point*sl>OrderStopLoss()) OrderModify(OrderTicket(),0,Bid-Point*sl,OrderTakeProfit(),0,Blue); // Åñëè óðîâåíü íàñòîÿùåãî ñòîïà áîëüøå óñòàíîâëåííîãî, òî äâèãàåì ñòîï
         }
       }
       if(OrderType()==OP_SELLSTOP  && Pending==1)// Åñëè îòëîæåííûé îðäåð íà ïðîäàæó
       {
        if(OrderSelect(ticketS, SELECT_BY_TICKET)==true)  // Åñëè åãî óäàëîñü âûáðàòü
         {
          if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && Ask+Point*sl<OrderOpenPrice()) // Åñëè ñèìâîë ãðàôèêà = ñèìâîëó ñäåëêè, åñëè ìàãè÷åñêèé íîìåð ñîâïàäàåò, è äîñòèãíóò óð. áåçóáûòêà
           if(Bid-Point*sl>OrderStopLoss()) OrderModify(OrderTicket(),0,Ask+Point*sl,OrderTakeProfit(),0,Blue); // Åñëè óðîâåíü íàñòîÿùåãî ñòîïà áîëüøå óñòàíîâëåííîãî, òî äâèãàåì ñòîï
         }
       }
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It can change open orders parameters, due to possible stepping strategy
It automatically opens orders when conditions are reached

Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.00 Total Net Profit:0.00

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.00 Total Net Profit:0.00

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.00 Total Net Profit:0.00

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.00 Total Net Profit:0.00

Request Backtest for Trend_way_Pending


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: