Author: Copyright � 2011, rockyhoangdn
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Stochastic oscillatorLarry William percent range indicator
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Aver12345
//+------------------------------------------------------------------+
//|                                                    Aver12345.mq4 |
//|                                   Copyright © 2011, rockyhoangdn |
//|                                           rockyhoangdn@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, rockyhoangdn"
#property link      "rockyhoangdn@gmail.com"
//+------------------------------------------------------------------+
//| Vars                                                             |
//+------------------------------------------------------------------+
double   iStouchvalue1 = 0;
double   iStouchvalue2 = 0;
double   iStouchvalue3 = 0;
double   iStouchvalue4 = 0;
double   iStouchvalue = 0;
double   iWprvalue1 = 0;
double   iWprvalue2 = 0;
double   iWprvalue3 = 0;
double   iWprvalue4 = 0;
double   iWprvalue = 0;
double   Postzigzagvalue1=0;
double   Postzigzagvalue2=0;
double   Buyvalue = 0, Sellvalue = 0;
double   Signalbuyvalue = 0, Signalsellvalue = 0;
int      Buyposition = 0, Sellposition =0;
int      MagicNumber = 162429;
int      Slippage = 3;
double   StopLoss = 0;//inpip
double   TakeProfit = 0;//in pip
double   Maximum.Ft.Profit = 0;
double   Minimum.Ft.Profit = 0;
int      Buycount=0,Sellcount=0;
double   B1=0,B2=0,B3=0,B4=0,B5=0,S1=9999,S2=9999,S3=9999,S4=9999,S5=9999;
//---- input parameters
extern string LotsOptimized                  = "====== LotsOptimized ======";
extern bool   MoneyManagement = true;
extern bool   UseMinilot=true;
extern double Lots=0.1;
extern double MaximumRisk=0.1;//10%
extern double MinLot=0.1;
extern string Stoploss_Takeprofit            = "====== Setup Stoploss/Takeprofit ======";
extern double MyStopLoss = 800;
extern double MyTakeProfit = 0;
extern double Stopoutlevel=50;
extern string Nextopenposition_in_point      = "====== Nextopenposition in point ======";
extern int    Nextopenposition =150;
extern string Delay_open_in_point            = "====== Delay open in point ======";
extern double Delay = 0;//delay inpoint when signal appearent
extern int    Maxiposition=5;//Maximum=5
extern string Close_Optimized                = "====== Close_Optimized ======";
extern bool   Closebyprofit = false;
extern double Needprofit =1000;//Maximum Profit per Order
extern double Losscan = 500; //Maximum Loss per Order
extern string TimeFrame                      = "====== TimeFrame ======";
extern bool   TimeFrameM1=false;
extern bool   TimeFrameM5=true;//Best timeframe to trade
extern bool   TimeFrameM15=true;
extern bool   TimeFrameM30=false;
extern bool   TimeFrameM60=false;
extern bool   TimeFrameM240=false;
extern string IndicatorsPeriod                      = "====== Indicators Period ======";
extern int    iStochPeriod = 26;
extern int    iWPRPeriod = 26;
extern int    PostzigzagPeirod = 14;

string comments="";
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//+------------------------------------------------------------------+
//| Select Next open position in point                               |
//+------------------------------------------------------------------+
   if (Symbol() == "USDJYP") Nextopenposition=150;
   if (Symbol() == "EURUSD") Nextopenposition=450;
   if (Symbol() == "EURJYP") Nextopenposition=300;

