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
Puede alguien ayudarme a entender mejor cómo modificar el código para permitir que el EA ejecute órdenes simultáneas en varias instancias (en otras palabras, estoy probando el mismo EA, en varios pares a la vez, y estoy usando diferentes números mágicos para cada instancia).
El código original incluye esto
int total=OrdersTotal();
if(total<1)
Y creo que aquí es donde está el problema. Si aumento el número, simplemente se ejecutan varias órdenes en la misma barra (M15) para el mismo par. Si se deja if(total<1), entonces no permite ejecutar órdenes simultáneas en diferentes pares.
¿Puedo cambiar algo del tick o de la barra para permitir sólo una orden a la vez por par, pero varias órdenes para todos los pares que tenga el EA (con diferente número mágico)?
Gracias a quien pueda ayudar o aportar algo.
Chili
Confundido en múltiples sentencias if
/////////////////////EMPEZAR A NEGOCIAR EL DOMINGO/////////////////////////
StartDay=7; StartHour=1; StartMinute=55;
{
if(TimeDayOfWeek(TimeCurrent())==StartDay)
{
if(TimeHour(TimeCurrent())==StartHour)
{
if(HoraMinuto(TimeCurrent())==InicioMinuto)
{
}
}
}
}
Estoy tratando de conseguir que mi EA se active cuando el día siete roles alrededor (Día 7), y la hora 1 roles alrededor, y 55 minutos roles alrededor. ¿Qué estoy haciendo mal? Hoy he puesto en marcha el ordenador y el EA ha empezado a operar enseguida (antes de la hora 1). Por favor, ayuda.
¡Gracias!
Dave
Hola,
Quiero saber cómo puedo trazar un cruce de MA de marco de tiempo inferior en un gráfico de marco de tiempo superior.
Por ejemplo, quiero trazar una flecha en el gráfico H1 cuando la MA5 y la MA10 de M15 se cruzan.
Por favor, hágamelo saber.
Gracias,
JForex.Una MA en cualquier gráfico es sólo una versión superior/inferior de una MA en un marco de tiempo superior/inferior. Por ejemplo, si pones una MA de 60 en un gráfico de 5 minutos, pero quieres ver cómo se ve en un gráfico de una hora, sólo tienes que multiplicar 60 por 12 (intervalos de 5 minutos en una hora). Así que una MA de 720 en un gráfico de una hora es lo mismo que una MA de 60 en un gráfico de 5 minutos.
¿Tiene sentido?
Lux
/////////////////////COMIENZA A OPERAR EN DOMINGO/////////////////////////
StartDay=7; StartHour=1; StartMinute=55;
{
if(TimeDayOfWeek(TimeCurrent())==StartDay)
{
if(HoraHora(TimeCurrent())==HoraInicial)
{
if(HoraMinuto(TimeCurrent())==InicioMinuto)
{
}
}
}
}
Estoy tratando de conseguir que mi EA se active cuando el día siete roles alrededor (Día 7), y la hora 1 roles alrededor, y 55 minutos roles alrededor. ¿Qué estoy haciendo mal? Hoy he puesto en marcha el ordenador y el EA ha empezado a operar enseguida (antes de la hora 1). Por favor, ayuda.
Gracias.
DaveMire de nuevo el archivo de ayuda.
Devuelve el día de la semana actual basado en cero (0-Domingo,1,2,3,4,5,6) de la última hora conocida del servidor.
Lux
Puede alguien ayudarme a entender mejor cómo modificar el código para permitir que el EA ejecute órdenes simultáneas en varias instancias (en otras palabras, estoy probando el mismo EA, en varios pares a la vez, y estoy usando diferentes números mágicos para cada instancia).
El código original incluye esto
int total=Total de pedidos();
if(total<1)
Y creo que aquí es donde está el problema. Si aumento el número, simplemente ejecuta varias órdenes en la misma barra (M15) para el mismo par. Si se deja if(total<1), entonces no permite ejecutar órdenes simultáneas en diferentes pares.
¿Puedo cambiar algo del tick o de la barra para permitir sólo una orden a la vez por par, pero varias órdenes para todos los pares que tenga el EA (con diferente número mágico)?
Gracias a cualquiera que pueda ayudar u ofrecer su opinión.
ChiliOrdersTotal es una función incorporada que no considera el número mágico. Necesitas escribir tu propia función que utilice OrdersTotal pero que filtre por número mágico y probablemente también por símbolo. Hay muchos ejemplos aquí y en otros lugares.
Buena suerte.
Lux
Mira de nuevo el archivo de ayuda. Lux
Cambié el StartDay a 0, y cambié el StartHour a la hora GMT actual de mi broker, y cambié el StartMinute a 5 minutos por delante de los minutos GMT - Todavía funciona bien cuando la hora GMT coincide con mi hora de inicio. He mirado los archivos de ayuda y no muestran una declaración if múltiple. La sentencia if múltiple siempre me confunde. ¿Qué diablos estoy haciendo mal? Quiero que el programa no opere hasta la hora de inicio apropiada del domingo, y que haga un comentario de "Hora de no operar" hasta que la hora sea igual a la hora de inicio del domingo.
¡¡Muy confundido!!
?????
OrdersTotal es una función incorporada que no considera el número mágico. Necesitas escribir tu propia función que utilice OrdersTotal pero que filtre por número mágico y probablemente también por símbolo. Hay muchos ejemplos aquí y en otros lugares.
Buena suerte.
LuxAquí hay uno que hice y he usado bastante:
{
int intCount=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) intCount++;
intPOS++;
}
else
boolTerm=true;
}
return(intCount);
}
[/PHP]
And if you want to close only a certain order by magic number:
{
int intOffset=0;
int Count = OTBM(intMagic);
while(OTBM(intMagic)>0 && Count > 0)
{
OrderSelect(intOffset,SELECT_BY_POS);
if(OrderMagicNumber()==intMagic)
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);
else if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);
Count--;
}
else {
intOffset++;
}
}
return(0);
}
Order Profit By Magic:
[PHP]double OPBM(int intMagic)//OrderProfitByMagic
{
double dblProfit=0;
int intPOS=0;
bool boolTerm=false;
while(boolTerm==false)
{
if(OrderSelect(intPOS,SELECT_BY_POS))
{
if(OrderMagicNumber()==intMagic) dblProfit=dblProfit+OrderProfit();
intPOS++;
}
else
boolTerm=true;
}
return(dblProfit);
}
Espero que ayude.
Una MA en cualquier gráfico es sólo una versión superior/inferior de una MA en un marco de tiempo superior/inferior. Por ejemplo, si pones una MA de 60 en un gráfico de 5 minutos pero quieres ver cómo se ve en un gráfico de una hora, simplemente multiplicarías 60 por 12 (intervalos de 5 minutos en una hora). Así que una MA de 720 en un gráfico de una hora es lo mismo que una MA de 60 en un gráfico de 5 minutos.
¿Tiene sentido?
LuxTotalmente tiene sentido. ¿Cómo vas a ver una M5 10MA en un gráfico H1?
10/12=0.84. ¿Puedes poner una MA de 0,84 en un gráfico H1? No.
Sin embargo, funciona al revés: H1 10MA = M5 120MA.
Así que mi pregunta es, ¿cómo puedo ver un cruce de 5MA en un Timeframe más alto como H4.
Gracias.
Bucle for en MQL4
Mientras leía el curso MQL4 de Coders' Guru me encontré con esta parte sobre el bucle 'for' en la lección 5 que estoy confundido. Dice que sólo puede haber una expresión de prueba. Pero los ejemplos mostrados contienen 2 expresiones de prueba.
int i;
int j;
for(i=0,j=0;i<15,i<;i++,j++)
Print(i);
int i;
for(i=15;i>0,i<;i--)
Print(i);
¿Alguien podría aclararlo?
Gracias.