Pequeno indicador de gestão de dinheiro arruinado pelo novo MQL4 - página 3

 
mar:

angevoyageur, acho que você não viu este post de mim:

mar 2014.04.02 08:16 #

Você está certo... Não posso evitá-lo. :-)

"O que eu quis dizer é: posso esperar até que a atualização seja concluída antes de prosseguir com o cálculo do SL? O problema é que eu não posso dar ao SL um valor aleatório porque então todo o indicador é inútil. Portanto, eu gostaria de verificar o erro 4066 e se ele ocorrer, gostaria de esperar de alguma forma e verificar novamente antes de continuar".

Lá você pode ver que eu não posso seguir o conselho e porque eu cheguei a essa solução, você também pode ver que eu definitivamente verifiquei o que qjol me aconselhou.

Não, você não sabe, qjol escreveu :

então você tem que verificar se uma das variáveis é igual a 0.... no caso de evitar divisão zero

E você reporta um erro de divisão zero depois disso. Mas é como você deseja.

 
mar:

Outro exemplo:

Se você abrir o MetaTrader, o resultado será zero! E ele permanece zero até que você altere o prazo ou o par. Acho que este é exatamente o problema da divisão por erro zero. Você não acha também?

Você tentou isto no fim de semana, quando não havia tiquetaques de entrada? Essa é a única razão pela qual eu posso pensar que o comentário não seria atualizado.
 
GumRai:

Você tentou isso no fim de semana, quando não havia carrapatos de entrada? Essa é a única razão pela qual eu posso pensar que o comentário não seria atualizado.

O mesmo aqui. Sem carrapato não haveria atualização.
 

Não, eu tentei hoje. Muitos tiquetaques chegam, nenhuma atualização do AccountBalance. Esperei quase um minuto, mas o AccountBalance ainda era zero.


A questão é que este problema nunca ocorreu nos últimos anos. Desde que o novo MetaTrader foi lançado, este problema existe. Portanto, acho que não tem nada a ver com o código. Deve haver mudanças internas dentro da própria Plataforma, o que faz com que este código falhe. E este indicador é apenas uma linha de Comentário e falha. Portanto, deve ser uma questão Plataforma/Data.

 
mar:

Não, eu tentei hoje. Muitos tiquetaques chegam, nenhuma atualização do AccountBalance. Esperei quase um minuto, mas o AccountBalance ainda era zero.


A questão é que este problema nunca ocorreu nos últimos anos. Desde que o novo MetaTrader foi lançado, este problema existe. Portanto, acho que não tem nada a ver com o código. Deve haver mudanças internas dentro da própria Plataforma, o que faz com que este código falhe. E este indicador é apenas uma linha de Comentário e falha. Portanto, deve ser uma questão Plataforma/Data.


Você tem certeza de que o indicador é exatamente o mesmo que o código que você postou?

Parece que você está verificando um indicador que tem o código de uma linha no init e não no início.

 

já respondi todas as suas perguntas (inclusive a pergunta futura sobre este assunto), mas talvez você não as tenha lido com atenção, então deixe-me fazê-lo novamente


qjol:

obviamente você não pode evitar a atualização ;-) mas você tem que evitar uma situação de "divisão zero

então você tem que verificar se uma das variáveis é igual a 0.... no caso de evitar divisão zero

e porque você não pode parar um indicador, você tem que descobrir algo


mar:


posso esperar até que a atualização seja concluída antes de prosseguir com o cálculo do SL?

no you cant (já escrito acima)

qjol:
e porque você não pode parar um indicador, você tem que descobrir algo


mar:


O problema é que eu não posso dar ao SL um valor aleatório porque então todo o indicador é inútil.


eu já lhe dei uma solução

SL = MathFloor((iATR(NULL, PERIOD_D1, 7, 0)*MathPow(10,Digits-exp)+1)*0.1);
if (SL == 0) // because error 4066 (for example)
   {
   SL = Someting;
   }
lots=MoneyRisk/SL/(MarketInfo(Symbol(), MODE_TICKVALUE)*multi);


é aleatório apenas até que a atualização seja concluída (não mais que 2-3 segundos mais ou menos) (IMHO é melhor do que receber uma mensagem de erro e que o indicador não funcionará de forma alguma)

se você tiver outra solução, sinta-se livre para usá-la, sem necessidade de minha permissão ;-)


mar:


Mude para o período de tempo que você quiser, exceto D1. Depois você arrasta o indicador para sua tabela. O resultado será um erro como acima. Parece-me que o ATR(5) do gráfico diário não está correto devido à falta de DADOS DIÁRIOS. A abertura de uma tabela "nova" no cronograma D1 não causa nenhum problema. E quando você muda para outro período de tempo, também está bem porque o ATR(5) está correto. Notei que posso mudar para qualquer par desde que eu permaneça na tabela D1. Mas mudar para outros pares em outros períodos de tempo que não D1 causa problemas desde que o MetaTrader não tenha recebido os dados diários. Então, minha pergunta agora é: como posso obter os dados diários que meu cálculo ATR está correto quando abro um novo gráfico em um período de tempo que não é D1?


porque você usa iATR ... PERÍODO_D1 e novamente ... você tem que esperar que o par Diário termine a atualização (2-3 seg. a menos que você use uma conexão dial up)

 

qjol, sinto muito por tantos mal-entendidos! Agora entendo que você me disse para alimentar o indicador apenas com alguns dados aleatórios, porque a divisão por zero desaparece. Também não pensei no fato de que após uma atualização de dados, o indicador usa o valor correto. Desculpe-me por ser estúpido... :D

Mas mesmo assim a questão ainda está em aberto: por que diabos isso funcionava antes? O que há de errado com o novo MetaTrader?

 
mar:


Mas a questão ainda está em aberto: por que diabos isso funcionava antes? O que há de errado com o novo MetaTrader?


não está relacionado ao antigo ou novo MT4, mas como os indicadores funcionam e são executados
uma vez que os indicadores "não podem esperar" e foi executado imediatamente
mas, neste momento, você não tem dados para o iATR ... PERÍODO_D1 então. é igual a 0
é por isso que você não recebe divisão
 
Isso é absolutamente claro para mim. Mas eu uso este indicador por muito tempo e nunca tive problemas com dados ausentes ou coisas do gênero. Por isso me pergunto por que isso aconteceu na primeira vez que usei a versão construída - 625 do MT4.
 
mar:

Não, eu tentei hoje. Muitos tiquetaques chegam, nenhuma atualização do AccountBalance. Esperei quase um minuto, mas o AccountBalance ainda era zero.


A questão é que este problema nunca ocorreu nos últimos anos. Desde que o novo MetaTrader foi lançado, este problema existe. Portanto, acho que não tem nada a ver com o código. Deve haver mudanças internas dentro da própria Plataforma, o que faz com que este código falhe. E este indicador é apenas uma linha de Comentário e falha. Portanto, deve ser uma questão Plataforma/Data.

Você tem certeza de que o indicador é exatamente o mesmo que o código que você postou?

Parece que você está verificando um indicador que tem o código de uma linha no init e não no início.