Ajuda na codificação - página 522

 

Olá a todos,

Desejo saber se esta é a forma correta de calcular o valor do indicador em um laço (em todas as barras disponíveis):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

duplo ma=iMA(NULL,0,MaPeriodo,0,MaMétodo,MaPreço,i);

//...

SignalLine=ma;

}

//...

}

//...

taxas de retorno_total

}

P.S. Logicamente, neste caso simples eu gostaria de representar e traçar uma replicação de MA por objeto iMA. Mas não tenho certeza de como eu defini o laço. Recebo um pouco de diferença em comparação com o calculado com o MT4 incorporado. Não consigo entender o porquê!

Obrigado

 
har:
Olá a todos,

Desejo saber se esta é a forma correta de calcular o valor do indicador em um laço (em todas as barras disponíveis):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

duplo ma=iMA(NULL,0,MaPeriodo,0,MaMétodo,MaPreço,i);

//...

SignalLine=ma;

}

//...

}

//...

taxas de retorno_total

}

P.S. Logicamente, neste caso simples eu gostaria de representar e traçar uma replicação de MA por objeto iMA. Mas não tenho certeza de como eu defini o laço. Recebo um pouco de diferença em comparação com o calculado com o MT4 incorporado. Não consigo entender o porquê!

Obrigado

Quando você usa iMA() não importa a ordem

Mas a forma correta deve ser para(int i=Bars-1; i>=0; i--) - dessa forma você deve evitar erros em muitos casos

 

Obrigado mladen. Portanto, se eu definir o ArraySetAsSeries(SignalLine,false) eu devo iterar com

para (int i = 0; i < Barras; i++)

enquanto, ao contrário, se ArraySetAsSeries(SignalLine,true) eu deveria iterar com

para (int = Barras - 1; i >= 0; i--)

Isso é verdade?

 
har:
Obrigado, mladen. Isto porque usamos a função ArraySetAsSeries(), então devemos inverter a iteração através do array, correto... Obrigado!

Isso não muda nada - você receberá o elemento 0 com valor atual, e quando chegar um novo valor atual, esse elemento 0 da SignalLine será sobrescrito pelo novo valor.

Se o SignalLine for um buffer, simplesmente não use o ArraySetAsSeries(SignalLine,false) ;

 

Hello mladen mr ferramentas e Igorad

Agradecemos de coração pela sabedoria compartilhada e oferecemos ajuda.

Também estou pedindo sua ajuda novamente após uma longa gestação, por isso, a esperança de chamar sua atenção, sua Indicação T3 adaptativa ma _ica.mq4 é minha Indicação favorita para negociação, embora visualmente boa, difícil de seguir manualmente devido à não disponibilidade de tempo, por isso, desejo que alguém me ajude a codificar um Expert advisor com essas setas indicadoras como comprar sinais de venda para receber pedidos com amenidades normais da EA como trailing, bep e sl,tp juntamente com o dimensionamento do lote.

Mladen e Igorad devem estar ocupados - se eles puderem me ajudar, se não alguém disposto a ajudar pode me ajudar com isso. Se você precisar eu posso anexar o indicador também. Esta é a página onde o indicador T3 adaptativo ma está localizado"https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4

Posso também solicitar com outros indies com t3 cci, mas cada indies trabalhando separadamente em uma EA com uso de opção verdadeira ou falsa. Entre qualquer pessoa interessada em EA baseada em setas lukas e indicadores de curvas, ainda precisa melhorar na análise da curva real do giro do preço, uma vez que se baseia na ma, o preço não é analisado, mas seu tudo LIMITADO em forex, todos serão milionários por escolha.

Tentei codificá-lo, mas não sou um programador, por isso, tudo é em vão, por isso levanto aqui o pedido de ajuda. Sem habilidades de codificação, definitivamente é difícil transmitir indicadores muito sofisticados como o T3 adaptativo com super cérebro de mladen.

O sonho é grande, mas o que está em mãos é o Tiny.

 

Oh okkkk... Obrigado!

Em C++ não houve este tipo de problema...

 

Olá Mladen

Espero que você considere esta ajuda,pls dê uma olhada neste post -#5118 apenas um post acima de seu post #5220.

Seria o melhor presente para mim com as mãos claras, como o seu.

 
har:
Oh okkkk... Obrigado! Em C++ não houve este tipo de problema...

Como sempre trabalho com arrays no modo C/C++, a indexação nesses arrays vai de 0 (mais antigo) a Bars-1 (mais novo) bar. Se você usar o índice 0 para a barra mais nova, ele sempre reescreverá o elemento 0

Se você quiser usá-lo da maneira C/C++, use um array, verifique se o tamanho é igual a Barras, se não, redimensione-o para o tamanho de Barras, e então atribua valores aos elementos usando Bars-i-1 como um índice

Se for um buffer, a indexação é invertida em relação à forma C/C++ e então você não precisa mudar nada nesse loop - basta remover a peça que define a matriz como falsa em série

 

Sim, eu vi! Eu também já descobri... De qualquer forma, apenas pequenas diferenças entre MQL e C++. Há muito C na MQL para o que eu vi! Mas eu definitivamente gosto da MQL

Quero compartilhar meu indicador quando estiver pronto (e se eu puder entender se for útil) e dar uma mãozinha a vocês!

 
har:
Sim, eu vi! Eu também já descobri... De qualquer forma, apenas pequenas diferenças entre MQL e C++. Há muito C na MQL para o que eu vi! Mas eu definitivamente gosto da MQL Eu desejo compartilhar meu indicador uma vez pronto (e se eu puder entender se for útil) e dar uma mão a vocês!

Até mesmo eles parecem estar longe de ser semelhantes quando você os executa. ex4 é um código P. Sua velocidade de execução é pelo menos 100 vezes mais lenta do que uma contraparte C/C++equivalente

Se você puder, escreva as partes cruciais em uma dll C/C++ - será muito mais rápido