N7S_AO_772012_L1





//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ//
//Ø                         N7S_AO_194694_0.mq4       v.77.2012                                                 Ø//
//Ø                         Hunter by profit                                                                    Ø//  
//Ø                         Balashiha         S&N@yandex.ru                                                     Ø//  
//Ø                         Version  Desember 20, 2007                                                          Ø// 
//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ//
#property copyright "Copyright © 2007, Shooter777"
#property link      "S7N@mail.ru"

#include <WinUser32.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
//------------------------------------------------------------------//
int    HM_ALL     = 2;          //          
int    Trade      = 1;          //
//------------------------------------------------------------------//
extern bool   Trd_Up_X = true;  int           HM_Up_X    = 1;   //   
//------------------------------------------------------------------//
extern double tpx = 50; extern double slx = 50; extern int px  = 10;
extern int x1  = 0;extern int x2  = 0;extern int x3  = 0;extern int x4  = 0;int tx  = 0;
//------------------------------------------------------------------//
extern bool   Trd_Dn_Y = true;  int           HM_Dn_Y    = 1;   //        
//------------------------------------------------------------------//
extern double  tpy = 50; extern double sly = 50;extern int py  = 10;
extern int  y1  = 0;extern int y2  = 0;extern int y3  = 0;extern int y4  = 0; int ty  = 0;
//------------------------------------------------------------------//
extern string       Text0="BTS  F=1";
extern int F   = 1; extern int pz  = 10;
extern int z1  = 0; extern int z2  = 0; extern int z3  = 0; extern int z4  = 0; int tz  = 0;
//------------------------------------------------------------------//
//------------------------------------------------------------------//
extern string Text1="Neyro  G=4";extern int G   = 4; extern string Text2="XXXXXXXXXXXXX";
extern double tpX = 50;extern double slX = 50;extern int pX  = 10;
extern int X1  = 0;extern int X2  = 0;extern int X3  = 0;extern int X4  = 0;int tX  = 0;
//------------------------------------------------------------------//
extern string  Text3="YYYYYYYYYYYYY"; extern double tpY = 50; extern double slY = 50;extern int pY  = 10;
extern int Y1  = 0; extern int Y2  = 0; extern int Y3  = 0; extern int Y4  = 0; int tY  = 0;
//------------------------------------------------------------------//
extern string Text4="ZZZZZZZZZZZZ";extern int pZ  = 10;
extern int Z1  = 0;extern int Z2  = 0;extern int Z3  = 0;extern int Z4  = 0;int tZ  = 0;
//------------------------------------------------------------------//
double       lots = 0.02;
int mn;int mnx1 = 772012055;int mny1 = 772012155;int mnX1 = 772012011;int mnY1 = 772012111;
static int prvtm = 0;static double sl = 10;static double tp = 10;

