Réécrire l'indicateur de flottement en .mq4 ?
Bonjour New Digital,
Quelqu'un a-t-il réécrit l'indicateur Float en script .mq4 pour MT4 ? Je vois qu'il y a une version .mql ici. Sur le forum SB, il y a une discussion sur cet indicateur et un expert a été écrit mais l'indicateur (écrit par Barry Stander) est bogué, et personne ne peut localiser le code source. J'ai trouvé le script suivant par 'Bigblock' sur le site de Gordago. Je ne suis pas sûr de ce script mais peut-être que la logique est claire pour une âme ambitieuse qui voudrait le faire fonctionner comme un fichier .mq4 ? C'est peut-être le même que le "Float" de Barry S., bien que celui-ci soit plus long (je ne suis pas un codeur).
Parmi les indicateurs Float postés ci-dessus, celui que je préfère est celui qui crée la rampe de lignes bleues de l'histogramme. J'ai également joint le fichier Float buggé du forum SB.
-MJ
-----------------------------
/*[[
Nom := FLOAT
Auteur := Bigblockfw
Fenêtre séparée := Oui
Première couleur := Bleu
First Draw Type:= histogramme
Premier symbole := 217
Utiliser les secondes données := Oui
Deuxième couleur := Rouge
Second Type de Dessin := Ligne
Second symbole := 218
En changeant la valeur de Float à 100, l'affichage sera correct sur le graphique 15 min,
200 = 30 min 20 = 5 min
]]*/
Entrée : float(100),use_fibos(1),Backtesting(0) ;
Variable :
shift(0),f(0),c1(0),high_bar(0),Low_bar(0),bars_high(0),bars_low(0) ;
Variable :
cumulativeV(0),FLOATV(0),cumulativeV2(0),loopbegin2(0),swing(0),swing_time(0) ;
Variable : swingv(0),loopbegin1(0),cnt(0) ;
Variable : first(True),first1(True), prevbars(0) ;
Variable : cvstart(0),cvend(0),bar(0),newcv(0),CV(0),CV2(0) ;
Variable : fib23(0),fib38(0),fib50(0),fib62(0),fib76(0) ;
Variable : dinap0(0),dinap1(0),dinap2(0),dinap3(0),dinap4(0),dinap5(0) ;
Variable : CVL(0),CVL1(0),CVL2(0),CVL3(0),CVL4(0) ;
cumulatifV=0 ;
cumulativeV2=0 ;
SetLoopCount(0) ;
Si barres 1 alors
first = True ;
first1 = True ;
prevbars = Bars ;
FLOATV=0 ;
Si first Then Begin
loopbegin1 = Bars-float-1 ;
loopbegin2 = Bars-float-1 ;
first = Faux ;
loopbegin1 = loopbegin1+1 ;
For shift = loopbegin1 Downto 0 Begin
//trouver le haut et le bas
high_bar = H ;
Low_bar = L[Lowest(MODE_LOW,float,float)] ;
//trouver le nombre de barres
bars_high = le plus haut(MODE_HIGH,float,float) ;
bars_low = lowest(MODE_LOW,float,float) ;
//trouver la différence entre les prix de swing
swing = H-
L[Lowest(MODE_LOW,float,float)] ;
//trouver le nombre de barres en temps flottant
swing_time = abs(bars_low-bars_high) ;
//trouver le volume cumulé pour la période flottante
IF bars_high < bars_low then
{
cvstart=barres_low ;
cvend=barres_haut ;
}
sinon
{
cvstart=bars_high ;
cvend=bars_low ;
}
Si first1 et FLOATV=0 Alors Commencer
for shift = cvstart downto cvend Begin {
FLOATV=FLOATV+V[shift] ;
first1 = False;}
fin ;
//trouver le volume cumulé depuis la dernière rotation
for shift = cvstart downto 0 Begin
cumulativeV=cumulativeV+V[shift] ;
si cumulativeV>=FLOATV alors{
cumulativeV=0 ;
}
SetIndexValue(shift,cumulativeV*0.001);//Bleu
SetIndexValue2(shift,FLOATV*0.001);//rouge
commentaire(
"\n", "high was ",bars_high," bars ago",
"\n", "Low was ",bars_low," bars ago","\n",
"\n", "Le temps flottant était = ", swing_time," bars",
"\n", "Float Vol. left = ",FLOATV-cumulativeV,
"\n", "Volume flottant = ",FLOATV
) ;
MoveObject("swingtop",OBJ_TRENDLINE,Time[cvstart],high_bar,Time[1],high_bar,Blue,1,STYLE_SOLID) ;
MoveObject("swingbottom",OBJ_TRENDLINE,Time[cvstart],Low_bar,Time[1],Low_bar,Blue,1,STYLE_SOLID) ;
//fibos
Si use_fibos=1 alors{
fib23=((high_bar-Low_bar)*0.236)+Low_bar;
fib38=((high_bar-Low_bar)*0.382)+Low_bar;
fib50=((high_bar-Low_bar)/2)+Low_bar ;
fib62=((high_bar-Low_bar)*0.618)+Low_bar;
fib76=((high_bar-Low_bar)*0.764)+Low_bar;
dinap0=(Low_bar+fib23)/2 ;
dinap1=(fib23+fib38)/2;
dinap2=(fib38+fib50)/2;
dinap3=(fib50+fib62)/2;
dinap4=(fib62+fib76)/2;
dinap5=(high_bar+fib76)/2 ;
MoveObject("fib23",OBJ_TRENDLINE,Time[cvstart],fib23,Time[1],fib23,Green,1,STYLE_DASH) ;
SetObjectText("23", "23.6", "Arial",8,green) ;
MoveObject("23",OBJ_TEXT,time[0],fib23,time[0],fib23,Green) ;
MoveObject("fib38",OBJ_TRENDLINE,Time[cvstart],fib38,Time[1],fib38,Green,1,STYLE_DASH) ;
SetObjectText("38", "38.2", "Arial",8,green) ;
MoveObject("38",OBJ_TEXT,time[0],fib38,time[0],fib38,Green) ;
MoveObject("fib50",OBJ_TRENDLINE,Time[cvstart],fib50,Time[1],fib50,Red,2,STYLE_SOLID) ;
SetObjectText("50", "50", "Arial",8,green) ;
MoveObject("50",OBJ_TEXT,time[0],fib50,time[0],fib50,Green) ;
MoveObject("fib62",OBJ_TRENDLINE,Time[cvstart],fib62,Time[1],fib62,Green,1,STYLE_DASH) ;
SetObjectText("62", "61.8", "Arial",8,green) ;
MoveObject("62",OBJ_TEXT,time[0],fib62,time[0],fib62,Green) ;
MoveObject("fib76",OBJ_TRENDLINE,Time[cvstart],fib76,Time[1],fib76,Green,1,STYLE_DASH) ;
SetObjectText("76", "76.4", "Arial",8,green) ;
MoveObject("76",OBJ_TEXT,time[0],fib76,time[0],fib76,Green) ;
MoveObject("dinap0",OBJ_TRENDLINE,Time[cvstart],dinap0,Time[1],dinap0,Red,1,STYLE_DOT) ;
MoveObject("dinap1",OBJ_TRENDLINE,Time[cvstart],dinap1,Time[1],dinap1,Red,1,STYLE_DOT) ;
MoveObject("dinap2",OBJ_TRENDLINE,Time[cvstart],dinap2,Time[1],dinap2,Red,1,STYLE_DOT) ;
MoveObject("dinap3",OBJ_TRENDLINE,Time[cvstart],dinap3,Time[1],dinap3,Red,1,STYLE_DOT) ;
MoveObject("dinap4",OBJ_TRENDLINE,Time[cvstart],dinap4,Time[1],dinap4,Red,1,STYLE_DOT) ;
MoveObject("dinap5",OBJ_TRENDLINE,Time[cvstart],dinap5,Time[1],dinap5,Red,1,STYLE_DOT) ;
}
//inversez les lignes de flottaison. Elles dessinent les lignes qui calculent la flottaison.
//si vous changez "trendline" en "Vline", les oscillateurs seront également dessinés.
MoveObject("CVSTART",OBJ_TRENDLINE,Time[cvstart],high_bar,Time[cvstart],Low_bar*point,Blue,1,STYLE_SOLID) ;
MoveObject("CVEND",OBJ_TRENDLINE,Time[cvend],high_bar,Time[cvend],Low_bar*point,Blue,1,STYLE_SOLID) ;
//inverser les prédictions de flotteurs. Celles-ci sont uniquement basées sur le temps.
//voir l'histogramme bleu pour les valeurs réelles des flottants.
//Si vous changez "trendline" en "Vline", les oscillateurs seront également dessinés.
if cvend-swing_time>0 then {
MoveObject("swingend",OBJ_TRENDLINE,Time[(cvend-swing_time)+5],high_bar,Time[cvend-swing_time+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend",0,0,0,0) ;
if cvend-(swing_time*2)>0 then {
MoveObject("swingend2",OBJ_TRENDLINE,Time[(cvend-(swing_time*2))+5],high_bar,Time[cvend-(swing_time*2)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend2",0,0,0,0) ;
if cvend-(swing_time*3)>0 then {
MoveObject("swingend3",OBJ_TRENDLINE,Time[(cvend-(swing_time*3))+5],high_bar,Time[cvend-(swing_time*3)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend3",0,0,0,0) ;
if cvend-(swing_time*4)>0 then {
MoveObject("swingend4",OBJ_TRENDLINE,Time[(cvend-(swing_time*4))+5],high_bar,Time[cvend-(swing_time*4)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend4",0,0,0,0) ;
if cvend-(swing_time*5)>0 then {
MoveObject("swingend5",OBJ_TRENDLINE,Time[(cvend-(swing_time*5))+5],high_bar,Time[cvend-(swing_time*5)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend5",0,0,0,0) ;
if cvend-(swing_time*6)>0 then {
MoveObject("swingend6",OBJ_TRENDLINE,Time[cvend-(swing_time*6)+5],high_bar,Time[cvend-(swing_time*6)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend6",0,0,0,0) ;
if cvend-(swing_time*7)>0 then {
MoveObject("swingend7",OBJ_TRENDLINE,Time[cvend-(swing_time*7)+5],high_bar,Time[cvend-(swing_time*7)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend7",0,0,0,0) ;
if cvend-(swing_time*8)>0 then {
MoveObject("swingend8",OBJ_TRENDLINE,Time[cvend-(swing_time*8)+5],high_bar,Time[cvend-(swing_time*8)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend8",0,0,0,0) ;
if cvend-(swing_time*9)>0 then {
MoveObject("swingend9",OBJ_TRENDLINE,Time[cvend-(swing_time*9)+5],high_bar,Time[cvend-(swing_time*9)+5],Low_bar,Red,1,STYLE_DOT) ;
}
else DelObject("swingend9",0,0,0,0) ;
//commentez tout ce que vous n'utilisez pas, cela aidera à la rapidité.
If Backtesting = 1 then {
SetGlobalVariable("fib23",fib23) ;
SetGlobalVariable("fib38",fib38) ;
SetGlobalVariable("fib50",fib50) ;
SetGlobalVariable("fib62",fib62) ;
SetGlobalVariable("fib76",fib76) ;
SetGlobalVariable("dinap0",dinap0) ;
SetGlobalVariable("dinap1",dinap1) ;
SetGlobalVariable("dinap2",dinap2) ;
SetGlobalVariable("dinap3",dinap3) ;
SetGlobalVariable("dinap4",dinap4) ;
SetGlobalVariable("dinap5",dinap5) ;
SetGlobalVariable("swingtop",high_bar) ;
SetGlobalVariable("swingbottom",Low_bar) ;
SetGlobalVariable("CVSTART",CVSTART) ;
SetGlobalVariable("CVEND",CVEND) ;
SetGlobalVariable("FLOATV",FLOATV) ;
SetGlobalVariable("cumulativeV",cumulativeV) ;
SetGlobalVariable("swing_time",swing_time) ;
SetGlobalVariable("bars_high",bars_high) ;
SetGlobalVariable("bars_low",bars_low) ;
if cvend-swing_time>0 then
SetGlobalVariable("swingend",(cvend-swing_time)+5) ;
if cvend-(swing_time*2)>0 then
SetGlobalVariable("swingend2",cvend-(swing_time*2)+5) ;
si cvend-(swing_time*3)>0 then
SetGlobalVariable("swingend3",cvend-(swing_time*3)+5) ;
si cvend-(swing_time*4)>0 then
SetGlobalVariable("swingend4",cvend-(swing_time*4)+5) ;
si cvend-(swing_time*5)>0 then
SetGlobalVariable("swingend5",cvend-(swing_time*5)+5) ;
si cvend-(swing_time*6)>0 then
SetGlobalVariable("swingend6",cvend-(swing_time*6)+5) ;
si cvend-(swing_time*7)>0 then
SetGlobalVariable("swingend7",cvend-(swing_time*7)+5) ;
si cvend-(swing_time*8)>0 then
SetGlobalVariable("swingend8",cvend-(swing_time*8)+5) ;
si cvend-(swing_time*9)>0 then
SetGlobalVariable("swingend9",cvend-(swing_time*9)+5) ;
}
Fin ;
fin ;
fin ;
fin ;
Bonjour,
J'ai l'indicateur float pour MT4 mais dans le fichier EX4 seulement de la page web de Barry Stander
http://www.4africa.net/4meta/Indicators/
Merci
Comment utiliser un fichier EX4 ? Indicateur de flottement
Bonjour MFX,
Merci pour votre aide. Cependant, je ne sais pas comment transformer le fichier EX4 en un fichier .mq4 utilisable... ? Le savez-vous ? Lorsque je l'ouvre à partir de MetaEditor, j'obtiens juste un message "Please download newest file". D'où ça ne dit rien. Si je transforme le fichier que vous avez joint en un fichier .txt et que j'essaie de l'ouvrir, je n'obtiens que du charabia. Des suggestions ?
Merci,
MJ
Bonjour,
Le fichier ex4 ne s'ouvre pas dans le Meta Editor, copiez dans votre colle C:Progam Files\MetaTrader\Experts\Indicators et redémarrez votre plateforme, si vous utilisez le mode iCustom il fonctionne aussi.
Salutations
Les gars, ne perdez pas votre temps, le dernier float, ainsi que le float de Barry pour MT4 sont en train de se réorganiser dans l'histoire, donc ce qu'ils montrent n'est pas vrai.
Je n'ai pas vu de version fonctionnelle de l'indicateur float (pas celui avec les MA, mais celui avec les Fibs et les histogrammes) sur aucun forum depuis un an.
Merci pour le fichier source Barry.
J'ai essayé l'indicateur float sur mq4, il est vrai qu'il se repeint parfois. Le flottant semble assez fiable, mais il y a ce petit pourcentage. Je l'ai essayé sur une démo il y a plusieurs mois, il semble que l'on puisse trader à partir de cet indicateur, mais pas à 100%. L'indicateur de marge affiché ici est très différent de celui que j'ai utilisé.
J'ai essayé l'indicateur float sur mq4, il est vrai qu'il se repeint parfois. Le flottant semble assez fiable, mais il y a ce petit pourcentage. Je l'ai essayé sur une démo il y a plusieurs mois, il semble que l'on puisse trader à partir de cet indicateur, mais pas à 100%. L'indicateur de flottement affiché ici est très différent de celui que j'ai utilisé.
Quel est celui que vous utilisez, pouvez-vous l'afficher s'il vous plaît ?
- 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
Indicateur très intéressant. Voir l'image ci-jointe.
Le rouge représente l'aflat. Il semble que nous n'effectuons pas de transactions pendant l'aflat.