Errores, fallos, preguntas - página 797

 
sergeev:

¿Esto es todo?


Tengo dos preguntas.

- ¿por qué has cambiado el cálculo de la cuádruple en el código?

- ¿Qué muestra este indicador? ¿Cómo operar con él?

Esto es todo.

- No lo he cambiado. He transferido todo uno a uno. En lugar de f-i en el código de cuatro, utilizo los valores de las matrices MA previamente calculadas de las medias móviles lentas y rápidas de OPEN, CLOSE, HIGH, LOW en cinco, de nuevo multiplicando por los coeficientes apropiados de los instrumentos.

Por ejemplo, el código TOTAL de un cuatro:

if (Symbol() == "EURUSD"){
               OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);
               HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);
               LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
               CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;

Aquí está una de las f-i de EUR que utilizo en su lugar (ver más abajo) - calculando inmediatamente las fórmulas dentro de ella. Todo es uno a uno:

double EUR(int Mode, int Price, int i, int per1, int per2){
   return(
            (iMA("EURUSD",0,per2,0,Mode,Price,i)-
            iMA("EURUSD",0,per1,0,Mode,Price,i))*10000*kUSD
            +
            (iMA("EURGBP",0,per2,0,Mode,Price,i)-
            iMA("EURGBP",0,per1,0,Mode,Price,i))*10000*kGBP
            +
            (iMA("EURJPY",0,per2,0,Mode,Price,i)-
            iMA("EURJPY",0,per1,0,Mode,Price,i))*100*kJPY
          ); 

En el cinco este cálculo será así - sin funciones, como en el cuatro, pero directamente sobre matrices previamente calculadas:

if (Symbol() == "EURUSD")
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])*10000*kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])*10000*kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])*100*kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])*10000*kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])*10000*kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])*100*kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])*10000*kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])*10000*kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])*100*kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])*10000*kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])*10000*kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])*100*kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])*10000*kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])*10000*kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])*100*kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])*10000*kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])*10000*kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])*100*kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])*10000*kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])*10000*kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])*100*kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])*10000*kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])*10000*kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])*100*kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;    

- Se toma el efecto acumulativo de los movimientos de varios símbolos, las diferencias de MA rápido y lento de los símbolos OPEN, HIGH, LOW, CLOSE. Se suman y se dividen por cuatro teniendo en cuenta los coeficientes de los multiplicadores de las diferencias de MA rápida y lenta de los instrumentos que también son objeto de optimización.

Para comerciar: 1. cruzando la línea cero + Diferente (distancia de cero para filtrar las entradas falsas) de abajo hacia arriba, luego para comprar, de arriba hacia abajo, luego para vender. Vea el Asesor Experto en el tráiler.

2. en las líneas de inflexión: si hay una inflexión por debajo de cero, entonces comprar, si hay una inflexión por encima de cero de esta línea de diferencia de instrumento MA acumulativo, entonces vender (esta opción no está disponible en el EA todavía).

Quiero utilizar la primera o la segunda opción en el Campeonato.

Archivos adjuntos:
 

Visualización incorrecta del gráfico (Modo Bares).

Cuando el terminal se pone en marcha, la visualización de los símbolos de la memoria intermedia de los indicadores está significativamente desplazada con respecto a las imágenes de las barras a las que se refieren.

construir 687

También en el modo de visualización, cuando un gráfico se mueve, los símbolos del buffer del indicador se mueven detrás de las barras correspondientes con un retraso muy fuerte y visible.

 
R0MAN:

- No lo he cambiado. He transferido todo uno a uno.

Su resultado no es el mismo.

No entiendo por qué siempre se agrupa mqh

. He arreglado el código en orden. He añadido dos clases

CSeries - una clase que sirve 4 arrays y 4 buffers + están definidos en INDICATOR_CALCULATION
CPair - una clase que sirve dos CSeries - Rápido y Lento.

Y las funciones USD/JPY/EUR/GBP + inicio transferido como en MT4


