Índice de Qualidade de Volatilidade - página 61

 
samirmfs:

Olá a todos os meus amigos podem dar-me alguém para me indicar o seu nome Volaritility qualtity nrs - alerts et flews mas formatar mq4 e não ex4 e obrigado . Seu amigo Samir

Samir

Você está por acaso procurando por um destes : https://www.mql5.com/en/forum/general ou talvez este : https://www.mql5.com/en/forum/general

 

Nunca soube que Thomas Stridsman o inventou

 

Prezado Mladen,

Espero que você queira nos ajudar a resolver o problema sobre a vq ea anexada.

Eu anexei uma imagem que mostra o que acontece. Os ea/indicador/set também estão anexados no arquivo raro. O indicador não é a versão "nrp", mas no modo "constante" vejo que não pinta de novo (se não for o caso, por favor, me avise ) e é uma versão multitimeframe. A estratégia envolveu o uso da ea em um 1Mtf, mas com os parâmetros ea indi em um 5Mtf; isto é possível porque o indicador anexo permite este modo (é um mtf). Eu fiz apenas uma modificação nos ea adicionando o modo "constante" para permitir que os ea funcionem desta forma de acordo com o indicador. Eu não sou um codificador. A solução (isto é: permitindo ea em 1Mtf mas com 5Mtf nos parâmetros ea: modo "estável") parece funcionar melhor do que deixar a ea trabalhar diretamente no 5Mtf porque permite combinar antecipadamente os retracements e, de forma escalonada em 1Mtf, eventualmente abrir/fechar o comércio com resultados muito mais positivos. O problema, como mostrado na imagem anexada (que também está no arquivo raro), é que às vezes a ea não segue o indicador (repito em modo "estável"), então pode acontecer que retarde o comércio ou não abra ou, ilogicamente como na imagem anexada, abra o comércio oposto como mostrado pelo indi . Você poderia nos ajudar a resolver este problema? No modo visual/manual o indicador dá muitos sinais de Deus (em 1Mtf com parâmetro 5Mtf). Muito obrigado por seu tempo.

vq_indiea.rar

Arquivos anexados:
 
vitoingletto:
Prezado Mladen,

Espero que você queira nos ajudar a resolver o problema sobre a vq ea anexada.

Eu anexei uma imagem que mostra o que acontece. Os ea/indicador/set também estão anexados no arquivo raro. O indicador não é a versão "nrp", mas no modo "constante" vejo que não pinta de novo (se não for o caso, por favor, me avise ) e é uma versão multitimeframe. A estratégia envolveu o uso da ea em um 1Mtf, mas com os parâmetros ea indi em um 5Mtf; isto é possível porque o indicador anexo permite este modo (é um mtf). Eu fiz apenas uma modificação nos ea adicionando o modo "constante" para permitir que os ea funcionem desta forma de acordo com o indicador. Eu não sou um codificador. A solução (isto é: permitindo ea em 1Mtf mas com 5Mtf nos parâmetros ea: modo "estável") parece funcionar melhor do que deixar a ea trabalhar diretamente no 5Mtf porque permite combinar antecipadamente os retracements e, de forma escalonada em 1Mtf, eventualmente abrir/fechar o comércio com resultados muito mais positivos. O problema, como mostrado na imagem anexada (que também está no arquivo raro), é que às vezes a ea não segue o indicador (repito em modo "estável"), então pode acontecer que retarde o comércio ou não abra ou, ilogicamente como na imagem anexada, abra o comércio oposto como mostrado pelo indi . Você poderia nos ajudar a resolver este problema? No modo visual/manual o indicador dá muitos sinais de Deus (em 1Mtf com parâmetro 5Mtf). Muito obrigado por seu tempo.

vq_indiea.rar

Em seu EA você está procurando o último sinal (que poderia acontecer há muito tempo). Primeiro de tudo, tente usar apenas 2 valores: um para a direção atual e um para a direção anterior (buffer 6). Quando o valor da barra atual muda em relação à barra anterior, então você tem um sinal. Se a direção é 1, então é um sinal para compra, se a direção é -1, então o sinal é para venda.

________________

PS: não há necessidade de um loop na EA para encontrar os valores da direção. Basta usar índice 1 para a primeira barra fechada e índice 2 para a segunda barra fechada (a fim de trabalhar com sinais baseados em barra fechada)

 

Caro Mladen, obrigado pela resposta rápida. Desculpe, mas não sou um codificador, mas se você sugerir, de forma mais compreensível para o meu nível, o que devo fazer no metaeditor, eu mesmo tentarei fazer. Lamento dizer, mas nem sei o que você pretende com "tampão" . Obrigado novamente.

mladen:
Em sua EA você está procurando o último sinal (que poderia acontecer há muito tempo). Primeiro de tudo, tente usar apenas 2 valores: um para a direção atual e um para a direção anterior (buffer 6). Quando o valor da barra de corrente muda em relação à barra anterior, então você tem um sinal. Se a direção é 1, então é um sinal para compra, se a direção é -1, então o sinal é para venda.

________________

PS: não há necessidade de um loop na EA para encontrar os valores da direção. Basta usar índice 1 para a primeira barra fechada e índice 2 para a segunda barra fechada (a fim de trabalhar com sinais baseados em barra fechada)
 
vitoingletto:
Caro Mladen, obrigado pela resposta rápida. Desculpe, mas não sou um codificador, mas se você sugerir, de forma mais compreensível para o meu nível, o que devo fazer no metaeditor, eu mesmo tentarei fazer. Lamento dizer, mas nem sei o que você pretende com "tampão" . Obrigado novamente.

vitoingletto

Tente substituir esta parte :

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

if(VQ2>0&&VQ1<EMPTY_VALUE){if(Reverse)SV=1;else BV=1;break;}

if(VQ1>0&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}}

[/PHP]

With this :

[PHP] double VQCurrent =iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,1);

double VQPrevious=iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,2);

if (VQCurrent!=VQPrevious)

{

if (VQCurrent== 1) if (Reverse) SV=1; else BV=1;

if (VQCurrent==-1) if (Reverse) BV=1; else SV=1;

}

 

Infelizmente não funciona. Ela muda completamente a lógica e não funciona em 1Mtf como em 5Mtf, mas, literalmente, em 1Mtf. Alguma sugestão? obrigado

mladen:
vitoingletto

Tente substituir esta parte :

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0,"VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

if(VQ2>0&&VQ1<EMPTY_VALUE){if(Reverse)SV=1;else BV=1;break;}

if(VQ1>0&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}}

[/PHP]

With this :

[PHP] double VQCurrent =iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,1);

double VQPrevious=iCustom(NULL,TimeFrame,"VQ",Crash,0,Length,Method,Smoothing,Filter,RealTime,Steady,6,2);

if (VQCurrent!=VQPrevious)

{

if (VQCurrent== 1) if (Reverse) SV=1; else BV=1;

if (VQCurrent==-1) if (Reverse) BV=1; else SV=1;

}

 
vitoingletto:
Infelizmente não funciona. Ela muda completamente a lógica e não funciona em 1Mtf como em 5Mtf, mas, literalmente, em 1Mtf. Alguma sugestão? obrigado

vitoingletto

O segundo parâmetro da chamada iCustom() é o parâmetro de prazo. No caso dos indicadores de múltiplos períodos de tempo, é melhor usar esse parâmetro para fazer o indicador funcionar de forma correta. Se os valores quando o intervalo de tempo é usado como segundo parâmetro da chamada iCustom() não são os mesmos que quando você passa para o indicador (no parâmetro TimeFrame do indicador) então o indicador não funciona corretamente no modo intervalo de tempo múltiplo (e esse é o único caso em que eles podem diferir)

 

Além disso, nestas duas linhas da EA original :

if(VQ2>0&&VQ10&&VQ2<EMPTY_VALUE){if(Reverse)BV=1;else SV=1;break;}

há uma parte que não é necessária. VQ2>0 e VQ1>0 é sempre verdade(EMPTY_VALUE é um valor positivo) e essas duas não são necessárias para comparação. É suficiente verificar se VQ1 ou VQ2 não são iguais a EMPTY_VALUE

 

fez isso!!!!

Eu mudei :

for(int i=1;i<=limit;i++){

VQ1=iCustom(NULL,0, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,0, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

em

for(int i=1;i<=limite;i++){

VQ1=iCustom(NULL,5, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,3,i);

VQ2=iCustom(NULL,5, "VQ",Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,4,i);

e funciona. Apenas um problema, no backtest uma vez abriu duas posições na mesma barra com um 10 tp

alguma sugestão? obrigado.

mladen:
vitoinglettoSecundo parâmetro da chamada iCustom() é o parâmetro de prazo. No caso dos indicadores de múltiplos períodos de tempo, é melhor usar esse parâmetro para fazer o indicador funcionar de forma correta. Se os valores quando o intervalo de tempo é usado como um segundo parâmetro da chamada iCustom() não são os mesmos que quando você passa para o indicador (no parâmetro TimeFrame do indicador) então o indicador não funciona corretamente no modo intervalo de tempo múltiplo (e este é o único caso em que eles podem diferir)
Arquivos anexados:
2_position.jpg  243 kb