[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 405

 
hoz:
1. Por que isso aconteceria de repente? Só precisamos acrescentar outra coisa, essa função devolveu mais algum valor, o que significaria, "Sem preço". Parece lógico. Quando eu estava lançando a função, eu estava pensando mais na lógica anterior, então eu não prestei atenção ao seu fim. E por que a função 0 retornará 0 por si só Não entendo algo...

2. por que eu preciso perguntar (se estamos falando do preço de compra especificamente), se eu posso sempre usar MarketInfo(fs_symbol, MODE_ASK) ? Afinal de contas, se você olhar assim, referindo-se à Ask, não pode ter certeza de que ela é precisa em um determinado momento?

1. Simples. A função é declarada como dupla, portanto, quando é chamada, ela retornará o dobro, independentemente de chamar retorno ou não. Se acrescentarmos mais... mas ainda não temos mais isto.

2. Se não faz diferença se você pressionar 3 teclas ou 30, você não precisa destas Bid and Ask. Se o Expert Advisor não fizer cálculos longos, tudo bem, é conveniente usar o Bid and Ask. Se ele realizar cálculos longos, você pode usar RefreshRates(). Há várias maneiras de fazer isso.

 
hoz:


Tanto quanto eu entendo, não é disto que precisamos. E precisamos dos preços dos últimos Ask e Bid server, não dos terminais locais. Certo?

Foi por isso que iniciei a discussão aqui, para entender de uma vez por todas como organizá-la de forma mais lógica e correta. Pois em teoria isto é correto, mas na prática...

O servidor está em algum lugar por aí, e nos é dado um terminal para entrar em contato com o servidor. Se houver uma conexão, então o último preço no terminal corresponderá ao último preço no servidor. Se não há conexão, então não importa o preço.

 
Após executar a primeira ou segunda declaração se, preciso interromper o seguinte se as declarações e transferir o controle para um bloco com outros critérios comerciais. Os laços têm uma interrupção com a declaração contínua, mas preciso interromper a execução de uma série de declarações. Como posso fazer isso? Você pode me dar uma dica?
 
Você já tentou uma pausa; você já tentou uma pausa?
 
Boa tarde. Atualmente estou trabalhando em um diploma sobre comércio de robôs. Não preciso reinventar nada muito grandioso, porque sou um economista, não um programador. Mas eu tive uma idéia, embora eu ache que ocorreu a muitas pessoas, de conectar o sar parabólico e (já que o sar não é muito bom em bandas de bollinger planas). Basicamente com ajustes padrão, e comprar, quando a vela toca no fundo do BB (e o parabólico se move abaixo), e a próxima se fecha acima do anterior (e o parabólico se move mais longe do preço por causa da aceleração e mostra tendência). O mesmo no topo quando se vende. Seria interessante usar o trailing stop, cujas configurações poderiam ser definidas manualmente. Alguém tem uma idéia semelhante já em mql? ou se alguém pode ajudar, porque eu realmente gostaria de testá-la...obrigado antecipadamente
 
Integer:

1. Simples. A função é declarada como dupla, portanto retornará o dobro quando chamada, independentemente do retorno ter sido chamado nela. Se você acrescentar mais... ...mas isso não existe ainda.

2. Se não faz diferença se você pressionar 3 teclas ou 30, você não precisa destas Bid and Ask. Se o Expert Advisor não fizer cálculos longos, tudo bem, é conveniente usar o Bid and Ask. Se ele realizar cálculos longos, você pode usar RefreshRates(). Tudo pode ser feito de várias maneiras.

1. Sim, só estou sobrecarregado de trabalho, então devo ter escrito uma bobagem...

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

Inteiro:

O servidor está lá fora em algum lugar e nos é dado um terminal para entrar em contato com o servidor. Se houver uma conexão, então o último preço no terminal corresponderá ao último preço no servidor. Se não houver conexão, não importa qual seja o preço no servidor.

Se assumirmos, como você escreveu, que o último valor das variáveis de mercado (no nosso caso, o preço ) corresponde ao último valor do servidor, então isso significa que o terminal atualiza as variáveis do ambiente de mercado se ele tiver conexão com o servidor. Mas não é assim, porque esta função existe e significa que os preços não são atualizados o tempo todo, certo?

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

 
hoz:

Se assumirmos, como você escreveu, que o terminal tem o último valor da variável de dados de mercado, em nosso caso o preço, correspondente ao último valor do servidor, então significa que o terminal atualiza as próprias variáveis do ambiente de mercado se houver uma conexão com o servidor, o que significa que a função RefreshRates() não é necessária. Mas não é assim, porque esta função existe e significa que os preços não são atualizados o tempo todo, certo?

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


Se novos carrapatos entrarem durante os cálculos na EA (quando a função start() estiver em execução), a EA não saberá sobre eles (carrapatos). RefreshRates() permite utilizar os últimos preços atualizados, mas esta função não acessa o servidor. Ele atualiza o ambiente de mercado conhecido pelo terminal. Nenhuma das funções, exceto para negociação, acessa o servidor
 
Vinin:

Se novos carrapatos entrarem durante os cálculos na EA (quando a função start() estiver em execução), a EA não saberá sobre eles (carrapatos). RefreshRates() permite utilizar os preços mais recentes e atualizados, mas esta função não acessa o servidor. Ele atualiza o ambiente de mercado conhecido pelo terminal. Nenhuma das funções, exceto as de negociação, acessa o servidor.

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

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

Funciona mesmo. E o refresca se houver algo para refrescar. Mas se não houve nenhum novo tique, não há nada para atualizar.
 
Vinin:

E vai dar certo. E o refresca se houver algo para refrescar. Mas se não houver um novo tick, não há nada para atualizar.


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?

Portanto, não preciso me preocupar. Basta ligar paraRefreshRates() e funcionará com dados reais...