Si quiero saber el último tipo de orden cerrada y si obtuvo beneficios en un EA, ¿puede la siguiente función hacer el trabajo?
Mejor,
No, no es posible (simplemente porque las órdenes cerradas no están ordenadas por hora de cierre - al menos eso es lo que nos dice el manual : no se garantiza que las órdenes estén ordenadas por hora de cierre). Hay que hacer algo así :
int OrdersProfit()
{
int profit = 0;
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
if (OrderType()==OP_BUY && OrderProfit()> 0) Profit =1 ;
if (OrderType()==OP_SELL && OrderProfit()> 0) Profit =2 ;
}
}
return(Profit);
}
Últimamente empecé a programar MQL4 para ganar experiencia y poder codificar mis propias ideas para probarlas previamente.
Ahora im luchando con el tiempo de la pintura.
Digamos que tengo una declaración if para algunos estocásticos y quiero esperar hasta que la MA vaya por encima o por debajo del precio antes de pintar, ¿cómo puedo hacer eso?
Lo que intenté y lo único que me vino a la mente:
if(iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i) > 80
&& iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80whileHigh[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1) //Candlestick High < Moving Average
(
1+1
)
)
{
Buffer1[i] = High[i]; //Set indicator value at Candlestick High
if(i == 0 && Time[0] != time_alert) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
}
else
{
Buffer1[i] = 0;
El 1+1 sólo para llenar el bucle while, lo que estoy tratando de hacer es esperar para pintar la flecha hasta que el alto del precio está por debajo de la MA, pero sin embargo, no quiero que esto sea y declaración desde que la cruz happend sólo quiero esperar util i pintura .
Sin embargo, esto no fue exitoso, por lo que pido a los codificadores profesionales en la comunidad
Últimamente he empezado a programar MQL4 para ganar experiencia y poder codificar mis propias ideas para probarlas previamente.
Ahora im luchando con el tiempo de la pintura.
Digamos que tengo una declaración if para algunos estocásticos y quiero esperar hasta que la MA vaya por encima o por debajo del precio antes de pintar, ¿cómo puedo hacer eso?
Lo que intenté y lo único que me vino a la mente:
El 1+1 sólo para llenar el bucle while, lo que estoy tratando de hacer es esperar para pintar la flecha hasta que el alto del precio está por debajo de la MA, pero sin embargo, no quiero que esto sea y declaración desde que la cruz happend sólo quiero esperar util i pintura .
Sin embargo, esto no fue exitoso, por lo que pido a los codificadores profesionales en la comunidad
Intenta así :
Buffer1[i] = 0;
if( iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i) > 80
&& iStochastic(NULL, PERIOD_CURRENT, _K_period, _D_period, Slowing, MODE_SMA, 0, MODE_MAIN, i+1) < 80
&& High[i] > iMA(NULL, PERIOD_CURRENT, MAfilter, 0, MODE_EMA, PRICE_CLOSE, i+1)) //Candlestick High < Moving Average
Buffer1[i] = High[i]; //Set indicator value at Candlestick Highif(i == 0 && Time[0] != time_alert && Buffer1[i]!=0) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
Esto me dará la "señal sólo cuando el cruce se produzca por encima de la MA, lo quiero por debajo de la MA, pero también quiero la señal si tengo un cruce por encima de la MA y unas pocas barras más tarde el precio se mueve por debajo de la MA.
Eso es lo que intenté con el bucle while, para que el código se repita hasta que el argumento se vuelva falso y proceda a pintar la señal.
Hice un dibujo esquemático, tal vez se entienda mejor.
Estimado mladen
Si quiero saber el último tipo de orden cerrada y si obtuvo beneficios en un EA, puede la siguiente función hacer el trabajo:
Mejor,
Estimado mladen
Si quiero saber el último tipo de orden cerrada y si obtuvo beneficios en un EA, ¿puede la siguiente función hacer el trabajo?
Mejor,
No, no es posible (simplemente porque las órdenes cerradas no están ordenadas por hora de cierre - al menos eso es lo que nos dice el manual : no se garantiza que las órdenes estén ordenadas por hora de cierre). Hay que hacer algo así :
Estimado mladen
Muchas gracias por su perfecta respuesta.
Lo mejor,
Estimados amigos,
¿Puede actualizar los indicadores adjuntos para la última construcción mt4 por favor?
¡Especialmente, "123PatternsV6" se congela mt4 y no funciona!
Estimados amigos,
¿Puede actualizar los indicadores adjuntos para la última construcción mt4 por favor?
¡Especialmente, "123PatternsV6" se congela mt4 y no funciona!
Creo que 123 necesita indicador de zigzag para trabajar con fuera de la congelación de la terminal.
Elindicador Zigzag ya está disponible en mt4.
El indicador Zigzag ya está disponible en mt4.
Hola.
Últimamente empecé a programar MQL4 para ganar experiencia y poder codificar mis propias ideas para probarlas previamente.
Ahora im luchando con el tiempo de la pintura.
Digamos que tengo una declaración if para algunos estocásticos y quiero esperar hasta que la MA vaya por encima o por debajo del precio antes de pintar, ¿cómo puedo hacer eso?
Lo que intenté y lo único que me vino a la mente:
El 1+1 sólo para llenar el bucle while, lo que estoy tratando de hacer es esperar para pintar la flecha hasta que el alto del precio está por debajo de la MA, pero sin embargo, no quiero que esto sea y declaración desde que la cruz happend sólo quiero esperar util i pintura .
Sin embargo, esto no fue exitoso, por lo que pido a los codificadores profesionales en la comunidad
Hola.
Últimamente he empezado a programar MQL4 para ganar experiencia y poder codificar mis propias ideas para probarlas previamente.
Ahora im luchando con el tiempo de la pintura.
Digamos que tengo una declaración if para algunos estocásticos y quiero esperar hasta que la MA vaya por encima o por debajo del precio antes de pintar, ¿cómo puedo hacer eso?
Lo que intenté y lo único que me vino a la mente:
El 1+1 sólo para llenar el bucle while, lo que estoy tratando de hacer es esperar para pintar la flecha hasta que el alto del precio está por debajo de la MA, pero sin embargo, no quiero que esto sea y declaración desde que la cruz happend sólo quiero esperar util i pintura .
Sin embargo, esto no fue exitoso, por lo que pido a los codificadores profesionales en la comunidad
Intenta así :
Prueba así :
Esto me dará la "señal sólo cuando el cruce se produzca por encima de la MA, lo quiero por debajo de la MA, pero también quiero la señal si tengo un cruce por encima de la MA y unas pocas barras más tarde el precio se mueve por debajo de la MA.
Eso es lo que intenté con el bucle while, para que el código se repita hasta que el argumento se vuelva falso y proceda a pintar la señal.
Hice un dibujo esquemático, tal vez se entienda mejor.
Gracias por tu respuesta de todos modos