- Aide au codage
- Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes.
- [Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi.
Est-ce ainsi que la fonction peut être prescrite ? Mais la couleur ne change pas aux niveaux individuels ; peut-il y avoir une erreur quelque part ou quelque chose d'autre doit être ajouté ? ???
int fibo(datetime X1, double Y1, datetime X2, double Y2)
{
ObjectCreate("Fibo", OBJ_FIBO, 0, 0, 0, 0) ; // Créer un objet de niveaux Fibonacci
ObjectSet("Fibo",OBJPROP_COLOR,clrRed) ; // couleur de la diagonale
//ObjectSet("Fibo",OBJPROP_LEVELCOLOR,clrBlue) ; //la couleur des niveaux est la même
//ObjectSetInteger(0, "Fibo",OBJPROP_BACK,true);//--- affichage en avant-plan (false) ou en arrière-plan (true)
ObjectSet("Fibo",OBJPROP_FIBOLEVELS,13) ; //réglage du nombre de niveaux de l'objet
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+0,0.000);//définir la valeur de chaque niveau d'objet
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,0,0.000) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,0,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,0,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,0,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",0, "0.000") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+1,0.146) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1,0.146) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,1,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,1,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,1,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",1, "0.146") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+2,0.236) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,2,0.236) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,2,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,2,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,2,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",2, "0.236") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+3,0.382) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,3,0.382) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,3,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,3,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,3,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",3, "0.382") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+4,0.5) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,4,0.5) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,4,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,4,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,4,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",4, "0.5") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+5,0.618) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,5,0.618) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,5,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,5,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,5,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",5, "0.618") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+6,0.764) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,6,0.764) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,6,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,6,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,6,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",6, "0.764") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+7,1) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,7,1) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,7,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,7,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,7,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",7, "1") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+8,1.236) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,8,1.236) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,8,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,8,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,8,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",8, "1.236") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+9,1.618) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,9,1.618) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,9,clrGreen) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,9,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,9,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",9, "1.618") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+10,-0.236) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,10,-0.236) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,10,clrBlue) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,10,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,10,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",10,"-0.236") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+11,-0.618) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,11,-0.618) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,11,clrBlue) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,11,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,11,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",11,"-0.618") ;
ObjectSet("Fibo",OBJPROP_FIRSTLEVEL+12,-1) ;
ObjectSetDouble(0, "Fibo",OBJPROP_LEVELVALUE,12,-1) ;
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELCOLOR,12,clrBlue) ; // couleur de niveau
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELSTYLE,12,STYLE_SOLID);//Line
ObjectSetInteger(0, "Fibo",OBJPROP_LEVELWIDTH,12,1) ; //--- épaisseur de niveau
ObjectSetFiboDescription("Fibo",12,"-1") ;
ObjectMove("Fibo", 1, X1, Y1) ;
ObjectMove("Fibo",0, X2, Y2) ;
retour(0) ;
}
int fFiboLevels(string Prefix,int Number ,int Bar1,double Price1 ,int Bar2,double Price2 ,int Bar3,double Price3 ,color Цвет,color ЦветОтката ,int Видимость=0,int Толщина=1 ,int УровнейПродолжения=6,int УровнейОтката=5 ,int Стиль=STYLE_SOLID,int СтильУровня=STYLE_DOT ,bool Луч=false,bool Фон=false){ int Error; string Name; datetime Time1=Time[Bar1], Time2=Time[Bar2], Time3=Time[Bar3]; if( Bar1<=Bar2 || Bar2<=Bar3 || Bar3<1 || Price1<Zero || Price2<Zero || Price3<Zero || Price3-MathMax(Price1,Price2)>Zero || MathMin(Price1,Price2)-Price3>Zero ) return(MyError); Name=Prefix+"Targets "; if( Number>0 ) Name=Name+Number; if( ObjectFind(Name)>=0 ) { if( !ObjectDelete(Name) ) { Error=GetLastError(); PlaySound("alert.wav"); Print("***** "+Name+" не создан, ошибка удаления "+Error); return(Error); } } if( ObjectCreate(Name,OBJ_EXPANSION,0,Time1,Price1,Time2,Price2,Time3,Price3) ){ if( !ObjectSet(Name, OBJPROP_FIBOLEVELS, УровнейПродолжения) || !ObjectSet(Name, OBJPROP_COLOR, Цвет) || !ObjectSet(Name, OBJPROP_STYLE, Стиль) || !ObjectSet(Name, OBJPROP_WIDTH, Толщина) || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость) || !ObjectSet(Name, OBJPROP_LEVELCOLOR, Цвет) || !ObjectSet(Name, OBJPROP_LEVELSTYLE, СтильУровня) || !ObjectSet(Name, OBJPROP_RAY, Луч) || !ObjectSet(Name, OBJPROP_BACK, Фон) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+0, 1) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+1, 1.618) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+2, 2.618) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+3, 4.236) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+4, 6.854) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+5, 11.09) ){ Error=GetLastError(); PlaySound("alert.wav"); Print("**** "+Name+" - ошибка модификации параметров "+Error); } } else { Error=GetLastError(); PlaySound("alert.wav"); Print("***** "+Name+" не создан, ошибка "+Error); } Name=Prefix+"Recoils "; if( Number>0 ) Name=Name+Number; if( ObjectFind(Name)>=0 ) { if( !ObjectDelete(Name) ) { Error=GetLastError(); PlaySound("alert.wav"); Print("***** "+Name+" не создан, ошибка удаления "+Error); return(Error); } } if( ObjectCreate(Name,OBJ_FIBO,0,Time1,Price1,Time2,Price2) ){ if( !ObjectSet(Name, OBJPROP_FIBOLEVELS, УровнейОтката) || !ObjectSet(Name, OBJPROP_COLOR, Цвет) || !ObjectSet(Name, OBJPROP_STYLE, Стиль) || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость) || !ObjectSet(Name, OBJPROP_LEVELCOLOR, ЦветОтката) || !ObjectSet(Name, OBJPROP_LEVELSTYLE, СтильУровня) || !ObjectSet(Name, OBJPROP_RAY, false) || !ObjectSet(Name, OBJPROP_BACK, Фон) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+0, 0) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+1, 0.236) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+2, 0.382) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+3, 0.618) || !ObjectSet(Name, OBJPROP_FIRSTLEVEL+4, 1) ){ Error=GetLastError(); PlaySound("alert.wav"); Print("**** "+Name+" - ошибка модификации параметров "+Error); } } else { Error=GetLastError(); PlaySound("alert.wav"); Print("***** "+Name+" не создан, ошибка "+Error); } return(Error); }
Est-ce ainsi que la fonction peut être prescrite ? Mais la couleur ne change pas sur les niveaux individuels ; peut-il y avoir une erreur quelque part ou y a-t-il quelque chose d'autre à ajouter ? ???
Vous recherchez un indicateur ou un conseiller expert ? Si vous l'utilisez pour un conseiller expert, le calcul des valeurs de ces niveaux sera suffisant.
Pour l'EA - je veux comprendre quelle fonction peut être utilisée pour séparer chaque niveau afin d'attribuer une valeur de signal ? Mon idée pour ZigZag est de trouver des coordonnées - le conseiller expert trace des niveaux de Fibonacci et à partir de chaque niveau (à une distance un peu plus longue que le spread), nous prenons du recul et établissons des niveaux parallèles - nous les prenons comme base de décision pour ouvrir l'ordre.
Pour OBJ_FIBO, la couleur est la même pour tous les niveaux. Si vous êtes vraiment désespéré, dessinez une simple OBJ_TRENDLINE dans différentes couleurs.
Pour l'EA - je veux comprendre quelle fonction peut être utilisée pour séparer chaque niveau afin d'attribuer une valeur de signal ? Mon idée pour ZigZag est de trouver des coordonnées - l'EA dessine des niveaux de Fibonacci et à partir de chaque niveau (à une distance un peu plus longue que le spread) nous revenons en arrière et établissons des niveaux parallèles - nous les prenons comme base pour prendre des décisions sur l'ouverture d'un ordre.
Vous n'avez pas besoin de séparer quoi que ce soit, prenez simplement la formule et calculez chaque niveau directement dans l'EA, travaillez avec les valeurs obtenues, pourquoi avez-vous besoin de couleurs et de lignes ?
Cherchez-vous un indicateur ou un EA ? Si c'est pour un EA, le simple calcul des valeurs de ces niveaux est suffisant, vous n'avez pas besoin d'esthétique ou de couleur.
Vous n'avez pas besoin de séparer quoi que ce soit, vous prenez la formule et calculez chaque niveau directement dans l'EA, vous travaillez avec les valeurs obtenues, pourquoi avez-vous besoin de couleur et de lignes ?
Oh, à quoi ressemble la formule, je peux vous montrer un exemple ?
Ah, à quoi ressemble la formule, puis-je vous montrer un exemple ???
Il est difficile d'appeler cela une formule : nous prenons les prix minimum et maximum - 0% et 100%, et les divisons par les niveaux, et leurs valeurs sont écrites partout dans le monde - 23,6%, 38,2%, 50%, 61,8%, 161,8% (ou 0,236, 0,382, 0,5, 0,618, 1,618, etc. divisés par 0,618, arrondis à 3 chiffres).
pour les prix de 1.3254 et 1.3896 quelque chose comme ça :
direct | inverser | ||
Niveau 161.80% : | 1.4293 | 0.0% Niveau : | 1.3896 |
100.0% Niveau : | 1.3896 | 23,60% Niveau : | 1.3744 |
61,8% Niveau : | 1.3651 | 38,2% Niveau : | 1.3651 |
50.0% Niveau : | 1.3575 | 50.0% Niveau : | 1.3575 |
38,2% Niveau : | 1.3499 | 61,8% Niveau : | 1.3499 |
23,6% Niveau : | 1.3406 | 100.0% Niveau : | 1.3254 |
0.0% Niveau : | 1.3254 | Niveau 161.8% : | 1.2857 |
C'est-à-dire, (Prix(100%)-Prix(0%))*Niveau(en milliers) + Prix(0%) pour le calcul à terme et Prix(100%) - (Prix(100%)-Prix(0%)) * Niveau (en milliers) - pour le calcul inverse.
Pour chaque valeur, une ligne distincte peut être tracée avec n'importe quelle couleur de la palette de votre choix.

- 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