Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 249
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Qué tipo de error es este, lo tomo del lado de la DC, un mal entrenamiento?
¿Qué clase de error es este, lo tomo del lado de la DC de la mala información?
128
ERR_TRADE_TIMEOUT
Tiempo de espera expirado
Pieza del manipulador:
128
ERR_TRADE_TIMEOUT
Tiempo de espera expirado para la ejecución de la operación
Pieza del manipulador:
Hoy decidí comprobar mi programa en la demo de una popular empresa de corretaje y me enfrenté a estos errores por primera vez.
¿Entiendo correctamente que se trata de un problema de hardware de la empresa de corretaje y no de mi parte?
Por favor, dígame si esta función es correcta. La idea es calcular si el precio ha roto el precio medio durante una cierta cantidad de velas anteriores.
la función no se ejecuta en absoluto, el resultado debe ser: si no se ha roto returnToMA ==1, si se ha roto returnToMA ==0
¿tal vez haya otra solución a este problema?
returnToMA = MAtouch(TRADE_TF2,TRADE_TF2_MA,barscount)
int MAtouch(ENUM_TIMEFRAMES tfpricereturnafterbreak=PERIOD_H4, int tradema=10, int bars=100)
{
for(i=0;i<=barras;i++)
{
if(iLow(Sym bol(),tfpricereturnafterbreak,i)<=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)) {return(0);break;}
if (iHigh(Symbol(),tfpricereturnafterbreak,i)>=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)) {return(0);break;}
Si no es así, return(1);
}
Por favor, dígame si esta función es correcta. La idea es calcular si el precio ha roto el precio medio durante una cierta cantidad de velas anteriores.
la función no se ejecuta en absoluto, el resultado debe ser: si no se ha roto returnToMA ==1, si se ha roto returnToMA ==0
¿Quizás haya otras soluciones a este problema?
Su función siempre tendrá cero porque el máximo o el mínimo siempre es mayor/menor o igual que el MA.
En su caso, la vela debe ser descrita por al menos dos parámetros:
1) Definir dónde se abrió la vela - por encima o por debajo de la MA
2. En función de 1, compruebe si se ha tocado el MA.
Siempre tendrá cero en la función - ya que el máximo o el mínimo es siempre mayor/menor o igual que el MA.
En su caso, la vela debe ser descrita por al menos dos parámetros:
1. determinar dónde se abrió la vela - por encima o por debajo de la MA
2. En función de 1, compruebe si se ha tocado el MA.
Gracias. He añadido la condición pero siempre devuelve 1. ¿Puedo cambiar los paréntesis en algún sitio? O el break no funciona y la función termina asignando 1 al valor de retorno
int MAtouch(ENUM_TIMEFRAMES tfpricereturnafterbreak=PERIOD_H4, int tradema=10, int bars=100)
{
for(i=0;i<=barras;i++)
{
if( iLow(Sym bol(),tfpricereturnafterbreak,i)<=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)
&&iOpen(Symbol(),tfpricereturnafterbreak,i)>=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i))
{return(0);break;}
si ( iHigh(Symbol(),tfpricereturnafterbreak,i)>=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)
&&iOpen(Symbol(),tfpricereturnafterbreak,i)<=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i))
{return(0);break;}
si no, devolver(1);
}
Gracias. He añadido la condición, pero siempre devuelve 1. ¿Puedo cambiar los paréntesis en alguna parte? O el break no funciona y la función termina asignando 1 al valor de retorno
int MAtouch(ENUM_TIMEFRAMES tfpricereturnafterbreak=PERIOD_H4, int tradema=10, int bars=100)
{
for(i=0;i<=barras;i++)
{
if( iLow(Symbol(),tfpricereturnafterbreak,i)<=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)
&&iOpen(Symbol(),tfpricereturnafterbreak,i)>=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i))
{return(0);break;}
si ( iHigh(Symbol(),tfpricereturnafterbreak,i)>=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i)
&&iOpen(Symbol(),tfpricereturnafterbreak,i)<=iMA(Symbol(),tfpricereturnafterbreak,tradema,0,MODE_EMA,PRICE_WEIGHTED,i))
{return(0);break;}
si no, devolver(1);
}
Pruébalo así
Devolverá 1 si se cumple la condición - hubo una intersección - ¿no es eso lo que queremos?
Prueba esto
Devolverá 1 si se cumple la condición - hubo una intersección - ¿no es eso lo que queremos?
Gracias, funciona como un reloj con su versión del código
¡Buenas tardes!
Chicos, ¿podéis decirme si se puede mostrar programáticamente el indicador en el gráfico? ¿O sólo manualmente?
Si es así, ¿qué orden se da?