Форум трейдеров » Торговые роботы, советники, индикаторы » Советник на MQL5
+ Подписаться
Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
  1. 4,160
    Комментарии
    7
    Темы
    4265
    Репутация Pro
    Аватар для Денис Давыдов  
    Мастер форумных наук

    4 Медалей
    Так как вы понимаете с++, то вам достаточно почитать справку редактора MQL, там подробно расписано как и что. Посмотрите для примера чьи-нибудь скрипты. Вообщем можно быстро разобраться.
  2. 180
    Комментарии
    7
    Темы
    182
    Репутация Pro
    Аватар для Manager  
    В начале пути

    3 Медалей
    Почитал немного темку с описанием стратегии. Скажу вам сразу это на первый взгляд стратегия простая для понимания и ручной торговли, а чтобы это всё настроить в советнике, то тут долгая и кропотливая работа предстоит. Профи не все могут справиться(я так понял нужно проводить ещё и анализ патернов индикатора MACD), чего уж говорить о тех, кто в программировании ничего не понимает. Если уж за 4 года никто не смог реализовать эту стратегию в советник, то мы с вами её также быстро не сможем сделать.
    Честно скажу, меня данная стратегия натолкнула на некоторые мысли, в чистом виде как она изложена я бы не стал делать, но некоторые моменты захотелось использовать в своих роботах.
  3. 12
    Комментарии
    1
    Темы
    12
    Репутация Pro
     
    Новичок

    2 Медалей
    Ясное дело, из той стратегии по большому счету мне нужен только вход в рынок по макд.... выход я планировал по машкам....

    Вот в том то и дело что самое сложное "написать вход" в рынок...

    Хотелось бы общими усилиями написать, но времени мало...

    Сов. по патернам я нашел, но "прочесть" код мне не хватило знаний особенностей синтаксиса этого языка!!!
    Могу выложить, может Вам легче прочесть...
    А по поводу анализа выхода в голове уже представляю как, осталось действительно лишь, как сказал уважаемый Денис Давыдов, изучить справку по MQL и вперед.

    А вот со входом даже пока в голове не представляю какой огроменный алгоритм по анализу нужен!
    Но мысли мои смотрят в сторону "сбора" массивов и их анализа...
  4. 12
    Комментарии
    1
    Темы
    12
    Репутация Pro
     
    Новичок

    2 Медалей
    Код:
    //+------------------------------------------------------------------+
    //|                                            MacdPatternTrader.mq4 |
    //+------------------------------------------------------------------+
     
    /*
     
    Original description strategies:
    http://www.unfx.ru/strategies_to_trade/strategies_134.php
     
    Looking for an interpreter for the English version of the magazine on partnership.
     
    */
    
    
    #property copyright "123.RU"
    #property link      "http://123.RU"
    extern int minstoploss = 15;
    extern double mLots = 0.1;
    extern string p1="Настройки паттерна №1(A)";
    extern bool p1enable=true;
    extern int stoplossbars1 = 22;
    extern int takeprofitbars1 = 32;
    extern int otstup1 = 40; 
    extern int lowema1=13;
    extern int fastema1=24;
    extern double maxur1=0.0095;
    extern double minur1=-0.0045;
    
    extern string p2="Настройки паттерна №2(B)";
    extern bool p2enable=true;
    extern int stoplossbars2 = 2;
    extern int takeprofitbars2 = 2;
    extern int otstup2 = 50; 
    extern int lowema2=7;
    extern int fastema2=17;
    extern double maxur2=0.0045;
    extern double minur2=-0.0035;
    
    extern string p3="Настройки паттерна №3(C)";
    extern bool p3enable=true;
    extern int stoplossbars3 = 8;
    extern int takeprofitbars3 = 12;
    extern int otstup3 = 2; 
    extern int lowema3=2;
    extern int fastema3=32;
    
    extern double maxur3=0.0015;
    extern double maxur13=0.004;
    extern double minur3=-0.005;
    extern double minur13=-0.0005;
    
    
    extern string p4="Настройки паттерна №4(D)";
    extern bool p4enable=true;
    extern int stoplossbars4 = 10;
    extern int takeprofitbars4 = 32;
    extern int otstup4 = 45; 
    extern int lowema4=9;
    extern int fastema4=4;
    
    extern int sum_bars_bup4=10;
    extern double maxur4=0.0165;
    extern double maxur14=0.0001;
    extern double minur4=-0.0005;
    extern double minur14=-0.0006;
    
    
    extern string p5="Настройки паттерна №5(I)";
    extern bool p5enable=true;
    extern int stoplossbars5 = 8;
    extern int takeprofitbars5 = 47;
    extern int otstup5 = 45; 
    extern int lowema5=2;
    extern int fastema5=6;
    
    extern double maxu5=0.0005;
    extern double maxur5=0.0015;
    double maxur15=0.0000;
    
    extern double minu5=-0.0005;
    extern double minur5=-0.0030;
    double minur15=0.0000;
     
    extern string p6="Настройки паттерна №6(F)";
    extern bool p6enable=true;
    extern int stoplossbars6 = 26;
    extern int takeprofitbars6 = 42;
    extern int otstup6 = 20; 
    extern int lowema6=8;
    extern int fastema6=4;
    
    extern double maxur6=0.0005;
    extern double minur6=-0.0010;
    double maxbars6=5;
    double minbars6=5;
    double countbars6=4;
     
    extern string x="Настройки MA:";
    extern  int perema1=7;
    extern  int perema2=21;
    extern  int persma3=98;
    extern  int perema4=365;
     
    extern double Lots=0.3;
    datetime Bar;
     int maxdrow=24250;
     
    int buy,sell;int nummodb,nummods;int flaglot,bars_bup;
    
    
    int init()
    {
     //For extra digits
     if ((Point == 0.00001) || (Point == 0.001)) minstoploss = minstoploss * 10;
    }
    
    int start()
      {   
          Comment("FORTRADER.RU");
          if (Year()>2008 )  {Comment("Время работы эксперта истекло. FORTRADER.RU");return(0); }
           if(Bar!=iTime(NULL,0,0))
           {
             Bar=iTime(NULL,0,0);
           if(p6enable==true){  AOPattern6(countbars6,maxbars6,minbars6,lowema6,fastema6,maxur6,minur6,stoplossbars6,otstup6,takeprofitbars6);}
           if(p5enable==true){  AOPattern5(lowema5,fastema5,maxur5,minur5,stoplossbars5,otstup5,takeprofitbars6);}
           if(p4enable==true){  AOPattern4(lowema4,fastema4,maxur4,minur4,stoplossbars4,otstup4,takeprofitbars4);}
           if(p3enable==true){  AOPattern3(lowema3,fastema3,maxur3,minur3,stoplossbars3,otstup3,takeprofitbars3);}
           if(p2enable==true){  AOPattern2(lowema2,fastema2,maxur2,minur2,stoplossbars2,otstup2,takeprofitbars2);}
           if(p1enable==true){  AOPattern1(lowema1,fastema1,maxur1,minur1,stoplossbars1,otstup1,takeprofitbars1);}
    
             ActivePosManager(perema1,perema2,persma3,perema4);
           }
     
       return(0);
      }
      
      
    int stop,sstop,barnumm,barnumms,aopmaxur,aop_oksell,aop_okbuy;
    
    
    int AOPattern6(int countbars,int maxbars,int minbars,double FastEMA,double SlowEMA,double maxur,double minur,int stoplossbars, int otstup,int takeprofitbars)
    {  double sl;
       string comment=maxdrow;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
    
       if(macdcurr<maxur){sstop=0;}
       
       if(macdcurr>maxur && barnumm<=maxbars && sstop==0)
       {
       barnumm=barnumm+1;
       }
       if(barnumm>maxbars)
       {
       barnumm=0;sstop=1;
       }
       if(barnumm<minbars && macdcurr<maxur )
       {
       barnumm=0;
       }
       if(macdcurr<maxur && barnumm>countbars)
       {
        aop_oksell=1;
       }
       if(aop_oksell==1)
       {sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_oksell=0;barnumm=0;
          nummods=0;
          sstop=0;
       }
       
    
       
       if(macdcurr>minur){stop=0;}
    
       if(macdcurr<minur && barnumms<=maxbars && stop==0)
       {
       barnumms=barnumms+1; 
       }
       if(barnumms>maxbars)
       {
       stop=1;barnumms=0;
       }
       if(barnumms<minbars && macdcurr>minur )
       {
       barnumms=0;
       }
       if(macdcurr>minur && barnumms>countbars)
       {
        aop_okbuy=1;
       }
       if(aop_okbuy==1 )
       {sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          barnumms=0;
          aop_okbuy=0;
          nummodb=0;
          stop=0;
       }
     
    }
    
    int stops5, Sb5, aop_oksell5, stopb5, Ss5, aop_okbuy5;
    int AOPattern5(double FastEMA,double SlowEMA,double maxur,double minur,int stoplossbars, int otstup,int takeprofitbars)
    {  double sl;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
     
       if(macdcurr<minu5 &&  stops5==0){stops5=1;}
       if(macdcurr>minur && stops5==1){stops5=0;Sb5=1;}
       if(Sb5==1 && macdcurr<macdlast && macdlast>macdlast3 && macdcurr<minur && macdlast>minur){aop_oksell5=1;Sb5=0;} 
       if(macdcurr>minur15 ){stops5=0;aop_oksell5=0;Sb5=0;}
    
       if(aop_oksell5==1)
       {sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_oksell5=0;
          nummods=0;
          stops5=0;
          Sb5=0;
       }
    
       if(macdcurr>maxu5 &&  stopb5==0){stopb5=1;}
       if(macdcurr<maxur15 ){stopb5=0;aop_okbuy5=0;Ss5=0;}
       if(macdcurr<maxur && stopb5==1){stopb5=0;Ss5=1;}
       if(Ss5==1 && macdcurr>macdlast && macdlast<macdlast3 && macdcurr>maxur && macdlast<maxur){aop_okbuy5=1;Ss5=0;} 
    
       if(aop_okbuy5==1 )
       {sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_okbuy5=0;  
          nummodb=0;
          Ss5=0;
       }
    }
    
    int aop_oksell4,aop_okbuy4,stops4,sstop4;
    double max14,min14;
    int AOPattern4(double FastEMA,double SlowEMA,double maxur4,double minur4,int stoplossbars, int otstup,int takeprofitbars)
    {  double sl;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
       
       
       if(macdcurr>maxur4 && macdcurr<macdlast && macdlast>macdlast3 &&  stops4==0){max14=macdlast;stops4=1;}
       if(macdcurr<maxur4 ){stops4=0;max14=0;}
       if(stops4==1 && macdcurr>maxur4&& macdcurr<macdlast && macdlast>macdlast3 && macdlast<max14 ){aop_oksell4=1;} 
       if(macdcurr<maxur4 ){aop_oksell4=0;}
     
       if(aop_oksell4==1)
       {sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
          max14=0;
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_oksell4=0;
          nummods=0;
       }
       
       if(macdcurr<minur4 && macdcurr>macdlast && macdlast<macdlast3 &&  sstop4==0){min14=macdlast;sstop4=1;}
       if(macdcurr>minur4 ){sstop4=0;min14=0;}
       if(sstop4==1 && macdcurr<minur4&& macdcurr>macdlast && macdlast<macdlast3 && macdlast>min14 ){aop_okbuy4=1;} 
       if(macdcurr>maxur4 ){aop_okbuy4=0;}
       
       if(aop_okbuy4==1 )
       {sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_okbuy4=0;
          nummodb=0;
          sstop4=0;
          min14=0;
       }
     
    }
    
    int aop_oksell3,aop_okbuy3,S3,bS3,stops3,stops13,sstops3,sstops13;
    double max13,max23,max33,min13,min23,min33;
    int AOPattern3(double FastEMA,double SlowEMA,double maxur3,double minur3,int stoplossbars, int otstup,int takeprofitbars)
    {double sl;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
       
       if(macdcurr>maxur13){S3=1;bars_bup=bars_bup+1;}
        
       if(S3==1 && macdcurr<macdlast && macdlast>macdlast3 && macdlast>max13 && stops3==0){max13=macdlast;}
       
       if(max13>0 &&macdcurr<maxur3){stops3=1;}
       
       if(macdcurr<maxur13 ){stops3=0;max13=0;S3=0;}
       
    
        if(stops3==1 && macdcurr>maxur3&& macdcurr<macdlast && macdlast>macdlast3 && macdlast>max13 && macdlast>max23 && stops13==0){max23=macdlast;} 
        
        if(max23>0 &&macdcurr<maxur3){stops13=1;}
       
       if(macdcurr<maxur13 ){stops13=0;max23=0;}
       
       if(stops13==1 && macdcurr<maxur3&& macdlast<maxur3&& macdlast3<maxur3&&  macdcurr<macdlast && macdlast>macdlast3 && macdlast<max23 && aop_oksell3==0){max33=macdlast;aop_oksell3=1;} 
    
       if(macdcurr<maxur13 ){aop_oksell3=0;}
    
       
       if(aop_oksell3==1 )
       {max13=0;max23=0;max33=0;
       sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_oksell3=0;
          nummods=0;
          bars_bup=0;
       }
       
       
       if(macdcurr<minur3){bS3=1;}
        
       if(bS3==1 && macdcurr>macdlast && macdlast<macdlast3 && macdlast<min13 && sstops3==0){min13=macdlast;}
       
       if(min13<0 &&macdcurr>minur3){sstops3=1;bS3=0;}
       
       if(macdcurr>minur13 ){sstops3=0;min13=0;bS3=0;}
       
        if(sstops3==1 && macdcurr<maxur3&& macdcurr>macdlast && macdlast<macdlast3 && macdlast<min13 && macdlast<min23 && sstops13==0){min23=macdlast;} 
        
        if(min23<0 &&macdcurr>minur3){sstops13=1;sstops3=0;}
       
       if(macdcurr>minur13 ){sstops13=0;min23=0;}
       
       if(sstops13==1 && macdcurr>minur3&& macdlast>minur3&& macdlast3>minur3&&  macdcurr>macdlast && macdlast<macdlast3 && macdlast>min23 && aop_okbuy3==0){min33=macdlast;aop_okbuy3=1;sstops13=0;} 
    
       if(macdcurr>maxur13 ){aop_okbuy3=0;}   
       
       if(aop_okbuy3==1 )
       {
          sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_okbuy3=0;
          nummodb=0;
          sstops13=0;
          min13=0;
          min23=0;
          min33=0;
       }
     
    }
      int aop_maxur2,aop_minur2,aop_oksell2,aop_okbuy2;int value_min2,value_max2,value_curr2;
    int AOPattern2(double FastEMA,double SlowEMA,double maxur2,double minur2,int stoplossbars, int otstup,int takeprofitbars)
    {double sl;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
    
     
       if(macdcurr>0){aop_maxur2=1;aop_oksell2=0;}
    
       if(macdcurr>macdlast && macdlast<macdlast3 && aop_maxur2==1  && macdcurr>minur2 && macdcurr<0 && aop_oksell2==0)
       { 
       aop_oksell2=1; value_min2= MathAbs(macdlast*10000);
       }
    value_curr2=MathAbs(macdcurr*10000);
    
     if(aop_oksell2==1  && macdcurr<macdlast && macdlast>macdlast3 && macdcurr<0 && value_min2<=value_curr2)
       {
       aop_maxur2=0;
       }
    
       if(aop_oksell2==1  && macdcurr<macdlast && macdlast>macdlast3 && macdcurr<0 )
       {
      
            sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
     
          aop_oksell2=0;
          aop_maxur2=0;
          nummods=0;
       }
       
       if(macdcurr<0){aop_minur2=1;aop_okbuy2=0;}
       if(macdcurr<maxur2  && macdcurr<macdlast && macdlast>macdlast3 && aop_minur2==1  && macdcurr>0)
       { 
       aop_okbuy2=1; value_max2= MathAbs(macdlast*10000);
      
       }
       value_curr2=MathAbs(macdcurr*10000);
       
       if(aop_okbuy2==1  && macdcurr>macdlast && macdlast<macdlast3 && macdcurr>0 && value_max2<=value_curr2)
       {
       aop_minur2=0;
       }
       
       if(aop_okbuy2==1  && macdcurr>macdlast && macdlast<macdlast3 && macdcurr>0 )
       {
          sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_okbuy2=0;
          aop_minur2=0;
          nummodb=0;
          flaglot=0;
       }
    
    }
    
    int aop_maxur1,aop_minur1,aop_oksell1,aop_okbuy1;
    int AOPattern1(double FastEMA,double SlowEMA,double maxur1,double minur1,int stoplossbars, int otstup,int takeprofitbars)
    {double sl;
       //загружаем индикаторы
       double macdcurr =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,1);
       double macdlast =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,2);
       double macdlast3 =iMACD(NULL,0,FastEMA,SlowEMA,1,PRICE_CLOSE,MODE_MAIN,3);
       
       if(macdcurr>maxur1){aop_maxur1=1;}
       if(macdcurr<0){aop_maxur1=0;}
       if(macdcurr<maxur1 && macdcurr<macdlast && macdlast>macdlast3 && aop_maxur1==1 && macdcurr>0 && macdlast3<maxur1)
       { 
       aop_oksell1=1;
       }
       if(aop_oksell1==1 )
       {
       sl=StopLoss(0,stoplossbars,otstup);if(sl<Bid){sl=sl+10*Point;}
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,TakeProfit(0,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_oksell1=0;
          aop_maxur1=0;
          nummods=0;
          flaglot=0;
       }
       
       if(macdcurr<minur1){aop_minur1=1;}
       if(macdcurr>0){aop_minur1=0;}
       if(macdcurr>minur1 && macdcurr<0 && macdcurr>macdlast && macdlast<macdlast3 && aop_minur1==1 && macdlast3>minur1 )
       { 
       aop_okbuy1=1;
       }
       if(aop_okbuy1==1 )
       {
          sl=StopLoss(1,stoplossbars,otstup);if(sl>Ask){sl=sl-10*Point;}
          OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,TakeProfit(1,takeprofitbars),"MacdPattern",maxdrow,0,Red);
          aop_okbuy1=0;
          aop_minur1=0;
          nummodb=0;
          flaglot=0;
       }
     
    }
    
    double StopLoss(int type,int stoplossbars,int otstup)
    {double stoploss;
    if(type==0)
    {
      stoploss=High[iHighest(NULL,0,MODE_HIGH,stoplossbars,1)]+otstup*Point;
    if (stoploss-Bid < minstoploss*Point) stoploss = Bid+minstoploss*Point;
     return(stoploss);
    }
    if(type==1)
    {
      stoploss=Low[iLowest(NULL,0,MODE_LOW,stoplossbars,1)]-otstup*Point;
     if (Ask-stoploss < minstoploss*Point) stoploss = Ask-minstoploss*Point;
     return(stoploss);
    }
     
    }
     
    double TakeProfit(int type,int takeprofitbars)
    { int x=0,stop=0;double takeprofit;
      
      if(type==0)
       {
       while(stop==0)
             {
               takeprofit =Low[iLowest(NULL,0,MODE_LOW,takeprofitbars,x)];
              if(takeprofit>Low[iLowest(NULL,0,MODE_LOW,takeprofitbars,x+takeprofitbars)])
                {
                takeprofit =Low[iLowest(NULL,0,MODE_LOW,takeprofitbars,x+takeprofitbars)];
                x=x+takeprofitbars;
                }
              else
                {
                 if (Bid-takeprofit < minstoploss*Point) takeprofit = Bid-minstoploss*Point;
                 stop=1;return(takeprofit);
                }
             }
       }
       
       if(type==1)
       {
       while(stop==0)
             {
               takeprofit =High[iHighest(NULL,0,MODE_HIGH,takeprofitbars,x)];
              if(takeprofit<High[iHighest(NULL,0,MODE_HIGH,takeprofitbars,x+takeprofitbars)])
                {
                takeprofit =High[iHighest(NULL,0,MODE_HIGH,takeprofitbars,x+takeprofitbars)];
                x=x+takeprofitbars;
                }
              else
                {
                 if (takeprofit-Ask < minstoploss*Point) takeprofit = Ask+minstoploss*Point;
                 stop=1;return(takeprofit);
                }
             }
       }
                    
    }
    
    int  ActivePosManager(int perema1, int perema2, int persma3, int perema4)
    {string comment=maxdrow;int i;double lt;
       double ema1 =iMA(NULL,0,perema1,0,MODE_EMA,PRICE_CLOSE,1);
        double ema2 =iMA(NULL,0,perema2,0,MODE_EMA,PRICE_CLOSE,1);
         double sma1 =iMA(NULL,0,persma3,0,MODE_SMA,PRICE_CLOSE,1);
          double ema3 =iMA(NULL,0,perema4,0,MODE_EMA,PRICE_CLOSE,1);
     
       for( i=1; i<=OrdersTotal(); i++)          
         {
          if (OrderSelect(i-1,SELECT_BY_POS)==true) 
            {                                       
                  if(OrderType()==OP_BUY && OrderProfit()>5 && Close[1]>ema2 && nummodb==0&& OrderSymbol()==Symbol()&&OrderMagicNumber()==maxdrow)
                  {  lt=NormalizeDouble(OrderLots()/3,2);if(lt<=0.01){lt=0.01;}
                     OrderClose(OrderTicket(),mLots,Bid,3,Violet); 
                     nummodb++;
                   
                  }
             }
                 
             if (OrderSelect(i-1,SELECT_BY_POS)==true) 
                {  
                     if(OrderType()==OP_BUY && OrderProfit()>5 && High[1]>(sma1+ema3)/2 && nummodb==1 &&OrderSymbol()==Symbol()&&OrderMagicNumber()==maxdrow)
                  { lt=NormalizeDouble(OrderLots()/2,2);if(lt<=0.01){lt=0.01;}
                     OrderClose(OrderTicket(),mLots,Bid,3,Violet); 
                     nummodb++;
                       
                  }
                 }
                 
                if (OrderSelect(i-1,SELECT_BY_POS)==true) 
                { 
                  
                 if(OrderType()==OP_SELL && OrderProfit()>5 && Close[1]<ema2 && nummods==0 && OrderSymbol()==Symbol()&&OrderMagicNumber()==maxdrow)
                  {lt=NormalizeDouble(OrderLots()/3,2);if(lt<=0.01){lt=0.01;}
                     OrderClose(OrderTicket(),mLots,Ask,3,Violet); 
                     nummods++;
                    
                     
                  }
                }
                 
                       if (OrderSelect(i-1,SELECT_BY_POS)==true) 
            { 
                       if(OrderType()==OP_SELL && OrderProfit()>5 && Low[1]<(sma1+ema3)/2 && nummods==1&&   OrderSymbol()==Symbol()&&OrderMagicNumber()==maxdrow)
                  {  lt=NormalizeDouble(OrderLots()/2,2);if(lt<=0.01){lt=0.01;}
                     OrderClose(OrderTicket(),mLots,Ask,3,Violet); 
                     nummods++;
                      
                  }
          
          }
     }
     
    
     
     
    }
  5. 180
    Комментарии
    7
    Темы
    182
    Репутация Pro
    Аватар для Manager  
    В начале пути

    3 Медалей
    Вот же у вас всё уже есть.
    Я так полагаю это советник по этой стратегии, только на MQ4. Осталось настроить его на MQ5 и делов.

    Или вы хотите немного по своему алгоритм сделать?
  6. 12
    Комментарии
    1
    Темы
    12
    Репутация Pro
     
    Новичок

    2 Медалей
    не знаю, по крайней мере с этим советником я даже в мт4 не разобрался =(

    ***ламер?***+++
  7. 180
    Комментарии
    7
    Темы
    182
    Репутация Pro
    Аватар для Manager  
    В начале пути

    3 Медалей
    Можно вопрос?
    А зачем вам советник именно на MQ5? Ведь эта платформа пока ещё тестируется
    Не проще ли данный советник настроить под ваши требования. Хотя вы их пока и не озвучили.
    Будет время, я посмотрю, этот советник попробую понять, как он работает.
  8. 12
    Комментарии
    1
    Темы
    12
    Репутация Pro
     
    Новичок

    2 Медалей
    я на лайтфорексе торгую, перешел на мт5.... тянусь всегда к новому, даже к тестовому...

    Да ну как минимум, даже прородитель-стратегия (ссылка выше) помоему не содержится в советнике который я выложил....

    Да и к тому же как я понял в нем закрытие по лосям и профиту. а мне нужно закрытие и открытие строго по сигналам....
  9. 180
    Комментарии
    7
    Темы
    182
    Репутация Pro
    Аватар для Manager  
    В начале пути

    3 Медалей
    Цитата Сообщение от Семен Анатольевич Посмотреть сообщение
    Да и к тому же как я понял в нем закрытие по лосям и профиту. а мне нужно закрытие и открытие строго по сигналам....
    В этом и весь фокус всех бесплатных и распространяемых советников. Никакой логики, анализа, в основном докупка, усреднение и локи. Если и есть настройка входа по индикаторам, то далее уже та же схема локов, докупок или усреднения из-за чего все они рано или поздно всё сливают. Надёжный умный советник не так-то просто сделать и такие советники никто никогда не выложит в свободное распространение.
    Не вы один хотите такой советник, который входил бы строго по сигналам с чёткой стратегией.

    Думаю проще сделать с нуля. Но для этого надо как минимум описать стратегию по пунктам, а вы этого не можете чётко сформулировать, поэтому дальше двигаться невозможно.
  10. 12
    Комментарии
    1
    Темы
    12
    Репутация Pro
     
    Новичок

    2 Медалей
    Согласны ли Вы на сотрудничество:
    1. я пишу попунктно алгоритм.
    2. вы пишите советника.
    3. мы не сливаем его в сеть

    Устроит?

Вверх
РегистрацияX

чтобы писать, читать, комментировать