Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 81
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
La posición se invierte porque el programa envía dos peticiones idénticas al servidor. El programa envía dos peticiones idénticas al servidor porque su código no comprueba si se ha enviado una petición anterior (y no comprueba el resultado de procesar esta petición en el servidor).
Yedelkin escribe: su código no comprueba si hay una solicitud enviada previamente. ¿Puede decirme qué función comprueba esto?
Cada persona tiene una comprensión diferente del código correcto. Así que al final hay que escribir el código "correcto". Y como otro consejo - intente ver si este código funciona de la manera correcta (uso esquemático de la bandera sentRequest):
Cada persona tiene una comprensión diferente del código correcto. Así que al final hay que escribir el código "correcto". Y como otro consejo - intente ver si este código funciona en la tecla correcta (uso esquemático de la bandera sentRequest):
¡Muchas gracias! Probando...
El resultado es el siguiente: el código cierra correctamente una posición larga y no abre una corta... Al reabrir una posición larga, el EA no la cierra según la condición. Hay mensajes en la ventana de EA todo el tiempo:
¿Cómo puedo utilizar este código en el cuerpo del Asesor Experto, si sólo funciona una vez)?
oldiol: При повторном открытии лонга, эксперт не закрывает больше позу по условию. В окне эксперта всё время идут сообщения: Как же использовать этот код в теле эксперта, если он работает только 1 раз)?
Debería ser bastante sencillo en este asunto. En el código del esquema, el indicador sentRequest debe ponerse a cero si la posición abierta no es una posición de compra (última línea de código). Vea por qué esta bandera no se pone a cero en su código cuando no hay una posición abierta o la posición abierta no es una posición de compra.
¡Hurra! Funcionó)))) Eliminado if(sentRequest) sentRequest=false; Y escrito antes del bloque if(PositionsTotal()==0) sentRequest=false; Muchas gracias a Yedelkin por su ayuda, ¡Suerte!
oldiol : Al reabrir un largo, EA ya no cierra la posición por condición. Hay mensajes en la ventana de EA todo el tiempo: ¿Cómo puedo usar este código en el cuerpo de EA, si funciona sólo 1 vez)? Lo siento, mi error... Hay una condición más en el código
if(PositionSelect(_Symbol)==true) // hay una posición abierta
{
POSICIÓN CERRAR BLOQUE
} // ... por lo tanto
if(sentRequest) sentRequest=false;// se coloca detrás del siguiente paréntesis y todo funciona perfectamente. Yedelkin ¡GRACIAS!