Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 125
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
Yo lo habría hecho así:
P.D. Contestado al mismo tiempo)))
No lo entiendo:
si se abre en la primera barra, mirando de cero a cero?
No lo entiendo:
si se abre en la primera barra, ¿estamos buscando de cero a cero?
Se trata de una pequeña cobertura en el caso de que el precio de apertura de la orden sea ya significativamente superior al mínimo en el momento de la apertura. Es decir, no utilizamos la barra de apertura para buscar. Para eso está PERIOD_M1.
Yo lo haría de otra manera. En general, sólo empezaría a buscar cuando la posición haya durado más de una barra. Después de todo, el mejor precio puede estar justo en la barra de apertura, y lo desperdiciaremos...
Estoy de acuerdo. Probablemente sería más eficiente recordar el precio mínimo (o máximo) de cada orden abierta en la matriz en cada tick, y cerrar las órdenes cuando se alcanza la condición, que volver a buscar el mínimo desde el momento en que se abrió la orden, por así decirlo:
Y en caso de problemas como pérdida de conexión, reinicio del asesor, etc. modificaría de vez en cuando el stoploss en las órdenes.He argumentado que el array debe pasarse aquí por referencia. De lo contrario, la función tendrá que trabajar con una sola matriz estrictamente definida. Incluso si lo tienes definido globalmente.
Hmm. Depende del array que se pase a la función de llamada. Si se trata de un array específico, entonces la función llamada funcionará con él... Porque eso es...
Si, por ejemplo,
Llamándolo de esta manera:
Funciona con la matriz OrdersMassive.
Y así:
Con la matriz massiveOfOrders.
¿Puedes decirme cómo averiguar el tamaño del spread, en el momento de abrir una operación, o, mejor, cómo mostrarlo en el registro?
Si (spread) == algún valor, entonces... haz algo... (Por ejemplo, abrir una orden o imprimir su valor en el diario). O viceversa, si no es igual o mayor que (menor que) algún valor, entonces lo mostramos en el diario y hacemos algo. Puedes hacer lo que quieras.
Voy a repetir la pregunta que hice ayer. No quiero publicarlo en un hilo aparte. Si algo no está claro, responderé a todas las preguntas.
Me sigue costando cerrar las posiciones requeridas. La situación es la siguiente:
1. Se está realizando un seguimiento del cierre de posiciones.
2. Tan pronto como la última posición se haya cerrado en la línea de toma... ...todas las posiciones abiertas y pendientes deben cerrarse de una vez. Todo se cierra ordenado por lotes, es decir, lotes grandes a la vez, y luego más pequeños. Esto está pensado sólo para ganar experiencia con las órdenes.
La aplicación es la siguiente:
En start() en cada tick:
Nos interesa cerrar las órdenes de mercado, ya que la pendiente se borra como es debido. Esto es lo que tenemos:
Por alguna razón algunos de los pedidos no se están cerrando. Imprimo algunos segmentos cuando los veo, no entiendo nada. He aquí un ejemplo:
El comentario muestra que lastOOTHist = 01:30:00, aunque en realidad no es correcto. Si comprobamos lastOOTHist en la ventana de resultados, veremos que
sus horarios de cierre son diferentes...
¿Qué ocurre aquí?
Hmm. Depende del array que se pase a la función de llamada. Si se trata de un array específico, entonces la función llamada funcionará con él... Porque eso es...
Si, por ejemplo,
Llamándolo de esta manera:
Funciona con la matriz OrdersMassive
Y así:
Con el array massiveOfOrders.
Cuando pasas una variable (array) a una función por valor, se crea una variable local dentro de la función y la declaras en la cabecera: miFunción(int mi_var). De este modo, los cambios de esta variable no pueden verse fuera de la función. Y en el caso de un array, el compilador te lo recordará.
Si quieres que los cambios en el valor de la variable sean visibles fuera (fuera de la función), pasa las variables por referencia : myFunct(int & my_var)
Depende de la matriz que se pase a la función de llamada. Si hay un determinado array, entonces la función llamada trabajará con él... Es así...
Si, por ejemplo,
Llamándolo así:
Funciona con la matriz OrdersMassive
Y por aquí:
Con el array massiveOfOrders