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
En realidad hay más errores en el código. Por ejemplo, está bien demostrado que usar CSymbolInfo sólo por el estilo SB es malo.
Cerrar posiciones mediante una lista de entradas previamente recopilada es malvado. Este es un error muy común.
Creo que esto dice mucho:
Vale la pena entender que este EA es para fines de formación.
Sobre procesar los códigos de retorno del servidor. Personalmente, siempre los proceso. Pero aquí - en el probador (espero que entienda que un EA de entrenamiento está hecho para el probador y para sus posteriores modificaciones de forma independiente) - probablemente no es necesario procesar todos los códigos de retorno necesarios. Así como siempre tener su propio entorno de negociación es bastante justificado tanto para el comercio real, y más aún para un probador.
Usted puede ver lo que hay:
En primer lugar, se rellenan los datos sobre las posiciones existentes:
Luego, después de comprobar las señales, la apertura (aquí se abre la posición de Compra):
Si el número de Vender es mayor que cero - cerrar. El Asesor Experto es oscilante - siempre hay una sola posición. Así que no hay posiciones de Compra si hay posiciones de Venta - es innecesario comprobar su número aquí, así como actualizar el entorno de negociación en las matrices internas del Asesor Experto.
A continuación, comprueba el número de posiciones de Compra. Su número puede ser mayor que cero sólo después de la apertura. Pero después de cerrar la Venta, el número de posiciones de Compra es necesariamente igual a cero - un EA swing. Y no hay necesidad de ejecutar un bucle buscando algo que ya se sabe.
A continuación están las comprobaciones mínimas de corrección y la apertura de una posición de Compra. Inmediatamente después de devolver true, se actualizan las matrices internas del entorno de negociación del EA.
Todo es lacónico y sin excesos. Corrígeme si no he visto algo aquí.
El error está en la entrada y llamada al enum, no en la distancia mínima. Pero también se calcula incorrectamente, porque
no lo veo. Muéstrame - es interesante.
Creo que esto lo dice todo:
Vale la pena darse cuenta de que este EA es para fines de formación.
Sobre procesar los códigos de retorno del servidor. Personalmente, siempre los proceso. Aquí - en el probador (espero que te des cuenta de que un Asesor Experto de entrenamiento está hecho para el probador y para sus posteriores modificaciones de forma independiente) - probablemente no es necesario procesar todos los códigos de retorno necesarios. Así como siempre tener su propio entorno de negociación es bastante justificado tanto para el comercio real, y más aún para un probador.
Usted no leyó cuidadosamente. No quería códigos de devolución. CloseSell en las entradas es malo en sí mismo. ¿Qué tiene que ver un tester con ello cuando el código debería funcionar correctamente al menos en una demo y no tener errores potenciales obvios?
Debería haber RefreshRates después de CloseSell. No está, así que habrá fallos incluso en el tester si activas el modo de retardo. Usar una biblia estándar por el bien del estilo SB es malvado. Y el código lo demuestra bien.
Habiendo hecho sólo unos pocos cambios en SymbolInfo.mqh, logré compilarlo y usarlo en MT4. Pero, ¡a quién en su sano juicio se le ocurre esto cuando escribe algo en MQL4! ¡¿Por qué se le ocurre a mucha gente cuando codifica en MQL5?! No sólo cubre un montón de errores potenciales, toma tiempo aprender, pero también se ve torpe.
No lo leíste cuidadosamente. No quería un código de devolución. CloseSell en las entradas es malo en sí mismo. ¿Qué tiene que hacer un probador cuando el código debería funcionar correctamente al menos en una demo y no tener errores potenciales obvios?
Debería haber RefreshRates después de CloseSell. No existe, por lo que habrá fallos incluso en el probador si se activa el modo de retardo. Usar una biblia estándar por el bien del estilo SB es malvado. Y el código lo demuestra bien.
Después de CloseSell() hay una apertura de Buy con precio cero:
¿Por qué dos veces RefreshRates() ? ¿Has mirado el código de apertura en SB en CTrade? Yo lo hice:
Después de CloseSell() se abre la Buy con precio cero:
¿Por qué RefreshRates() dos veces?
Porque se llaman funciones correctas.
¿Has mirado el código de apertura en CTrade?
Include\Trade\*.mqh Siempre miro/vigilo, porque usted debe conocer al enemigo por la vista.
A continuación, se llama a las funciones correctas.
Include\Trade\*.mqh Siempre vigilo/vigilo, porque debes conocer al enemigo de vista.
Enemigo :))))
Sí, ahora lo he visto - en las funciones correctas el precio se lee de las variables m_tick de SB, que se rellenan durante la actualización, no directamente a través de SymbolInfoDouble() - eso no sería una posible emboscada de la que hablas. Además, no hay mucho código antes de las funciones correctas, y los precios se actualizan justo después de que llegue el tick - al principio de OnTick():
Enemigo :)))))
Sí, ahora lo he visto - las funciones correctas leen el precio de las variables m_tick de la SB, que se rellenan al actualizar, pero no directamente a través de SymbolInfoDouble() - ese no sería un posible problema del que hablas. Además, no hay mucho código antes de las funciones correctas, y los precios se actualizan inmediatamente a la llegada del tick - al principio mismo de OnTick():
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Asesores Expertos: Diff_TF_MA_EA
fxsaber, 2018.02.01 22:10
Habiendo hecho muy pocos cambios en SymbolInfo.mqh resultó compilarlo y usarlo en MT4. ¡Pero a quién en su sano juicio se le ocurre esto cuando escribe algo en MQL4! ¡¿Por qué se le ocurre a mucha gente cuando codifica en MQL5?! No sólo cubre un montón de errores potenciales, toma tiempo aprender, sino que también se ve torpe.
Voy a tirar una piedra en el jardín de MQL4. Bid/Ask con RefreshRates forzados es malvado. Pero hay una macro-construcción maravillosa que da un resultado inconfundible y conciso.
He estado esperando a que ensillaras tu caballo jorobado :)))))
Basta con utilizar SymbolInfoDouble() en estas funciones correctas para obtener los precios necesarios. Sin embargo, eso es lo que yo hago en mis funciones similares. Aquí el programador confió en vano en los datos recibidos del objeto símbolo - se dan viejos - se escriben en m_tick sólo cuando se actualizan.
He estado esperando a que ensillaras tu caballo jorobado :))))))
Basta con utilizar SymbolInfoDouble() en estas funciones para obtener los precios necesarios. Sin embargo, eso es lo que yo hago en mis funciones similares. Aquí el programador se basó en los datos recibidos del objeto símbolo en vano - se da fuera de edad - escrito a m_tick sólo cuando la actualización.
Aquí surge una pregunta lógica, ¿quién le hizo para obtener los datos más simples en OOP? En MQL4 siempre recibía estos datos sin problemas, pero ¿qué ha cambiado en su mente?
Caballo Jorobado
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
MT4-Tester VS MT5-Tester
fxsaber, 2017.05.08 10:04 AM
Gracias al subj encontrado el culpable, siempre pasa cuando hay oportunidad de comparar.
Asesor experto que muestra el error
MT4
MT5