Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 216

 
¿Cómo puedo comprobar mediante programación si el panel de operaciones con un solo clic se está ejecutando o no?
 
Vladimir Tkach:
¿Cómo puedo comprobar mediante programación si el panel de operaciones con un solo clic está funcionando o no?

Lo sacó de la clase:

   //--- Получение параметра "панель торговли OneClick" на чарте
   bool                 IsChartOneClick(void)            {return(ChartGetInteger(m_chart_id,CHART_SHOW_ONE_CLICK));}
 
Artyom Trishkin:

Este problema debería resolverse comprobando si hay, o ha habido, una posición abierta y cerrada en esta misma barra.

De lo contrario, lo amontonarás todo. La función de señal debe enviar señales y la función de negociación debe comprobar la validez de la señal.


Eso es lo que quería hacer, pero no sé cómo ponerlo en práctica. Cómo comprobar la barra actual.
 
AlGuru:

Eso es lo que quería hacer, sólo que no sé cómo implementarlo. Cómo escribir un cheque en el bar actual.

Comprueba si hay una posición abierta que se abrió en la barra 0.

Si no es así, compruebe adicionalmente si hay una posición cerrada, que se abrió en la barra 0 y se cerró en la misma barra.

En consecuencia, es necesario realizar estas funciones:

  1. Barra abierta de la última posición abierta
  2. última posición cerrada barra abierta
  3. Barra de cierre de la última posición cerrada
  4. El hecho de abrir y cerrar la última posición cerrada en la misma barra (se utilizan las dos funciones anteriores 2 y 3)
A continuación, utilizando estas funciones, obtenga los datos que necesita para tomar una decisión.
 
a196012a:

¡Buenos días a todos!

Por favor, aconséjeme cómo codificar la siguiente acción en el probador de estrategias

Idea general

1. orden abierta N -X (volumen = 0,1)

2.Si esta orden se cierra en SL, entonces. para compensar la pérdida, inmediatamente al precio de cierre en SL de una orden N X, abra la orden N - X1 (volumen = 0,3)

TENEMOS QUE HACER.

3 Si la orden (volumen = 0,3) se cierra en SL, sólo se recordará el valor de la hora de apertura de la orden N - X para compensar las pérdidas con las que se abrió.

Sé cómo abrir ambas órdenes, pero no encuentro el camino hasta el final, cómo memorizar el valor de la hora para una orden con un volumen de 0,1 lotes que se cerró en el SL.

NOTA: Esto está relacionado con los cierres de órdenes en el mismo tick.

A veces se cierra más de una orden con el volumen de 0,1 y 0,3 en un solo tick.

Si 3 órdenes de 0,1, por ejemplo, se cierran en un solo tick en un SL, en lugar de abrir 3 órdenes de 0,3. - sólo se abre un pedido de 0,3 lotes

En este caso si cierro sólo 1 orden de 0,3 lotes en el SL, no obtendré valores de la hora cuando se abran dos órdenes de 0,1 lotes que compensen sus pérdidas.

Es decir, necesito que se abran 3 órdenes de 0,3 lotes en este caso, no una.


A veces, 3 órdenes de 0,3 lotes serán cerradas por un SL en un solo tick, a pesar de que sus correspondientes órdenes de 0,1 lotes fueron abiertas en diferentes ticks (pero a un solo precio).

En este caso, el programa guarda el valor correcto sólo para una última orden de 0,1 lotes.

Necesito que el programa guarde el valor de la hora de cada orden (0,1 lote) cerrada por SSL.


Aquí está mi código, que tenemos que modificar.

Gracias por su ayuda.

Este es un ejemplo de una situación en la que se cierran varias órdenes en un solo tick


¡Buenos días!

¿Por qué hay que tener en cuenta la hora de cada pedido cerrado? Puedes prescindir de él... ¿O tiene estos datos en otro lugar?

2) ¿Y exactamente 3 últimos pedidos que cerraron con pérdidas? O no importa cuántos pedidos haya, tal vez 5 u 8... Y en consecuencia, para cada

...una orden que se cerró con pérdidas debería corresponder a una orden con un lote mayor?

 
Valerius:


¡Buenos días!

1. ¿por qué hay que cronometrar cada bar que se cierra? Puedes prescindir de él... ¿Guarda estos datos en otro lugar?

2) ¿Y qué pasa con las 3 últimas órdenes que se cerraron con pérdidas? O no importa cuántos pedidos haya, pueden ser 5 u 8... Y en consecuencia, para cada

...una orden que se cerró con pérdidas debería corresponder a una orden con un lote mayor?

Gracias por su respuesta.

Sí, la hora de apertura se tiene en cuenta en los siguientes pasos del programa.

El número puede ser de 2 a 10.

