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

 

Por lo que recuerdo, una de las actualizaciones del terminal añadió la posibilidad de cargar automáticamente las cotizaciones en una herramienta de usuario,

como si vinieran de un corredor.

¿Qué pasa? Por favor, envíame el manual.

gracias

 
barashka:

Por lo que recuerdo, una de las actualizaciones del terminal añadió la posibilidad de cargar automáticamente las cotizaciones en una herramienta de usuario,

como si vinieran de un corredor.

¿Qué pasa? Por favor, envíame el manual.

Gracias

Si es tan amable de utilizar el motor de búsqueda.

Tengo mis dudas... (с)

 
Artyom Trishkin:

¿Es esto adecuado para MT4?

 
Evgeny Potapov:

¿Es esto adecuado para MT4?

¿Qué es exactamente "eso"?

 
Artyom Trishkin:

¿Qué es exactamente "eso"?

Estoy buscando alguna clase o ejemplo de organización de la barra de desplazamiento en MQL4, no en MQL5

 
Evgeny Potapov:

Estoy buscando alguna clase o ejemplo de organización de la barra de desplazamiento en MQL4, no en MQL5

En el 90% de los casos los códigos entre MQL4 y MQL5 son compatibles, la principal diferencia está en las operaciones comerciales y el trabajo con el probador de estrategias

99% compatible en la parte gráfica - había una pequeña diferencia en la biblioteca estándar, o tal vez los desarrolladores ya lo han arreglado.

 
Igor Makanu:

En el 90% de los casos los códigos entre MQL4 y MQL5 son compatibles, la principal diferencia está en las operaciones comerciales y el trabajo con el probador de estrategias.

99% compatible en la parte gráfica - había una pequeña diferencia en la biblioteca estándar, tal vez los desarrolladores ya lo han arreglado.

Me da un error:

testscrollbar EURUSD,M1: indicator on custom buffer is not supported yet
Me gustaría ver un código de trabajo (en MT4) y tratar con él.
 
Evgeny Potapov:

Me da un error:

Me gustaría ver un código de trabajo (en MT4), y tratar con él.

buscar en el foro - no voy a buscar

aquí hay algo similar que no hace mucho ayudó a resolverhttps://www.mql5.com/ru/forum/320293/page3#comment_12887682

 
Igor Makanu:

buscar en el foro - no voy a buscar

aquí hay algo similar que no hace mucho ayudó a resolverhttps://www.mql5.com/ru/forum/320293/page3#comment_12887682

Gracias. ¡Funciona! ¡Esto es genial!

¡Y las funciones de manejo de eventos de desplazamiento del deslizador están presentes!

¿Puedes sugerir cómo expandir la barra de desplazamiento verticalmente?

 

¿Por qué a veces el elemento de búfer nulo se muestra incorrectamente?

Código:

int Limit = rates_total - prev_calculated; 
       if (prev_calculated > 0)
         Limit++;
       if(prev_calculated==0) Limit--;
         
         for(int i=Limit; i>-1; i--){
         
            if (startTime!=isTime(i)){
                  startTime=isTime(i);
                  startPriceCur=Open[iBarShift(NULL, NULL,startTime,false)];
                 
                             Comment("time: ", isTime(i));
            }
            
            if(Close[i]>startPriceCur)
            CurrentCurrencyBuffer[i]=100-(100*startPriceCur/Close[i]);
            if(Close[i]<startPriceCur)
            CurrentCurrencyBuffer[i]=(Close[i]*100/startPriceCur)-100;
            if(Close[i]==startPriceCur)
            CurrentCurrencyBuffer[i]=0;
            
         }

He añadido un limitador, según el cual el algoritmo calcula sólo una vez, cuando aparece una nueva barra. Con este enfoque se muestra correctamente:

if(controller<Bars){
 
       int Limit = rates_total - prev_calculated; 
       if (prev_calculated > 0)
         Limit++;
       if(prev_calculated==0) Limit--;
        
         for(int i=Limit; i>-1; i--){
         
            if (startTime!=isTime(i)){
                  startTime=isTime(i);
                  startPriceCur=Open[iBarShift(NULL, NULL,startTime,false)];
                 
                             Comment("time: ", isTime(i));
            }
            
            if(Close[i]>startPriceCur)
            CurrentCurrencyBuffer[i]=100-(100*startPriceCur/Close[i]);
            if(Close[i]<startPriceCur)
            CurrentCurrencyBuffer[i]=(Close[i]*100/startPriceCur)-100;
            if(Close[i]==startPriceCur)
            CurrentCurrencyBuffer[i]=0;
            
         }
        controller=Bars;
}


Pero este algoritmo calcula la barra cero sólo en la apertura. Me gustaría que se contara siempre (y correctamente). ¿Cómo se puede arreglar esto?

Razón de la queja: