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
Si necesita una comparación (A > B) utilice (A - B) *DIR> 0 para invertir la comparación para una venta.
Parece que tienes la idea.
Modifica y publica tu código y yo o alguien más lo comentará
Hola GumRai
Ha pasado un tiempo desde que publiqué una actualización aquí, pero he estado trabajando en el código y finalmente lo terminé - doloroso cuando se trabaja 10 horas al día. Sin embargo, tengo dos problemas principales. 1) No importa lo que haga, genera un código de error: "Unknown ticket XYZ for OrderCloseFunction" y 2) Hice un save-as del archivo, (Llamado un USDCAD, otro EURUSD), con diferentes magicnumbers etc, sin embargo, todavía toma sólo un comercio a la vez--y no trata los pares de forma independiente. De hecho, a continuación, crea un "billete no válido para OrderCloseFunction" error también.
Intenté buscar esto en Google pero fue en vano. Realmente apreciaría si usted podría guiarme en la dirección correcta con esto. ¿Qué estoy haciendo mal?
Muchas gracias de antemano.
Nunca utilice OrdersTotal()==0 como condición para introducir operaciones
Significa que si una operación ha sido abierta manualmente o por otro EA o el mismo EA unido a otro símbolo del gráfico, sólo se puede abrir 1 operación.
Tiene la variable global BuyTicket, inicialícela a -1
No haga un bucle a través de las órdenes antes de cerrar, es innecesario
Ahora, cuando se usan variables declaradas globalmente para los números de ticket puede haber problemas si el terminal se cierra y se reinicia por alguna razón
Así que declare una nueva variable de ámbito global
He escrito esto rápidamente, así que puedo haber cometido errores, pero es suficiente para darte la idea
La razón por la que puse el bucle fue porque me di cuenta de que cuando se cerraba la venta, no se activaba la compra por alguna razón.
He seguido adelante y hecho los cambios necesarios ... pero algo todavía parece mal. No está tomando ninguna operación larga ahora, y genera el código de error de la entrada no válida, y OrderClose error 4051. ¿Alguna sugerencia sobre lo que todavía está mal aquí?
Lo extraño es que tanto en el código anterior, como en el actual (sólo para la venta), tomaba las operaciones razonablemente bien (si sólo lo implemento en un gráfico).
¡No pensé que esto fuera tan difícil jaja! Supongo que me equivoqué al pensar que era algo muy simple y sencillo... comprar cuando la vela cruza y abre por encima de la MA, cerrar y vender cuando la vela cruza y va por debajo de la MA.
Lo siento, pero realmente no sé lo que está tratando de hacer
No selecciona ningún orden. ¿Acaso el código compila?
Aquí el else se aplica si(OrderCloseTime()==0) es falso
Aquí se aplica si el OrderSelect falla, que ciertamente lo hace
Lo siento, pero realmente no sé lo que está tratando de hacer
No selecciona ningún orden. ¿Acaso el código compila?
Aquí el else se aplica si(OrderCloseTime()==0) es falso
Aquí se aplica si el OrderSelect falla, que ciertamente lo hace
Lo siento, la culpa es totalmente mía. No leí/apliqué correctamente tus sugerencias; muchas gracias por señalarlo. Aquí lo he hecho correctamente. No se genera ningún error en el informe. Lo único es que ahora, está introduciendo múltiples órdenes de venta y compra a veces, lo que impide cerrar las operaciones en los momentos adecuados.
Edición: Para ser precisos, sólo está saliendo en el SL y TP, no cuando el precio cruza el otro lado de la MA. ¿Tiene esto algo que ver con el bool?
Esto no selecciona un trade, por favor sigue el ejemplo que te di y hazlo correctamente
Me siento... realmente estúpido. lol. ¡¡Gracias por encontrar eso!!
1) Dos cosas más... ahora crea un código de error de OrderClose 4108. ¿Pongo el código de nuevo? Es el mismo que el anterior con la corrección que habías indicado. Pero entra y sale según las reglas.
2) Y no entra en corto inmediatamente después de cerrar la posición larga como se muestra en la imagen. La flecha verde hacia abajo muestra donde debería haber entrado en corto. Tomó una compra, y la cerró con pérdidas una vez que cerró por debajo de la MA amarilla. Aquí, debería haber ido en corto. ¿Cómo puedo hacer un bucle de esto?
Muchas gracias GumRai. Sinceramente no habría llegado a ningún sitio tan cerca sin tu ayuda.
Pequeño cambio ya que se estaba comprobando el cierre de una orden cuando no la había.
Según el código no hay razón para que se abra una venta inmediatamente que se cierre una compra.
La condición para salir de una compra no es la misma que las condiciones para abrir una venta .
Recuerde que como sólo está comprobando la apertura de la vela, Close[0] será el valor de la oferta del primer tick recibido para la vela.
Pequeño cambio ya que se estaba comprobando el cierre de una orden cuando no la había.
Según el código no hay razón para que se abra una venta inmediatamente que se cierre una compra.
La condición para salir de una compra no es la misma que las condiciones para abrir una venta .
Recuerde que como sólo está comprobando la apertura de la vela, Close[0] será el valor de la oferta del primer tick recibido para la vela.
Santo... ¡Lo has conseguido! Gracias una y otra vez GumRai. Eres el mejor.
No puedo adelantar la prueba ahora, pero una vez que se abran los mercados, creo que debería poder usar esto entonces, con los otros pares siempre y cuando tenga diferentes magic#s en la demo.