comparé los resultados con MT4 - uno a uno - coinciden completamente

Cerveza por cuenta de la casa :)


Quiero utilizar la primera o la segunda opción del Campeonato.

¿Tiene algún resultado rentable?

Archivos adjuntos:
 

y este es el tipo de indicador que usted estaba tratando de hacer originalmente

Archivos adjuntos:
 
sergeev:

1. Sus resultados no coinciden.

No sé por qué siempre tienes mqh en tu equipo.

De todos modos, he limpiado el código. He añadido dos clases

CSeries - una clase, que sirve 4 matrices y 4 buffers + están definidos en INDICATOR_CALCULATION
CPair - una clase que sirve a dos CSeries - Rápido y Lento.

Y las funciones USD/JPY/EUR/GBP + inicio desplazado como en MT4


2. He comparado los resultados con MT4 - uno a uno - son idénticos.

Cerveza por cuenta de la casa :)

3. ¿Tiene resultados rentables?


1. ¡Oh! ¡Gracias de todo corazón! Todavía no lo he mirado. ¿Es iCustom - es susceptible?

No un búho en un cinco. Tengo esta índica desde hace años, en el archivo.

2. Cirujano con su MASD - ¡inspirado! Está dando todos los neuro-multi-espectro-ultra-ul con sus 11 oficios. :-)

Así es como suele ser. Ahora, si el iCustom se adapta a mis necesidades, pondré las señales en búhos y me volveré loco.

3. Aunque no hay búho en el talón... ¿Se presta a iCustom? - Necesito sus valores en la primera, segunda y tercera barra (para codificar dos condiciones de entrada al mercado: cruce de cero y (o) punto de inflexión por encima/debajo de cero).

4. "Me debes una cerveza :-) + escribió en un mensaje personal.

 
R0MAN:

3. Aunque no hay búho en el talón... ¿Se presta a iCustom? - necesita sus valores de la primera, segunda y tercera barra (para codificar dos condiciones de entrada al mercado: cruce de cero y (o) punto de inflexión por encima/por debajo de cero).

todo es alimentado por el iCustom.
 
Rosh:
La depuración no está disponible en el probador
¿Hay algún plan? La depuración en línea es de poca utilidad debido a las condiciones irreproducibles.
 
Recuérdame, ¿cómo puedo conseguir que un indicador aparezca automáticamente en la ventana del gráfico, que se abre después de ejecutar en el probador? No creo que haya necesitado hacer nada antes.
 
marketeer:
La depuración en línea es de poca utilidad porque las condiciones son irreproducibles.

Hay una carta como esa. Es grande y en negrita.

¿Hay algún plan?

No creo que a MetaQuotes le entusiasme cruzar un probador con un depurador, lo cual es comprensible: la tarea está muy torcida.

Las ideas sobre el"servidor virtual" deambulan por ahí - está más cerca de la realidad, especialmente si se permite la entrada de datos arbitrarios (con velocidad arbitraria). Pero también es una opción que pone mucha tensión en las metacitas (aparentemente, por varias razones a la vez).

Pero hay más formas posibles. Algo tercero. Algo así como un "microtester" directamente en el depurador. Establecemos un par, especificamos puntos de ruptura, lo lanzamos y voilá. Pásalo por el depurador. Con paradas en los puntos de interrupción y posibilidad de investigar paso a paso y comenzar "más allá", hasta completar el "período de depuración".

Así que es así.

// Pero todo esto son especulaciones/pensamientos míos en voz alta. Tal vez Stringo se le ocurra algo más.

Pero hay que hacer algo, eso es seguro.

 

MetaDriver:

Hay algunas ideas que flotan alrededor del "servidor virtual" - está más cerca de la realidad, especialmente si se permite la entrada de datos arbitraria (a una velocidad arbitraria). Pero también es una opción que pone mucha tensión en las metacomillas (aparentemente, por varias razones a la vez).

Ouch algo me parece que un probador con depuración sería más realista, y no se debería ni soñar en esta dirección.