[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 243

 
¿cuál es el valor máximo de deslizamiento?
 
joo:
He probado con diferentes proyectos y el mismo problema.
Añade un archivo .def. Hay muchas diferencias entre MT5 y MT4 en este sentido, y para bien.
 
TheXpert:
Añade un archivo .def. Hay muchas diferencias entre MT5 y MT4 en este sentido, y para bien.

Lo añadí, no ayudó.

 

Hola a todos. ¿Puedes decirme cómo convertir la variable int en cadena, para que la longitud de la cadena fuera siempre la misma - 2 caracteres (sólo que tengo diferentes de dos dígitos y un dígito, y es molesto). Consejos sobre lo que debe correr de, no pido una solución específica:) Gracias de antemano.


PS: En principio, se puede hacer (si x < 10) y añadir un cero a la izquierda, pero tal vez hay alguna función de conversión de datos incorporada?

 
joo:

Lo añadí, no ayudó.

Probablemente no lo añadí correctamente.
 

Amigos, decidme cuál es mi lógica...

El resultado final:

 bool signal_MACD() 
  { 
    bool signal_MACD = false; //изначально сигнал стоит false
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); //это текущий бар MACD
    for(int i=1;i<=7;i++) //цикл for первый
    { 
      for(int j=2;j<=7;j++) //цикл for второй (я подозреваю, что именно в for у меня ошибка)
      {
            if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,j)*tmp)>0.0) //если текущий бар MACD находится по одну сторону с одним из баров MACD, сдвинутых на 2 назад
            { 
              if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp)<0.0) //если текущий бар MACD находится по разные стороны с одним из баров MACD, сдвинутых на 1 назад

              {
            
                 signal_MACD = true; 
                 break; 
            
              }   
            } 
      }      
    } 
    return(signal_MACD);
  } 

Es decir, el MACD estuvo en un lado de 0, luego terminó en el otro lado y regresó de nuevo. El MACD rompe un poco la línea cero y vuelve... pero en el probador de estrategias, ni siquiera está cerca... la pregunta es... ¿Por qué?

 
nadya:
¿Cuál es el valor máximo de deslizamiento?

¿Cuánto necesitas?


Pyro:

Hola a todos. ¿Puede usted por favor aconsejar cómo convertir la variable int a la cadena, de modo que la longitud de la cadena era siempre la misma - 2 caracteres (sólo ella tiene diferentes sucede y de dos dígitos y de un solo valor, y molesta). Consejos sobre lo que se ejecuta desde, no pido una solución específica:) Gracias de antemano.


PD: Básicamente, se podría hacer (si x < 10) y añadir un cero a la izquierda, pero tal vez haya alguna función de conversión de datos incorporada?

Siempre hago exactamente eso.
 
nemo811:
No me estoy riendo...

Lo que ocurre es que la dispersión a diferentes horas del día y en diferentes días puede ser muy diferente. Así que no es cosa de risa.
 
prorab:

Hice algo con el archivo editable <indicator.mq4>, o lo moví a algún sitio o lo copié con otro nombre, pero después de la compilación, en la lista de indicadores del terminal, el nombre se volvió gris e inactivo.

Sin embargo, el indicador está disponible a través del menú lateral de la barra de la ventana izquierda en el "árbol de listas" y se arrastra al gráfico.

Si se ha encontrado con una situación de este tipo, por favor, aconséjele cómo solucionarlo.

Sinceramente.

No te lo vas a creer.

La razón era banal: ¡demasiados indicadores en la carpeta <indicadores>!

Una vez que moví los *.mq4 innecesarios a <Arxiv>, reduciendo el número de indicadores en la carpeta en 2/3, todo funciona.

¿Quién lo hubiera pensado?

 
CLAIN:

Amigos, decidme cuál es mi lógica...

El resultado final:

Es decir, el MACD estuvo en un lado de 0, luego terminó en el otro lado y regresó de nuevo. El MACD rompe un poco la línea cero y vuelve... pero en el probador de estrategias, ni siquiera está cerca... la pregunta es... ¿Por qué?

for(int i=1;i<=7;i++) //цикл for первый
    { 
      for(int j=2;j<=7;j++) //цикл for второй (я подозреваю, что именно в for у меня ошибка)

después de eso imprimir los valores i y j y ver qué pasa

Supongo que el segundo bucle debe ser corregido por

for(int j=i+1;j<=7;j++)