¿Cómo codificar? - página 7

 

Según tengo entendido, lo mejor/fácil va a ser mirar la barra anterior, como has dicho. Puede que llegues tarde y puede que no. Esto es lo que quiero decir:

La función Start() procesa cada tick. MT4, por diseño, sólo procesa el tiempo después de un tick. Eso significa que una nueva barra no aparece en su gráfico hasta el primer tick de esa nueva barra. Por lo tanto, al acercarse al final de una barra, si su alerta se activa después de cada tick (la forma molesta) obtendrá una alerta en el último tick de la barra. Si mira la barra anterior para su alerta (la forma no molesta), obtendrá una alerta en el primer tick de la nueva barra.

Por lo tanto, durante las horas con mucha actividad de mercado, el primer tick de la nueva barra puede tener lugar inmediatamente después de que la barra anterior debería estar cerrando (basado en el tiempo). Durante las horas de mercado lento, podrían pasar 20-30 segundos antes de que llegue un nuevo tick, y MT 4 no le mostrará la nueva barra hasta que tenga ese primer tick.

Espero que esté claro.

Keris

 

Necesito ayuda para codificar "La técnica de entrada del stop de volatilidad"

El Volatility Stop calcula la volatilidad utilizando el rango promedio de la barra de precios. Se calcula multiplicando el rango medio por una constante. El valor se suma al cierre más bajo cuando se está en corto, y se resta del máximo cuando se está en largo:

Rango = (Rango x (N - 1) + Alto - Bajo / N)

Corto = Cierre más bajo + Rango x C

Largo = Cierre más alto - Rango x C

Es mejor utilizar el Stop de Volatilidad en mercados de fuerte tendencia. Es una excelente técnica de entrada y en la mayoría de los casos será superior a las rupturas de líneas de tendencia válidas, o a las rupturas de canales. El stop inverso también actúa para cuantificar el riesgo en relación con la volatilidad. Las constantes deben mantenerse entre 2,5 y 4,0.

No tengo experiencia personal con este indicador, pero he leído sobre él en el libro "Fibonacci Ratios with Pattern Recognition".

Estaría muy contento si alguien pudiera codificar este indicador.

Archivos adjuntos:
v.s..bmp  962 kb
 

Igorad, muchas gracias, la parada del canal Volty era exactamente lo que estaba buscando

 

Por favor, ayuda con este código...

Estoy tratando de aprender sobre el mecanismo del indicador LSMA_in_color, que encontré en otra parte de este foro. El siguiente código establece el color de los segmentos de la línea del indicador basado en los valores en wt[]:

//========== COLOR CODING ===========================================

ExtMapBuffer3[shift] = wt[shift]; //yellow

ExtMapBuffer2[shift] = wt[shift]; //blue

ExtMapBuffer1[shift] = wt[shift]; //red

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift] = EMPTY_VALUE; //turn blue off

Print ("red ",wt[shift+1]," ",wt[shift]);

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift] = EMPTY_VALUE; //turn red off

Print ("blue ",wt[shift+1]," ",wt[shift]);

}

else

{

ExtMapBuffer1[shift]=EMPTY_VALUE; //turn red off;

ExtMapBuffer2[shift]=EMPTY_VALUE; //turn blue off;

Print ("yellow ",wt[shift+1]," ",wt[shift]);

}

Añadí las funciones Print() para poder ver cuáles son los valores reales en las tres condiciones de color: rojo, amarillo y azul. Parece que la condición amarilla sólo ocurre cuando wt[shift] == wt[shift+1], pero por alguna razón cuando ejecuto esto el registro muestra que nunca entra en la condición amarilla. Todas las entradas del registro escritas son rojas o azules. En el gráfico, hay claramente condiciones amarillas que ocurren - cada vez que cambia de rojo a azul o de azul a rojo va a amarillo en el medio... ¿Por qué no se imprimen las condiciones amarillas en el registro?

Además, al mirar el registro veo casos en los que wt[shift] es idéntico a wt[shift+1], pero se imprime como una condición roja. ¿Cómo puede ocurrir esto si la condición roja requiere que wt[shift+1] > wt[shift]?

Se agradece cualquier ayuda

 

Sí, cualquier ayuda .....

 

Soy un verdadero novato en el código, pero parece que el amarillo está siempre en y ya sea rojo o azul se pone en la parte superior de la misma o jsut lo sustituye a menos que su incluso en cuyo caso nada se dibuja en la parte superior de la amarilla. en cuanto a lo que sigue siendo de color rojo cuando están incluso dunno

 

código para comprobar si la última operación [cerrada] fue ganadora o perdedora..

¿Existe algún método en mql4 para comprobar si la última operación resultó en ganancia o pérdida, después de haberla cerrado?

Estoy probando OrderSelect() y OrderProfit() con el HistoryTotal() usando un array.. pero el OrderProfit parece referirse a la 'orden abierta', así que no me está dando los resultados que quiero.

En promedio, mi sistema tiene 5 victorias consecutivas, a 1 perder. Lo que quiero hacer es, después de una operación perdedora, quiero aumentar el número de lotes utilizados como las posibilidades son el próximo comercio después de que será una victoria.

Por lo tanto, necesito comprobar el resultado de la última operación cerrada, antes de modificar el número de lotes.

Cualquier ayuda será apreciada...

 
fxdk:
¿Existe algún método en mql4 para comprobar si la última operación ha dado beneficios o pérdidas, una vez cerrada?

Estoy probando OrderSelect() y OrderProfit() con el HistoryTotal() usando un array.. pero el OrderProfit parece referirse a la 'orden abierta', por lo que no me está dando los resultados que quiero.

En promedio, mi sistema tiene 5 victorias consecutivas, a 1 perder. Lo que quiero hacer es, después de una operación perdedora, quiero aumentar el número de lotes utilizados como las posibilidades son el próximo comercio después de que será una victoria.

Por lo tanto, tengo que comprobar el resultado de la última operación cerrada, antes de modificar el número de lotes.

Cualquier ayuda será apreciada...

fxdk,

para comprobar el beneficio de la última orden cerrada utilice este código:

int total = HistoryTotal();

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY);

Alert(OrderProfit()); /Este es el beneficio o la pérdida de la última orden cerrada

 
codersguru:
fxdk,

para comprobar el beneficio de la última orden cerrada utilice este código

int total = HistoryTotal();

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY);

Alert(OrderProfit()); //Esta es la última ganancia o pérdida de la orden cerrada

Creo que esto puede no ser siempre cierto. Tuve una discusión con Slawa sobre, y parece que la historia, como el comercio, no siempre se ordenan por fecha, y depende de la ordenación colonn que está utilizando en la ficha de la terminal. Así que es más seguro escanear todo (!) el Historial y comparar las fechas de cierre; luego recordar la última para que la próxima vez no tengas que escanear todo el conjunto.