Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 672
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No he trabajado con esta función. Se supone que si el terminal selecciona un carácter una vez, el siguiente intento de seleccionar el mismo carácter puede devolver falso. Intenta ignorar la comprobación de retorno de esta función.
Resulta que SymbolSelect("AUDUSD", true) devuelve true sólo si AUDUSD no está en MarketWatch - es decir, cuando el par se añade a MarketWatch. Una vez que el par está en MarketWatch, las siguientes llamadas devuelven false.
Este comportamiento no coincide en absoluto con el manual de esta función.
Tuve que usar una función escrita por mí mismo que escanea todos losSymbolName(i, true) para i=0...SymbolsTotal(true).
Resulta que SymbolSelect("AUDUSD", true) devuelve true sólo si AUDUSD no está en MarketWatch - es decir, cuando el par se añade a MarketWatch. Una vez que el par está en MarketWatch, las siguientes llamadas devuelven false.
Este comportamiento no coincide en absoluto con el manual de esta función.
Algo me dice que puedes prescindir de SymbolSelect().
Sí, acabo de actualizar mi post anterior
¿Cuál es el otro, o ya deberíamos estar haciendo una pata en este?
Master Forex
Me tomó 4 meses para hacer un búho en alpari..... ¡¡¡¡¡el código de nano quanto es muy jodido de tiempo y no pequeño..... y ahora todo es !!!!! es una pena .... No estoy seguro de qué hacer con él.
Tercer búho y sigue el mismo error, me alegro de que el problema no sea el código :)
Master Forex
Gracias, voy a echar un vistazo.
Gracias, voy a echar un vistazo.
No estoy haciendo campaña, sólo respondiendo a una pregunta :)
Hola a todos. Empecé a escribir EAs no hace mucho tiempo. Me he enfrentado a un problema aparentemente elemental, que no puedo resolver. Por favor, ayuda.
El problema. En un nuevo tick pierdo el valor de una variable.
Breve descripción. Asigne a alguna variable el valor de retorno de la función OrderSend() y salga utilizando el comando return. En el siguiente tick el valor de la variable se hace igual a cero.
El elemento clave del código fuente. El código fuente completo a continuación.
if (SAR_Prev>LastClose && SAR_Prev2<LastClose2)
{
int ticket_sell=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Ask+StopLoss*Point,Bid-TakeProfit*Point,",111,0,Red);
Alert ("Valor asignado a la variable ticket_sell ", ticket_sell);
volver;
}
}
Alerta ("Posición existente = ", position_exists, "Orden de compra ", ticket_buy, "Orden de venta ", ticket_sell);
Resultado.
La captura de pantalla muestra que la posición fue abierta con éxito y el ticket de la orden fue memorizado en la variable ticket_sell. Sin embargo, la variable ticket_sell se convierte en cero en el siguiente tick. Y no puedo modificar/borrar el pedido en el ticket.
Hola a todos. Empecé a escribir EAs no hace mucho tiempo. Me he enfrentado a un problema aparentemente elemental, que no puedo resolver. Por favor, ayuda.
El problema. En un nuevo tick pierdo el valor de una variable.
Breve descripción. Asigne a alguna variable el valor de retorno de la función OrderSend() y salga utilizando el comando return. En el siguiente tick el valor de la variable se hace igual a cero.
El elemento clave del código fuente. El código fuente completo a continuación.
if (SAR_Prev>LastClose && SAR_Prev2<LastClose2)
{
int ticket_sell=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Ask+StopLoss*Point,Bid-TakeProfit*Point,",111,0,Red);
Alert ("Valor asignado a la variable ticket_sell ", ticket_sell);
volver;
}
}
Alerta ("Posición existente = ", position_exists, "Orden de compra ", ticket_buy, "Orden de venta ", ticket_sell);
Resultado.
La captura de pantalla muestra que la posición fue abierta con éxito y el ticket de la orden fue memorizado en la variable ticket_sell. Sin embargo, la variable ticket_sell se convierte en cero en el siguiente tick. Y no puedo modificar/borrar el pedido en el ticket.
Para no perder el valor, necesitamos una variable global, poner su declaración fuera deOnTick() o hacerla estática