StH11v=iStochastic(NULL, TF1, stK, stP, stD,MODE_SMA,0,MODE_MAIN,0); StH1pr1v=iStochastic(NULL, TF1, stK, stP, stD,MODE_SMA,0,MODE_SIGNAL,0); StH41v=iStochastic(NULL, TF2, stK, stP, stD,MODE_SMA,0,MODE_MAIN,0); StH4pr1v=iStochastic(NULL, TF2, stK, stP, stD,MODE_SMA,0,MODE_SIGNAL,0); StD11v=iStochastic(NULL, TF3, stK, stP, stD,MODE_SMA,0,MODE_MAIN,0); StD1pr1v=iStochastic(NULL, TF3, stK, stP, stD,MODE_SMA,0,MODE_SIGNAL,0); if ( StH11v<25 && StH1pr1v<25 && StH11v> StH1pr1v){ Stx1TF1x= S; Stx1TF1y=0;} if ( StH11v>75 && StH1pr1v>75 && StH11v< StH1pr1v){ Stx1TF1y= S; Stx1TF1x=0;} if ( StH41v<25 && StH4pr1v<25 && StH41v> StH4pr1v){ Stx1TF2x= S; Stx1TF2y=0;} if ( StH41v>75 && StH4pr1v>75 && StH41v< StH4pr1v){ Stx1TF2y= S; Stx1TF2x=0;} if ( StD11v<25 && StD1pr1v<25 && StD11v> StD1pr1v){ Stx1TF3x= S; Stx1TF3y=0;} if ( StD11v>75 && StD1pr1v>75 && StD11v< StD1pr1v){ Stx1TF3y= S; Stx1TF3x=0;} if ( StH11v>25 && StH1pr1v>25 && StH11v> StH1pr1v){ Stx1TF1x=0; Stx1TF1y=0;} if ( StH11v<75 && StH1pr1v<75 && StH11v< StH1pr1v){ Stx1TF1y=0; Stx1TF1x=0;} if ( StH41v>25 && StH4pr1v>25 && StH41v> StH4pr1v){ Stx1TF2x=0; Stx1TF2y=0;} if ( StH41v<75 && StH4pr1v<75 && StH41v< StH4pr1v){ Stx1TF2y=0; Stx1TF2x=0;} if ( StD11v>25 && StD1pr1v>25 && StD11v> StD1pr1v){ Stx1TF3x=0; Stx1TF3y=0;} if ( StD11v<75 && StD1pr1v<75 && StD11v< StD1pr1v){ Stx1TF3y=0; Stx1TF3x=0;}
OSH1=iOsMA(NULL, TF1, W, H, C,PRICE_CLOSE,0); OSH4=iOsMA(NULL, TF2, W, H, C,PRICE_CLOSE,0); OSD1=iOsMA(NULL, TF3, W, H, C,PRICE_CLOSE,0); if ( OSH1<- OS){ OSTF1x= O; OSTF1y=0;} if ( OSH1> OS) { OSTF1x=0; OSTF1y= O;} if ( OSH4<- OS){ OSTF2x= O; OSTF2y=0;} if ( OSH4> OS) { OSTF2x=0; OSTF2y= O;} if ( OSD1<- OS){ OSTF3x= O; OSTF3y=0;} if ( OSD1> OS) { OSTF3x=0; OSTF3y= O;}
double sigyH1=iLowest (NULL, TF1,MODE_CLOSE,3,0); double sigyH4=iLowest (NULL, TF2,MODE_CLOSE,3,0); double sigyD1=iLowest (NULL, TF2,MODE_CLOSE,3,0); double sigxH1=iHighest(NULL, TF1,MODE_CLOSE,3,0); double sigxH4=iHighest(NULL, TF2,MODE_CLOSE,3,0); double sigxD1=iHighest(NULL, TF3,MODE_CLOSE,3,0); if ( sigyH1==1){ SigYTF1= I; SigXTF1=0;} if ( sigyH4==1){ SigYTF2= I; SigXTF2=0;} if ( sigyD1==1){ SigYTF3= I; SigXTF3=0;} if ( sigxH1==1){ SigYTF1=0; SigXTF1= I;} if ( sigxH4==1){ SigYTF2=0; SigXTF2= I;} if ( sigxD1==1){ SigYTF3=0; SigXTF3= I;}
double Gator1H1=iAlligator(NULL, TF1,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORJAW,0); double Gator1H4=iAlligator(NULL, TF2,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORJAW,0); double Gator1D1=iAlligator(NULL, TF3,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORJAW,0); double Gator2H1=iAlligator(NULL, TF1,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORTEETH,0); double Gator2H4=iAlligator(NULL, TF2,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORTEETH,0); double Gator2D1=iAlligator(NULL, TF3,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORTEETH,0); double Gator3H1=iAlligator(NULL, TF1,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORLIPS,0); double Gator3H4=iAlligator(NULL, TF2,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORLIPS,0); double Gator3D1=iAlligator(NULL, TF3,13,8,8,5,5,3,MODE_SMMA,PRICE_WEIGHTED, MODE_GATORLIPS,0); if ( Gator3H1> Gator1H1+ shirina){ GatorX1= G; GatorY1=0;} if ( Gator3H4> Gator1H4+ shirina){ GatorX2= G; GatorY2=0;} if ( Gator3D1> Gator1D1+ shirina){ GatorX3= G; GatorY3=0;} if ( Gator1H1> Gator3H1+ shirina){ GatorX1=0; GatorY1= G;} if ( Gator1H4> Gator3H4+ shirina){ GatorX2=0; GatorY2= G;} if ( Gator1D1> Gator3D1+ shirina){ GatorX3=0; GatorY3= G;}
double MACD1H1=iMACD(NULL, TF1, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_MAIN,0); double MACD1H4=iMACD(NULL, TF2, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_MAIN,0); double MACD1D1=iMACD(NULL, TF3, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_MAIN,0); double MACD2H1=iMACD(NULL, TF1, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_SIGNAL,0); double MACD2H4=iMACD(NULL, TF2, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_SIGNAL,0); double MACD2D1=iMACD(NULL, TF3, F_EMA, S_EMA, SMA,PRICE_WEIGHTED,MODE_SIGNAL,0); double MACD3H1=iMACD(NULL, TF1, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_MAIN,0); double MACD3H4=iMACD(NULL, TF2, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_MAIN,0); double MACD3D1=iMACD(NULL, TF3, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_MAIN,0); double MACD4H1=iMACD(NULL, TF1, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_SIGNAL,0); double MACD4H4=iMACD(NULL, TF2, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_SIGNAL,0); double MACD4D1=iMACD(NULL, TF3, S_EMA*2, F_EMA*2, SMA*2,PRICE_WEIGHTED,MODE_SIGNAL,0); if(( MACD1H1< MACD2H1)&&( MACD2H1>0)&&( MACD3H1< MACD4H1)&&( MACD4H1>0)){ MACDy1= M; MACDx1=0;} if(( MACD1H4< MACD2H4)&&( MACD2H4>0)&&( MACD3H4< MACD4H4)&&( MACD4H4>0)){ MACDy2= M; MACDx2=0;} if(( MACD1D1< MACD2D1)&&( MACD2D1>0)&&( MACD3D1< MACD4D1)&&( MACD4D1>0)){ MACDy3= M; MACDx3=0;} if(( MACD1H1> MACD2H1)&&( MACD2H1<0)&&( MACD3H1> MACD4H1)&&( MACD4H1<0)){ MACDy1=0; MACDx1= M;} if(( MACD1H4> MACD2H4)&&( MACD2H4<0)&&( MACD3H4> MACD4H4)&&( MACD4H4<0)){ MACDy2=0; MACDx2= M;} if(( MACD1D1> MACD2D1)&&( MACD2D1<0)&&( MACD3D1> MACD4D1)&&( MACD4D1<0)){ MACDy3=0; MACDx3= M;}
double CCIH1=iCCI(NULL, TF1, CCI,PRICE_CLOSE,0); double CCIH4=iCCI(NULL, TF1, CCI,PRICE_CLOSE,0); double CCID1=iCCI(NULL, TF1, CCI,PRICE_CLOSE,0); if( CCIH1>120){ CCIx1= CC; CCIy1=0;} if( CCIH4>120){ CCIx2= CC; CCIy2=0;} if( CCID1>120){ CCIx3= CC; CCIy3=0;} if( CCIH1<-120){ CCIx1=0; CCIy1= CC;} if( CCIH4<-120){ CCIx2=0; CCIy2= CC;} if( CCID1<-120){ CCIx3=0; CCIy3= CC;}
Et calculez...
double resultz1 = ( Stx1TF1x + Stx1TF2x + Stx1TF3x + OSTF1x + OSTF2x + OSTF3x + SigXTF1 + SigXTF2 + SigXTF3 + GatorX1 + GatorX2 + GatorX3 + MACDx1 + MACDx2 + MACDx3 + CCIx1 + CCIx2 + CCIx3) * 5.5555555555555555555555555555556; double resultz2 = ( Stx1TF1y + Stx1TF2y + Stx1TF3y + OSTF1y + OSTF2y + OSTF3y + SigYTF1 + SigYTF2 + SigYTF3 + GatorY1 + GatorY2 + GatorY3 + MACDy1 + MACDy2 + MACDy3 + CCIy1 + CCIy2 + CCIy3) * 5.5555555555555555555555555555556; if ( resultz1< Skill && resultz2< Skill) { Signal=0; Comment("КУРИМ");} if ( resultz1> Skill) { Signal=1; Comment("Неплохо бы BUY");} if ( resultz2> Skill) { Signal=-1;Comment("Неплохо бы SELL");} if ( resultz1> SkillMAX) { Signal=2; Comment("АФИГЕННО BUY");} if ( resultz1> SkillMAX) { Signal=-2; Comment("ФАИГЕННО SELL");}
Tout d'abord, il est nécessaire de formaliser aussi clairement que possible les conditions de marché dans lesquelles il est "difficile" de faire des erreurs. En outre, il est important d'exclure les indicateurs répétitifs - les mêmes essuie-glaces et l'alligator, qui est l'essence même des essuie-glaces.
En même temps, vous devriez d'abord exécuter l'auto-optimisation sur quelque chose de plus simple. Le fait est que l'optimisation, et avec elle l'auto-optimisation, est un phénomène plutôt controversé et nécessite le plus souvent un contrôle de "vie". De même, l'optimisation sur 10 paramètres pour aligner l'historique des tests est un ajustement en quelque sorte. Je pense que vous devriez d'abord vous occuper de ces indicateurs, afin que le système puisse entrer facilement sans aide extérieure, et surtout, qu'il fasse des bénéfices.
Ceci est bien sûr IMHO - votre graal, et tout en général devrait avoir un stop et take (le cas échéant), ou juste une sortie formalisée, basée sur ses principes internes de trading, plutôt qu'une simple (ou la même GA) sélection sur l'historique.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Bonjour... ou nuit, tout le monde. Je travaille sur une EA maniaque ici. Je ne vais pas encore le poster, il n'est pas encore terminé, mais je le posterai certainement... GRATUITEMENT. J'ai juste besoin d'aide. Question namba van - comment faire l'auto-optimisation ... disons 8-16 napametrov ? Article sur l'auto-optimisation, qui domine sur le site ... pas qu'il ne fonctionne pas ... il y a jusqu'à 4 paramètres qui peuvent être mis sur l'optimum, et comment dodgy tout fonctionne. En général, peut-être quelqu'un va inciter Chago de leurs propres développements ? MA CHÈRE KIM, CELA VAUDRAIT LA PEINE DE SE RÉFÉRER À VOUS EN PARTICULIER. Si j'ai une bonne idée, je peux essayer d'en dessiner sur le marché, mais je n'en ai pas de bonne. Parfois il surcharge, parfois il ralentit, parfois il ne montre rien d'intéressant. Je ne dis pas "donnez-moi un indicateur subomega et je vais changer le monde". L'essence de ma stratégie dans l'Expert Advisor est le rapport en pourcentage d'un signal de groupe de 8 indicateurs et d'un signal peu filtré. J'ai donc des indicateurs de collecte standard et je veux expérimenter avec des indicateurs individuels. En général, c'est peut-être l'esprit collectif qui l'emportera.