Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Indicateur de Demark

  • forcizen

    Bonjour je vous présente l'indicateur de Demark !

    La vidéo d'explication :
    http://www.forexagone.com/videos/traders/forcizen/53-la-strategie-de-demark

    Et le code de l'indicateur :)

    Code
    //+------------------------------------------------------------------+ //| Ind-TD-DeMark-3-1.mq4 | //| Copyright © 2005, Kara Software Corp. | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Kara Software Corp." #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- input parameters extern int BackSteps=0; extern int ShowingSteps=1; extern bool FractalAsTD=false; extern bool Commen=true; extern bool TD=true; extern bool TrendLine=true; extern bool HorizontLine=true; extern bool TakeProf=true; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //==================================================================== int init() { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); for (int i=1;i<=10;i++) { ObjectDelete("HHL_"+i);ObjectDelete("HL_"+i); ObjectDelete("HLL_"+i);ObjectDelete("LL_"+i); ObjectDelete("HC1_"+i); ObjectDelete("HC2_"+i); ObjectDelete("HC3_"+i); ObjectDelete("LC1_"+i); ObjectDelete("LC2_"+i); ObjectDelete("LC3_"+i); } Comment(""); return(0); } int deinit() { for (int i=1;i<=10;i++) { ObjectDelete("HHL_"+i);ObjectDelete("HL_"+i); ObjectDelete("HLL_"+i);ObjectDelete("LL_"+i); ObjectDelete("HC1_"+i); ObjectDelete("HC2_"+i); ObjectDelete("HC3_"+i); ObjectDelete("LC1_"+i); ObjectDelete("LC2_"+i); ObjectDelete("LC3_"+i); } Comment(""); return(0); } //-------------------------------------------------------------------- int SetTDPoint(int B) { int shift; if (FractalAsTD==false) { for (shift=B;shift>1;shift--) { if (High[shift+1]<High[shift] && High[shift-1]<High[shift] && Close[shift+2]<High[shift]) ExtMapBuffer1[shift]=High[shift]; else ExtMapBuffer1[shift]=0; if (Low[shift+1]>Low[shift] && Low[shift-1]>Low[shift] && Close[shift+2]>Low[shift]) ExtMapBuffer2[shift]=Low[shift]; else ExtMapBuffer2[shift]=0; } ExtMapBuffer1[0]=0; ExtMapBuffer2[0]=0; ExtMapBuffer1[1]=0; ExtMapBuffer2[1]=0; } else { for (shift=B;shift>3;shift--) { if (High[shift+1]<=High[shift] && High[shift-1]<High[shift] && High[shift+2]<=High[shift] && High[shift-2]<High[shift]) ExtMapBuffer1[shift]=High[shift]; else ExtMapBuffer1[shift]=0; if (Low[shift+1]>=Low[shift] && Low[shift-1]>Low[shift] && Low[shift+2]>=Low[shift] && Low[shift-2]>Low[shift]) ExtMapBuffer2[shift]=Low[shift]; else ExtMapBuffer2[shift]=0; } ExtMapBuffer1[0]=0; ExtMapBuffer2[0]=0; ExtMapBuffer1[1]=0; ExtMapBuffer2[1]=0; ExtMapBuffer1[2]=0; ExtMapBuffer2[2]=0; } return(0); } //-------------------------------------------------------------------- int GetHighTD(int P) { int i=0,j=0; while (j<P) { i++; while(ExtMapBuffer1[i]==0) {i++;if(i>Bars-2)return(-1);} j++; } return (i); } //-------------------------------------------------------------------- int GetNextHighTD(int P) { int i=P+1; while(ExtMapBuffer1[i]<=High[P]){i++;if(i>Bars-2)return(-1);} return (i); } //-------------------------------------------------------------------- int GetLowTD(int P) { int i=0,j=0; while (j<P) { i++; while(ExtMapBuffer2[i]==0) {i++;if(i>Bars-2)return(-1);} j++; } return (i); } //-------------------------------------------------------------------- int GetNextLowTD(int P) { int i=P+1; while(ExtMapBuffer2[i]>=Low[P] || ExtMapBuffer2[i]==0){i++;if(i>Bars-2)return(-1);} return (i); } //-------------------------------------------------------------------- int TrendLineHighTD(int H1,int H2,int Step,int Col) { ObjectSet("HL_"+Step,OBJPROP_TIME1,Time[H2]);ObjectSet("HL_"+Step,OBJPROP_TIME2,Time[H1]); ObjectSet("HL_"+Step,OBJPROP_PRICE1,High[H2]);ObjectSet("HL_"+Step,OBJPROP_PRICE2,High[H1]); ObjectSet("HL_"+Step,OBJPROP_COLOR,Col); if (Step==1)ObjectSet("HL_"+Step,OBJPROP_WIDTH,2); else ObjectSet("HL_"+Step,OBJPROP_WIDTH,1); return(0); } //-------------------------------------------------------------------- int TrendLineLowTD(int L1,int L2,int Step,int Col) { ObjectSet("LL_"+Step,OBJPROP_TIME1,Time[L2]);ObjectSet("LL_"+Step,OBJPROP_TIME2,Time[L1]); ObjectSet("LL_"+Step,OBJPROP_PRICE1,Low[L2]);ObjectSet("LL_"+Step,OBJPROP_PRICE2,Low[L1]); ObjectSet("LL_"+Step,OBJPROP_COLOR,Col); if (Step==1)ObjectSet("LL_"+Step,OBJPROP_WIDTH,2); else ObjectSet("LL_"+Step,OBJPROP_WIDTH,1); return(0); } //-------------------------------------------------------------------- int HorizontLineHighTD(int H1,int H2,int Step,double St,int Col) { ObjectSet("HHL_"+Step,OBJPROP_PRICE1,High[H2]-(High[H2]-High[H1])/(H2-H1)*H2); ObjectSet("HHL_"+Step,OBJPROP_STYLE,St); ObjectSet("HHL_"+Step,OBJPROP_COLOR,Col); return(0); } //-------------------------------------------------------------------- int HorizontLineLowTD(int L1,int L2,int Step,double St,int Col) { ObjectSet("HLL_"+Step,OBJPROP_PRICE1,Low[L2]+(Low[L1]-Low[L2])/(L2-L1)*L2); ObjectSet("HLL_"+Step,OBJPROP_STYLE,St); ObjectSet("HLL_"+Step,OBJPROP_COLOR,Col); return(0); } //-------------------------------------------------------------------- string TakeProfitHighTD(int H1,int H2,int Step,int Col) { int i,ii,j=0; string Comm=""; double kH,HC1,HC2,HC3,k,St; kH=(High[H2]-High[H1])/(H2-H1); while (NormalizeDouble(Point,j)==0)j++; k=0; for(i=H1;i>0;i--)if(Close[i]>High[H2]-kH*(H2-i)){k=High[H2]-kH*(H2-i);break;} if (k>0) { Comm=Comm+"UTD_Line ("+DoubleToStr(High[H2]-kH*H2,j)+") broken at "+DoubleToStr(k,j)+", uptargets:\n"; ii=Lowest(NULL,0,MODE_LOW,H2-i,i); HC1=High[H2]-kH*(H2-ii)-Low[ii]; HC2=High[H2]-kH*(H2-ii)-Close[ii]; ii=Lowest(NULL,0,MODE_CLOSE,H2-i,i); HC3=High[H2]-kH*(H2-ii)-Close[ii]; St=STYLE_SOLID; } else { k=High[H2]-kH*H2; Comm=Comm+"UTD_Line ("+DoubleToStr(k,j)+"), probable break-up targets:\n"; ii=Lowest(NULL,0,MODE_LOW,H2,0); HC1=High[H2]-kH*(H2-ii)-Low[ii]; HC2=High[H2]-kH*(H2-ii)-Close[ii]; ii=Lowest(NULL,0,MODE_CLOSE,H2,0); HC3=High[H2]-kH*(H2-ii)-Close[ii]; St=STYLE_DASHDOT; } ObjectSet("HL_"+Step,OBJPROP_STYLE,St); Comm=Comm+"T1="+DoubleToStr(HC1+k,j)+" ("+DoubleToStr(HC1/Point,0)+"pts.)"; Comm=Comm+" T2="+DoubleToStr(HC2+k,j)+" ("+DoubleToStr(HC2/Point,0)+"pts.)"; Comm=Comm+" T3="+DoubleToStr(HC3+k,j)+" ("+DoubleToStr(HC3/Point,0)+"pts.)\n"; ObjectSet("HC1_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC1_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC1_"+Step,OBJPROP_PRICE1,HC1+k);ObjectSet("HC1_"+Step,OBJPROP_PRICE2,HC1+k); ObjectSet("HC1_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC1_"+Step,OBJPROP_STYLE,St); ObjectSet("HC2_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC2_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC2_"+Step,OBJPROP_PRICE1,HC2+k);ObjectSet("HC2_"+Step,OBJPROP_PRICE2,HC2+k); ObjectSet("HC2_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC2_"+Step,OBJPROP_STYLE,St); ObjectSet("HC3_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC3_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC3_"+Step,OBJPROP_PRICE1,HC3+k);ObjectSet("HC3_"+Step,OBJPROP_PRICE2,HC3+k); ObjectSet("HC3_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC3_"+Step,OBJPROP_STYLE,St); if (Step==1) { ObjectSet("HC1_"+Step,OBJPROP_WIDTH,2); ObjectSet("HC2_"+Step,OBJPROP_WIDTH,2); ObjectSet("HC3_"+Step,OBJPROP_WIDTH,2); } else { ObjectSet("HC1_"+Step,OBJPROP_WIDTH,1); ObjectSet("HC2_"+Step,OBJPROP_WIDTH,1); ObjectSet("HC3_"+Step,OBJPROP_WIDTH,1); } return(Comm); } //-------------------------------------------------------------------- string TakeProfitLowTD(int L1,int L2,int Step,int Col) { int i,ii,j=0; string Comm=""; double kL,LC1,LC2,LC3,k,St; kL=(Low[L1]-Low[L2])/(L2-L1); while (NormalizeDouble(Point,j)==0)j++; k=0; for(i=L1;i>0;i--)if(Close[i]<Low[L2]+kL*(L2-i)){k=Low[L2]+kL*(L2-i);break;} if (k>0) { Comm=Comm+"LTD_Line ("+DoubleToStr(Low[L2]+kL*L2,j)+") broken at "+DoubleToStr(k,j)+", downtargets:\n"; ii=Highest(NULL,0,MODE_HIGH,L2-i,i); LC1=High[ii]-(Low[L2]+kL*(L2-ii)); LC2=Close[ii]-(Low[L2]+kL*(L2-ii)); i=Highest(NULL,0,MODE_CLOSE,L2-i,i); LC3=Close[ii]-(Low[L2]+kL*(L2-ii)); St=STYLE_SOLID; } else { k=Low[L2]+kL*L2; Comm=Comm+"LTD_Line ("+DoubleToStr(k,j)+"), probable downbreak targets:\n"; ii=Highest(NULL,0,MODE_HIGH,L2,0); LC1=High[ii]-(Low[L2]+kL*(L2-ii)); LC2=Close[ii]-(Low[L2]+kL*(L2-ii)); ii=Highest(NULL,0,MODE_CLOSE,L2,0); LC3=Close[ii]-(Low[L2]+kL*(L2-ii)); St=STYLE_DASHDOT; } ObjectSet("LL_"+Step,OBJPROP_STYLE,St); Comm=Comm+"T1="+DoubleToStr(k-LC1,j)+" ("+DoubleToStr(LC1/Point,0)+"pts.)"; Comm=Comm+" T2="+DoubleToStr(k-LC2,j)+" ("+DoubleToStr(LC2/Point,0)+"pts.)"; Comm=Comm+" T3="+DoubleToStr(k-LC3,j)+" ("+DoubleToStr(LC3/Point,0)+"pts.)\n"; ObjectSet("LC1_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC1_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC1_"+Step,OBJPROP_PRICE1,k-LC1);ObjectSet("LC1_"+Step,OBJPROP_PRICE2,k-LC1); ObjectSet("LC1_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC1_"+Step,OBJPROP_STYLE,St); ObjectSet("LC2_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC2_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC2_"+Step,OBJPROP_PRICE1,k-LC2);ObjectSet("LC2_"+Step,OBJPROP_PRICE2,k-LC2); ObjectSet("LC2_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC2_"+Step,OBJPROP_STYLE,St); ObjectSet("LC3_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC3_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC3_"+Step,OBJPROP_PRICE1,k-LC3);ObjectSet("LC3_"+Step,OBJPROP_PRICE2,k-LC3); ObjectSet("LC3_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC3_"+Step,OBJPROP_STYLE,St); if (Step==1) { ObjectSet("LC1_"+Step,OBJPROP_WIDTH,2); ObjectSet("LC2_"+Step,OBJPROP_WIDTH,2); ObjectSet("LC3_"+Step,OBJPROP_WIDTH,2); } else { ObjectSet("LC1_"+Step,OBJPROP_WIDTH,1); ObjectSet("LC2_"+Step,OBJPROP_WIDTH,1); ObjectSet("LC3_"+Step,OBJPROP_WIDTH,1); } return(Comm); } //-------------------------------------------------------------------- string TDMain(int Step) { int H1,H2,L1,L2; string Comm="--- step "+Step+" --------------------\n"; int i,j; while (NormalizeDouble(Point,j)==0)j++; double Style; double Col[20];Col[0]=Red;Col[2]=Magenta;Col[4]=Chocolate;Col[6]=Goldenrod;Col[8]=SlateBlue; Col[1]=Blue;Col[3]=DeepSkyBlue;Col[5]=Green;Col[7]=MediumOrchid;Col[9]=CornflowerBlue; Col[10]=Red;Col[12]=Magenta;Col[14]=Chocolate;Col[16]=Goldenrod;Col[18]=SlateBlue; Col[11]=Blue;Col[13]=DeepSkyBlue;Col[15]=Green;Col[17]=MediumOrchid;Col[19]=CornflowerBlue; Step=Step+BackSteps; H1=GetHighTD(Step); H2=GetNextHighTD(H1); L1=GetLowTD(Step); L2=GetNextLowTD(L1); if (H1<0)Comm=Comm+"UTD no TD up-point \n"; else if (H2<0)Comm=Comm+"UTD no TD point-upper then last one ("+DoubleToStr(High[H1],j)+")\n"; else Comm=Comm+"UTD "+DoubleToStr(High[H2],j)+" "+DoubleToStr(High[H1],j)+"\n"; if (L1<0)Comm=Comm+"LTD no TD down-point \n"; else if (L2<0)Comm=Comm+"LTD no TD point-lower then last one ("+DoubleToStr(Low[L1],j)+")\n"; else Comm=Comm+"LTD "+DoubleToStr(Low[L2],j)+" "+DoubleToStr(Low[L1],j)+"\n"; //----------------------------------------------------------------------------------- if (Step==1)Style=STYLE_SOLID; else Style=STYLE_DOT; if (H1>0 && H2>0) { if (TrendLine==1) { ObjectCreate("HL_"+Step,OBJ_TREND,0,0,0,0,0); TrendLineHighTD(H1,H2,Step,Col[Step*2-2]); } else ObjectDelete("HL_"+Step); if (HorizontLine==1 && Step==1) { ObjectCreate("HHL_"+Step,OBJ_HLINE,0,0,0,0,0); HorizontLineHighTD(H1,H2,Step,Style,Col[Step*2-2]); } else ObjectDelete("HHL_"+Step); if (TakeProf==1) { ObjectCreate("HC1_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("HC2_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("HC3_"+Step,OBJ_TREND,0,0,0,0,0); Comm=Comm+TakeProfitHighTD(H1,H2,Step,Col[Step*2-2]); } else { ObjectDelete("HC1_"+Step); ObjectDelete("HC2_"+Step); ObjectDelete("HC3_"+Step); } } //----------------------------------------------------------------------------------- if (L1>0 && L2>0) { if (TrendLine==1) { ObjectCreate("LL_"+Step,OBJ_TREND,0,0,0,0,0); TrendLineLowTD(L1,L2,Step,Col[Step*2-1]); } else ObjectDelete("LL_"+Step); if (HorizontLine==1 && Step==1) { ObjectCreate("HLL_"+Step,OBJ_HLINE,0,0,0,0,0); HorizontLineLowTD(L1,L2,Step,Style,Col[Step*2-1]); } else ObjectDelete("HLL_"+Step); if (TakeProf==1) { ObjectCreate("LC1_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("LC2_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("LC3_"+Step,OBJ_TREND,0,0,0,0,0); Comm=Comm+TakeProfitLowTD(L1,L2,Step,Col[Step*2-1]); } else { ObjectDelete("LC1_"+Step); ObjectDelete("LC2_"+Step); ObjectDelete("LC3_"+Step); } } return(Comm); } //-------------------------------------------------------------------- int start() { string Comm=""; SetTDPoint(Bars-1); if (TD==1) { SetIndexArrow(0,217); SetIndexArrow(1,218); } else { SetIndexArrow(0,160); SetIndexArrow(1,160); } if (ShowingSteps>10) { Comment("ShowingSteps readings 0 - 10"); return(0); } for (int i=1;i<=ShowingSteps;i++)Comm=Comm+TDMain(i); Comm=Comm+"------------------------------------\nShowingSteps="+ShowingSteps+"\nBackSteps="+BackSteps; if (FractalAsTD==true)Comm=Comm+"\nFractals"; else Comm=Comm+"\nTD point"; if (Commen==1)Comment(Comm); else Comment(""); return(0); } //+------------------------------------------------------------------+
    Modifié le 2012-08-06 10:56:19 par Lu-K : balises code
  • forcizen

    VOILA UNE BELLE OCCASION SUR GBP GPY LE 01/08/2012 +106 PIPS



    forcizen a joint une image
    indicateur-de-demark-5534
  • forcizen

    L'occasion du jour sur USD JPY !
    forcizen a joint une image
    indicateur-de-demark-5569
  • forex49 (invité)

    salu ton indicateur repeint tres souvent je les tester en baktest avec lfh on prend position a la sorti par le haut ou le bas et apres il se recalcul
  • forcizen — en réponse à forex49 dans son message #56576

    salut
    le principe de Demark est simple donc tu peut vérifier la certitude de l'indicateur par une simple vue avant de prendre une position :)
  • jagaur1637

    Salut

    Demark colle à peu près bien au curve fitting, sa Pearson corrélation de cet indicateur au prix est interessante.

    Bon, si cela est un peu compliqué, quand la corrélation est supérieure à 0.5, c'est bon, au delà, passé 0.75, c'est très bon

    A+
  • ben73390

    Heu il repeint pas temps que ca soit tu doit mal interprété l'indicateur j'ai fait 4 trade avec cette indicateur les 4 trade on été gagnant !
    Il est super cette stratégie
  • jagaur1637

    OK et comment EURUSD ? H1? M5 ???
  • ben73390

    en h1 regarde C'est un trade que j'ai vraiment prit j'ai fermé a 25pips
    ben73390 a joint une image
    indicateur-de-demark-5948
  • jagaur1637

    Excellent

    je t'envoie ma derniere création basé sur DeMarker

    A la place du Close, je prends le signal HP

    heu, c'est koi ton émail perso ?
  • ben73390

    Je n est rien comprit tu peut me là refaire stp
  • jagaur1637

    je te l'expliquerai dans l'émail que tu me donneras
  • forcizen — en réponse à jagaur1637 dans son message #60373

    jagaur1637, le 03/11/2012 dit :
    OK et comment EURUSD ? H1? M5 ???

    Salut, il marche aussi sur EUR USD, tu peut utiliser le frame H1 il donne des bonnes résultats, et n'oublier pas que c'est un indicateur qui repose sur la cassation de tendance donc M5 à éviter à+ !
  • ben73390

    C'est bon je tes envoyé mon email en privée :)
  • jagaur1637

    rien recu en email prive <;)
  • wimz01

    Bonjour, pouvez-vous m'expliquer comment on utilise les lignes de programmes pour les intégrer dans mt4, il faut le coller dans un fichier text ou le compiler avec l'editeur d'ea de mt4 ? OU AUTRE ?
  • Alh-Doh — en réponse à wimz01 dans son message #60426

    wimz01, le 04/11/2012 dit :
    Bonjour, pouvez-vous m'expliquer comment on utilise les lignes de programmes pour les intégrer dans mt4, il faut le coller dans un fichier text ou le compiler avec l'editeur d'ea de mt4 ? OU AUTRE ?


    Il faut le compiler en tant Indicateur personnel, donc dans metaediteur, faire nouveau, indicateur personnel. Tu effaces tout et colle celui ci.

    Mais bon, ça va pas marcher !
    Parce que le BBcode "code" n'a pas conservé les espaces et retour à la ligne, et c'est long à tout remettre.
    Je m'y suis collé, ça donne un code pas joli mais c'est le même et il marche, en esperant que les espace et retour seront gardés.

    Code
    //+------------------------------------------------------------------+ //| TD-DeMark-3-1.mq4 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Ind-TD-DeMark-3-1.mq4 | //| Copyright © 2005, Kara Software Corp. | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Kara Software Corp." #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- input parameters extern int BackSteps=0; extern int ShowingSteps=1; extern bool FractalAsTD=false; extern bool Commen=true; extern bool TD=true; extern bool TrendLine=true; extern bool HorizontLine=true; extern bool TakeProf=true; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //==================================================================== int init() { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); for (int i=1;i<=10;i++) { ObjectDelete("HHL_"+i);ObjectDelete("HL_"+i); ObjectDelete("HLL_"+i);ObjectDelete("LL_"+i); ObjectDelete("HC1_"+i); ObjectDelete("HC2_"+i); ObjectDelete("HC3_"+i); ObjectDelete("LC1_"+i); ObjectDelete("LC2_"+i); ObjectDelete("LC3_"+i); } Comment(""); return(0); } int deinit() { for (int i=1;i<=10;i++) { ObjectDelete("HHL_"+i);ObjectDelete("HL_"+i); ObjectDelete("HLL_"+i);ObjectDelete("LL_"+i); ObjectDelete("HC1_"+i); ObjectDelete("HC2_"+i); ObjectDelete("HC3_"+i); ObjectDelete("LC1_"+i); ObjectDelete("LC2_"+i); ObjectDelete("LC3_"+i); } Comment(""); return(0); } //-------------------------------------------------------------------- int SetTDPoint(int B) { int shift; if (FractalAsTD==false) { for (shift=B;shift>1;shift--) { if (High[shift+1]<High[shift] && High[shift-1]<High[shift] && Close[shift+2]<High[shift]) ExtMapBuffer1[shift]=High[shift]; else ExtMapBuffer1[shift]=0; if (Low[shift+1]>Low[shift] && Low[shift-1]>Low[shift] && Close[shift+2]>Low[shift]) ExtMapBuffer2[shift]=Low[shift]; else ExtMapBuffer2[shift]=0; } ExtMapBuffer1[0]=0; ExtMapBuffer2[0]=0; ExtMapBuffer1[1]=0; ExtMapBuffer2[1]=0; } else { for (shift=B;shift>3;shift--) { if (High[shift+1]<=High[shift] && High[shift-1]<High[shift] && High[shift+2]<=High[shift] && High[shift-2]<High[shift]) ExtMapBuffer1[shift]=High[shift]; else ExtMapBuffer1[shift]=0; if (Low[shift+1]>=Low[shift] && Low[shift-1]>Low[shift] && Low[shift+2]>=Low[shift] && Low[shift-2]>Low[shift]) ExtMapBuffer2[shift]=Low[shift]; else ExtMapBuffer2[shift]=0; } ExtMapBuffer1[0]=0; ExtMapBuffer2[0]=0; ExtMapBuffer1[1]=0; ExtMapBuffer2[1]=0; ExtMapBuffer1[2]=0; ExtMapBuffer2[2]=0; } return(0); } //-------------------------------------------------------------------- int GetHighTD(int P) { int i=0,j=0; while (j<P) { i++; while(ExtMapBuffer1[i]==0) {i++;if(i>Bars-2)return(-1);} j++; } return (i); } //-------------------------------------------------------------------- int GetNextHighTD(int P) { int i=P+1; while(ExtMapBuffer1[i]<=High[P]){i++;if(i>Bars-2)return(-1);} return (i); } //-------------------------------------------------------------------- int GetLowTD(int P) { int i=0,j=0; while (j<P) { i++; while(ExtMapBuffer2[i]==0) {i++;if(i>Bars-2)return(-1);} j++; } return (i); } //-------------------------------------------------------------------- int GetNextLowTD(int P) { int i=P+1; while(ExtMapBuffer2[i]>=Low[P] || ExtMapBuffer2[i]==0){i++;if(i>Bars-2)return(-1);} return (i); } //-------------------------------------------------------------------- int TrendLineHighTD(int H1,int H2,int Step,int Col) { ObjectSet("HL_"+Step,OBJPROP_TIME1,Time[H2]);ObjectSet("HL_"+Step,OBJPROP_TIME2,Time[H1]); ObjectSet("HL_"+Step,OBJPROP_PRICE1,High[H2]);ObjectSet("HL_"+Step,OBJPROP_PRICE2,High[H1]); ObjectSet("HL_"+Step,OBJPROP_COLOR,Col); if (Step==1)ObjectSet("HL_"+Step,OBJPROP_WIDTH,2); else ObjectSet("HL_"+Step,OBJPROP_WIDTH,1); return(0); } //-------------------------------------------------------------------- int TrendLineLowTD(int L1,int L2,int Step,int Col) { ObjectSet("LL_"+Step,OBJPROP_TIME1,Time[L2]);ObjectSet("LL_"+Step,OBJPROP_TIME2,Time[L1]); ObjectSet("LL_"+Step,OBJPROP_PRICE1,Low[L2]);ObjectSet("LL_"+Step,OBJPROP_PRICE2,Low[L1]); ObjectSet("LL_"+Step,OBJPROP_COLOR,Col); if (Step==1)ObjectSet("LL_"+Step,OBJPROP_WIDTH,2); else ObjectSet("LL_"+Step,OBJPROP_WIDTH,1); return(0); } //-------------------------------------------------------------------- int HorizontLineHighTD(int H1,int H2,int Step,double St,int Col) { ObjectSet("HHL_"+Step,OBJPROP_PRICE1,High[H2]-(High[H2]-High[H1])/(H2-H1)*H2); ObjectSet("HHL_"+Step,OBJPROP_STYLE,St); ObjectSet("HHL_"+Step,OBJPROP_COLOR,Col); return(0); } //-------------------------------------------------------------------- int HorizontLineLowTD(int L1,int L2,int Step,double St,int Col) { ObjectSet("HLL_"+Step,OBJPROP_PRICE1,Low[L2]+(Low[L1]-Low[L2])/(L2-L1)*L2); ObjectSet("HLL_"+Step,OBJPROP_STYLE,St); ObjectSet("HLL_"+Step,OBJPROP_COLOR,Col); return(0); } //-------------------------------------------------------------------- string TakeProfitHighTD(int H1,int H2,int Step,int Col) { int i,ii,j=0; string Comm=""; double kH,HC1,HC2,HC3,k,St; kH=(High[H2]-High[H1])/(H2-H1); while (NormalizeDouble(Point,j)==0)j++; k=0; for(i=H1;i>0;i--)if(Close[i]>High[H2]-kH*(H2-i)){k=High[H2]-kH*(H2-i);break;} if (k>0) { Comm=Comm+"UTD_Line ("+DoubleToStr(High[H2]-kH*H2,j)+") broken at "+DoubleToStr(k,j)+", uptargets:\n"; ii=Lowest(NULL,0,MODE_LOW,H2-i,i); HC1=High[H2]-kH*(H2-ii)-Low[ii]; HC2=High[H2]-kH*(H2-ii)-Close[ii]; ii=Lowest(NULL,0,MODE_CLOSE,H2-i,i); HC3=High[H2]-kH*(H2-ii)-Close[ii]; St=STYLE_SOLID; } else { k=High[H2]-kH*H2; Comm=Comm+"UTD_Line ("+DoubleToStr(k,j)+"), probable break-up targets:\n"; ii=Lowest(NULL,0,MODE_LOW,H2,0); HC1=High[H2]-kH*(H2-ii)-Low[ii]; HC2=High[H2]-kH*(H2-ii)-Close[ii]; ii=Lowest(NULL,0,MODE_CLOSE,H2,0); HC3=High[H2]-kH*(H2-ii)-Close[ii]; St=STYLE_DASHDOT; } ObjectSet("HL_"+Step,OBJPROP_STYLE,St); Comm=Comm+"T1="+DoubleToStr(HC1+k,j)+" ("+DoubleToStr(HC1/Point,0)+"pts.)"; Comm=Comm+" T2="+DoubleToStr(HC2+k,j)+" ("+DoubleToStr(HC2/Point,0)+"pts.)"; Comm=Comm+" T3="+DoubleToStr(HC3+k,j)+" ("+DoubleToStr(HC3/Point,0)+"pts.)\n"; ObjectSet("HC1_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC1_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC1_"+Step,OBJPROP_PRICE1,HC1+k);ObjectSet("HC1_"+Step,OBJPROP_PRICE2,HC1+k); ObjectSet("HC1_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC1_"+Step,OBJPROP_STYLE,St); ObjectSet("HC2_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC2_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC2_"+Step,OBJPROP_PRICE1,HC2+k);ObjectSet("HC2_"+Step,OBJPROP_PRICE2,HC2+k); ObjectSet("HC2_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC2_"+Step,OBJPROP_STYLE,St); ObjectSet("HC3_"+Step,OBJPROP_TIME1,Time[H1]);ObjectSet("HC3_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("HC3_"+Step,OBJPROP_PRICE1,HC3+k);ObjectSet("HC3_"+Step,OBJPROP_PRICE2,HC3+k); ObjectSet("HC3_"+Step,OBJPROP_COLOR,Col);ObjectSet("HC3_"+Step,OBJPROP_STYLE,St); if (Step==1) { ObjectSet("HC1_"+Step,OBJPROP_WIDTH,2); ObjectSet("HC2_"+Step,OBJPROP_WIDTH,2); ObjectSet("HC3_"+Step,OBJPROP_WIDTH,2); } else { ObjectSet("HC1_"+Step,OBJPROP_WIDTH,1); ObjectSet("HC2_"+Step,OBJPROP_WIDTH,1); ObjectSet("HC3_"+Step,OBJPROP_WIDTH,1); } return(Comm); } //-------------------------------------------------------------------- string TakeProfitLowTD(int L1,int L2,int Step,int Col) { int i,ii,j=0; string Comm=""; double kL,LC1,LC2,LC3,k,St; kL=(Low[L1]-Low[L2])/(L2-L1); while (NormalizeDouble(Point,j)==0)j++; k=0; for(i=L1;i>0;i--)if(Close[i]<Low[L2]+kL*(L2-i)){k=Low[L2]+kL*(L2-i);break;} if (k>0) { Comm=Comm+"LTD_Line ("+DoubleToStr(Low[L2]+kL*L2,j)+") broken at "+DoubleToStr(k,j)+", downtargets:\n"; ii=Highest(NULL,0,MODE_HIGH,L2-i,i); LC1=High[ii]-(Low[L2]+kL*(L2-ii)); LC2=Close[ii]-(Low[L2]+kL*(L2-ii)); i=Highest(NULL,0,MODE_CLOSE,L2-i,i); LC3=Close[ii]-(Low[L2]+kL*(L2-ii)); St=STYLE_SOLID; } else { k=Low[L2]+kL*L2; Comm=Comm+"LTD_Line ("+DoubleToStr(k,j)+"), probable downbreak targets:\n"; ii=Highest(NULL,0,MODE_HIGH,L2,0); LC1=High[ii]-(Low[L2]+kL*(L2-ii)); LC2=Close[ii]-(Low[L2]+kL*(L2-ii)); ii=Highest(NULL,0,MODE_CLOSE,L2,0); LC3=Close[ii]-(Low[L2]+kL*(L2-ii)); St=STYLE_DASHDOT; } ObjectSet("LL_"+Step,OBJPROP_STYLE,St); Comm=Comm+"T1="+DoubleToStr(k-LC1,j)+" ("+DoubleToStr(LC1/Point,0)+"pts.)"; Comm=Comm+" T2="+DoubleToStr(k-LC2,j)+" ("+DoubleToStr(LC2/Point,0)+"pts.)"; Comm=Comm+" T3="+DoubleToStr(k-LC3,j)+" ("+DoubleToStr(LC3/Point,0)+"pts.)\n"; ObjectSet("LC1_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC1_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC1_"+Step,OBJPROP_PRICE1,k-LC1);ObjectSet("LC1_"+Step,OBJPROP_PRICE2,k-LC1); ObjectSet("LC1_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC1_"+Step,OBJPROP_STYLE,St); ObjectSet("LC2_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC2_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC2_"+Step,OBJPROP_PRICE1,k-LC2);ObjectSet("LC2_"+Step,OBJPROP_PRICE2,k-LC2); ObjectSet("LC2_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC2_"+Step,OBJPROP_STYLE,St); ObjectSet("LC3_"+Step,OBJPROP_TIME1,Time[L1]);ObjectSet("LC3_"+Step,OBJPROP_TIME2,Time[0]); ObjectSet("LC3_"+Step,OBJPROP_PRICE1,k-LC3);ObjectSet("LC3_"+Step,OBJPROP_PRICE2,k-LC3); ObjectSet("LC3_"+Step,OBJPROP_COLOR,Col);ObjectSet("LC3_"+Step,OBJPROP_STYLE,St); if (Step==1) { ObjectSet("LC1_"+Step,OBJPROP_WIDTH,2); ObjectSet("LC2_"+Step,OBJPROP_WIDTH,2); ObjectSet("LC3_"+Step,OBJPROP_WIDTH,2); } else { ObjectSet("LC1_"+Step,OBJPROP_WIDTH,1); ObjectSet("LC2_"+Step,OBJPROP_WIDTH,1); ObjectSet("LC3_"+Step,OBJPROP_WIDTH,1); } return(Comm); } //-------------------------------------------------------------------- string TDMain(int Step) { int H1,H2,L1,L2; string Comm="--- step "+Step+" --------------------\n"; int i,j; while (NormalizeDouble(Point,j)==0)j++; double Style; double Col[20];Col[0]=Red;Col[2]=Magenta;Col[4]=Chocolate;Col[6]=Goldenrod;Col[8]=SlateBlue; Col[1]=Blue;Col[3]=DeepSkyBlue;Col[5]=Green;Col[7]=MediumOrchid;Col[9]=CornflowerBlue; Col[10]=Red;Col[12]=Magenta;Col[14]=Chocolate;Col[16]=Goldenrod;Col[18]=SlateBlue; Col[11]=Blue;Col[13]=DeepSkyBlue;Col[15]=Green;Col[17]=MediumOrchid; Col[19]=CornflowerBlue; Step=Step+BackSteps; H1=GetHighTD(Step); H2=GetNextHighTD(H1); L1=GetLowTD(Step); L2=GetNextLowTD(L1); if (H1<0)Comm=Comm+"UTD no TD up-point \n"; else if (H2<0)Comm=Comm+"UTD no TD point-upper then last one ("+DoubleToStr(High[H1],j)+")\n"; else Comm=Comm+"UTD "+DoubleToStr(High[H2],j)+" "+DoubleToStr(High[H1],j)+"\n"; if (L1<0)Comm=Comm+"LTD no TD down-point \n"; else if (L2<0)Comm=Comm+"LTD no TD point-lower then last one ("+DoubleToStr(Low[L1],j)+")\n"; else Comm=Comm+"LTD "+DoubleToStr(Low[L2],j)+" "+DoubleToStr(Low[L1],j)+"\n"; //----------------------------------------------------------------------------------- if (Step==1)Style=STYLE_SOLID; else Style=STYLE_DOT; if (H1>0 && H2>0) { if (TrendLine==1) { ObjectCreate("HL_"+Step,OBJ_TREND,0,0,0,0,0); TrendLineHighTD(H1,H2,Step,Col[Step*2-2]); } else ObjectDelete("HL_"+Step); if (HorizontLine==1 && Step==1) { ObjectCreate("HHL_"+Step,OBJ_HLINE,0,0,0,0,0); HorizontLineHighTD(H1,H2,Step,Style,Col[Step*2-2]); } else ObjectDelete("HHL_"+Step); if (TakeProf==1) { ObjectCreate("HC1_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("HC2_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("HC3_"+Step,OBJ_TREND,0,0,0,0,0); Comm=Comm+TakeProfitHighTD(H1,H2,Step,Col[Step*2-2]); } else { ObjectDelete("HC1_"+Step); ObjectDelete("HC2_"+Step); ObjectDelete("HC3_"+Step); } } //----------------------------------------------------------------------------------- if (L1>0 && L2>0) { if (TrendLine==1) { ObjectCreate("LL_"+Step,OBJ_TREND,0,0,0,0,0); TrendLineLowTD(L1,L2,Step,Col[Step*2-1]); } else ObjectDelete("LL_"+Step); if (HorizontLine==1 && Step==1) { ObjectCreate("HLL_"+Step,OBJ_HLINE,0,0,0,0,0); HorizontLineLowTD(L1,L2,Step,Style,Col[Step*2-1]); } else ObjectDelete("HLL_"+Step); if (TakeProf==1) { ObjectCreate("LC1_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("LC2_"+Step,OBJ_TREND,0,0,0,0,0); ObjectCreate("LC3_"+Step,OBJ_TREND,0,0,0,0,0); Comm=Comm+TakeProfitLowTD(L1,L2,Step,Col[Step*2-1]); } else { ObjectDelete("LC1_"+Step); ObjectDelete("LC2_"+Step); ObjectDelete("LC3_"+Step); } } return(Comm); } //-------------------------------------------------------------------- int start() { string Comm=""; SetTDPoint(Bars-1); if (TD==1) { SetIndexArrow(0,217); SetIndexArrow(1,218); } else { SetIndexArrow(0,160); SetIndexArrow(1,160); } if (ShowingSteps>10) { Comment("ShowingSteps readings 0 - 10"); return(0); } for (int i=1;i<=ShowingSteps;i++)Comm=Comm+TDMain(i); Comm=Comm+"------------------------------------\nShowingSteps="+ShowingSteps+"\nBackSteps="+BackSteps; if (FractalAsTD==true)Comm=Comm+"\nFractals"; else Comm=Comm+"\nTD point"; if (Commen==1)Comment(Comm); else Comment(""); return(0); } //+------------------------------------------------------------------+
    Il ne te reste plus qu'a remplacer les smileys par le code d'origine lol
    Modifié le 2012-11-05 13:53:21 par AliX
  • Duiling

    Bonjour, pourriez vous me dire si cette stratégie est valable pour tous les UT ou juste H4 ?

    Merci



    EDIT; J'ai trouvé
    Modifié le 2012-12-17 16:04:30 par AliX
  • jagaur1637

    Voila une bonne question.

    Mais en fait, elle soulève 2 aspects essentiels
    - d'abord, ce que tu montres par ta question , c'est que tu veux un indicateur qui "colle" au marché
    Question :
    - est-ce que cet indicateur est correlé au marché (R des fois oui, des fois non) ?
    - est-ce que cela dépend de la nature du marché (tendance forte ou bien marché plat .. comme par exemple la nuit) si oui, indiquer une fonctione de Time Filter pour ne trader qu'aux heures choisies

    deuxiemement, 2cnde question
    - Comment peux-ton mesure la corrélation de cet indicateur avec le marché ? ok, je te trouve un exemple de corrélation linéraire (cad pearson ) pour savoir s'il colle au marché

    - troisiemement, 3ieme question :
    - quel est l'indicateur que tu vas utiliser dans ta logique pour confirmer les signaux du DeMarker
    (VQ, Volume, Momentum RSI, AC, BB...)

    Voila, se poser les bonnes questions :
    - choisir la bonne stratégie correspondant le mieux à sa façon de penser
    - trouver un squelette d'EA qui gère correctement, le STOPLOSS (a priori, pratiquement aucun ne le font correctement), le take profit, le breakeven, pour locker les petits gains .. etc

    Bon, le fichier ne passe pas, je le colle dans le texte
    A priori, la période de la correlation dépend de la TF, pour la DeMarker Period, idem, choisis une valeur entre 8 et 14
    Code
    //+------------------------------------------------------------------+ //| correlations DeMarker to price.mq4 | //| jaguar1637 in the same spirit of mladen | //| Pearson correlation of Demarker to price | //+------------------------------------------------------------------+ #property copyright "jaguar1637" #property link "http://beathespread.com" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Orange #property indicator_width1 2 #property indicator_maximum 1.1 #property indicator_minimum -1.1 #property indicator_level1 0 #property indicator_level2 0.50 #property indicator_level3 -0.50 #property indicator_levelcolor DimGray extern int CorrelationPeriod = 8; extern int Price = PRICE_CLOSE; extern int PriceSmoothPeriod = 0; extern int PriceSmoothPhase = 0; extern int PosCorrSmoothPeriod = 0; extern int PosCorrSmoothPhase = 0; //---------- DeMarker ---------------------- extern string Indicator_Setting = "---------- Indicator Setting"; //---- input parameters extern int DeMarkerPeriod=14; double corr[]; double EV[]; double price[]; int init() { IndicatorBuffers(3); SetIndexBuffer(0,corr); SetIndexBuffer(1,EV); SetIndexBuffer(2,price); return(0); } int start() { int counted_bars=IndicatorCounted(); int i,limit; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=MathMin(Bars-counted_bars,Bars-1); for(i=limit;i>=0;i--) { EV[i]= iDeMarker(NULL,0,DeMarkerPeriod,i); price[i] = iSmooth(iMA(NULL,0,1,0,MODE_SMA,Price,i),PriceSmoothPeriod,PriceSmoothPhase,i,0); corr[i] = iSmooth(iCorrelation(EV,price,CorrelationPeriod,i),PosCorrSmoothPeriod,PosCorrSmoothPhase,i,10); } return(0); } double iCorrelation(double& first[], double& second[], int length, int i) { double sx = 0; double sy = 0; double sxy = 0; double sx2 = 0; double sy2 = 0; for (int k=0; k<length; k++) { double pricea = first[i+k]; double priceb = second[i+k]; sx += pricea; sx2 += pricea*pricea; sy += priceb; sy2 += priceb*priceb; sxy += pricea*priceb; } double result = 0; double divisor = MathSqrt(((sx2-(sx*sx)/length)*(sy2-(sy*sy)/length))); if (divisor != 0) result = (sxy - (sx*sy)/length)/divisor; return(result); } double wrk[][30]; #define bsmax 5 #define bsmin 6 #define volty 7 #define vsum 8 #define avolty 9 double iSmooth(double price, double length, double phase, int i, int s) { if (ArrayRange(wrk,0) != Bars) ArrayResize(wrk,Bars); if (length <=1) return(price); int r = Bars-i-1; if (r==0) { for(int k=0; k<7; k++) wrk[0][k+s]=price; for(; k<10; k++) wrk[0][k+s]=0; return(price); } double len1 = MathMax(MathLog(MathSqrt(0.5*(length-1)))/MathLog(2.0)+2.0,0); double pow1 = MathMax(len1-2.0,0.5); double del1 = price - wrk[r-1][bsmax+s]; double del2 = price - wrk[r-1][bsmin+s]; double div = 1.0/(10.0+10.0*(MathMin(MathMax(length-10,0),100))/100); int forBar = MathMin(r,10); wrk[r][volty+s] = 0; if(MathAbs(del1) > MathAbs(del2)) wrk[r][volty+s] = MathAbs(del1); if(MathAbs(del1) < MathAbs(del2)) wrk[r][volty+s] = MathAbs(del2); wrk[r][vsum+s] = wrk[r-1][vsum+s] + (wrk[r][volty+s]-wrk[r-forBar][volty+s])*div; wrk[r][avolty+s] = wrk[r-1][avolty+s]+(2.0/(MathMax(4.0*length,30)+1.0))*(wrk[r][vsum+s]-wrk[r-1][avolty+s]); if (wrk[r][avolty+s] > 0) double dVolty = wrk[r][volty+s]/wrk[r][avolty+s]; else dVolty = 0; if (dVolty > MathPow(len1,1.0/pow1)) dVolty = MathPow(len1,1.0/pow1); if (dVolty < 1) dVolty = 1.0; double pow2 = MathPow(dVolty, pow1); double len2 = MathSqrt(0.5*(length-1))*len1; double Kv = MathPow(len2/(len2+1), MathSqrt(pow2)); if (del1 > 0) wrk[r][bsmax+s] = price; else wrk[r][bsmax+s] = price - Kv*del1; if (del2 < 0) wrk[r][bsmin+s] = price; else wrk[r][bsmin+s] = price - Kv*del2; double R = MathMax(MathMin(phase,100),-100)/100.0 + 1.5; double beta = 0.45*(length-1)/(0.45*(length-1)+2); double alpha = MathPow(beta,pow2); wrk[r][0+s] = price + alpha*(wrk[r-1][0+s]-price); wrk[r][1+s] = (price - wrk[r][0+s])*(1-beta) + beta*wrk[r-1][1+s]; wrk[r][2+s] = (wrk[r][0+s] + R*wrk[r][1+s]); wrk[r][3+s] = (wrk[r][2+s] - wrk[r-1][4+s])*MathPow((1-alpha),2) + MathPow(alpha,2)*wrk[r-1][3+s]; wrk[r][4+s] = (wrk[r-1][4+s] + wrk[r][3+s]); return(wrk[r][4+s]); }
    Jaguar1637
    de beathespread.com
    Modifié le 2012-12-17 17:38:41 par AliX
  • jagaur1637

    take this
    jagaur1637 a joint une image
    indicateur-de-demark-6406