Ajuda na codificação - página 554

 

Mntiwana, no Bar to Use se você colocar zero estará recebendo sinais na barra ainda aberta (perigoso para um EA, IMHO) se maior que zero o EA estará recebendo sinais das barras fechadas de volta da barra aberta, então se você tiver BarToUse = 2, então seu EA estará verificando 2 barras de volta.

 

oi mladen....please me ajude....ı foi postado, mas ı acho que você não pode ver...ok...ı tem um indicador de obtenção ...ı precisa da versão histo.muito obrigado

Arquivos anexados:
trend.ex4  9 kb
trend.mq4  2 kb
 
aress:
oi mladen....please me ajude....ı foi postado, mas ı acho que você não pode ver...ok...ı tem um indicador de obtenção ...ı precisa da versão histo.muito obrigado

aress

Você tem o código fonte original (não descompilado) do indicador? Em caso afirmativo, favor postar o arquivo mq4 original para que ele possa ser trabalhado em

_________________

PS: você também pode verificar isto https://www.mql5.com/en/forum/174961/page4 Até onde eu vejo que é isso

 

Pessoal do HI,

Por favor, dê uma olhada em meu código.

Este indicador chama outro indicador com a função icustom.

O problema que estou tendo é que, às vezes, mesmo quando as condições para os sinais não são cumpridas,

este indicador ainda produz falsos alertas sonoros e estes falsos alertas não exibem setas.

Eu não sei onde está o problema. Eu tentei (com meu conhecimento limitado), mas sem sucesso.

Como fazer para que o falso alerta pare? Como garantir que o alerta sonoro só venha se houver uma flecha?

Por favor, ajude-me.

Obrigado.

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=barras_contadas_combars;

int j;

for(int i=limite; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

duplo var1 = 0;

duplo var2 = 0;

para (j = i; j <= i + 9; j++) var2 += MathAbs(Alto[j] - Baixo[j]);

var1 = var2 / 10,0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,sinal,preço,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,sinal,preço,1,i);

data estática hora LastAlert;

datatime curbar = Tempo[0];

se (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Símbolo(),0,i+1),EntryLineColor);

if ("LastAlert != curbar && !upalert){

Alerta (Símbolo()," ",Período(), "COMPRAR");

upalert=verdadeiro;

downalert=false;

LastAlert =curbar;

}

}

caso contrário, se (anterior !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ("LastAlert != curbar && !downalert){

Alerta (Símbolo()," ",Período(), "VENDA");

downalert=verdadeiro;

upalert=false;

LastAlert = barra;

}

}

}

 
luffy:
HI caras,

Por favor, dê uma olhada em meu código.

Este indicador chama outro indicador com a função icustom.

O problema que estou tendo é que, às vezes, mesmo quando as condições para os sinais não são cumpridas,

este indicador ainda produz falsos alertas sonoros e estes falsos alertas não exibem setas.

Eu não sei onde está o problema. Eu tentei (com meu conhecimento limitado), mas sem sucesso.

Como fazer para que o falso alerta pare? Como garantir que o alerta sonoro só venha se houver uma flecha?

Por favor, ajude-me.

Obrigado.

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=barras_contadas_combars;

int j;

for(int i=limite; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

duplo var1 = 0;

duplo var2 = 0;

para (j = i; j <= i + 9; j++) var2 += MathAbs(Alto[j] - Baixo[j]);

var1 = var2 / 10,0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,sinal,preço,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,sinal,preço,1,i);

data estática hora LastAlert;

datatime curbar = Tempo[0];

se (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Símbolo(),0,i+1),EntryLineColor);

if ("LastAlert != curbar && !upalert){

Alerta (Símbolo()," ",Período(), "COMPRAR");

upalert=verdadeiro;

downalert=false;

LastAlert =curbar;

}

}

caso contrário, se (anterior !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ("LastAlert != curbar && !downalert){

Alerta (Símbolo()," ",Período(), "VENDA");

downalert=verdadeiro;

upalert=false;

LastAlert = barra;

}

}

}

luffy

Você também pode colocar o indicador chamado, para que ele possa ser testado?

 
mrtools:
Mntiwana, no Bar to Use se você colocar zero estará recebendo sinais na barra ainda aberta (perigoso para um EA, IMHO) se maior que zero o EA estará recebendo sinais das barras fechadas de volta da barra aberta, então se você tiver BarToUse = 2, então seu EA estará verificando 2 barras de volta.

