[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 173

 
TarasBY:

Esta condición cambia de alguna manera en el bucle:

...Si "no", ¿por qué ponerlo dentro del bucle?


Bueno, lo esencial es esto:

En los parámetros externos siUseFiltrMa= TRUE, la condición A > B debe ser tenida en cuenta, pero siUseFiltrMa = False, la condición no se tiene en cuenta. Esta condición(A > B) no aparece en ninguna otra parte del código. Pongo este filtro dentro del bucle ya que el filtro anterior también está en el bucle. Al fin y al cabo, tenemos un conjunto de rodajas. El bucle selecciona un número de secuencia de un vagón (su índice).

A > B, según mi código, se ve así:

MA(g_maHigherTF[0]) > MA(g_maHigherTF[1])

Como ves, todo encaja aquí, y puedes ver la razón del bucle.

 
hoz:


Bueno, la esencia es esta:

En los parámetros externos siUseFiltrMa= TRUE, la condición A > B debe ser tenida en cuenta, y siUseFiltrMa = False, la condición no se tiene en cuenta. Esta condición(A > B) no aparece en ninguna otra parte del código. He puesto este filtro dentro del bucle ya que antes también estaba en el bucle. Al fin y al cabo, tenemos un conjunto de rodajas. El bucle selecciona un número de secuencia de un vagón (su índice).

A > B, según mi código, se ve así:

Ya ves, aquí todo encaja, y puedes ver la razón del bucle.

Nunca he visto una condición de bucle que cambie la condición: si (A > B).

Siempre puede haber muchas soluciones, y necesitas la forma que se te ocurrió...

 
TarasBY:

Sigo sin ver ninguna condición de bucle que cambie la condición: si (A > B).

Siempre puede haber muchas soluciones, y quieres que la forma en que piensas...


No necesitas este bucle... No le prestes atención. Sólo tienes que insertar la condición como he escrito arriba:

hoz:

En los parámetros externos, siUseFiltrMa= TRUE, se debe tener en cuenta la condición A > B, y siUseFiltrMa = False, la condición no se tiene en cuenta.

SiUseFiltrMa = False, seomitela condiciónA > B .Eso es todo. No necesitas nada más. No prestes atención a los bucles,... es una larga historia, qué viene de dónde. Sólo hay un bloque. Y describí la tarea.
 
hoz:


Lo esencial es lo siguiente:

En los parámetros externos si UseFiltrMa = TRUE, la condición A > B debe ser tenida en cuenta, y siUseFiltrMa = False, la condición no se tiene en cuenta. Esta condición(A > B) no aparece en ninguna otra parte del código. He puesto este filtro dentro del bucle ya que antes también estaba en el bucle. Al fin y al cabo, tenemos un conjunto de rodajas. El bucle selecciona un número de secuencia de un vagón (su índice).

A > B, según mi código, se ve así:

Como ves, aquí todo encaja, y podemos ver la razón del bucle.

if(UseFiltrMa == TRUE&& А > B )

  {

     //  

   }

else

  {
   //

  } 
 

pako:

if(UseFiltrMa == TRUE&& А > B )

  {

     //  

   }

else

  {
   //
  }


Así es como yo lo veo. ¿No podrías hacerlo más corto? Se puede implementar en una línea. Si no, tendremos que estirar el código.

Por ejemplo, a menudo hago una inserción como ésta antes de la función de orden sin pérdida:

if (UseBU)
{
  // Код функции перевода в БУ
}

Pero en este caso, cuando la variableUseBU se establece en False, no hay necesidad de ejecutar la función más. Por eso es más fácil y más corto allí. Pero aquí es diferente. Otras condiciones por código obligatorio. Por eso pienso.

 
hoz:


Así lo entiendo yo. ¿No podrías hacerlo más corto? Se puede implementar en una línea. Si no es así, tendrá que estirar el código.

Por ejemplo, a menudo hago una inserción como ésta antes de la función de orden sin pérdida:

Pero en este caso, cuando la variableUseBU se establece en False, no hay necesidad de ejecutar la función más. Por eso es más fácil y más corto allí. Pero aquí es diferente. Otras condiciones por código obligatorio. Por eso pienso.

En resumen, así:

if((UseFiltrMa == TRUE && А > B) || UseFiltrMa == FALSE)
{
  if(..........................
 
borilunad:
¿Quien sabe, es posible con las variables globales Hour(), Minute(), Seconds() controlar a medianoche (0.00) el cambio en el indicador DailyPivotPoints a los nuevos niveles RR y otras líneas del EA? Antes lo hacía directamente en el indicador con Hour(), Minute(), Seconds(), y funcionaba sin necesidad de compilar cada noche. Y hace poco se detuvo, ¿tal vez por cambiar el bild? Gracias.

Boris, intenta hacer esta pregunta en el hilo de los profesionales.
 
hoz:

Boris, intenta hacer esta pregunta en el hilo de los profesionales.

¡Gracias, Víctor! ¿Te ha salido mi versión corta?

if((UseFiltrMa == TRUE && А > B) || UseFiltrMa == FALSE)
{
  if(..........................
 
granit77:
Intenta desmarcar la opción "Desactivar EA en el cambio de perfil" en la configuración para ver si ayuda.

Gracias. - Lo intentaré. Desgraciadamente, me he dado cuenta de la respuesta tarde, ya que los mercados están fuera del fin de semana. Y tampoco puedo restablecer mi configuración a través de init(). Aunque, en teoría, deberían hacerlo.

No estoy seguro de por qué MT restablece su configuración en absoluto. No importa cuál sea el marco temporal; si establezco los parámetros en la configuración, deberían (en teoría) guardarse en cualquier TF.

 
Buenos días a todos. Me pueden decir cómo copiar operaciones en Metatrader 4. De modo que al abrir una operación en un terminal se podría obtener una operación abierta en otro.
Razón de la queja: