Função ICustom - página 3

 

Principalmente para testes/verificações

Desenvolvo minhas estratégias com um indicador, e quero verificar se a EA está trabalhando da maneira como o indicador funcionou. Se eu tiver um pouco mais de experiência com o MT4 sob meu cinto, talvez eu possa fazer da carne da lógica do indicador uma subrotina ou uma DLL e depois chamá-la tanto do meu indicador como da EA.

Ao usar o testador, você pode abrir um gráfico. Se eu pudesse anular essa lógica, poderia também colocar objetos nesse gráfico.

Alguém sabe de alguns EAs que mostram graficamente o que eles estão fazendo?

 

Fiz minha primeira ICustom usando a Fisher m11 como costume. Ele mostra o indicador no testador que é um bom gráfico, mas é um perdedor na maior parte do tempo. O Fisher m11 é um indicador e precisa estar nessa pasta. O Fisher Auto EA m11 deve estar na pasta de especialistas. Aqui está a forma como o coloquei na EA:

iCustom(NULL,0, "Fisher_m11",Fisher_Period, IndexSmoothing,PriceSmoothing,0);

Aqui está o formato para utilizá-lo: duplo iCustom( símbolo de string, int timeframe, nome da string, ..., modo int, int shift)

Pode ajudar alguns que estão trabalhando na criação de seus próprios EAs.

Arquivos anexados:
 

Tenho uma pergunta semelhante.

Alguém sabe como usar

SHI_SilverTrendSigAlert

e

SilverTrend_Signal Com Alerta v3

em um EA?

Preciso de uma ajuda profissional.

 

A SilverTrend é boa para negociação, mas o sinal vai continuar e desligar-se até que a barra feche, o que pode ser difícil para fazer uma EA. Incluí um zip de 12 EAs prateados para que você possa ver.

Arquivos anexados:
 

Só queria ter os valores finais da linha iCustom esclarecidos em minha cabeça.

Linha e Turno

Portanto, se eu tiver um Indicador como o VQ que só tem uma linha gráfica e eu o que descobrir, na vela anterior fechada, se ela sinalizou para cima a Seta para uma condição de Compra ou se ela sinalizou uma condição de Venda descendo a Seta, eu precisaria estabelecer duas condições como;

double VQ0 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 1,1);

double VQ1 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 2,1);

[/code]

So the above is going to check for an up condition (up) or sell (down) condition on the closed bar, correct?

Then my Buy and Sell code should be; correct?

//Buy

if (VQ0>VQ1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

//Sell

if (VQ0<VQ1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

[/code]

Now if I wanted to add a second indicator so that TWO conditions need to be met at the same time to trigger a trade, it has two graphical lines (Don't know if it matters by how many lines it has, the indicator knows what it's Buy and Sell conditions are, correct?) My code would change to;

[code]

double VQ0 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 1,1);

double VQ1 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 2,1);

double QQEA0 = iCustom(NULL, 0, "QQEA",5,14,4.236, 1, 1);

double QQEA1 = iCustom(NULL, 0, "QQEA",5,14,4.236, 2, 1);

and Buy and Sell code should be

[code]

//Buy

if (VQ0>VQ1 && QQEA0>QQEA1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

//Sell

if (VQ0<VQ1 && QQEA0<QQEA1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

Editar: Acabei de fazer um back test e parece estar negociando como toda M30 (Gráfico TF). Eu só quero que ela inicie a comercialização SOMENTE na primeira condição de sinal e depois espere até a próxima condição de sinal oposto. Parece que quando ambos os indicadores concordam em uma Compra, então ela negocia, então quando essa negociação é fechada, ela continua outra negociação na próxima vela, se as condições ainda forem cumpridas. Isso não é o que eu quero Eu quero apenas uma negociação por Sinal de Compra/Venda. Obrigado

Em anexo estão dois EA's chamados My First EA que alguém modificou para mim porque achava que as condições estavam erradas e um que eu fiz usando um modelo chamado YourExpertAdvisor. Ambas estão corretas?

Obrigado.

Arquivos anexados:
 

Se eu entendi bem, você quer que sua EA trate uma série ininterrupta de acordo indicador como "um sinal", ao invés de que cada ocasião de acordo seja um sinal.

Uma maneira de fazer isso, é torná-lo um EA estatal e usar um projeto como a seguir:

static int last_signal = 0;

int signal = 0;

if ( ) signal = 1;

if ( ) signal = -1;

if ( signal != 0 && signal != last_signal ) {

// New signal series...

}

last_signal = signal;

 
ralph.ronnquist:
Se eu entendi bem, você quer que sua EA trate uma série ininterrupta de acordo indicador como "um sinal", ao invés de que cada ocasião de acordo seja um sinal.

Uma maneira de fazer isso, é torná-la uma EA estatal e usar um projeto como a seguir:

static int last_signal = 0;

int signal = 0;

if ( ) signal = 1;

if ( ) signal = -1;

if ( signal != 0 && signal != last_signal ) {

// New signal series...

}

last_signal = signal;

Olá Ralph, talvez esta linha que eu comecei seja mais clara;

https://www.mql5.com/en/forum/178432

Obrigado

 
codersguru:
homicídios,

Lamento muito o atraso.

Favor encontrar em anexo a versão modificada do LSMA e do iCustom_Demo.

Eu adicionei um novo buffer ao LSMA para manter a cor atual (1=vermelho, 2=verde e 3=amarelo).

Onde está (1= tendência para baixo, 2= tendência para cima e 3= sem tendência).

Para usar o iCustomfunction para obter o valor deste buffer, você pode escrever:

double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);

Obrigado Codersguru!!

Consegui criar uma versão de meu Compasso Digital para usar com indicadores de disco.

 

Seria bom se você, TheRumpledOne, também aprendesse a anexar imagens em vez de fazê-las em linha; com o lixo que você cola, ele apenas desperdiça muito espaço.

 
ralph.ronnquist:
Seria bom se você, TheRumpledOne, também aprendesse a anexar imagens em vez de fazê-las em linha; com o lixo que você cola, ele apenas desperdiça muito espaço.

Se é "lixo", então por que afixá-lo?