Pregunta 1. ¿Tengo uso MyPips en la vela, en estos función? bool BULL4()
Sí. Sin embargo, ¿es correcta la sentencia if en la función BULL4()? Es decir, ¿busca esa vela que está calculando?
Wodzuuu:
Y ESCRITO PROGRAMA para mí es bueno :) ¿qué pasa con usted?
Es tuyo, así que tiene que ser bueno para ti, no para mí.
Algunos comentarios:
bool CheckForCloseBULL4()
{
int i;
for(i=OrdersTotal()-1;i>=0;i--)
if( ! OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ) continue;
if( OrderMagicNumber() == MAGICMA1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY )
if(OrderOpenPrice()+8*MyPips < Ask) return(true);
elsereturn(false); // <-- the else here is wrong. Use {} if you are unsure what is processed where
}
int OpenOrders_BULL4(string symbol)
{
int buys=0;
for(int i=0;i<OrdersTotal();i++) // <-- do it like you do it in the other loops!
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; // <-- break? Why not using always the same code for the same thing?
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1) // Look at the for loop you used in CheckForCloseBULL4().
{
if(OrderType()==OP_BUY) buys++; // <-- why this additional if? Simplify it to:
} // if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1 && OrderType()==OP_BUY) buys++;
}
return(buys);
}
El código está funcionando, pero tal vez tengo algunos errores
No dije, el else es incorrecto en la función CheckForCloseBULL41(), porque no estaba bien formateado. No ha cambiado nada. Si más de una de las órdenes abiertas coincide con la de abajo, tendrás problemas ya que el bucle no recorre todas las órdenes.
No necesita las banderas de señal mientras sólo abra nuevas órdenes sobre un número específico de órdenes ya abiertas. Esto también evita que el código abra más órdenes.
void start()
{
bool SignalBULL41Executed; //<-- if defined inside the start function, the flags get reset with every tick.bool SignalBULL42Executed; // define it outside in global scope.if(Fun_New_Bar()==true)
{
SignalBULL41Executed=false;
SignalBULL42Executed=false;
}
if(BULL4() && BULL41send() && !SignalBULL41Executed && OpenOrders_BULL4(Symbol())==0)
{
OpenBULL41();//do open buy position //<-- As far as I remember, you defined this as bool. Do only set the flag, if the function returns true.
SignalBULL41Executed=true; // change to: if(OpenBULL41())SignalBULL41Executed=true;
}
Las correcciones anteriores son para las banderas. Pero la pregunta abierta es, ¿lo necesitas? Si sólo abres una nueva orden, si un número específico de órdenes ya está abierto, probablemente no lo necesites. Esto es lo que quise decir con la expresión marcada en amarillo:
Creoque la banderano es necesaria,pero puede serútilalgún día.
¿Cómotener dos EAen un soloEA? Hicecopias delEABULL4y cambiéelidexBULL6yel espaciamiento pips. Copie el EA Bull4+el EABull6 también el nuevo EA (todo despuésdeldígito()) Hacer cambiosdentro de la funciónde inicio () y magicma2...
Mi EA funciona muy bien, los escenariosno interfieren entre sí. Estoy feliz.
Queríadarle las graciaspor su ayuda,sin su ayuday sobre todosu apoyoKroninnoloescribiría.
Pregunta 1. ¿Tengo uso MyPips en la vela, en estos función? bool BULL4()
Sí. Sin embargo, ¿es correcta la sentencia if en la función BULL4()? Es decir, ¿busca esa vela que está calculando?
Y ESCRITO PROGRAMA para mí es bueno :) ¿qué pasa con usted?
Es tuyo, así que tiene que ser bueno para ti, no para mí.
Algunos comentarios:
Corrijo los últimos errores
Agrego la segunda compra
a la condición de apertura:
Open y CheckForClose y Close el mismo código como para BULL41 (pips difrent solamente)
La función de inicio se ve así:
Y ahora necesito la bandera, resetsignals y cambiar la función de inicio
Mi imaginación dice:
Nueva barra:
y el inicio se ve así
El código está funcionando, pero tal vez tengo algunos errores
Me falta ResetSignals() para que no funcione bien
Corrijo los últimos errores
...
...
...
El código está funcionando, pero tal vez tengo algunos errores
No dije, el else es incorrecto en la función CheckForCloseBULL41(), porque no estaba bien formateado. No ha cambiado nada. Si más de una de las órdenes abiertas coincide con la de abajo, tendrás problemas ya que el bucle no recorre todas las órdenes.
No necesita las banderas de señal mientras sólo abra nuevas órdenes sobre un número específico de órdenes ya abiertas. Esto también evita que el código abra más órdenes.
Su función Fun_New_Bar() no es correcta.
1. otro problema
si esto no es correcto voy a buscar de nuevo.
2. Problema de la nueva barra
3. problema de laseñal de reset
si escribo mal los puntos 2 y 3, no tengo ideas para arreglarlos, pediré mayores indicaciones si puedo.
1. Si no es así, el problema es
.
2. Problema dela barra nueva
Corregido
3. problema de la señalde reinicio
Las correcciones anteriores son para las banderas. Pero la pregunta abierta es, ¿lo necesitas? Si sólo abres una nueva orden, si un número específico de órdenes ya está abierto, probablemente no lo necesites. Esto es lo que quise decir con la expresión marcada en amarillo:Pero no te preocupes, funciona también con las banderas y puedes eliminarlas después, cuando resulte que están obsoletas.
Creo que la bandera no es necesaria, pero puede ser útil algún día.
¿Cómo tener dos EAen un solo EA?
Hice copias del EA BULL4 y cambié el idex BULL6 y el espaciamiento pips.
Copie el EA Bull4 + el EA Bull6 también el nuevo EA (todo después del dígito ()) Hacer cambios dentro de la función de inicio () y magicma2...
Mi EA funciona muy bien, los escenarios no interfieren entre sí. Estoy feliz.
Quería darle las gracias por su ayuda, sin su ayuda y sobre todo su apoyo Kronin no lo escribiría.
El tema es el final en mi opinión.
Saludos
Mi EA funciona muy bien, los escenarios no interfieren entre sí. Estoy contento.
Quería darle las gracias por su ayuda, sin su ayuda y sobre todo su apoyo Kronin no lo escribiría .
De nada. Gracias por los buenos comentarios.