Caríssimos MLADEN e MRTOOLS,

obrigado pelas gentis ajudas,desculpe por tomar muito do seu tempo,pedindo tanto .......so no caso deste EA,o que é melhor e mais adequado,qual barra deve ser adicionada.......i quer quando a linha MA lenta cruzada completamente pela linha MA rápida (de qualquer maneira) ....... na segunda próxima barra,a negociação deve ser executada,podemos codificar assim que depois de cruzar,quantas barras mais tarde a negociação pode ser executada,por exemplo depois de cruzar na primeira barra,depois de cruzar na segunda ou terceira barra ? fotos são anexadas para melhor explicar a pergunta,obrigado

cumprimentos

Arquivos anexados:
7.png  35 kb
8.png  38 kb
 

Aqui estão os indicadores.

Obrigado.

Arquivos anexados:
 
mrtools:
Mntiwana, no Bar to Use se você colocar zero estará recebendo sinais na barra ainda aberta (perigoso para um EA, IMHO) se maior que zero o EA estará recebendo sinais das barras fechadas de volta da barra aberta, então se você tiver BarToUse = 2, então seu EA estará verificando 2 barras de volta.

Caro MRTOOLS,

você quis dizer .... bar para usar = 2 ...... 2 bar depois de atravessar...não 2 N bar , quando você escreve Bars BACK, eu confuso, minha culpa....please me corrija . obrigado.

cumprimentos

 
mntiwana:
Caro MRTOOLS,

você quis dizer .... bar para usar = 2 ...... 2 bar depois de atravessar...não 2 N bar , quando você escreve Bars BACK, eu confuso, minha culpa....please me corrija . obrigado.

cumprimentos

mntiwana

Não, mas quando as barras a serem usadas == 2, então a travessia será verificada a 2 barras da barra atual - não será verificada a travessia na barra atual. Portanto, com um atraso de 2 barras

 
mladen:
mntiwana Não, mas quando as barras a serem usadas == 2, então a travessia será verificada a 2 barras da barra atual - não verificará a travessia na barra atual. Portanto, com um atraso de 2 barras

Caríssimos MLADEN,

obrigado chefe, então, neste caso, o código pode ser assim ? por favor, me corrija,

cumprimentos

===================================================================

código original "simples MA cross EA".

//

#define _doNada 0

#define _doBuy 1

#define _doSell 2

int start()

{

int do What = _doNada;

diffc duplo = iMA(NULL,0,Ma1Periodo,0,Ma1Método,Ma1Preço,BarToUse) -iMA(NULL,0,Ma2Periodo,0,Ma2Método,Ma2Preço,BarToUse);

difp duplo = iMA(NULL,0,Ma1Período,0,Ma1Método,Ma1Preço,BarToUse+1)-iMA(NULL,0,Ma2Período,0,Ma2Método,Ma2Preço,BarToUse+1);

se ((difc*diffp)<0)

se (difc>0)

do What = _doBuy;

else do What = _doSell;

se (doWhat===_doNada) retorna(0);

//

================================================

alterado desta forma

#define _doNada 0

#define _doBuy 1

#define _doSell 2

int start()

{

int do What = _doNada;

diffc duplo = iCustom(NULL,0, "Hull parabolic 2.1",PERÍODO_CURRENTE,PeriodoMa1,Ma1Preço,2,0,0,0,BarToUse)

-iCustom(NULL,0, "Hull parabolic 2.1",PERÍODO_CURRENTE,Ma2Periodo,Ma2Preço,2,0,0,0,BarToUse);

difp duplo = iCustom(NULL,0, "Parabólico de casco 2.1",PERÍODO_CURSO,PeriodoMa1,Ma1Preço,2,0 ,0,BarToUse==2)

-iCustom(NULL,0, "Hull parabolic 2.1",PERÍODO_CURRENTE,Ma2Periodo,Ma2Preço,2,0 ,0,BarToUse===2);

se ((diffc*diffp)<0)

se (difc>0)

do What = _doBuy;

else do What = _doSell;

se (doWhat===_doNada) retorna(0);

//

=====================================

Arquivos anexados:
9.png  108 kb