Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1440
![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
¡Buenos días y buen humor a todos!
Ayer hubo una confusión con mi Expert Advisor. Hasta ayer había estado probando durante casi un mes sin ningún problema, pero cerca de la tarde de repente el cálculo del riesgo en función del margen libre dejó de funcionar correctamente y el EA comenzó a abrir posiciones con el lote máximo posible. Decidí escribir una función de comprobación que permitiera operar bajo ciertas condiciones para excluir tales "regalos". La escribí y la añadí al código del EA. No sé si esta función ayudó o sucedió algo más mientras la escribía, pero el trabajo del Asesor Experto se ha normalizado.
¡Petición a la respetada comunidad!
Por favor, miren el código y aconsejen qué más se debe añadir a la función para excluir tales "regalos" para el comercio en una cuenta real?
Saludos, Vladimir.
No puedo entender como y que necesita, toma y lee un archivo de la carpeta Tester\Agent... en TERMINAL_DATA_PATH, pero yo necesito leerlo en TERMINAL_PATH y no puedo usar ruta absoluta.
No puedo entender como y que necesita, toma y lee un archivo de la carpeta Tester\Agent... en TERMINAL_DATA_PATH, pero yo necesito leerlo en TERMINAL_PATH y no puedo usar ruta absoluta.
Si necesita trabajar con ficheros durante las pruebas, es más conveniente utilizar para ello una carpeta común a todos los terminales y agentes. Para ello basta con añadir el flag FILE_COMMON a las operaciones de apertura de ficheros.
Se puede acceder a esta carpeta para colocar en ella los ficheros necesarios desde el menú principal del MetaEditor: Archivo → Abrir carpeta de datos común.
Si es necesario trabajar con ficheros durante las pruebas, es más conveniente utilizar para ello una carpeta común a todos los terminales y agentes. Para ello basta con añadir la bandera FILE_COMMON en las operaciones de apertura de ficheros.
Se puede acceder a esta carpeta para colocar en ella los archivos necesarios desde el menú principal del MetaEditor: Archivo → Abrir carpeta de datos común.
Gracias)
Eres un hombre interesante.
Así que tiene suficiente entusiasmo para tal indicador) https://c.mql5.com/1/237/vgif-ru-19978.gif
Y usted no quiere insertar dos líneas de código en RSI por el bien de la práctica de la escritura, por aburrimiento o por algunas otras razones...
Esta no es mi creación. ¿Recuerdas la Monna Lisa de la película "Romance de oficina"?
En cuanto a las dos líneas, ya te lo he explicado.
Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading.
Preguntas de los principiantes MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2023.01.30 07:17 AM
Esta es la razón por la que muchas personas comienzan a aprender un lenguaje de programación. Y así resulta que para que puedas probar tu idea ilusoria alguien se sentará a escribir. Por supuesto, usted puede encontrar un entusiasta de este tipo que puede escribir por el bien de la práctica de la escritura, por aburrimiento o por alguna otra razón ... Pero si usted está de acuerdo y obtener a través de la estrategia de LS, al darse cuenta de que no va a funcionar a negarse a escribir, entonces usted tendrá la sospecha de que fueron engañados, tienen una estrategia rentable y en los arbustos. ¿Y quién necesita tal actitud? Si publica una estrategia y a alguien le interesa, tendrá suerte. Pero por tu dinero, cualquier capricho...
¡Petición a la comunidad respetada!
Por favor, miren el código y aconsejen qué más se debe añadir a la función para excluir tales "regalos" para el comercio en una cuenta real?
Saludos, Vladimir.
Vladimir, ¿cómo
convertido en tipo bool
MARGEN_DE_CUENTA_LIBRE
La cantidad de fondos libres en la cuenta en la divisa de depósito disponible para abrir una posición.
doble
Esto es con lo que me tropezó el ojo. No quiero ni mirar el resto...
Vladimir, ¿cómo has convertido esto en un tipo bool?
MARGEN_DE_CUENTA_LIBRE
Cantidad de fondos libres en la cuenta en la divisa de depósito disponible para abrir una posición
doble
Esto es lo que me he encontrado. No quiero ni mirar el resto....
Hola Alexey, yo estaba pensando así - si fondos libres en la cuenta en la moneda de depósito disponible para la apertura de una posición es suficiente, entonces es cierto. Ahora me doy cuenta de que este valor es sólo para cálculos. Gracias por la sugerencia.
Saludos, Vladimir.
¡Buenos días y buen humor!
Teniendo en cuenta las críticas constructivas, he cambiado el código de la función check:
Las funciones CheckMoneyForTrade() y CheckVolumeValue() no las he puesto, ya que son de libre acceso y están sacadas de aquí.
¿Será suficiente este mínimo para evitar el problema con el Asesor Experto que tuve anteayer?
Saludos, Vladimir.
¡Buenos días y buen humor a todos!
Teniendo en cuenta las críticas constructivas, he cambiado el código de la función de comprobación:
Las funciones CheckMoneyForTrade() y CheckVolumeValue() no se publican, ya que están disponibles libremente y tomadas de aquí.
¿Será este mínimo suficiente para evitar el problema con el Asesor Experto que tuve anteayer?
Saludos, Vladimir.
Sí, parece normal, pero es mejor comprobar el volumen y la suficiencia en una sola función y cambiar la lógica sobre la suficiencia. Comprobamos si el lote de margen es mayor o menor, pero no lo reducimos, si el lote solicitado es menor, también calculo el lote en relación con el margen disponible, qué lote se puede establecer, y lo comparo con el lote mínimo, y si es menor, entonces la operación ha terminado definitivamente.
¡Buenos días a todos! Tengo un indicador estocástico RSI. El problema es que funciona muy lentamente. Según tengo entendido, el principal "freno" lo crea el gran periodo que se utiliza para buscar el mínimo y el máximo en las matrices:
Idealmente, la solución podría ser que el indicador recorriera todas las barras del histórico durante la primera ejecución, y actualizara sólo la última barra durante las siguientes. Pero no entiendo cómo hacerlo. ¿Es posible hacerlo? En caso afirmativo, te agradecería que compartieras algún enlace o consejo sobre cómo hacerlo.
Aquí está todo el código del indicador: