Ayuda a la codificación - página 130

 

No sé si son objetos o buffers. ¿Es posible también enviar órdenes en el indicador para no necesitar ningún asesor experto? ¿Cuál es el algoritmo para abrir órdenes sin stoploss y take profit?

Pero creo que quiero un asesor experto, abrir órdenes por la aparición de las flechas y cerrar las órdenes cuando llegue la señal de cierre. ¿Puedo identificar las órdenes abiertas por símbolo?

 
arroganzmaschine:
No sé si son objetos o buffers. ¿Es posible también enviar órdenes en el indicador para no necesitar ningún asesor experto? ¿Cuál es el algoritmo para abrir órdenes sin stoploss y take profit?

1. Los objetos van a ser visibles en la lista de objetos

2. No. No se pueden gestionar órdenes desde un indicador

3. Para abrir órdenes (tipo hormiga de órdenes) hay que utilizar el envío de órdenes. Ayuda para la función OrderSend() :

______________________________________

int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

La función principal utilizada para abrir una posición o colocar una orden pendiente.

Devuelve el número de la entrada asignada a la orden por el servidor de operaciones o -1 si falla. Para obtener información adicional sobre el error, hay que llamar a la función GetLastError().

Notas:

En la apertura de una orden de mercado (OP_SELL u OP_BUY), sólo se pueden utilizar como precio de apertura los últimos precios de Oferta (para la venta) o de Venta (para la compra). Si la operación se realiza con un valor diferente al actual, se debe utilizar la función MarketInfo() con el parámetro MODE_BID o MODE_ASK para obtener las últimas cotizaciones de este valor. No se pueden aplicar precios calculados o no normalizados. Si no ha habido el precio abierto solicitado en el hilo de precios o no se ha normalizado según la cantidad de dígitos después del punto decimal, se generará el error 129 (ERR_INVALID_PRICE). Si el precio abierto solicitado está totalmente desfasado, se generará el error 138 (ERR_REQUOTE) independientemente del parámetro de deslizamiento. Si el precio solicitado está desfasado, pero presente en el hilo, la posición se abrirá al precio actual y sólo si el precio actual se encuentra dentro del rango de precio+deslizamiento.

Los niveles StopLoss y TakeProfit no pueden estar demasiado cerca del mercado. La distancia mínima de los niveles de stop en puntos puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. En el caso de niveles de stop erróneos o no normalizados, se generará el error 130 (ERR_INVALID_STOPS).

Al colocar una orden pendiente, el precio abierto no puede estar demasiado cerca del mercado. La distancia mínima del precio pendiente con respecto al mercado actual en puntos puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. En caso de que el precio de apertura de una orden pendiente sea falso, se generará el error 130 (ERR_INVALID_STOPS).

La aplicación del tiempo de expiración de la orden pendiente puede ser desactivada en algunos servidores de comercio. En este caso, cuando se especifica un valor distinto de cero en el parámetro de caducidad, se generará el error 147 (ERR_TRADE_EXPIRATION_DENIED).

En algunos servidores de comercio, la cantidad total de órdenes abiertas y pendientes puede estar limitada. Si se supera este límite, no se abrirá ninguna posición nueva (o no se colocará ninguna orden pendiente) y el servidor de operaciones devolverá el error 148 (ERR_TRADE_TOO_MANY_ORDERS). Parámetros:

[/TD] -[/TD[/TD] -[/TD][/TD][TD="width 100%"]. TR][TD] -

[TR]

[TD]comment[TD] - [TD="width: 100%"]Texto de comentario de la orden. La

[

TR]][TD] - [TD="width: 100%"]Número mágico de la orden. Puede utilizarse como identificador definido por el usuario.

[

TR]][TD] -

[TR]

[TD]arrow_color[TD] - [TD="width: 100%"]Color de la flecha de apertura en el gráfico. Si el parámetro falta o tiene el valor CLR_NONE la flecha de apertura no se dibuja en el gráfico.
símbolo[/TD] -[/TD]Símbolo para operar.[/TD]

[/TR]

cmd[/TD] -[/TD]Tipo de operación. Puede ser cualquiera de la enumeración de operaciones de Comercio.[/TD]

[/TR

]
volumen
]Número de lotes.[/TD]

[/TR]

precio
[/TD]Precio preferido de la operación.[/TD]

[/TR]

deslizamiento[/TD] -[/TD]Deslizamiento máximo del precio para las órdenes de compra o venta.
]

[/TR

stoploss
-
:
Nivel de stop loss

[

[TD]takeprofit
[TD="width: 100%"]Nivel de take profit.
última parte del comentario puede ser modificada por el servidor.
[TDmagic
[TD
expiración
[TD="width: 100%"]Hora de expiración de la orden (sólo para órdenes pendientes).

Muestra:

int ticket;

if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)

{

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);

if(ticket<0)

{

Print("OrderSend failed with error #",GetLastError());

return(0);

}

}

 

¿Puedo enviarle el indicador por correo para que me aconseje?

 
arroganzmaschine:
¿Puedo enviarte el indicador por correo para que me aconsejes?

Puedes publicarlo (si no es un indicador privado o comercial)

 

Es privado . Creo que tengo que leer todo el material para llegar a mi solución.

¿Puedo cerrar las órdenes de un símbolo específico donde aparece la señal de cierre?

 
arroganzmaschine:
Es privado . Creo que tengo que leer todo el material para llegar a mi solución. ¿Puedo cerrar las órdenes de un símbolo específico donde aparece la señal de cierre?
Intenta pasar por estos dos hilos primero

:https://www.mql5.com/en/forum/173136 https://www.mql5.com/en/forum/173171

también puede ser bueno que empieces por este post https://www.mql5.com/en/forum/172969/page2

y será mucho más fácil encontrar información sobre la codificación mql si sigues los enlaces de ese post
 

Gracias, le responderé más tarde.

 

Mladen, pregunta rápida por favor, ¿repinta el indicador ptl2 ( línea de tendencia perfecta) y las alertas?

 

He visto que también hay alertas. Se envían cuando algunos IndexBuffers tienen el valor correcto.

¿Puedo enviar mis órdenes con algunas cláusulas if{?

 
funayot:
Mladen, una pregunta rápida por favor, ¿el indicador (línea de tendencia perfecta) ptl2 y alertas vuelve a pintar?

¡No, el indicador '(perfect trend line) ptl2 and alerts' no vuelve a pintar después de cerrar la barra!