¿Cómo codificar? - página 19

 

Gracias por tu esfuerzo Nicholishen. Lamentablemente no ha funcionado. Esta modificando las ordenes pero en ambos sentidos. Lo que quiero decir sólo para clarificar es en una situación de compra se moverá la parada hacia arriba por los puntos de rastro, sino que también se moverá hacia abajo.

 

Entiendo lo que quieres decir, pero el código es correcto. O bien hay otro EA modificando estas órdenes o bien hay otro código en el EA que lo está haciendo porque ciertamente no es este código. Tendrás que parar todos los demás EAs y comprobar el código del EA principal en busca de otras llamadas a OrderModify()

Buena suerte =)

Archivos adjuntos:
 

Gracias por su tiempo con mi noobish yo

la única otra orden que se ha modificado en el código es la de romper el equilibrio y bloquear los pips.

BEx=cantidad de pips a bloquear

El código es el único que se puede modificar en la orden, es decir, el break even y el bloqueo de pips.

¡Gracias de nuevo Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

Oh se olvidó de añadir, este es el único EA. Sólo actualmente backtesting.

 
C.E.O.:
Gracias por su tiempo con mi yo noobish

la única otra orden que se ha modificado en el código es la de romper el equilibrio y bloquear los pips.

BEx=cantidad de pips a bloquear

He sido a través de él tantas veces im seguro de que está mirando a la derecha en mí, pero yo no soy un profesional, un hack en el mejor.

¡Gracias de nuevo Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}[/PHP]

Oh forgot to add, this is the only EA. Just currently backtesting.

Probablemente lo que sucede es que una función está anulando la otra. Tendrás que revisar tu lógica para que sólo opere una a la vez.

[PHP]void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // sólo mira si migrid y símbolo...

{

si (OrderType() == OP_BUY)

{

if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

if (OrderType() = OP_SELL)

{

if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

}

}

volver;

}
 

Verificación de comandos/código MQL4

Mensaje borrado. Disculpe las molestias.

 

Código para 'Permitir el comercio en vivo'

Hola, para que los EAs funcionen tenemos que habilitar la opción "Permitir trading en vivo", así que en lugar de tener que marcarla todo el tiempo al cargar el EA, ¿qué línea de código añado para tener automáticamente esa opción habilitada en el EA?

Gracias

 

No se necesita código para hacer eso..

matrixebiz:
Hola, para que los EA's funcionen tenemos que habilitar la opción "Permitir trading en vivo" así que en lugar de tener que marcarla todo el tiempo al cargar el EA ¿qué línea de código añado para tener automáticamente habilitada esa opción en el EA? Gracias

Hola Matrixebiz,

Usted puede hacer eso fácilmente por ir al menú de MetaTrader. Ir a "Herramientas" y luego "Opciones" (o simplemente escriba CRTL-O). Luego, en la pestaña "Asesor Experto", marque las opciones de Permitir el comercio en vivo. Ahí lo tienes, todos los EA que adjuntes después de eso serán permitidos para operar en vivo.

-RJ1-

 

Oh, ok, eso fue fácil Gracias

 

Código de tiempo de EA

Quiero el código de tiempo de EA. Por ejemplo, que sólo permita operar de 18:00 a 1:00. ¿Es posible?

 

Encontré esto

if (UseHourTrade){

if(!(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){

Comentario("¡Horas no comerciales!");

return(0);

Una pregunta:

Utiliza la hora de mi broker de forex : ¿Si o no?

Creo que sí, pero quiero estar seguro

¿Y cómo puedo poner allí minutos como 15:30? Sólo hay horas?