Ayuda a la codificación - página 410

 

¡¡¡gracias mladen. funciona perfecto. ahora soy codificador!!!

 
sunshineh:
Por lo que veo no hay posibilidad de dibujar un rectángulo detrás de un botón y definir, que al hacer click en el botón es el Evento y no el rectángulo...

Pero tengo otra pregunta:

¿Cómo puedo dibujar una línea horizontal con una longitud definida? Lo he intentado con OBJ_TREND, pero un lado de la línea es infinito o Cero. Así que no puedo dibujar una línea horizontal desde Bid-10 hasta Bid+10.

¿Sabe usted una solución?

sunshineh

Pon la propiedad RAY (OBJPROP_RAY) de la línea de tendencia en false y entonces no se extenderá hasta el infinito

 

Hola a todos, si quiero asignar un número mágico diferente para cada orden que es abierta por un EA, puedo usar lo siguiente :

extern int NúmeroMágico = 1000000;

if(Condiciones)

{

SendOrder(OP_BUY,MagicNumber);

MagicNumber = MagicNumber+1;

}

Prefiero usar el número mágico como identificador, en lugar de un comentario. Los números son más fáciles de manipular que las cadenas de caracteres...

Gracias.

 
airquest:
Hola a todos, si quiero asignar un número mágico diferente para cada orden que es abierta por un EA, puedo usar lo siguiente :

extern int NúmeroMágico = 1000000;

if(Condiciones)

{

SendOrder(OP_BUY,MagicNumber);

MagicNumber = MagicNumber+1;

}

Prefiero usar el número mágico como identificador, en lugar de un comentario. Los números son más fáciles de manipular que las cadenas de texto...

Gracias.

Lo he probado. Funciona bien

 
airquest:
Hola a todos, si quiero asignar un número mágico diferente para cada orden que es abierta por un EA, puedo usar lo siguiente :

extern int NúmeroMágico = 1000000;

if(Condiciones)

{

SendOrder(OP_BUY,MagicNumber);

MagicNumber = MagicNumber+1;

}

Prefiero usar el número mágico como identificador, en lugar de un comentario. Los números son más fáciles de manipular que las cadenas de caracteres...

Gracias.

Está bien, pero ¿cómo se identifica el número mágico exacto que se desea procesar una vez que se abre el pedido?

 
mladen:
Está bien, pero ¿cómo identificas el número mágico exacto que deseas procesar una vez abierta la orden?

Bueno, un poco complicado. En el OnInit, he almacenado el número mágico original (1000000) en una variable int (OriginalMagic), y luego al llamar a OrderSelect, filtro por el MagicNumber único y almacena las variables (OrderOpenPrice, OrderLots, etc.) en un array, por lo que para cada orden el índice será : MagicNumber - OriginalMagic (así que el primero es 0, luego 1, etc.). El objetivo es hacer dos cosas: 1) sólo abrir un número limitado de órdenes (ArrayRange es un número constante (extern int MaxOpenTradesToManage) y el bucle de apertura de órdenes no se ejecutará si MagicNumber es < OriginalMagic + MaxOpenTradesToManage - 1); 2) definir reglas específicas (y diferentes) de gestión de órdenes para cada orden abierta (que es la razón de tener un único MagicNr).

Mladen, tengo otra pregunta para usted, he visto en uno de sus EA (Ichimoku 5.3.5, tal vez es el de Mr. Tools, no estoy seguro), que abre órdenes con lo siguiente :

int buyTicket = OrderSend(symbol,OP_BUY,lots,price,slippage,0,0,comment,magic,0,color);

if (buyTicket >= 0)

bool buyOrderMod = OrderModify(buyTicket,OrderOpenPrice(),STOPLOSS,TAKEPROFIT,0,color);

[/CODE]

Does it change something from just putting the OrderSend function with already defines SL and TP ? Is it better to open with 0,0 and then use OrderModify to set SL and TP ? :

[CODE]

OrderSend(symbol,OP_BUY,lots,price,slippage,STOPLOSS,TAKEPROFIT,comment,magic,0,color);

Gracias por tu respuesta. Un saludo y muy feliz Navidad.

 
airquest:
Bueno, es un poco complicado. En el OnInit, he almacenado el número mágico original (1000000) en una variable int (OriginalMagic), y luego al llamar a OrderSelect, filtro por el MagicNumber único y almacena las variables (OrderOpenPrice, OrderLots, etc.) en un array, por lo que para cada orden el índice será : MagicNumber - OriginalMagic (así que el primero es 0, luego 1, etc.). El objetivo es hacer dos cosas: 1) sólo abrir un número limitado de órdenes (ArrayRange es un número constante (extern int MaxOpenTradesToManage) y el bucle de apertura de órdenes no se ejecutará si MagicNumber es < OriginalMagic + MaxOpenTradesToManage - 1); 2) definir reglas específicas (y diferentes) de gestión de órdenes para cada orden abierta (que es la razón de tener un único MagicNr).

Mladen, tengo otra pregunta para ti, he visto en uno de tus EA (Ichimoku 5.3.5, quizás sea el de Mr. Tools, no estoy seguro), que abres órdenes con el siguiente :

int buyTicket = OrderSend(symbol,OP_BUY,lots,price,slippage,0,0,comment,magic,0,color);

if (buyTicket >= 0)

bool buyOrderMod = OrderModify(buyTicket,OrderOpenPrice(),STOPLOSS,TAKEPROFIT,0,color);

[/CODE]

Does it change something from just putting the OrderSend function with already defines SL and TP ? Is it better to open with 0,0 and then use OrderModify to set SL and TP ? :

[CODE]

OrderSend(symbol,OP_BUY,lots,price,slippage,STOPLOSS,TAKEPROFIT,comment,magic,0,color);

Gracias por su respuesta. Un saludo y muy feliz Navidad.

airquest

No cambia. Pero ...

Hay que hacerlo así para los brokers tipo ECN/STP. No permiten poner stop loss y/o take profit cuando se abre la orden y entonces hay que hacerlo así en dos pasos

 
mladen:
airquest No cambia. Pero... hay que hacerlo así para los brokers de tipo ECN/STP. No permiten colocar stop loss y/o take profit cuando se abre la orden y entonces hay que hacerlo así en dos pasos

Ok, muchas gracias por el consejo. ¿Para las órdenes pendientes también?

 
airquest:
Ok, muchas gracias por el consejo. ¿También para las órdenes pendientes?

Sí, para esos también

 

Ayuda para la codificación

Hola Mladen

Este indicador no funciona el lunes

"Google Translate"

Gracias

Archivos adjuntos: