Navigation:Home > Content >

Zamok.mq4

Time: 2011-03-26 | Download file:Zamok.mq4

 
//+------------------------------------------------------------------+
//|                                                   Замок v1.4.mq4 |
//|                          Copyright © 2012, Бычков Эдуард Юрьевич |
//|                                            http://[email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Бычков Эдуард Юрьевич"
#property link      "http://[email protected]"
#include 
#include   
 
extern int     Magic                  = 99;
extern string  C_валютой              = "USDCHF";
extern bool    Обратная_корреляция    = true;
extern datetime Оптимизировать        =D'8.10.2012 00:00';
extern int     Оптимизировать_каждые  = 30,
                 ma_method            = 1,
                 applied_price        = 6;
extern double    Lot                  = 1;
extern string    Профит               = "10 Трал"; //--если 0$ или 0% то выход по сигналу
                                              //--если $ то по прибыли
                                              //--если % то по процентам от депозита
                                              //--если "Трал" то по процентам от максимальной прибыли
extern double    Минимум              = 10; 
                                              
extern string    Стоп                 = "5%"; //--если 0$ или 0% то отключен
                                              //--если $ то по убытку
                                              //--если % то по процентам от депозита
 
double signal[200];double tses[100];                                    
double vkl,Profit1,var,punn,opt,rek_period,ploho,sstop,time,timfr_rek,sdelok;
double correl_1_2,correl_M1,correl_M5,correl_M15,correl_M30,correl_H1,correl_H4;
double eror1,eror2,eror11,eror22,closs,Lot1,Lot2,profit,profitt,trall;
int Бары_оптимизации,c;
string sd,osnval;
 