//+------------------------------------------------------------------+
//| indicator                                                        |
//+------------------------------------------------------------------+

   iStouchvalue1= iStochastic(NULL,0,iStochPeriod,3,3,MODE_SMMA,1,MODE_MAIN,1);    
   iStouchvalue2= iStochastic(NULL,0,iStochPeriod*3,3,3,MODE_SMMA,1,MODE_MAIN,1);    
   iStouchvalue3= iStochastic(NULL,0,iStochPeriod*6,3,3,MODE_SMMA,1,MODE_MAIN,1);    
   iStouchvalue4= iStochastic(NULL,0,iStochPeriod*12,3,3,MODE_SMMA,1,MODE_MAIN,1);  
   iStouchvalue= (iStouchvalue1+iStouchvalue2+iStouchvalue3+iStouchvalue4)/4;
   iWprvalue1= iWPR(NULL,0,iWPRPeriod,1);    
   iWprvalue2= iWPR(NULL,0,iWPRPeriod*3,1);    
   iWprvalue3= iWPR(NULL,0,iWPRPeriod*6,1);    
   iWprvalue4= iWPR(NULL,0,iWPRPeriod*12,1);    
   iWprvalue= (iWprvalue1+iWprvalue2+iWprvalue3+iWprvalue4)/4;    
   Postzigzagvalue1=iCustom(NULL, 0, "Post-zigzag",PostzigzagPeirod,1,1);
   Postzigzagvalue2=iCustom(NULL, 0, "Post-zigzag",PostzigzagPeirod,2,1);
    
      if (iStouchvalue < 0.1 && iWprvalue <- 90 )  
         {
         Buyvalue=1;
         Signalbuyvalue=Ask;
         Signalsellvalue=9999;
         Sellvalue=0; 
         ObjectCreate("Trendup", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("Trendup","UP",25, "Verdana", Lime);
         ObjectSet("Trendup", OBJPROP_CORNER, 0);
         ObjectSet("Trendup", OBJPROP_XDISTANCE, 39);
         ObjectSet("Trendup", OBJPROP_YDISTANCE, 46);
         ObjectDelete("Trend");
         }
      if (iStouchvalue > 99.9 && iWprvalue >-5) 
         {
         Sellvalue=1;
         Signalsellvalue=Bid;
         Signalbuyvalue=0;
         Buyvalue=0;
         ObjectCreate("Trend", OBJ_LABEL, 0, 0, 0);
         ObjectSetText("Trend","DOWN",25, "Verdana", Red);
         ObjectSet("Trend", OBJPROP_CORNER, 0);
         ObjectSet("Trend", OBJPROP_XDISTANCE, 9);
         ObjectSet("Trend", OBJPROP_YDISTANCE, 46);
         ObjectDelete("Trendup");
         }
      if(Buyvalue==1)
         {
         if(((Ask - Signalbuyvalue) < -Delay*Point) && Postzigzagvalue2!=0) 
            {
            Buyvalue=2;
            Alert("Signal Buy at " + Symbol());
            }
         }   
      if(Sellvalue==1)
         {
         if(((Bid - Signalsellvalue) > Delay*Point) && Postzigzagvalue1 !=0) 
            {
            Sellvalue=2;
            Alert("Signal Sell at "+Symbol());
            }
         }   
//----Exit indicator
//+------------------------------------------------------------------+
//| Print last trade info                                            |
//+------------------------------------------------------------------+
      ObjectCreate("BUY POSITION", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("BUY POSITION","++ BUY ++",11, "Verdana", Lime);
      ObjectSet("BUY POSITION", OBJPROP_CORNER, 1);
      ObjectSet("BUY POSITION", OBJPROP_XDISTANCE, 10);
      ObjectSet("BUY POSITION", OBJPROP_YDISTANCE, 10);
      
      ObjectCreate("B1", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("B1",DoubleToStr(B1,5),10, "Verdana", Lime);
      ObjectSet("B1", OBJPROP_CORNER, 1);
      ObjectSet("B1", OBJPROP_XDISTANCE, 10);
      ObjectSet("B1", OBJPROP_YDISTANCE, 30);

      ObjectCreate("B2", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("B2",DoubleToStr(B2,5),10, "Verdana", Lime);
      ObjectSet("B2", OBJPROP_CORNER, 1);
      ObjectSet("B2", OBJPROP_XDISTANCE, 10);
      ObjectSet("B2", OBJPROP_YDISTANCE, 50);

      ObjectCreate("B3", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("B3",DoubleToStr(B3,5),10, "Verdana", Lime);
      ObjectSet("B3", OBJPROP_CORNER, 1);
      ObjectSet("B3", OBJPROP_XDISTANCE, 10);
      ObjectSet("B3", OBJPROP_YDISTANCE, 70);

      ObjectCreate("B4", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("B4",DoubleToStr(B4,5),10, "Verdana", Lime);
      ObjectSet("B4", OBJPROP_CORNER, 1);
      ObjectSet("B4", OBJPROP_XDISTANCE, 10);
      ObjectSet("B4", OBJPROP_YDISTANCE, 90);

      ObjectCreate("B5", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("B5",DoubleToStr(B5,5),10, "Verdana", Lime);
      ObjectSet("B5", OBJPROP_CORNER, 1);
      ObjectSet("B5", OBJPROP_XDISTANCE, 10);
      ObjectSet("B5", OBJPROP_YDISTANCE, 110);

      ObjectCreate("SELL POSITION", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("SELL POSITION","++ SELL ++",11, "Verdana", Red);
      ObjectSet("SELL POSITION", OBJPROP_CORNER, 1);
      ObjectSet("SELL POSITION", OBJPROP_XDISTANCE, 10);
      ObjectSet("SELL POSITION", OBJPROP_YDISTANCE, 130);

      ObjectCreate("S1", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("S1",DoubleToStr(S1,5),10, "Verdana", Red);
      ObjectSet("S1", OBJPROP_CORNER, 1);
      ObjectSet("S1", OBJPROP_XDISTANCE, 10);
      ObjectSet("S1", OBJPROP_YDISTANCE, 150);

      ObjectCreate("S2", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("S2",DoubleToStr(S2,5),10, "Verdana", Red);
      ObjectSet("S2", OBJPROP_CORNER, 1);
      ObjectSet("S2", OBJPROP_XDISTANCE, 10);
      ObjectSet("S2", OBJPROP_YDISTANCE, 170);

      ObjectCreate("S3", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("S3",DoubleToStr(S3,5),10, "Verdana", Red);
      ObjectSet("S3", OBJPROP_CORNER, 1);
      ObjectSet("S3", OBJPROP_XDISTANCE, 10);
      ObjectSet("S3", OBJPROP_YDISTANCE, 190);

      ObjectCreate("S4", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("S4",DoubleToStr(S4,5),10, "Verdana", Red);
      ObjectSet("S4", OBJPROP_CORNER, 1);
      ObjectSet("S4", OBJPROP_XDISTANCE, 10);
      ObjectSet("S4", OBJPROP_YDISTANCE, 210);

      ObjectCreate("S5", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("S5",DoubleToStr(S5,5),10, "Verdana", Red);
      ObjectSet("S5", OBJPROP_CORNER, 1);
      ObjectSet("S5", OBJPROP_XDISTANCE, 10);
      ObjectSet("S5", OBJPROP_YDISTANCE, 230);

      if(OrdersTotal()==0||B1==0) ObjectSetText("B1","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||B2==0) ObjectSetText("B2","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||B3==0) ObjectSetText("B3","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||B4==0) ObjectSetText("B4","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||B5==0) ObjectSetText("B5","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||S1==9999) ObjectSetText("S1","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||S2==9999) ObjectSetText("S2","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||S3==9999) ObjectSetText("S3","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||S4==9999) ObjectSetText("S4","0.00000",10, "Verdana", Yellow);
      if(OrdersTotal()==0||S5==9999) ObjectSetText("S5","0.00000",10, "Verdana", Yellow);
//+------------------------------------------------------------------+
//| Check for last trade                                             |
//+------------------------------------------------------------------+
   LastTrade();
//+------------------------------------------------------------------+
//| Open position                                                    |
//+------------------------------------------------------------------+
   if((TimeFrameM1==true && Period()==1) || (TimeFrameM5==true  && Period()==5) || (TimeFrameM15==true  && Period()==15) || (TimeFrameM30==true  && Period()==30) || (TimeFrameM60==true && Period()==60)  || (TimeFrameM240==true && Period()==240) )
      {   
      if (OrdersTotal() < 1)
         {
         if (Buyvalue ==2)
            {
            Openbuy();
            Buyposition = 1;
            }
         if (Sellvalue ==2)
            {
            Opensell();
            Sellposition = 1;
            }
         }            
      if (OrdersTotal() == 1 && Maxiposition > 1)
         {
         if((Ask - B1) < -Nextopenposition*Point && Buyposition == 1)
            {
            Openbuy();
            Buyposition = 2;
            }
         if((Bid - S1) > Nextopenposition*Point && Sellposition == 1)
            {
            Opensell();
            Sellposition = 2;
            }
         }            
      if (OrdersTotal() == 2 && Maxiposition > 2)
         {
         if((Ask - B2) < -Nextopenposition*1.5*Point && Buyposition == 2)
            {
            Openbuy();
            Buyposition = 3;
            }
         if((Bid - S2) > Nextopenposition*1.5*Point && Sellposition == 2)
            {
            Opensell();
            Sellposition = 3;
           }
         } 
      if (OrdersTotal() == 3 && Maxiposition > 3 && (AccountEquity()*100/(AccountMargin()+0.00000000000001)) >500)
         {
         if((Ask - B3) < -Nextopenposition*2*Point && Buyposition == 3)
            {
            Openbuy();
            Buyposition = 4;
            }
         if((Bid - S3) > Nextopenposition*2*Point && Sellposition == 3)
            {
            Opensell();
            Sellposition = 4;
            }
         } 
      if (OrdersTotal() == 4 && Maxiposition > 4 && (AccountEquity()*100/(AccountMargin()+0.00000000000001)) >400 )
         {
         if((Ask - B4) < -Nextopenposition*3*Point && Buyposition == 4)
            {
            Openbuy();
            Buyposition = 5;
            }
         if((Bid - S4) > Nextopenposition*3*Point && Sellposition == 4)
            {
            Opensell();
            Sellposition = 5;
            }
         } 
         
//Exit lock position         
      }
//+--Exit open position----------------------------------------------+
//+------------------------------------------------------------------+
//| Print detail                                                     |
//+------------------------------------------------------------------+
   Printdetail();
//+------------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Close position by indicator                                      |
//+------------------------------------------------------------------+
   if((TimeFrameM1==true && Period()==1) || (TimeFrameM5==true  && Period()==5) || (TimeFrameM15==true  && Period()==15) || (TimeFrameM30==true  && Period()==30) || (TimeFrameM60==true && Period()==60)  || (TimeFrameM240==true && Period()==240) )
      {  
      if (Buyvalue == 2)
         {
         Closesell();
         } 
      if (Sellvalue == 2)
         {
         Closebuy();
         }
      } 
//+------------------------------------------------------------------+
//| Close by profit optimized                                        |
//+------------------------------------------------------------------+
    if(AccountMargin()>0)
      {
      if((AccountEquity()*100/(AccountMargin()+0.00000000000001))<Stopoutlevel )
         {
         CloseAll();
         }
      }
   if (Closebyprofit == true)   
      {
      for(int i=0;i<OrdersTotal();i++)
        {
        OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderSymbol()==Symbol()) 
            {
            if((OrderType()==OP_BUY && OrderProfit()>Needprofit)||(OrderType()==OP_BUY && OrderProfit()<-Losscan))
               {
               Closebuy();
               }
            if((OrderType()==OP_SELL && OrderProfit()>Needprofit)||(OrderType()==OP_SELL && OrderProfit()<-Losscan))
               {
               Closesell();
               }   
            }
         }
         if (AccountProfit() > Needprofit+1 || AccountProfit() < -Losscan-1)
            {
            CloseAll();
            } 
      }
//+--Exit close position --------------------------------------------------+  
   return(0);
  }
//+--Exit start------------------------------------------------------------+
//+--Start Function Define-------------------------------------------------+
//+------------------------------------------------------------------+
//| Close Open Position  function                                    |
//+------------------------------------------------------------------+
int Closebuy()
  { 
   for(int i=0; i<OrdersTotal(); i++)
     {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderType()==OP_BUY && OrderSymbol()==Symbol())

        {
         OrderClose(OrderTicket(),OrderLots(),Bid,3,Yellow);
         Sellvalue=0;
         B1 = 0;
         B2 = 0;
         B2 = 0;
         B4 = 0;
         B5 = 0;
         Buyposition = 0;
         }
     }
  }
int Closesell()
  { 
    for(int i=0; i<OrdersTotal(); i++)
      {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderType()==OP_SELL && OrderSymbol()==Symbol())
         {
         OrderClose(OrderTicket(),OrderLots(),Ask,3,Yellow);
         Buyvalue =0;
         S1=9999;
         S2=9999;
         S3=9999;
         S4=9999;
         S5=9999;
         Sellposition = 0;
         }
       }
  }
int CloseAll()
   {
   while(OrdersTotal()>0)
      {
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) 
         {
         switch(OrderType())
            {
            case OP_BUY       :OrderClose(OrderTicket(),OrderLots(),Bid,NULL,Red); break;
            case OP_SELL      :OrderClose(OrderTicket(),OrderLots(),Ask,NULL,Red); break;
            case OP_BUYLIMIT  :OrderDelete(OrderTicket()); break;
            case OP_SELLLIMIT :OrderDelete(OrderTicket()); break;
            case OP_BUYSTOP   :OrderDelete(OrderTicket()); break;
            case OP_SELLSTOP  :OrderDelete(OrderTicket()); break;
            default           :break;
            }  
            Buyvalue =0;
            S1=9999;
            S2=9999;
            S3=9999;
            S4=9999;
            S5=9999;
            Sellposition = 0;
            Sellvalue=0;
            B1 = 0;
            B1 = 0;
            B3 = 0;
            B4 = 0;
            B5 = 0;
            Buyposition = 0;
         }
      }
   }   
//+----------------------End Close Open Position---------------------+
//+------------------------------------------------------------------+
//| Calculate optimal lot size function                              |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   if (!MoneyManagement)return (Lots);
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
   if(lot<MinLot || UseMinilot==true) lot=MinLot;
   if(OrdersTotal()<1)
      {
      lot=lot;
      }
   if(OrdersTotal()==1)
      {
      lot=2*lot;
      }
   if(OrdersTotal()==2)
      {
      lot=3*lot;
      }
   if(OrdersTotal()==3 )
      {
      lot=4*lot;
      }
   if(OrdersTotal()==4)
      {
      lot=5*lot;
      }

   return(lot);
  }
//+-------------------End Calculate optimal lot size-----------------+
//+------------------------------------------------------------------+
//| Open Position function                                           |
//+------------------------------------------------------------------+
int Openbuy()
   {
   if ( MyStopLoss == 0) StopLoss = 0; 
   if ( MyTakeProfit == 0) TakeProfit = 0; 
   if ( MyStopLoss >0) StopLoss = Ask - MyStopLoss * Point;
   if ( MyTakeProfit >0) 
      {
      if(OrdersTotal()<1) TakeProfit = Ask + MyTakeProfit * Point;
      if(OrdersTotal()==1) TakeProfit = Ask + MyTakeProfit * Point + Nextopenposition * Point;
      if(OrdersTotal()==2) TakeProfit = Ask + MyTakeProfit * Point + Nextopenposition * 1.5 * Point;
      if(OrdersTotal()==3) TakeProfit = Ask + MyTakeProfit * Point + Nextopenposition * 2 * Point;
      if(OrdersTotal()==4) TakeProfit = Ask + MyTakeProfit * Point + Nextopenposition * 3 * Point;
      }           
   OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,Slippage,StopLoss,TakeProfit,NULL,MagicNumber,0,Green);
   Buyvalue=0;
   Signalbuyvalue=0;
   }
int Opensell()
   {  
   if ( MyStopLoss == 0) StopLoss = 0; 
   if ( MyStopLoss >0) StopLoss = Bid + MyStopLoss * Point;
   if ( MyTakeProfit == 0) TakeProfit = 0; 
   if ( MyTakeProfit >0) 
      {
      if(OrdersTotal()<1) TakeProfit = Bid - MyTakeProfit * Point;
      if(OrdersTotal()==1) TakeProfit = Bid - MyTakeProfit * Point - Nextopenposition * Point;
      if(OrdersTotal()==2) TakeProfit = Bid - MyTakeProfit * Point - Nextopenposition * 1.5 * Point;
      if(OrdersTotal()==3) TakeProfit = Bid - MyTakeProfit * Point - Nextopenposition * 2 * Point;
      if(OrdersTotal()==4) TakeProfit = Bid - MyTakeProfit * Point - Nextopenposition * 3* Point;
      }           
   OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,Slippage,StopLoss,TakeProfit,NULL,MagicNumber,0,Red);
   Sellvalue=0;
   Signalsellvalue=9999;
   }
//+------------------------------------------------------------------+
//| Print Trade Detail function                                      |
//+------------------------------------------------------------------+
void Printdetail()
   {
      comments = 
      "Account Balance:-->" + DoubleToStr(AccountBalance(),1)+
      "  |Account Equity:-->"  + DoubleToStr(AccountEquity(),1) + 
      "  |Account Margin:-->"  + DoubleToStr(AccountMargin(),1) +
      "  |Account Level:-->"  + DoubleToStr(AccountEquity()*100/(AccountMargin()+0.00000000000001),1) +
      "  |Free Margin:-->" + DoubleToStr(AccountFreeMargin(),1)  +
      "  |Floating Profit:-->" + DoubleToStr(AccountProfit(),1) +"\n"+
      "Spread:-->" + DoubleToStr((Ask-Bid)/Point,0) + " Point"+
      "  |Total Order:-->" + DoubleToStr(OrdersTotal(),0) +
      "  |Period is "+ Period() + 
      "  |Bas in chart: " + DoubleToStr(Bars,0)

      ;
      Comment(comments);
    
 }
//+------------------------------------------------------------------+
//| Trading history function                                         |
//+------------------------------------------------------------------+
   double LastTrade()
   {   
      for(int j=0;j<OrdersTotal()+1;j++)
        {
        if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)
         {
         B1=0;
         S1=9999;
         }
        if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)==true)
            { 
            if(OrderSymbol()==Symbol()) 
                {
                if(OrderType()==OP_BUY)
                   {
                      Sellcount=0;
                      Buycount=OrdersTotal();
                      S1=9999;
                      S2=9999;
                      S3=9999;
                      S4=9999;
                      S5=9999;
                      if ( OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true)  B1=OrderOpenPrice(); else B1=0;
                      if ( OrderSelect(1,SELECT_BY_POS,MODE_TRADES)==true)  B2=OrderOpenPrice(); else B2=0;
                      if ( OrderSelect(2,SELECT_BY_POS,MODE_TRADES)==true)  B3=OrderOpenPrice(); else B3=0;
                      if ( OrderSelect(3,SELECT_BY_POS,MODE_TRADES)==true)  B4=OrderOpenPrice(); else B4=0;
                      if ( OrderSelect(4,SELECT_BY_POS,MODE_TRADES)==true)  B5=OrderOpenPrice(); else B5=0;
                   }
                if(OrderType()==OP_SELL)
                   {
                      Buycount=0;
                      Sellcount=OrdersTotal();
                      B1=0;
                      B2=0;
                      B3=0;
                      B4=0;
                      B5=0;
                      if ( OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true)  S1=OrderOpenPrice(); else S1=9999;
                      if ( OrderSelect(1,SELECT_BY_POS,MODE_TRADES)==true)  S2=OrderOpenPrice(); else S2=9999;
                      if ( OrderSelect(2,SELECT_BY_POS,MODE_TRADES)==true)  S3=OrderOpenPrice(); else S3=9999;
                      if ( OrderSelect(3,SELECT_BY_POS,MODE_TRADES)==true)  S4=OrderOpenPrice(); else S4=9999;
                      if ( OrderSelect(4,SELECT_BY_POS,MODE_TRADES)==true)  S5=OrderOpenPrice(); else S5=9999;
                
                   }
                }
            }    
         }
      }      
//+-------------------------Exit trading history----------------------------------+
//+--------------------------------Exit Function----------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---