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;}
И вычисляем-
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");}
Прежде всего нужно максимально чётко формализовать условия состояния рынка, при которых он "жёстко" ошибается. К тому же важно исключить повторяющиеся индикаторы - те же машки и аллигатор, который суть машки.
Вместе с тем, нужно гонять автооптимизацию изначально на чём-то более простом. Дело в том, что оптимизация, а вместе с тем автооптимизация - достаточно спорное явление, и чаще всего требует проверки "жизнью". К тому же оптимизация по 10 параметров для выравнивания истории теста есть подгонка в некотором роде. Думаю, снчала нужно разобраться с этими индикаторами, чтобы система чётко входила без сторонней помощи, и что самое главное выходила с профитом.
Это конечно ИМХО - ваш грааль, да и любой вообще должен иметь стоп и тейк(если таковой имеется), либо просто формализованный выход, на основе своих внутренних торговых принципов, а не простой (или той же ГА) подборкой на истории.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем день...или ночь добрые. Я тут работаю над одним советникм маньячным. Пока выкладывать не буду, просто еще не доработан, а так выложу обязательно...БЕСПЛАТНО. Тока нужна помоСЧь. Вопрос намба ван - как сделать авто оптимизацию...скажем 8-16 напаметров? Статья про автооптимизацию которая маячит светлым пятном на сайте...не то что не работает...там тока 4 параметра можно на оптиму поставить, да и как то коряво все работает.Вобщем может кто подскажет чаго из своих наработок? УВАЖАЕМЫЙ КИМ, К ВАМ ОСОБЕННО ОБРАТИТСЯ СТОИЛО БЫ. Вопрос второй - массу индюков выкладывают всякого рода маньяки, а вот стоящего что то не наблюдается. То перерисовывается, то тормозит, то вообще лажу какую то показывает. Нет, я не говорю - "дайте мне субомега индикатор и я переверну мир". Смысл моей стратегии в советнике заключается в процентном соотношении группового сигнала от 8 индикаторов и немного фильтранутого. ТАк вот, у меня представленны индикаторы стандартной коллекции, хотелось бы поэксперементировать с индивидумами... Вобщем может коллективный разум и победит.