Bronzew_pan_v1





//+------------------------------------------------------------------+
//|                               Name := BronzeWarrioir01           |
//|                               converted to MT4 by suffic369@yahoo|
//|                               http://www.metaquotes.ru           |
//+------------------------------------------------------------------+
extern int MagicNumber=6290102;
extern double Lots=0.1;
extern int Slippage=3;
//----
extern double lTakeProfit=0;
extern double sTakeProfit=0;
extern double lStopLoss=0;
extern double sStopLoss=0;
extern double lTrailingStop=0;
extern double sTrailingStop=0;
//extern int mgod=2005;
extern int FrMarg=3000;
extern int porog=500;
extern int per=14;
extern int d=3;
extern int test=0;
extern int workb=-50;
extern int works=50;
extern int pred=100;
extern int sliv=-2000;
extern int mm=30;
 //bool ft=true, first=true,two=false ;
 //int mlot=0,j=0,s=0,b=0,os=0,ob=0,pr=4,summa=0,sell=0,buy=0;
 //int cnt=0,//Top=0,
 // inul=0,ione=0,pm=0,down=0,bloks=0,blokb=0,ps=0,wpr=0,cci=0,zz=0;
int down=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
  int init() 
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
  int deinit() 
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
  int start() 
  {
   //if mgod!=year then exit;
   //j=j+1;
   //if j>=1000 then j=0;
   double mlot=Lots;
/*
if (ft) 
{  
   if (Point>0.002) 
   { 
      pr=2;ft=false;
   }
} // pr: 2 or 4,¼Û¸ñСÊýµãºóµÄ¶àÉÙλÊý
*/
   int Total=OrdersTotal();
   int sbo=0; int s=0; int b=0; int pendings=0; int bpendings=0;int spendings=0;int summa=0; int ssum=0; int bsum=0;
//----
     for( int i=0; i<Total; i++) 
     {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
        {
         if((OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP)
            && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) pendings=pendings+1;
         if(OrderType()==OP_BUYSTOP
            && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) bpendings=bpendings+1;
         if(OrderType()==OP_SELLSTOP
            && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) spendings=spendings+1;
         if(OrderType()<=OP_SELL
            && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) sbo=sbo+1;//have open trades
           if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_SELL || OrderType()==OP_BUY)) 
           {
            summa=summa+OrderProfit();// profit of open trade
           }
           if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) 
           {
            s=s+1;//open trade is sell
            //ssum=ssum+OrderProfit();//sell trade profit
           }
           if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  
           {
            b=b+1;//have open buy
            //bsum=bsum+OrderProfit();//buy trade profit
           }
        }
     }
     if (b+s==0)
     {
      int pm=0;int ps=0;
     }
   if (summa<0 && summa< down)     down=MathRound(summa);
   //If (CurTime-LastTradeTime<15)  return(0);    
     if (s+b+bpendings+spendings==0 && AccountBalance()==AccountFreeMargin() && AccountBalance()<5000) 
     {
      Comment(" ");return(0);
     }
   double inul=iCustom(NULL,0,"DayImpuls",per,d,0,0);
   double ione=iCustom(NULL,0,"DayImpuls",per,d,0,1);
   double wpr=iWPR(NULL,0,per,0);
   double cci=iCCI(NULL,0,per,PRICE_CLOSE,0);
   double zz=0; // ZZ2=iCustom(NULL,0,"ZigZag",depth,deviation,backstep,0,0);
//----
     if (test==1) 
     {  //default test=0
      Print("Data: ",Year(),".",Month(),".",Day(),"  Pozz=",s+b,"  Impuls=",MathRound(inul),
         "  WPR=",MathRound(wpr),"  CCI=",MathRound(cci),"  ZZ=",zz,"  Price=",Open[0],"  Prof=",MathRound(summa),"  Down=",MathAbs(down));
      //if j<=2 then Comment("  ");
     }
     if (test==0) 
     {
      Comment("Data: ",Year(),".",Month(),".",Day(),"  Time ",Hour(),":",Minute(),"\n","Pozz=",s+b,"  Impuls=",MathRound(inul),
           "  WPR=",MathRound(wpr),"  CCI=",MathRound(cci),"  Price=",Open[0],"  Prof=",MathRound(summa),"  Down=",MathAbs(down));
     }
   if (summa>=porog)  pm=1;
     if (pm==1) 
     {
        for( i=0; i<Total; i++) 
        {
           if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
           {
              if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) 
              {
               OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
               return(0);
              }
              if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  
              {
               OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
               return(0);
              }
           }
        }
     }
   if (summa<sliv)  ps=1;
     if (ps==1) 
     {
        for( i=0; i<Total; i++) 
        {
           if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
           {
              if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) 
              {
               OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
               return(0);
              }
              if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  
              {
               OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
               return(0);
              }
           }
        }
     }
   if (s+b==0) { int bloks=0;int blokb=0;}
     if (AccountFreeMargin()>=FrMarg && s+b<2) 
     {
        if (bloks==0) 
        {
           if (inul>works && ione>inul && wpr>-15 && cci>150 && s==0) 
           {
            //Top=Bid;
            blokb=1;
            if (sStopLoss>0)  double sl= Bid+sStopLoss*Point; else sl= 0;
            if (sTakeProfit>0)  double tp= Bid-sTakeProfit*Point; else tp= 0;
            OrderSend(Symbol(),OP_SELL,mlot,Bid,Slippage,sl,tp,"sell"+MagicNumber,MagicNumber,0,Red);
            //Setorder(OP_SELL,mlot,PriceBid,3,Bid+StopLoss*point,Bid-TakeProfit*point,Gold);
            return(0);
           }
           if (b==0 && s==1 && (summa<=-pred/2 || summa>=pred)) 
           {
            if (lStopLoss>0)   sl= Ask-lStopLoss*Point; else sl= 0;
            if (lTakeProfit>0)   tp= Ask+lTakeProfit*Point; else tp= 0;
            OrderSend(Symbol(),OP_BUY,mm*mlot,Ask,Slippage,sl,tp,"buy"+MagicNumber,MagicNumber,0,Blue);
            //Setorder(OP_BUY,mm*mlot,PriceAsk,3,Ask-StopLoss*point,Ask+TakeProfit*point,Gold);
            return(0);
           }
        }
        if (blokb==0) 
        {
           if (inul<workb && ione<inul && wpr<-85 && cci<-150 && b==0) 
           {
            //Top=Ask;
            bloks=1;
            if (lStopLoss>0)   sl= Ask-lStopLoss*Point; else sl= 0;
            if (lTakeProfit>0)   tp= Ask+lTakeProfit*Point; else tp= 0;
            OrderSend(Symbol(),OP_BUY,mlot,Ask,Slippage,sl,tp,"buy"+MagicNumber,MagicNumber,0,Blue);
            //Setorder(OP_BUY,mlot,PriceAsk,3,Ask-StopLoss*point,Ask+TakeProfit*point,Gold);
            return(0);
           }
           if (s==0 && b==1 && (summa<=-pred/2 || summa>=pred)) 
           {
            if (sStopLoss>0)  sl= Bid+sStopLoss*Point; else sl= 0;
            if (sTakeProfit>0)  tp= Bid-sTakeProfit*Point; else tp= 0;
            OrderSend(Symbol(),OP_SELL,mm*mlot,Bid,Slippage,sl,tp,"sell"+MagicNumber,MagicNumber,0,Red);
            //Setorder(OP_SELL,mm*mlot,PriceBid,3,Bid+StopLoss*point,Bid-TakeProfit*point,Gold);
            return(0);
           }
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open prices of each bar


Indicator Curves created:


Indicators Used:


Larry William percent range indicator
Commodity channel index


Custom Indicators Used:
DayImpuls

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself
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.96 Total Net Profit:-524.20

BackTest : EURUSD on H1

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

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.90 Total Net Profit:-2359.90

BackTest : USDCAD on H1

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

BackTest : USDCHF on H1

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

BackTest : USDJPY on H1

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

Request Backtest for Bronzew_pan_v1


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

Pair: Period: