Error nº 1 al modificar los pedidos - página 6

 
tara:
¿Cómo ha votado?
Hoy hacía fresco (+15), así que he salido con la ropa puesta. Y no pinché nada ya que no me preocupaba.
 
Akella ...
 
tara:
Akella...

¡No te pongas chulo! ¿Qué quieres decir?

 
borilunad:

Todas las comprobaciones se realizan antes del bucle, con condiciones relativas a cada tipo y una llamada a esta función, que sólo comprueba los errores de Modify():

Cualquier otra cosa, pregunta, pero ahora me voy a cenar. ;)

Boris, Gracias, por supuesto por la ayuda. Pero resultó que mi bicho estaba enterrado en el lugar equivocado. Estaba en otro lugar. Después del envío de la orden en el mismo método de envío de la orden hubo una modificación, y luego, en la misma garrapata, la modificación por otra condición. Así que, cuando se abrió la orden, hubo errores en esa garrapata. Y no hubo errores en otras ocasiones.

Si vamos más allá, la función de comprobación de Stop Loss y Freefall + corrección del precio allí, si las condiciones no se observan absolutamente, es correcta sin embargo, pero la curva del compilador no quiere manejarlo correctamente por alguna razón. Imprimo todo, se pone todo como debe, un nivel más arriba todo está claro también. Pero no obtuvo ningún resultado. He dividido esa función en dos partes y ahora todo funciona.

Por supuesto, no me gusta nada toda esta curvatura, pero sobreviviré a ella por ahora...

 
hoz:

Boris, gracias, por supuesto, por tu ayuda. Pero, de hecho, resultó que me equivoqué de lugar para ser enterrado. Estaba en otro lugar. Después de enviar la orden en el mismo método de envío de la orden hubo una modificación, y luego, en la misma garrapata, la modificación por otra condición. Así que, cuando se abrió la orden, hubo errores en esa garrapata. Y no hubo errores en otras ocasiones.

Si vamos más allá, la función de comprobación de Stop Loss y Freefall + corrección del precio allí, si las condiciones no son absolutamente observadas, es correcta sin embargo, pero la curva del compilador no quiere manejarla correctamente por alguna razón. Imprimo todo, se pone todo como debe, un nivel más arriba todo está claro también. Pero no obtuvo ningún resultado. He dividido esa función en dos partes y ahora funciona.

Por supuesto, no me gusta una mierda toda esta curvatura, pero lo superaré por ahora...

De nada. Yo tampoco tengo todo en orden. Por fin he terminado otro EA. Lo he probado durante todo el día y por fin se ha atado bien sólo ahora. Tendré algunas sorpresas en el Real de nuevo. Lo principal es la persistencia, la paciencia y la perseverancia.
 
https://forum.mql4.com/ru/65622
 
azfaraon:
https://forum.mql4.com/ru/65622
Le aconsejo que se ponga en contacto con el propio profesor. ¡Quieres cambiar la lógica de su sistema, y nadie lo hará mejor que él, y es poco probable que encuentres a alguien dispuesto a meterse con el código de otra persona, especialmente, muy probablemente anticuado, y por "seguridad" de un guardia de seguridad sin título!
 

Boris, la pega es que tu función no tiene en cuenta una serie de factores. Por ejemplo, si se permite o no que un lobo comerciante... etc. Tengo esas cadenas en mi función de modificación:

   while (IsTradeAllowed() == true)
      {
         if (!IsExpertEnabled() || IsStopped() || li_Cnt > 200)
         {
            CLogs.WriteLog (StringConcatenate ("Error: Trying to send order ", GetNameOP (fi_Type), " | Price: ", DToS (fd_Price), " NOT IsTradeContextBusy"));

            if (!IsExpertEnabled())
            {
               CLogs.WriteLog ("Permit ExpertEnabled !!!");
            }
            return (-1);
         }

Esto es, por ejemplo. Así que lo que quiero decir es que la brevedad no siempre es conveniente. Después de todo, estas comprobaciones están presentes en el torrent real de todos modos. Entonces, ¿por qué no ponerlos en la caja negra?

y no pensar más en ellos? También es más fácil así...

Es más sencillo sólo si tienes una plataforma adecuada. En nuestro caso, no es la mejor opción. Pero es posible encontrar una especie de término medio. No son códigos muy largos, pero tampoco están vacíos.

 
hoz:

Boris, la pega es que tu función no tiene en cuenta una serie de factores. Por ejemplo, si se permite o no que un lobo comerciante... etc. Tengo esas cadenas en mi función de modificación:

Esto es, por ejemplo. Así que lo que quiero decir es que la brevedad no siempre es conveniente. Después de todo, estas comprobaciones están presentes en el torrent real de todos modos. Entonces, ¿por qué no ponerlos en la caja negra?

y no pensar más en ellos? También es más fácil así...

Es más sencillo sólo si tienes una plataforma adecuada. En nuestro caso, no es la mejor opción. Pero es posible encontrar una especie de término medio. No son códigos muy largos, pero tampoco están vacíos.

Víctor, tengo una comprobación de la resolución de la operación antes de abrir una posición, y también compruebo si hay suficiente capital y muchas otras cosas, pero en el inicio, ¡no en las funciones! Entonces, ¿por qué comprobarlo en la modificación?
 
borilunad:
Víctor, tengo una comprobación para permitir el comercio antes de abrir una posición, así como una comprobación de suficiente Patrimonio y muchas otras cosas, pero en el inicio, ¡no en la función! Entonces, ¿por qué comprobar en la modificación?

Boris, es simple.

En primer lugar, en este caso no lo olvidarás en el futuro porque esta comprobación estará siempre presente.

En segundo lugar, esta comprobación requiere tan poco tiempo que no dará ninguna optimización del código y no acelerará el proceso. Es decir, o bien marcar "Permitido comerciar" y entrar en la función, o bien entrar y marcar "Permitido comerciar".

Tercero, estoy de acuerdo en lo de la equidad, debería aplicarse por separado. Hice que cortaran esta pieza. Y muchas cosas eliminadas. Ahora la función es corta en general.