//-----------------------------------------------------------------------------------------------------
int start()
  {/*
  osnval=Symbol( );
   
  Бары_оптимизации=iBarShift(osnval,0,Оптимизировать,FALSE);       
  if(Seconds()==30){time=time+1;}
  if(time>=Оптимизировать_каждые && C_валютой!="Валюта" && vkl==0){opt=0;time=0;}
//-----------------------------------------------------------------------------------------------------
for(int k=0;k= Оптимизировать_каждые && C_валютой != "Валюта" && vkl == 0)
  {
    time = TimeCurrent();
    rek_period = 0;
    punn = 0;
    optimizator();
    opt = 1;
  }         
   vklutenie();compins();          
             
       
             sd="\n\n"+osnval+" > "+C_валютой;
          if(timfr_rek!=0)   
            {
          if(timfr_rek==1){sd=sd+ "\n   Работаем по>>>>>>     Корреляция M1   = "+DoubleToStr(correl_M1/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция M1   = "+DoubleToStr(correl_M1/0.01,0);}
          if(timfr_rek==5){sd=sd+ "\n   Работаем по>>>>>>     Корреляция M5   = "+DoubleToStr(correl_M5/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция M5   = "+DoubleToStr(correl_M5/0.01,0);}
          if(timfr_rek==15){sd=sd+"\n   Работаем по>>>>>>     Корреляция M15  = "+DoubleToStr(correl_M15/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция M15 = "+DoubleToStr(correl_M15/0.01,0);}
          if(timfr_rek==30){sd=sd+"\n   Работаем по>>>>>>     Корреляция M30  = "+DoubleToStr(correl_M30/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция M30 = "+DoubleToStr(correl_M30/0.01,0);}
          if(timfr_rek==60){sd=sd+"\n   Работаем по>>>>>>     Корреляция H1   = "+DoubleToStr(correl_H1/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция H1   = "+DoubleToStr(correl_H1/0.01,0);}
         if(timfr_rek==240){sd=sd+"\n   Работаем по>>>>>>     Корреляция H4   = "+DoubleToStr(correl_H4/0.01,0);}else
                          {sd=sd+ "\n                                         Корреляция H4   = "+DoubleToStr(correl_H4/0.01,0);}
            }
              
      
             sd="\n\nСПРЕД "+osnval+" "+ DoubleToStr(MarketInfo(osnval,MODE_SPREAD),0)+"   Лот  "+ DoubleToStr(Lot1,2)+
                  "\nСПРЕД "+C_валютой+" "+DoubleToStr(MarketInfo(C_валютой,MODE_SPREAD),0)+"   Лот  "+ DoubleToStr(Lot2,2)+sd
                +"\n\nБаланс позиций "+DoubleToStr(Profit1,2);
            if(Профит!="0$" && Профит!="0%"){sd=sd+"    Закрываем по профиту "+Профит;}
            if (Стоп!="0$" && Стоп!="0%"){sd=sd+"  и стопу "+Стоп;}
            if(Профит=="0$"||Профит=="0%"){sd=sd+"    Закрываем по сигналу ";}
                
           sd=sd+"\n\nОптимизация с  "+DoubleToStr(TimeDay(Time[Бары_оптимизации]),0)+"."
                +DoubleToStr(TimeMonth(Time[Бары_оптимизации]),0)+"."
                +DoubleToStr( TimeYear(Time[Бары_оптимизации]),0)+"г."
                +"\nКоличество пунктов "+DoubleToStr(punn,5)
                +"\nКоличество входов в рынок "+DoubleToStr(sdelok,0)
                +"\nПериод МА "+DoubleToStr(rek_period,0);
      Comment(sd);
       
 for(int n=1;n<=6;n++)
     {
     if(n==1){c=1;}if(n==2){c=5;}if(n==3){c=15;}if(n==4){c=30;}if(n==5){c=60;}if(n==6){c=240;}
     ArrayCopySeries(tses,MODE_CLOSE,osnval,c);
     ArrayCopy(signal,tses,0,1,100);
     ArrayCopySeries(tses,MODE_CLOSE,C_валютой,c);
     ArrayCopy(signal,tses,100,1,100);
     correl();
     if(n==1){correl_M1=correl_1_2;}
     if(n==2){correl_M5=correl_1_2;}
     if(n==3){correl_M15=correl_1_2;}
     if(n==4){correl_M30=correl_1_2;}
     if(n==5){correl_H1=correl_1_2;}
     if(n==6){correl_H4=correl_1_2;}
     }
    
  
    
//-----------------------------------------------------------------------------------------------------
double ma_osnval=iMA(osnval,timfr_rek,rek_period,0,ma_method,applied_price,0);
double ma_C_валютой=iMA(C_валютой,timfr_rek,rek_period,0,ma_method,applied_price,0);
 
//-----------------------------------------------------------------------------------------------------
 
 
 
if(Обратная_корреляция  == false)
  {
   if(vkl==0 &&  eror1!=-1 && eror2!=-1 && eror11!=-1 && eror22!=-1 )
     {
   if(ma_osnval>MarketInfo(osnval,MODE_ASK) && ma_C_валютойMarketInfo(C_валютой,MODE_ASK) )
     {eror11=OrderSend(osnval,OP_SELL, Lot1,MarketInfo(osnval,MODE_BID),2,0,0,"Замок v1.4",Magic,3);
      eror2=OrderSend(C_валютой,OP_BUY, Lot2,MarketInfo(C_валютой,MODE_ASK),2,0,0,"Замок v1.4",Magic,3);var=2;}  
     }
 
   if(vkl!=0 && (Стоп=="0$" || Стоп=="0%") )
     { 
   if(ma_osnval>MarketInfo(osnval,MODE_ASK) && ma_C_валютойMarketInfo(C_валютой,MODE_ASK) && var==1)
     {CLOSEORDER();}
     }
   }
  
   
if(Обратная_корреляция  == true)
  {
   if(vkl==0 &&  eror1!=-1 && eror2!=-1 && eror11!=-1 && eror22!=-1 )
     {
   if(ma_osnval>MarketInfo(osnval,MODE_ASK) && ma_C_валютой>MarketInfo(C_валютой,MODE_ASK) )
     {eror1=OrderSend(osnval,OP_BUY, Lot1,MarketInfo(osnval,MODE_ASK),2,0,0,"Замок v1.4",Magic,3);
      eror2=OrderSend(C_валютой,OP_BUY, Lot2,MarketInfo(C_валютой,MODE_ASK),2,0,0,"Замок v1.4",Magic,3);var=1;}
   if(ma_osnvalMarketInfo(osnval,MODE_ASK) && ma_C_валютой>MarketInfo(C_валютой,MODE_ASK) && var==2)
     {CLOSEORDER();}
   if(ma_osnval0 && Profit1>profit){CLOSEORDER();}
                         }
         if( StringFind(Профит,"%",0)!=-1)
                         {
                         
                         trall=0;
                         profit=StrToInteger( Профит);                             
                         if(Profit1>Минимум && Profit1>AccountBalance( )/100*profit){CLOSEORDER();}
                         }
         if( StringFind(Профит,"Трал",0)!=-1)
                         {
                         
                         profit=StrToInteger( Профит);
                         
                         if(trallМинимум && trall>Минимум && Profit1=2)  { vkl=1;} 
     if (a==0)  {closs=0;}
     if (closs==1)  {CLOSEORDER();}
}
 
//-------------------------------------------------------------------------------------------------------
 void CLOSEORDER()
{
  for (int i=0; ic_val_sv){Lot2=Lot*(osn_sv/c_val_sv);Lot1=Lot;}
    if(osn_sv=0;y--)
    {
    if(g==1){g1=1;}if(g==2){g1=5;}if(g==3){g1=15;}if(g==4){g1=30;}if(g==5){g1=60;}if(g==6){g1=240;}
    double ma_osn=iMA(osnval,g1,u,0,ma_method,applied_price,y);
    double ma_C_вал=iMA(C_валютой,g1,u,0,ma_method,applied_price,y);
    double cen_osn= iMA(osnval,g1,1,0,ma_method,applied_price,y);
    double cen_C_вал= iMA(C_валютой,g1,1,0,ma_method,applied_price,y);
 
//-----------------------------------------------------------------------------------------------------------------
if(Обратная_корреляция  == false)
  {    
     if(ma_osn>cen_osn+spread_osn && ma_C_валcen_C_вал+spread_C_вал  && (vari==1||vari==0))
      {
      vari=2;
      if(a==0 && b==0){a=cen_osn-spread_osn;b=cen_C_вал+spread_C_вал;} else
         {
         sdelok1=sdelok1+1;
         pun1=cen_osn-a;pun2=b-cen_C_вал;pun=pun+(pun1+pun2);
         a=cen_osn-spread_osn;b=cen_C_вал+spread_C_вал;
         }
      }
   }
if(Обратная_корреляция  == true)
  {    
    if(ma_osn>cen_osn+spread_osn && ma_C_вал>cen_C_вал+spread_C_вал && (vari==2||vari==0))
      {
      vari=1;
      if(a==0 && b==0){a=cen_osn+spread_osn;b=cen_C_вал+spread_C_вал;} else
         {
         sdelok1=sdelok1+1;
         pun1=a-cen_osn;pun2=b-cen_C_вал;pun=pun+(pun1+pun2);
         a=cen_osn+spread_osn;b=cen_C_вал+spread_C_вал;
         }
      }
    if(ma_osnpunn && sdelok1>=sdelok){punn=pun;rek_period=u;timfr_rek=g1;sdelok=sdelok1;}
    }
    }
   
   ObjectDelete("c");  
}

Recommend