Conversion ZZ Fibo.mq4 – zigzag fibonacci
Forums › ProRealTime forum Français › Support ProBuilder › Conversion ZZ Fibo.mq4 – zigzag fibonacci
- This topic has 7 replies, 2 voices, and was last updated 6 years ago by Plscap.
-
-
10/17/2018 at 7:18 AM #82933
Bonjour Nicolas, Bonjour à tous,
Est ce que l’un de vous aurait la possibilité de convertir le ZigZagFibo de mt4 en indicateur PRT. Bien que les Fibo existent déjà sous PRT, il n’est malheureusement pas automatiquement, il faut le tracer manuellement à chaque fois, ce que rend parfois son utilisation moins “sympathique”
Voici le code et screen du mq4
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Red//---- indicator parametersextern int ExtDepth=12;extern int ExtDeviation=5;extern int ExtBackstep=3;//---- indicator buffersdouble ExtMapBuffer[];double ExtMapBuffer2[];int OldLastZigZag, OldPreviousZigZag;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){IndicatorBuffers(2);//---- drawing settingsSetIndexStyle(0,DRAW_SECTION);//---- indicator buffers mappingSetIndexBuffer(0,ExtMapBuffer);SetIndexBuffer(1,ExtMapBuffer2);SetIndexEmptyValue(0,0.0);ArraySetAsSeries(ExtMapBuffer,true);ArraySetAsSeries(ExtMapBuffer2,true);//---- indicator short nameIndicatorShortName("Fibodrawer");//---- initialization donereturn(0);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int deinit(){ObjectDelete("Fibo");return 0;}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start(){int shift, back,lasthighpos,lastlowpos;double val,res;double curlow,curhigh,lasthigh,lastlow;//----for(shift=Bars-ExtDepth; shift>=0; shift--){val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];if(val==lastlow) val=0.0;else{lastlow=val;if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;else{for(back=1; back<=ExtBackstep; back++){res=ExtMapBuffer[shift+back];if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0;}}}ExtMapBuffer[shift]=val;//--- highval=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];if(val==lasthigh) val=0.0;else{lasthigh=val;if((val-High[shift])>(ExtDeviation*Point)) val=0.0;else{for(back=1; back<=ExtBackstep; back++){res=ExtMapBuffer2[shift+back];if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0;}}}ExtMapBuffer2[shift]=val;}// final cuttinglasthigh=-1; lasthighpos=-1;lastlow=-1; lastlowpos=-1;//----for(shift=Bars-ExtDepth; shift>=0; shift--){curlow=ExtMapBuffer[shift];curhigh=ExtMapBuffer2[shift];if((curlow==0)&&(curhigh==0)) continue;//---if(curhigh!=0){if(lasthigh>0){if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0;else ExtMapBuffer2[shift]=0;}//---if(lasthigh<curhigh || lasthigh<0){lasthigh=curhigh;lasthighpos=shift;}lastlow=-1;}//----if(curlow!=0){if(lastlow>0){if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0;else ExtMapBuffer[shift]=0;}//---if((curlow<lastlow)||(lastlow<0)){lastlow=curlow;lastlowpos=shift;}lasthigh=-1;}}for(shift=Bars-1; shift>=0; shift--){if(shift>=Bars-ExtDepth) ExtMapBuffer[shift]=0.0;else{res=ExtMapBuffer2[shift];if(res!=0.0) ExtMapBuffer[shift]=res;}}int i=0;int LastZigZag, PreviousZigZag;int h=0;while( ExtMapBuffer[h]==0 && ExtMapBuffer2[h]==0){h++;}LastZigZag=h;h++;while(ExtMapBuffer[h]==0 && ExtMapBuffer2[h]==0){h++;}PreviousZigZag=h;if (OldLastZigZag!=LastZigZag || OldPreviousZigZag!=PreviousZigZag){OldLastZigZag=LastZigZag;OldPreviousZigZag=PreviousZigZag;ObjectDelete("Fibo");ObjectCreate("Fibo", OBJ_FIBO, 0, Time[PreviousZigZag], ExtMapBuffer[LastZigZag], Time[LastZigZag], ExtMapBuffer[PreviousZigZag]);}return 0;}//+------------------------------------------------------------------+Merci à tous.
10/17/2018 at 8:38 AM #82939Je peux coder quelque-chose s’en approchant, avec les zigzag internes de la plateforme, donc ça ne sera pas une conversion 1:1. L’indicateur MT4 ZigZag auquel tu fais référence utilise des tableaux de données pour la recherches des pics et des creux et les confirmations, ce que l’on ne peut pas faire encore sous ProBuilder.
10/17/2018 at 9:21 AM #8294310/17/2018 at 9:47 AM #82950J’ai réussi à produire un indicateur qui pourrait aider dans ce cas, je l’ai ajouté à notre bibliothèque de codes pour ProRealTime: ZigZag Fibonacci levels
1 user thanked author for this post.
10/17/2018 at 10:04 AM #8295410/17/2018 at 1:36 PM #8296410/17/2018 at 1:56 PM #82972Je viens de publier une mise à jour de l’indicateur. J’ai supprimé les boucles, mais il est possible que plusieurs retracements soit affichés (les anciens), on peut contrôler depuis combien de jours en arrière on affiche ou pas les retracements Fibonacci avec le paramètre “DaysBefore”, réglé à 20 jours par défaut, ce qui peut-être pas assez pour afficher le dernier sur des unités de temps assez importante, cela dépendant notamment du pourcentage des zigzag qu’on utilise..
1 user thanked author for this post.
10/17/2018 at 2:17 PM #82975 -
AuthorPosts
Find exclusive trading pro-tools on