Reescribir el indicador de flotación en .mq4 ?
Hola Nuevo Digital,
¿Alguien ha reescrito el indicador Float en un script .mq4 para MT4? Veo que hay una versión .mql aquí. En el foro de SB hay una discusión sobre este indicador además de que se escribió un experto pero el indicador (escrito por Barry Stander) actúa con errores, y nadie puede localizar el código fuente. He encontrado el siguiente script por 'Bigblock' publicado en el sitio Gordago. No estoy seguro de qué secuencia de comandos es, pero tal vez la lógica es clara para algún alma ambiciosa que le gustaría hacer que funcione como un archivo .mq4? Puede ser el mismo que el de barry S. 'Float' aunque este es más largo (no soy codificador)
De los indicadores Float publicados arriba, el que prefiero es el que crea la rampa de líneas azules del histograma. También he adjuntado el archivo de Float con errores del foro de SB.
-MJ
-----------------------------
/*[[
Nombre := FLOAT
Autor := Bigblockfw
Ventana separada := Sí
Primer Color := Azul
Primer Tipo de Dibujo:= histograma
Primer Símbolo := 217
Usar Segundo Dato := Si
Segundo Color := Rojo
Segundo Tipo de Dibujo := Línea
Segundo Símbolo := 218
Si se cambia el valor de Float a 100, se mostrará correctamente en el gráfico de 15 min,
200 = 30 min 20 = 5 min
]]*/
entrada : 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);
cumulativeV=0;
cumulativeV2=0;
SetLoopCount(0);
Si Bares 1 Entonces
first = True;
first1 = True
prevbars = Bars;
FLOATV=0;
Si first Entonces Begin
loopbegin1 = Bars-float-1;
loopbegin2 = Bars-float-1;
first = False;
loopbegin1 = loopbegin1+1;
Para shift = loopbegin1 Downto 0 Begin
//encontrar el máximo y el mínimo
barra_alta = H;
barra_baja = L[más baja(MODE_LOW,float,float)];
//encontrar el número de barras
bars_high = highest(MODE_HIGH,float,float);
bars_low = lowest(MODE_LOW,float,float);
//encuentra la diferencia de precios del swing
swing = H-
L[Lowest(MODE_LOW,float,float)];
//encuentra el tiempo flotante barcount
swing_time = abs(barras_bajas-barras_altas);
//encontrar el volumen acumulado para el periodo float
IF barras_altas < barras_bajas entonces
{
cvstart=barras_bajas;
cvend=barras_altas;
}
si no
{
cvstart=bars_high;
cvend=barras_bajas;
}
Si first1 y FLOATV=0 Entonces Comienza
for shift = cvstart downto cvend Begin {
FLOATV=FLOATV+V[shift];
first1 = False;}
end;
//encontrar el volumen acumulado desde la última facturación
for shift = cvstart downto 0 Begin
cumulativeV=cumulativeV+V[shift];
si cumulativeV>=FLOATV entonces{
cumulativeV=0;
}
SetIndexValue(shift,cumulativeV*0.001);//Azul
SetIndexValue2(shift,FLOATV*0.001);//rojo
comentario(
"\n", "el máximo fue ",bars_high," hace unos compases",
"\n", "Baja fue ",barras_baja," barras atrás","\n",
"\n", "Float time was = ", swing_time," bars",
"\n", "Float Vol. left = ",FLOATV-cumulativeV,
"\n", "Volumen flotante = ",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 entonces{
fib23=((high_bar-Low_bar)*0.236)+Low_bar;
fib38=((high_bar-Low_bar)*0.382)+Low_bar;
fib50=((barra_alta-Baja)/2)+barra_baja;
fib62=((high_bar-Low_bar)*0.618)+Low_bar;
fib76=((high_bar-Low_bar)*0.764)+Low_bar;
dinap0=(Barra_baja+fib23)/2;
dinap1=(fib23+fib38)/2;
dinap2=(fib38+fib50)/2;
dinap3=(fib50+fib62)/2;
dinap4=(fib62+fib76)/2;
dinap5=(barra_alta+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,tiempo[0],fib23,tiempo[0],fib23,Verde);
MoveObject("fib38",OBJ_TRENDLINE,Tiempo[cvstart],fib38,Tiempo[1],fib38,Verde,1,STYLE_DASH);
SetObjectText("38", "38.2", "Arial",8,green);
MoveObject("38",OBJ_TEXT,tiempo[0],fib38,tiempo[0],fib38,Verde);
MoveObject("fib50",OBJ_TRENDLINE,Tiempo[cvstart],fib50,Tiempo[1],fib50,Rojo,2,STYLE_SOLID);
SetObjectText("50", "50", "Arial",8,green);
MoveObject("50",OBJ_TEXT,tiempo[0],fib50,tiempo[0],fib50,Verde);
MoveObject("fib62",OBJ_TRENDLINE,Tiempo[cvstart],fib62,Tiempo[1],fib62,Verde,1,STYLE_DASH);
SetObjectText("62", "61.8", "Arial",8,green);
MoveObject("62",OBJ_TEXT,tiempo[0],fib62,tiempo[0],fib62,Verde);
MoveObject("fib76",OBJ_TRENDLINE,Tiempo[cvstart],fib76,Tiempo[1],fib76,Verde,1,STYLE_DASH);
SetObjectText("76", "76.4", "Arial",8,green);
MoveObject("76",OBJ_TEXT,tiempo[0],fib76,tiempo[0],fib76,Verde);
MoveObject("dinap0",OBJ_TRENDLINE,Tiempo[cvstart],dinap0,Tiempo[1],dinap0,Rojo,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);
}
//ver líneas de flotación. estas dibujan las líneas que calculan la flotación
//si cambias "trendline" por "Vline" dibujará a través de los osciladores también.podría ser divertido
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);
//revierte las predicciones de los flotadores. Éstas sólo se basan en el tiempo.
//vea el histograma azul para los valores reales de los flotadores.
//si cambias "trendline" por "Vline" dibujará a través de los osciladores también.podría ser divertido
si cvend-swing_time>0 entonces {
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);
si cvend-(swing_time*2)>0 entonces {
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);
si cvend-(swing_time*3)>0 entonces {
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);
si cvend-(swing_time*4)>0 entonces {
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);
si cvend-(swing_time*5)>0 entonces {
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);
si cvend-(swing_time*6)>0 entonces {
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);
si cvend-(swing_time*7)>0 entonces {
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);
si cvend-(swing_time*8)>0 entonces {
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);
si cvend-(swing_time*9)>0 entonces {
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);
//comentar todo lo que no está utilizando ayudará con la velocidad.
Si Backtesting = 1 entonces {
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",barra_baja);
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);
si cvend-swing_time>0 entonces
SetGlobalVariable("swingend",(cvend-swing_time)+5);
si cvend-(swing_time*2)>0 entonces
SetGlobalVariable("swingend2",cvend-(swing_time*2)+5);
si cvend-(swing_time*3)>0 entonces
SetGlobalVariable("swingend3",cvend-(swing_time*3)+5);
si cvend-(swing_time*4)>0 entonces
SetGlobalVariable("swingend4",cvend-(swing_time*4)+5);
si cvend-(swing_time*5)>0 entonces
SetGlobalVariable("swingend5",cvend-(swing_time*5)+5);
si cvend-(swing_time*6)>0 entonces
SetGlobalVariable("swingend6",cvend-(swing_time*6)+5);
si cvend-(swing_time*7)>0 entonces
SetGlobalVariable("swingend7",cvend-(swing_time*7)+5);
si cvend-(swing_time*8)>0 entonces
SetGlobalVariable("swingend8",cvend-(swing_time*8)+5);
si cvend-(swing_time*9)>0 entonces
SetGlobalVariable("swingend9",cvend-(swing_time*9)+5);
}
Fin;
fin;
end;
end;
Hola,
Tengo el indicador de flotación para MT4 pero en el archivo EX4 sólo de la página web de Barry Stander
http://www.4africa.net/4meta/Indicators/
Saludos
¿Cómo utilizar un archivo EX4? Indicador de flotación
Hola MFX,
Gracias por la ayuda. Sin embargo, no sé cómo convertir el archivo EX4 en un archivo .mq4 utilizable? ¿Lo sabes? Cuando lo abro desde el MetaEditor sólo me sale el mensaje "Please download newest file". De donde no dice nada. Si convierto el archivo que has adjuntado, en un archivo .txt e intento abrirlo, sólo sale un galimatías. ¿Sugerencias?
Gracias,
MJ
Chicos, no perdáis el tiempo, el último float, así como el float de Barrys para MT4 se están reajustando en la historia, por lo que lo que muestran no es cierto.
No he visto ninguna versión de trabajo del indicador de flotación ( no el que con el MA`s, pero uno con Fibs e Histogramas ) en cualquier foro para el último año.
Gracias por el archivo fuente Barry.
He probado el indicador de flotación en mq4, es cierto que se repinta a veces. El flotador parece bastante fiable, pero hay ese pequeño porcentaje. Lo he probado en una demo por un tiempo hace muchos meses, parece que en realidad se puede operar fuera de él, pero no el 100%. El indicador de flotación publicado aquí es diferente manera diferente de la que he utilizado.
He probado el indicador float en mq4, es cierto que se repinta a veces. El float parece bastante fiable, pero existe ese pequeño porcentaje. Lo he probado en una demo por un tiempo hace muchos meses, parece que en realidad se puede operar fuera de él, pero no el 100%. El indicador de flotación publicado aquí es diferente manera diferente de la que he utilizado.
¿cuál es el que usas, puedes publicarlo por favor?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Un indicador muy interesante. Ver imagen adjunta.
El rojo es aflat. Parece que no estamos negociando durante el aflat.