Exactamente cada orden que fue cerrada por un stop loss debe corresponder a otra orden que se abrió con un volumen mayor.

Por "coincidir" me refiero a que si en el plazo de 1 día 3 órdenes abiertas en cualquier momento fueron cerradas por el SL, inmediatamente a su precio de cierre

Deben abrirse 3 órdenes de mayor volumen. Justo después de cerrar cada pedido individual. Por ejemplo, a las 12 horas una orden cerrada al precio de 1,2000

A las 12 horas al precio de 1,2000 se abre una orden mayor. Esto es lo mismo para cada orden de un volumen menor que se cierra con un SL. Después de que la orden de un volumen mayor sea cerrada por un SL, recuerde la hora en la que se abre la orden en respuesta al cierre de la que fue abierta. Es decir, si la orden se abrió a las 12:00 al precio de 1,200 y se cerró a través de un stop, entonces la orden de alto volumen se abre a las 12:00 al precio de 1,2000. Si la orden de mayor volumen fue cerrada por una SL , recuerde la hora de apertura de la orden de menor volumen, es decir, las 12 horas.

Debemos recordar lo mismo después de cada orden de gran volumen que se cerró sólo a través del SL.

Me resulta especialmente difícil abrir órdenes y guardar los valores horarios cuando se cierran varias órdenes (de 2 a 10) por un solo tick en un SL.

Véase la descripción detallada de esta situación en el post inicial.

 
a196012a:

Gracias por sus comentarios.

Sí, la hora de apertura la tengo en cuenta en las acciones posteriores del programa.

El número puede ser de 2 a 10.

Exactamente cada orden cerrada por un stop debe corresponder a otra orden abierta por un volumen mayor.

Con "coincidir" me refiero a que si en el plazo de 1 día 3 órdenes abiertas en cualquier momento fueron cerradas por el SL, inmediatamente a su precio de cierre

Deben abrirse 3 órdenes de mayor volumen. Justo después de cerrar cada pedido individual. Por ejemplo, a las 12 horas una orden cerrada al precio de 1,2000

A las 12 horas inmediatamente al precio de 1,2000 se abre una orden mayor. Así se hace en todas las órdenes. Y después de que la orden de un volumen mayor sea cerrada por una SL, debemos memorizar la hora de apertura de la orden en respuesta al cierre de la que fue abierta. Es decir, si la orden se abrió a las 12:00 al precio de 1,200 y se cerró a través de un stop, entonces la orden de alto volumen se abre a las 12:00 al precio de 1,2000. Si la orden de mayor volumen fue cerrada por una SL , recuerde la hora de apertura de la orden de menor volumen, es decir, las 12 horas.

Y así después de cada orden de mayor volumen que se cerró sólo en SL.


Y un detalle más.... Por ejemplo, la primera orden se cerró con un lote de 0,1 y la segunda se abrió con un lote de 0,3. Hemos recordado la hora de apertura del primer pedido. Entonces la segunda orden se cerró con un stop y memorizamos la hora de apertura de la segunda orden y colocamos una orden con 0,9 lotes. Y así sucesivamente. ¿He entendido bien? ¿Debemos recordar siempre la hora del primer pedido solamente?
 
Hola. ¿Por qué los pares de divisaseuro vs usdmuestran149,16325 en lugar de 1,0616?


 
sidovi:
Hola. ¿Por qué el pareuro vs usd se muestraen 149,16325 en lugar de 1,0616?



Intenta actualizar las cotizaciones. Servicio - Archivo de cotizaciones - Seleccione su par de divisas - Cargar.

Si eso no ayuda, vuelve a instalar el metatrader.

 
Valerius:

Bueno y una aclaración más.... Por ejemplo, la primera orden se cerró con un lote de 0,1 y la segunda se abrió con un lote de 0,3. Hemos recordado la hora de apertura del primer pedido. Entonces la segunda orden se cerró con un stop y memorizamos la hora de apertura de la segunda orden y colocamos la orden con 0,9 de lote. Y así sucesivamente. ¿He entendido bien? ¿Sólo tenemos que recordar la hora del primer pedido?

Todas las órdenes mayores sólo se abrirán con un volumen de 0,3 lotes. Todas las órdenes de menor volumen que se abran en respuesta a un cierre en el SL en el volumen de 0,3 lotes se abrirán en el volumen de 0,1 lotes. Sólo 0,1 y 0,3. No hay más volúmenes.

Al cerrar una orden de 0,3 lotes a través del SL, recuerde la hora en que se abrió la orden en respuesta al cierre de la que se abrió (es decir, la orden de 0,1 lotes).

Gracias por su ayuda.

Me pueden decir dónde está configurada la opción de enviar un mensaje a mi correo electrónico cuando hay una respuesta a mi post.

Muchas gracias de nuevo.