Riscrivere l'indicatore Float in .mq4 ?
Ciao New Digital,
Qualcuno ha riscritto l'indicatore Float in uno script .mq4 per MT4? Ho visto che c'è una versione .mql qui. Sul forum SB c'è una discussione su questo indicatore più un esperto è stato scritto ma l'indicatore (scritto da Barry Stander) si comporta male, e nessuno può individuare il codice sorgente. Ho trovato il seguente script di 'Bigblock' pubblicato sul sito di Gordago. Non sono sicuro di quale script sia, ma forse la logica è chiara a qualche anima ambiziosa che vorrebbe farlo funzionare come un file .mq4? Potrebbe essere lo stesso del 'Float' di Barry S. anche se questo è più lungo (non sono un codificatore)
Degli indicatori Float postati sopra, quello che preferisco è quello che crea la rampa di linee blu dell'istogramma. Ho anche allegato il file Float buggato dal forum SB.
-MJ
-----------------------------
/*[[
Nome := FLOAT
Autore := Bigblockfw
Finestra separata := Sì
Primo colore := Blu
Primo tipo di disegno:= istogramma
Primo simbolo := 217
Usa i secondi dati := Sì
Secondo colore := Rosso
Secondo tipo di disegno := Linea
Secondo simbolo := 218
Cambiare il valore di Float a 100 permetterà di visualizzarlo correttamente sul grafico a 15 minuti,
200 = 30 min 20 = 5 min
]]*/
input : float(100),use_fibos(1),Backtesting(0);
Variabile :
shift(0),f(0),c1(0),high_bar(0),Low_bar(0),bars_high(0),bars_low(0);
Variabile :
cumulativeV(0),FLOATV(0),cumulativeV2(0),loopbegin2(0),swing(0),swing_time(0);
Variabile : swingv(0),loopbegin1(0),cnt(0);
Variabile : first(True),first1(True), prevbars(0);
Variabile : cvstart(0),cvend(0),bar(0),newcv(0),CV(0),CV2(0);
Variabile : fib23(0),fib38(0),fib50(0),fib62(0),fib76(0);
Variabile : dinap0(0),dinap1(0),dinap2(0),dinap3(0),dinap4(0),dinap5(0);
Variabile : CVL(0),CVL1(0),CVL2(0),CVL3(0),CVL4(0);
cumulativeV=0;
cumulativeV2=0;
SetLoopCount(0);
Se le barre 1 allora
first = True;
first1 = True;
prevbars = Bars;
FLOATV=0;
Se primo allora inizia
loopbegin1 = Bars-float-1;
loopbegin2 = Bars-float-1;
first = False;
loopbegin1 = loopbegin1+1;
Per shift = loopbegin1 giù fino a 0 iniziare
/Trova il massimo e il minimo
high_bar = H;
Low_bar = L[Lowest(MODE_LOW,float,float)];
//trova i conteggi delle barre
bars_high = più alto(MODE_HIGH,float,float);
bars_low = più basso(MODE_LOW,float,float);
//trova la differenza di prezzo dell'oscillazione
swing = H-
L[Più basso(MODE_LOW,float,float)];
//trova il conteggio delle barre a tempo fluttuante
swing_time = abs(bars_low-bars_high);
//trova il volume cumulativo per il periodo float
SE barre_alte < barre_basse allora
{
cvstart=bars_low;
cvend=bars_high;
}
altrimenti
{
cvstart=bars_high;
cvend=bars_low;
}
Se first1 e FLOATV=0 allora inizia
for shift = cvstart downto cvend Begin {
FLOATV=FLOATV+V[shift];
first1 = Falso;}
fine;
/trova il volume cumulativo dall'ultimo turnover
for shift = cvstart downto 0 Begin
cumulativeV=cumulativeV+V[shift];
se cumulativeV>=FLOATV allora{
cumulativeV=0;
}
SetIndexValue(shift,cumulativeV*0.001);//Blu
SetIndexValue2(shift,FLOATV*0.001);//rosso
commento(
"\n", "alto era ",barre_alto," barre fa",
"\n", "Low was ",bars_low," bars ago","\n",
"\n", "Il tempo di fluttuazione era = ", swing_time," barre",
"\n", "Vol. fluttuante a sinistra = ",FLOATV-cumulativeV,
"\n", "Volume fluttuante = ",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
Se use_fibos=1 allora{
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,verde);
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,verde);
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,verde);
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,verde);
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,verde);
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);
}
//vert. linee float. queste disegnano le linee che calcolano il float
//se cambiate "trendline" in "Vline" disegnerà anche attraverso gli oscillatori.potrebbe essere divertente
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);
//invertire le previsioni float. Queste sono solo basate sul tempo.
//vedi l'istogramma blu per i valori reali dei float.
//se cambiate "trendline" in "Vline", disegnerà anche attraverso gli oscillatori.
se cvend-swing_time>0 allora {
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);
se cvend-(swing_time*2)>0 allora {
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);
se cvend-(swing_time*3)>0 allora {
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);
se cvend-(swing_time*4)>0 allora {
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);
se cvend-(swing_time*5)>0 allora {
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);
se cvend-(swing_time*6)>0 allora {
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);
se cvend-(swing_time*7)>0 allora {
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);
se cvend-(swing_time*8)>0 allora {
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);
se cvend-(swing_time*9)>0 allora {
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,0);
//commenta tutto ciò che non stai usando, ti aiuterà con la velocità.
Se Backtesting = 1 allora {
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);
se cvend-swing_time>0 allora
SetGlobalVariable("swingend",(cvend-swing_time)+5);
se cvend-(swing_time*2)>0 allora
SetGlobalVariable("swingend2",cvend-(swing_time*2)+5);
se cvend-(swing_time*3)>0 allora
SetGlobalVariable("swingend3",cvend-(swing_time*3)+5);
se cvend-(swing_time*4)>0 allora
SetGlobalVariable("swingend4",cvend-(swing_time*4)+5);
se cvend-(swing_time*5)>0 allora
SetGlobalVariable("swingend5",cvend-(swing_time*5)+5);
se cvend-(swing_time*6)>0 allora
SetGlobalVariable("swingend6",cvend-(swing_time*6)+5);
se cvend-(swing_time*7)>0 allora
SetGlobalVariable("swingend7",cvend-(swing_time*7)+5);
se cvend-(swing_time*8)>0 allora
SetGlobalVariable("swingend8",cvend-(swing_time*8)+5);
se cvend-(swing_time*9)>0 allora
SetGlobalVariable("swingend9",cvend-(swing_time*9)+5);
}
Fine;
fine;
fine;
fine;
Ciao,
Ho l'indicatore float per MT4 ma nel file EX4 solo dalla pagina web di Barry Stander
http://www.4africa.net/4meta/Indicators/
Saluti
Come usare un file EX4? Indicatore di fluttuazione
Ciao MFX,
Grazie per l'assistenza. Non so però come trasformare il file EX4 in un file .mq4 utilizzabile? Lo sai? Quando lo apro dall'interno di MetaEditor ottengo solo un messaggio "Please download newest file". Da dove non lo dice. Se trasformo il file che hai allegato, in un file .txt e provo ad aprirlo, mi esce solo un messaggio senza senso. Suggerimenti?
Grazie,
MJ
Ragazzi, non perdete il vostro tempo. L'ultimo float, così come Barrys float per MT4 si stanno riorganizzando nella storia, quindi quello che mostrano non è vero.
Non ho visto nessuna versione funzionante dell'indicatore float (non quello con le MA, ma quello con Fibs e Istogrammi) su nessun forum nell'ultimo anno.
Grazie per il file sorgente Barry.
Ho provato l'indicatore float su mq4, è vero che a volte si ridipinge da solo. Il float sembra abbastanza affidabile, ma c'è quella piccola percentuale. L'ho provato per un po' su una demo molti mesi fa, sembra che si possa effettivamente fare trading su di esso, ma non al 100%. L'indicatore float postato qui è diverso da quello che ho usato io.
Ho provato l'indicatore float su mq4, è vero che si ridisegna da solo a volte. Il float sembra abbastanza affidabile, ma c'è quella piccola percentuale. L'ho provato per un po' su una demo molti mesi fa, sembra che si possa effettivamente fare trading su di esso, ma non al 100%. L'indicatore float postato qui è diverso da quello che ho usato io.
Quale stai usando, puoi postare per favore?

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Indicatore molto interessante. Vedi immagine allegata.
Il rosso è l'aflat. Sembra che non stiamo facendo trading durante l'aflat.