Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1892

 
Vitaly Muzichenko #:

Gracias. Trabajaré con eso. El manual es un desastre.

 
Sergey Dymov #:

Gracias. Trabajaré con eso. El manual es un desastre.

Parece que se ha adaptado...

Todo el mundo dice que mql5 es más rápido que mql4. Entonces tengo una pregunta. ¿Por qué el mismo Asesor Experto se ha ejecutado en 164 ms en mql4 y 527 ms en mql5? ¿Cuál puede ser el problema?

 
Sergey Dymov #:

La adaptación parece haber funcionado...

Todo el mundo dice que mql5 es más rápido que mql4. Entonces tengo una pregunta. ¿Por qué el mismo Asesor Experto se ejecuta en 164 ms en mql4 y 527 ms en mql5? ¿Cuál puede ser el problema?

¿Con qué y cómo ha medido el rendimiento?

 
Sergey Dymov un EA multidivisa que escribí en mql4. En el probador, por supuesto, no funciona. He decidido que debo cambiar a mql5.

He adaptado todos los errores del compilador y los he corregido. , a excepción del uso de indicadores técnicos. Tengo muy poca idea de qué hacer con mi cabeza. La documentación es incomprensible y ocupa dos páginas. Tal vez estoy buscando en el lugar equivocado.

Una línea de código en mql4 como sigue

double MA1EURGBP_TF = iMA("EURGBP",15,MA1_Period,0,MODE_EMA,PRICE_OPEN,0);

o

double Stoch_M_GBPUSD=iStochastic("GBPUSD", Stoch_Period, K_Period, D_Period, Slowing, MODE_EMA, 0, MODE_MAIN, 0);

Según la documentación, toda la página de código cambia en mql5. Manejadores, buffers, arrays con parámetros, esto para init, esto para calcular, manejo de errores durante la creación de manejadores... esto es una locura... Tal vez estoy buscando en el lugar equivocado.

Y si utilizo varios pares y varios marcos temporales, me sale "Guerra y Paz" ahí.

En 4ka, la parte informativa debería funcionar con otros símbolos, la parte de orden no. Pero primero debemos cargar los símbolos necesarios en el archivo de cotizaciones. Antes no funcionaba. Funcionará para la profundidad de carga del archivo por un símbolo. Puedes ver la fecha en el archivo.

 

Más consejos, por favor.

He transferido el EA a mt5, todo parece funcionar. He escrito un indicador personalizado en mt4 para comprobar la corrección de la ejecución, también lo estoy trasladando a mt5.

He adaptado el indicador, parece que también funciona, pero no muy bien.

1) no funciona el borrado de objetos del gráfico al desinstalar. Creo que no hay lugar para el error.

int OnInit()

{

ObjectCreate(0, "GBP_S0",OBJ_LABEL,0,0,0);

return(INIT_SUCCEED);

}

void OnDeinit(const int reason);

{

ObjectDelete(0, "GBP_S0");

}

2)

Si lo hacemos así:

ExtGBPBuffer[i]=GBPTP;

ObjectSetString(0, "GBP_S101",OBJPROP_TEXT,ExtGBPBuffer[i]);

Entonces el valor GBP_S101 es exactamente lo que buscamos. Pero la línea es cero. ¿Cómo puede ser esto? Es decir, la línea está dibujada y todo está bien, el color, el ancho, todo excepto los valores.


Incluso si lo hago asíExtGBPBuffer[i]=2; la línea sigue siendo 0

 
Sergey Dymov #:

1) El borrado de objetos del gráfico al desinstalar no funciona. Parece que no hay ningún lugar donde equivocarse.

Funciona

 
for(int cycle=1; cycle<=6; cycle++) { int period = per+(CountBuy()+CountSell()); vgran = iCustom(NULL,TF,"Канал_1",period,1,0);      }
Un consejo. Agrego un indicador a través de iCustom y hago un bucle a través de este indicador, cambiando 1 parámetro de instancia-período. Como resultado, elijo alguna variante y trabajo con ella. Tomo sólo la última barra. Pero cuando detengo mi Asesor Experto, me doy cuenta de que muestra una docena de indicadores con diferentes parámetros, y para toda la duración de la historia. Cuando modifico un indicador en un histograma (una ventana separada), respectivamente, aparecen diez ventanas de histograma. Cómo eliminar (no mostrar líneas), y no utilizar todo el indicador durante la enumeración del ciclo, sino sólo el último valor.
 
Aleksandr Kononov cuando detengo mi Asesor Experto, me doy cuenta de que veo una docena de indicadores con diferentes parámetros, y para toda la longitud de la historia. Cuando modifico un indicador en un histograma (una ventana separada), respectivamente, aparecen diez ventanas de histograma. Cómo eliminar (no mostrar líneas), y no utilizar todo el indicador durante la enumeración del ciclo, sino sólo el último valor.
   HideTestIndicators(true); 
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0); 
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1); 
   HideTestIndicators(false);
 

Chicos, aconsejaros sobre el indicador personalizado mql4 construido sobre MA basado en los precios de apertura, no cambia sus lecturas con los nuevos ticks que llegan, por eso se basa en los precios de apertura.

En mql5 el indicador adaptado cambia sus lecturas en la zona de transición con cada tick... También por los precios de apertura, incluso así


copy=CopyBuffer(MA2EURJPY,0,1,CountBars,MA2EURJPY_TF);

si(copia<0)

Print("Copia fallida MA2EURJPY_MAS");


para hacer una segunda lectura, pero sigue haciendo tictac de ida y vuelta


Andrey Sokolov #:

Funciona

Sólo funciona una vez, tengo la sensación de que el lenguaje tiene fallos. Cuando edito un fragmento no relacionado en mql5, todo deja de funcionar...



 
Sergey Dymov #:

Tengo la sensación de que el lenguaje tiene muchos fallos. Cuando edito una sección no relacionada en mql5, todo deja de funcionar... Yo también he tenido situaciones de este tipo, pero siempre descubro que "no era la babina", así que no es la babina, así que no es el mql4.

Yo también tuve situaciones similares, pero cada vez resultaba que "no era la babina", así que...

Razón de la queja: