Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 405

 
Link_x:
Observe el valor de la variable que establece el número de lotes cuando se abre una posición.
Este valor es cero.
Es imposible abrir una posición con volumen cero para operar.




Esto también es posible, lo principal es escribir el código correctamente.



¿Seguro que sabes de qué estás hablando?
 
Trader7777:

¿Y tal vez la tercera vez alguien todavía prestará atención a mi petición?

Escribí la función por SAM, pero el probador da el error 4051, es decir, número imposible de lotes. ¿Alguien tiene una opinión al respecto?


for (int i = OrdersTotal()-1; i>0; i--)  // надо i>=0
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)    // не надо OrderType() == otype, далее проверяете на бай и сел, а про отложки варианта нет.
Lot = NormalizeDouble (((OrderOpenPrice()-Bid)*Point)*OrderLots()/TP,2); 

¿TP es un valor de Take Profit para la orden seleccionada? Así que toma el valor de la orden, hay diferentes Take Profits.

En este punto se busca la cantidad de pips que hay en el drawdown, se divide por el take profit y se multiplica por el valor del lote.

Si tiene un ticket de compra, tiene beneficios cuando la oferta está por encima del precio de compra (ask). (Oferta - Precio de apertura de la orden ())

No contabilizas los tickets de beneficios negativos y positivos en general,

en caso de que no tenga suficientes fondos libres para abrir con un lote de este tipo, ya que un billete negativo puede superponerse a todos los positivos.

return (TotalLot); la función puede devolver 0, en determinadas circunstancias, ¿se comprueba más?

 
Trader7777:

¿Seguro que sabes de qué estás hablando?

La frase anterior tiene varios significados. Los significados de esta frase se describen a continuación.

1 - Una reprimenda de que he entendido mal el código y, por tanto, he dado una instrucción errónea.
2 - Una indicación de la dificultad de comprensión de mis textos.
3 - Un cuestionamiento de mi salud psicológica.

Elija una de las opciones para seguir comunicándose conmigo, ya que no puedo responder a su pregunta eligiendo intuitivamente la opción de interpretar la frase.
 
Link_x:

La frase anterior tiene varios significados. Los significados de esta frase se describen a continuación.

1 - Una reprimenda de que he entendido mal el código y, por tanto, he dado una instrucción errónea.
2 - Una indicación de la dificultad de comprensión de mis textos.
3 - Un cuestionamiento de mi salud psicológica.

Elija una de las opciones para seguir comunicándose conmigo, ya que no puedo responder a su pregunta eligiendo intuitivamente la opción de interpretar la frase.

Estoy seguro de que 1. No se puede juzgar de forma fiable con qué lote se abre la posición, aunque sólo sea porque el autor no da el código de apertura de la posición. Y donde has visto cero, es el valor inicial de la variable. Es demasiado pronto para enseñar a nadie.
 
Hola camaradas. Soy nuevo en la programación, sólo estoy aprendiendo MQL4. Por favor, explica cómo abrir una orden sin esperar a ciertas condiciones, y no en cada vela, como la mía. ¿Tal vez tenga un ejemplo de código estándar o algo más?
 
hmpr:
Hola camaradas. Soy nuevo en la programación, recién estoy aprendiendo MQL4. Por favor, explica cómo abrir una orden sin esperar a ciertas condiciones, y no en cada vela, como la mía. ¿Tal vez tenga un ejemplo de código estándar o algo más?
El algoritmo es el siguiente: si el EA comprueba si hay una orden abierta y si ya hay una orden abierta, entonces sale de start(). Los códigos están aquí.
 
Trader7777:

¿Y tal vez alguien preste atención a mi petición después de la tercera vez?

Escribí una función CAM, pero el probador da el error 4051, es decir, un número imposible de lotes. ¿Alguien tiene una opinión al respecto?

функция поиска лота, необходимого для выхода из просадки после  

//cerrar una parrilla de pedidos

Para evaluar la corrección del código, hay que saber exactamente lo que el autor quería conseguir. Su información no es suficiente. Lo que querías conseguir no está muy claro. Si usted quisiera compensar la pérdida después de cerrar la parrilla abriendo una orden opuesta y esperando que el precio pase en la dirección de la última orden alguna cantidad de puntos, el proceso de compensación depende tanto del lote de esta orden como de la distancia que el precio pasará en la dirección favorable. Esto significa que cuando se calcula el lote, también se debe definir la distancia que el precio tendrá que pasar para compensar la pérdida. Pero tal vez te refieras a otra cosa.
 

el código termina con una vista de

Me gustaría insertar la función de dormir con un período de 30 segundos.

todo el código debería ejecutarse 2 veces por minuto en lugar de cada tick, y

¿cómo insertar correctamente esta función? ¿dónde? y ¿cómo? preferiblemente al final del código con un ejemplo, gracias

 
bergkamp.:

el código termina con la vista

Me gustaría insertar una función de reposo con un período de 30 segundos

todo el código funciona 2 veces por minuto en lugar de cada tic, y

¿cómo insertar correctamente esta función? ¿dónde? y ¿cómo? preferiblemente al final del código con un ejemplo, gracias

Guarda la hora al final del código de la función. A continuación, compárela con la hora actual y, si ésta supera en 30 segundos la hora memorizada, inicie de nuevo la función.
 
khorosh:
Recuerda la hora al final del código de la función. A continuación, compárelo con la hora actual y si la hora actual supera en 30 segundos la hora memorizada, ejecute de nuevo la función.
aquí hay un ejemplo... si solo insertas sleep al final del código, ¿como funcionará?
Razón de la queja: