[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 406

 
O Bid and Ask contém os valores no momento em que a função Star() é iniciada. A função MarketInfo() fornece os valores reais (mais recentes). A função RefreshRates() atualiza as variáveis Bid and Ask.
hoz:

1. Sim, só estou sobrecarregado de trabalho, então escrevi uma coisa estúpida...

2. Longo é um termo relativo. Você está sugerindo que medamos a velocidade do cálculo da média?

3. se assumirmos, como você escreveu, que o terminal corresponde ao último valor da variável dados de mercado, em nosso caso, o preço, isso significa que o terminal atualiza as variáveis do ambiente de mercado por si só, se houver uma conexão com o servidor,

4. daí decorre que a função RefreshRates() é desnecessária. Mas não é assim, porque a função está presente, o que significa que os preços nem sempre são atualizados, certo?

Não estou discutindo, estou perguntando, argumentando meu ponto de vista. Por favor, note que!


2. Onde você viu isso e como chegou a essa surpreendente conclusão?

3. Sim. Você pode imaginar, basta olhar para a janela de visão geral do mercado, como os números ricocheteiam incessantemente ali.

4. As variáveis Bid and Ask são atribuídas (pelo terminal) com os valores que elas tinham quando a função Start foi executada, não importa quanto tempo a função é executada, os valores em Bid and Ask serão os mesmos. É por isso que precisamos de RefreshRates() ou devemos usar MarketInfo()

 
hoz:

Portanto, se a solicitação for local e não para o servidor, então esta função deve funcionar imediatamente! E foi dito acima que a função RefreshRates() pode não ter tempo para atualizar os dados do ambiente de mercado...

Onde foi dito e por quem? Não há nenhum problema.
 
hoz:


Portanto, se não houver um novo tick, o preço não mudará... e é claro que os preços anteriores ainda serão válidos. Portanto, não há necessidade de complicar as coisas!

E Vadim escreveu no topo que era necessário verificar este ponto. Mas não havia lógica em suas palavras e também nenhuma argumentação. É estranho... Assim, eu inseri RefreshRates() em todos os lugares e naquele momento os últimos dados conhecidos do terminal se tornam utilizáveis em vez dos anteriores e tudo corre como deveria. Desde quea TRU tenha sido devolvida. Se for Falso, significa que os dados não mudaram e funciona com preços anteriores. Estou raciocinando corretamente?

Acontece que não há necessidade de se preocupar. Basta ligar paraRefreshRates() e tudo funcionará com dados reais...


É isso mesmo.
 
Roger:
você tentou uma pausa;
O livro didático nos diz que o operador
break; 

interrompe o tempo, para ou troca de declarações. No meu caso, não existem tais operadores. Há uma série de se declarações que precisam ser interrompidas em um determinado ponto.

Em qualquer caso, tente o seguinte:

if (условие)
        {                                          
        Opn_B=true;
        Cls_S=true;   
        break;                    
        } 
Ele relata um erro: 'break' - 'break' ou 'continue' usado somente dentro de algum ciclo.
 
Integer:
Bid and Ask contêm os valores no momento em que a função Star() é lançada. Função MarketInfo() fornece os valores reais (mais recentes). A função RefreshRates() atualiza as variáveis Bid and Ask.


2. Onde você viu isso e como chegou a essa surpreendente conclusão?

3. Sim. Imagine, basta olhar para a janela de visão geral do mercado e ver como os números ricocheteiam incessantemente.

4. As variáveis Bid and Ask são atribuídas (pelo terminal) com os valores que existiam no momento em que a função Start é iniciada, não importa quanto tempo a função é executada, os valores em Bid and Ask serão os mesmos. Portanto, precisamos de RefreshRates() ou usar MarketInfo().


1. Sim, ou seja, após o início() temos 1 tique para ter tempo de calcular tudo, caso contrário, se não tivermos tempo, teremos que atualizar. Faz sentido.

2. Você o escreveu literalmente:

Inteiro:

Se ele fizer cálculos longos, você pode usar RefreshRates().

3. isso é o que eu quero dizer.

 
Integer:

Onde, quando e por quem disse isso? Não há nenhum problema.


Aqui na página:

https://www.mql5.com/ru/forum/142582/page404 Vadim escreveu isto,

Zhunko

RefreshRates(); // Por que este freio sem processar o valor de retorno?

Foi isso que me confundiu, para ser honesto...

 
hoz:


Aqui na página:

https://www.mql5.com/ru/forum/142582/page404 Vadim escreveu isto,

Foi isso que me confundiu, para ser honesto...

Vou verificar na segunda-feira. Eu posso estar errado.

==================================

De qualquer forma, sem RefreshRates() meus EAs não funcionarão. Faço-os em loop. Portanto, a RefreshRates() é obrigatória.

A imposição inicial da história é feita com base neste princípio. Depois eu o recarrego periodicamente. Caso contrário, aparecem "lacunas" na história com as quais o Expert Advisor trabalha. Eu não sei por que isso acontece. Eu tentei usar RefreshRates() para paginar. Nem sempre funciona. Eu descrevi o problema acima. Às vezes só entra o último bar.

Se um gráfico de um instrumento estiver aberto, há sempre uma história sobre ele. Nunca houve nenhum erro neste caso. O "buraco" apareceu quando o gráfico do instrumento requerido não estava aberto.

 
Forexman77:
O livro didático relata que o operador

interrompe o tempo, para ou troca de declarações. No meu caso, não existem tais operadores. Há uma série de se declarações que devem ser interrompidas em um determinado ponto.

Em qualquer caso, tente desta forma:

É relatado um erro: 'break' - 'break' ou 'continue' usado somente dentro de algum ciclo.

Se você está procurando por GoTo, não existe tal operador, mas como a prática mostra, você não precisa dele. Para poder lhe recomendar uma solução, você precisa ver seu alvo. Mostre-me seu algoritmo em termos gerais.

 
Roger:

Se você está procurando um operador GoTo, não existe tal coisa, mas como a prática mostra, você não precisa de um. Para poder recomendar uma solução, você precisa ver seu alvo. Mostre-me seu algoritmo em termos gerais.

Obrigado, eu já encontrei uma maneira de resolver o problema.
 
Forexman77:
Obrigado, já encontrei uma maneira de resolver o problema.

Aqui... e muitas pessoas o fazem... Eles fazem uma pergunta que pode ser de interesse para alguns outros iniciantes. Então eles encontram uma solução e, em vez de mostrá-la, dizem: "Oh, muito obrigado a todos vocês, eu encontrei e fiz tudo, vocês não precisam ter medo de mim a semana toda... " ... e eles acham que é o fim... E a solução para este problema nunca foi mostrada. E vai e volta e volta... A próxima volta com a mesma pergunta.

Apenas me diga o que é tão terrivelmente secreto em seu algoritmo e como resolvê-lo, que assim que lhe foi pedido para mostrar o algoritmo em termos gerais, tentando lhe ajudar, você imediatamente desinscritos que tudo é "grão de sal"?

Então não faça perguntas desnecessárias se você não pensar em outros questionadores... ou encontre você mesmo uma solução (bem feito!!!) e mostre-a aos outros...

Razão: