Ayuda a la codificación - página 141

 
arroganzmaschine:
Pero esto no me ayuda. Los dos buffers son el 4 y el 5. Pero los buffers antes eran arrays.

aquí está el código: SetIndexBuffer(4, Long);

SetIndexBuffer(5, Short);

En el indicador, estos buffers se declaran primero con "double Long[]". Este buffer tiene dos valores. Long[1] y Long[2]. ¿Cómo puedo obtener estos valores en el asesor experto?

Prueba algo como esto :

double value1 = iCustom(NULL,0,"indicatorName",4,1); double value2 = iCustom(NULL,0,"indicatorName",4,2);

______________________________

PS: no tiene idea de cuáles son los parámetros, por lo que el iCustom() utilizará los valores de los parámetros por defecto. Tendrás que suministrar los parámetros deseados a la llamada iCustom(). Y todo eso está descrito en el hilo del enlace que puse en el post anterior.

todo lo mejor

 

¡Funciona! ¡¡¡¡Muchas gracias!!!!

 
arroganzmaschine:
¡Funciona! ¡¡¡¡Muchas gracias!!!!

Buena

Codificación feliz

 

Hola mladen, una última pregunta:

¿Cómo puedo cerrar la orden de compra o venta abierta del símbolo actual? Sólo hay una orden abierta a la vez.

 
arroganzmaschine:
Hola mladen, una última pregunta: ¿Cómo puedo cerrar la orden de compra o venta abierta del símbolo actual? Sólo hay una orden abierta a la vez.

Puedes hacer algo así :

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))

{

if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);

if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);

}

 

¿Tengo que obtener todas las órdenes abiertas? ¿O este trozo de código que has publicado obtiene las órdenes abiertas actuales?

 
arroganzmaschine:
¿Tengo que obtener todas las órdenes abiertas? ¿O este código que has publicado obtiene las órdenes abiertas actuales?

Has dicho que sólo hay una orden abierta a la vez

Ese código sólo funciona si hay una sola orden abierta

 

Sólo hay una orden abierta para un símbolo. Pero tengo diferentes gráficos abiertos. Así que el código tiene que elegir la orden del símbolo y cerrar esta. ¿Cómo tengo que hacer eso?

 
arroganzmaschine:
Sólo hay una orden abierta para un símbolo. Pero tengo diferentes gráficos abiertos. Así que el código tiene que elegir la orden del símbolo y cerrar esta. ¿Cómo tengo que hacer eso?

Así:

for (int i=OrdersTotal()-1; i>=0; i--)

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);

if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);

}

 

¡Funcionó! ¡Eres genial!

Razón de la queja: