//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ//
//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ//
//ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ//
//Ø                                                                                                             Ø//
//Ø                         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;
//------------------------------------------------------------------//
//extern double       lots = 5;
       int          mn;
extern int          mnx1 = 772012055;
extern int          mny1 = 772012155;
extern int          mnX1 = 772012011;
extern int          mnY1 = 772012111;
static int          prvtm = 0;
static double       sl = 10;
static double       tp = 10;
#include <system_v2\registry_v1.0.0.mqh>
#include <system_v2\lots_v1.0.2.mqh>
#include <system_v2\filter_v1.0.5.mqh>
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 ;
double gdPointFactor = 1;
//QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
//QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
//+------------------------------------------------------------------+
//| expert init function                                             |
//+------------------------------------------------------------------+
int init(){
MMH1 = Hour( );LFB  = iTime(Symbol(), 0, 0);
   lots_init();
   
   gdPointFactor = 1;
   if (MarketInfo(Symbol(), MODE_DIGITS) == 2 || MarketInfo(Symbol(), MODE_DIGITS) == 4){
      gdPointFactor = 10;
   }
   
   init_filter(gdPointFactor);
}
string stringBoolean(bool bMode){
   
   string lsText = "TRUE";
   if (bMode == FALSE) {
      lsText = "FALSE";
   }
   return(lsText);
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{ //---- 
   if (! IsTradeAllowed()) {again();return(0);}
  //----
   total = OrdersTotal();spread = MarketInfo(Symbol(), MODE_SPREAD);
  //---- 
   int iTm = iTime(Symbol(), 0, 0);if(LFB == iTm) return(0); LFB  = iTime(Symbol(), 0, 0); 
      // iTest ();    ôóíêöèÿ ïðè ðàáîòå ñ àâòîîïòèìèçàòîðîì
      int MMM15 = MathMod(Minute( ) , 15);
      if(cm15) {if(MMM15 == 0 ) {cm15 =false; trl();}} if(MMM15 !=0){cm15=true;}
    
      if(Hour() != MMH1)  {MMH1 = Hour( ); //Print ("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) ;
      }
   
      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);}
//+ÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ+
//|    function  PERCEPTRON - AC                                                         |
//+--------------------------------------------------------------------------------------+
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 again() {
   prvtm = Time[1];
   Sleep(30000);}
   
//+------------------------------------------------------------------+
//| Ñ÷èòàåì îðäåðà                                                   |
//| Ïàðàìåòðû:                                                       |
//|                                                                  |
//+------------------------------------------------------------------+
 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();
       // check for symbol & magic number
       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;}
         
         
           int prevticket = OrderTicket();
           // long position is opened
           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);}
                 }  
             }
           // exit
           return(0);
         }
     }
}
void startM1() {
   ticket = -1;
   RefreshRates();
   
   if (start_filter() == FALSE){      
      return(0);
   }
   
   double ldLots = lots_start(AccountFreeMargin(), AccountEquity(), sl, HM_ALL, mn);
   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)  {  
            Print ("bu ",bu);
            OrderSend(Symbol(), OP_BUY, ldLots, Ask, 1, Bid - sl * Point, Bid + tp * Point, WindowExpertName(), mn, 0, Blue); 
         }
         //OrderSend(Symbol(), OP_BUY, lots, Ask, 1, Bid - sl * Point, 0, WindowExpertName(), mn, 0, Green); }
         if (Trd_Dn_Y && VSR() < 0  && sll<HM_Dn_Y) { 
            OrderSend(Symbol(), OP_SELL, ldLots, Bid, 1, Ask + sl * Point, Ask - tp * Point, WindowExpertName(), mn, 0, Red); 
         }
         //OrderSend(Symbol(), OP_SELL, lots, Bid, 1, Ask + sl * Point, 0, WindowExpertName(), mn, 0, Red); }
         //-- Exit --
         // return(0);
    //  }
   }
}
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());}}
 return (BTS());
} 
             
            
            
            
Comments