Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 948

 

Até onde me lembro, uma das atualizações do terminal acrescentou a possibilidade de carregar automaticamente as cotações em uma ferramenta do usuário,

como se tivessem vindo de um corretor.

O que está acontecendo? Por favor, envie-me o manual.

obrigado

 
barashka:

Até onde me lembro, uma das atualizações do terminal acrescentou a possibilidade de carregar automaticamente as cotações em uma ferramenta do usuário,

como se tivessem vindo de um corretor.

O que está acontecendo? Por favor, envie-me o manual.

Obrigado

Se você tiver a gentileza de usar o mecanismo de busca.

Tenho minhas dúvidas... (с)

 
Artyom Trishkin:

Isto é adequado para o MT4?

 
Evgeny Potapov:

Isto é adequado para o MT4?

O que é exatamente "isso"?

 
Artyom Trishkin:

O que é exatamente "isso"?

Estou à procura de alguma classe ou exemplo de organização de barra de rolagem na MQL4, não na MQL5

 
Evgeny Potapov:

Estou à procura de alguma classe ou exemplo de organização de barra de rolagem na MQL4, não na MQL5

Em 90% dos casos os códigos entre MQL4 e MQL5 são compatíveis, a principal diferença está nas operações comerciais e no trabalho com o testador de estratégias

99% compatível na parte gráfica - havia uma pequena diferença na biblioteca padrão, ou talvez os desenvolvedores já a tenham consertado.

 
Igor Makanu:

Em 90% dos casos os códigos entre MQL4 e MQL5 são compatíveis, a principal diferença está nas operações comerciais e no trabalho com o testador de estratégia.

99% compatível na parte gráfica - havia uma pequena diferença na biblioteca padrão, talvez os desenvolvedores já a tenham consertado.

Estou recebendo um erro:

testscrollbar EURUSD,M1: indicator on custom buffer is not supported yet
Eu gostaria de ver um código de trabalho (em MT4) e lidar com ele.
 
Evgeny Potapov:

Estou recebendo um erro:

Eu gostaria de ver um código de trabalho (em MT4), e lidar com ele.

procurar no fórum - Eu não vou procurar

aqui está algo semelhante não há muito tempo ajudou a resolverhttps://www.mql5.com/ru/forum/320293/page3#comment_12887682

 
Igor Makanu:

procurar no fórum - Eu não vou procurar

aqui está algo semelhante não há muito tempo ajudou a resolverhttps://www.mql5.com/ru/forum/320293/page3#comment_12887682

Obrigado! Funciona! Isso é ótimo!

E as funções de manuseio de eventos de deslocamento deslizante estão presentes!

Você pode sugerir como expandir a barra de rolagem verticalmente?

 

Por que às vezes o elemento tampão nulo é exibido incorretamente?

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;
            
         }

Adicionei um limitador, segundo o qual o algoritmo calcula apenas uma vez, quando aparece uma nova barra. Com esta abordagem, ela se apresenta corretamente:

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;
}


Mas este algoritmo calcula a barra zero somente na abertura. Eu gostaria que fosse contado o tempo todo (e corretamente). Como isso pode ser consertado?