bool cm15=false; bool cmH1=false; bool cmH4=false;
int MMH1 ;int MN   ;
static int bu,sll;
int i;int ticket = -1;int total;int spread;
datetime LFB;
double prcptx1=0,prcpty1=0,prcptX1=0,prcptY1=0,prcptZ1=0;
static double       Delta_G12 ;
//+------------------------------------------------------------------+
//| expert init function                                             |
//+------------------------------------------------------------------+
int init(){MMH1 = Hour( );LFB  = iTime(Symbol(), 0, 0); H1();
Delta_G12 = iAO(NULL, 240, 1)-iAO(NULL, 240, 2);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{     total = OrdersTotal();spread = MarketInfo(Symbol(), MODE_SPREAD);
      int iTm = iTime(Symbol(), 0, 0);if(LFB == iTm) return(0); LFB  = iTime(Symbol(), 0, 0); 
      int MMM15 = MathMod(Minute( ) , 15);
      if(cm15) {if(MMM15 == 0 ) {cm15 =false; trl();}} if(MMM15 !=0){cm15=true;}
      if(Hour() != MMH1)  {MMH1 = Hour( ); H1();}
      int MMH4 = MathMod(Hour( ) , 4);
      if(cmH4) {if(MMH4 == 0 ) {cmH4 =false; //Print ("H4");
        double       iCusAO_1     =  iAO(NULL, 240, 1);
        double       iCusAO_2     =  iAO(NULL, 240, 2);
                     Delta_G12    =  iCusAO_1 -iCusAO_2;}}
      if(MMH4 !=0){cmH4=true;}
startM1();}
//+ÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ+
double BTS()    {
       if (prcptrnz1() > 0 || F==0) 
            {if (prcptx1 > 0 && Delta_G12>0) {sl = slx; tp = tpx*slx; mn= mnx1; return (1);}} 
       if (prcptrnz1() < 0 || F==0) 
            {if (prcpty1 > 0 && Delta_G12<0) {sl = sly; tp = tpy*sly; mn= mny1 ;return (-1);}}
      return (0);}
//+--------------------------------------------------------------------------------------+
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at) 
  {double qw = ((q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(0));
   if (MathAbs(qw)>at) return(qw);else return(0);}
//+--------------------------------------------------------------------------------------+
double iA_C (int pr){int tmfr=60; return(iAO(Symbol(), tmfr, pr));}
//+--------------------------------------------------------------------------------------+
void BuSll ( int pl, int OrdTp, int mgnmb) // pl-èñòî÷íèê 0-äåéñòâóþùèå 1- çàêðûòûå  //  OrdTp=òèï îðäåðà 1-ðûíî÷íûå(0è1)  3-LIMIT(2è3)  5-STOP(4è5)
      { switch(pl)
            {case 0: bu=0; sll=0; int ChTpBu,ChTpSll; // Print (" OrdTp  ",OrdTp);            // âûáðàí ïîäñ÷åò B&S  ðûíî÷íûõ îðäåðîâ 
               switch(OrdTp)
                  {case 1:  ChTpBu=OP_BUY;     ChTpSll =OP_SELL;      break;
                   case 3:  ChTpBu=OP_BUYSTOP; ChTpSll =OP_SELLSTOP;  break;
                   case 5:  ChTpBu=OP_BUYLIMIT;ChTpSll =OP_SELLLIMIT; break;}
               for(int  i=0;i<OrdersTotal();i++)
                  {OrderSelect(i, SELECT_BY_POS, MODE_TRADES); int OMN=OrderMagicNumber();
                   if(OrderType()==ChTpBu  &&(OMN>=mgnmb && OMN<=mgnmb+99)){ bu++;}
                   if(OrderType()==ChTpSll &&(OMN>=mgnmb+100 && OMN<=mgnmb+199)){sll++;}
                   }break; 
              case 1:  int pstv=0, ngtv=0;                              // âûáðàí àíàëèç èñòîðèè 
                  Print ("Ïîäñ÷åò îðäåðîâ â èñòîðèè"); break;}}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double prcptrnz1()   {double qz =(z1-50)*(Close[0]-Open[pz])+(z2-50)*(Open[pz]-Open[pz*2])
                     +(z3-50)*(Open[pz*2]-Open[pz*3])+(z4-50)*(Open[pz*3]-Open[pz*4]);return(qz);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void trl(){
      total= OrdersTotal(); spread = MarketInfo(Symbol(), MODE_SPREAD);
  for(  i = total - 1; i >= 0; i--) 
     { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); MN=OrderMagicNumber();
       if(OrderSymbol() == Symbol() && MN>= 772012000 && MN<=772012199) 
         {  if (MN==772012055) {sl = slx; tp = tpx*slx; mn= mnx1;}
            if (MN==772012155) {sl = sly; tp = tpy*sly; mn= mny1;}
            if (MN==772012011) {sl = slX; tp = tpX*slX; mn= mnX1;}
            if (MN==772012111) {sl = slY; tp = tpY*slY; mn= mnY1;}
         
           int prevticket = OrderTicket();if(OrderType() == OP_BUY) 
             {if(DayOfWeek( ) == 5 && Hour( ) >=22)  { OrderClose(prevticket,OrderLots( ) ,Bid,3,Red);} 
              if(Bid > (OrderStopLoss() + (sl * 2  + spread) * Point)) 
                 { if(BTS()< 0) { OrderClose(prevticket,OrderLots( ) ,Bid,3,Red);} 
                   else { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point,0, 0, Blue);}}} 
           else {if(DayOfWeek( ) == 5 && Hour( ) >=22) { OrderClose(prevticket,OrderLots( ) ,Ask,3,Blue);} 
                  if(Ask < (OrderStopLoss() - (sl * 2 + spread) * Point)) 
                     {if(BTS() > 0) 
                           { OrderClose(prevticket,OrderLots( ) ,Ask,3,Blue);} 
                     else{ OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 0, 0, Blue);}}}
          return(0);}}}
//+ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ+ 
void startM1() {ticket = -1;RefreshRates();
      if (total < HM_ALL) { BuSll (0,1,772012000); 
      if( !(DayOfWeek( ) == 1 && Hour( ) <2) && !(DayOfWeek( ) == 5 && Hour( ) >=18))
         {if (Trd_Up_X && VSR() > 0 && bu<HM_Up_X)  { 
            OrderSend(Symbol(), OP_BUY, lots, Ask, 1, Bid - sl * Point, Bid + tp * Point, WindowExpertName(), mn, 0, Blue); }
          if (Trd_Dn_Y && VSR() < 0  && sll<HM_Dn_Y) { 
            OrderSend(Symbol(), OP_SELL, lots, Bid, 1, Ask + sl * Point, Ask - tp * Point, WindowExpertName(), mn, 0, Red); }
}}}
double VSR() { if(G==4){ if(prcptZ1>0){if(prcptX1>0){sl = slX; tp = tpX*slX; mn= mnX1;return ( 1);}}
                               else   {if(prcptY1>0){sl = slY; tp = tpY*slY; mn= mnY1;return (-1);}} 
                         return (BTS());}
               if(G==3){ if(prcptY1>0){sl = slY; tp = tpY*slY; mn= mnY1;return (-1);}           
               else   {return (BTS());}}
               if(G==2){ if(prcptX1>0){sl = slX; tp = tpX*slX; mn= mnX1;return ( 1);}   
               else   {return (BTS());}}
               if(G==9){ if(prcptX1>0 && bu<HM_Up_X){sl = slX; tp = tpX*slX; mn= mnX1;return ( 1);}
                         if(prcptY1>0 && sll<HM_Dn_Y){sl = slY; tp = tpY*slY; mn= mnY1;return (-1);} 
                         return (BTS());}
 return (BTS());}
void H1() { prcptx1 = prcptrnAC(x1,x2,x3,x4,px,tx) ;
            prcpty1 = prcptrnAC(y1,y2,y3,y4,py,ty) ;
            prcptX1 = prcptrnAC(X1,X2,X3,X4,pX,tX) ;
            prcptY1 = prcptrnAC(Y1,Y2,Y3,Y4,pY,tY) ;
            prcptZ1 = prcptrnAC(Z1,Z2,Z3,Z4,pZ,tZ) ; }



Sample





Analysis



Market Information Used:

Series array that contains close prices for each bar
Series array that contains open prices of each bar


Indicator Curves created:


Indicators Used:

Bill Williams Awesome oscillator


Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself
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 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 : USDJPY on H1

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

Request Backtest for N7S_AO_772012_L1


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

Pair: Period: