Ajuda na codificação - página 193

 

Всем привет!

дорого дня!!

помогите добавить красную полоску в индикатор

полоска зелёная работает хорошо (urso;// Lime)

красная не работает(bull;// Vermelho;)

заранее Спасибо.

индикатор:

bearbull.mq4

Arquivos anexados:
 

Olá Mrtools & Mladen

Confirmo que a TSV Bullish & Bearish é apenas uma versão histo do Gann Hilo Activator como você vê na minha foto...

Nunca vou entender porque algumas pessoas gostam de dar um nome esotérico e estranho a um outro indicador que já existe (Gann Hilow ativador já é um nome estranho e esotérico...) ...

TSV Bullish & Bearish me pareceu muito interessante, mas assim é mais TSH Bullshit & Bearish

Tenha um bom dia pessoal e obrigado por sua resposta

Zilliq

mrtools:
Zilliq, há uma versão aqui https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 com o código fonte.
Arquivos anexados:
 

Mladen,

Eu tentei desta maneira:

int start()

{

//----

duplo _distância = pipsDistância*Ponto*MathPow(10,Dígitos%2);

se (displayAlert===falso) retorno;

data/hora estática Hora0;

if (Tempo0 == Tempo[0]) retorno; // Um alerta por barra.

for(int iObj = ObjetosTotal() - 1; iObj >= 0; iObj--)

{

nome da cadeia = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

linha = ObjectGet(nome, OBJPROP_PRICE1);

}

senão se (ObjectType(nome) == OBJ_TREND)

{

linha = ObjectGetValueByShift(nome,0);

}

caso contrário, continuar; // Nenhuma linha encontrada

if ((Alto[0]>=(linha_distância) && (linha+_distância)>=Baixo[0]))

{

Texto = Símbolo()+" M "+Periodo()+" tocou S/R @ "+Fechar[0];

Alerta(Texto);

Time0 = Time[0]; // Sem mais alertas.

se (Notificação) EnviarNotificação(Texto);

}

}

//----

Neste momento não posso testá-lo porque não há citações em tempo real. Mas parece-me lógico usar o ObjectGetValueByShift() desta forma. Eu só procuro por toques de linha dentro da barra atual. Portanto, usei (nome,0).

Mas agora eu queria perguntar se realmente tenho que fazer a diferença entre OBJ_HLINE e OBJ_TREND. Quando eu uso ObjectGetValueByShift(nome,0), também recebo o valor de uma linha horizontal ou estou errado? Não vejo diferença lógica entre ObjectGet(name, OBJPROP_PRICE1) e ObjectGetValueByShift(name,0) quando apenas o valor da linha do período atual é necessário.

Talvez você possa esclarecer isso um pouco? Obrigado!!

 
Marbo:
Mladen,

Eu tentei desta maneira:

int start()

{

//----

duplo _distância = pipsDistância*Ponto*MathPow(10,Dígitos%2);

se (displayAlert===falso) retorno;

data/hora estática Hora0;

if (Tempo0 == Tempo[0]) retorno; // Um alerta por barra.

for(int iObj = ObjetosTotal() - 1; iObj >= 0; iObj--)

{

nome da cadeia = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

linha = ObjectGet(nome, OBJPROP_PRICE1);

}

senão se (ObjectType(nome) == OBJ_TREND)

{

linha = ObjectGetValueByShift(nome,0);

}

caso contrário, continuar; // Nenhuma linha encontrada

if ((Alto[0]>=(linha_distância) && (linha+_distância)>=Baixo[0]))

{

Texto = Símbolo()+" M "+Periodo()+" tocou S/R @ "+Fechar[0];

Alerta(Texto);

Time0 = Time[0]; // Sem mais alertas.

se (Notificação) EnviarNotificação(Texto);

}

}

//----

Neste momento não posso testá-lo porque não há citações em tempo real. Mas parece-me lógico usar o ObjectGetValueByShift() desta forma. Eu só procuro por toques de linha dentro da barra atual. Portanto, usei (nome,0).

Mas agora eu queria perguntar se realmente tenho que fazer a diferença entre OBJ_HLINE e OBJ_TREND. Quando eu uso ObjectGetValueByShift(nome,0), também recebo o valor de uma linha horizontal ou estou errado? Não vejo diferença lógica entre ObjectGet(name, OBJPROP_PRICE1) e ObjectGetValueByShift(name,0) quando apenas o valor da linha do período atual é necessário.

Talvez você possa esclarecer isso um pouco? Obrigado!!

Marbo

Você tem que fazer uma diferença entre linha horizontal e linha de tendência simplesmente porque a linha de tendência é um tipo de objeto diferente da linha horizontal (para a linha horizontal basta ler o valor do preço1 e é isso, enquanto, para a linha de tendência, o preço1 não precisa ser o mesmo que o preço 2, e esses preços podem ser completamente diferentes dos preços intermediários)

 

Hi,

Alguém pode ajudar a resolver um problema com este indicador?

Em mt4 visual tester com modo Backtesting habilitado funciona Ok em modo mtf (H1-H4 no gráfico M5)

mas no gráfico real - as linhas estão atrasando.

Obrigado!

mtf_moving_average.mq4

Arquivos anexados:
 

Mladen,

esse fato eu entendo. Falo apenas para o meu simples indicador. Para mim, não é importante de onde vem a linha de tendência ou para onde ela vai. Eu só preciso do valor dela na barra atual. Portanto, perguntei se poderia montá-lo e trabalhar somente com ObjectGetValueByShift() para ambas as linhas.

Mas, no entanto, você acha que funciona da forma como eu o fiz no código acima?

Obrigado!!

 
Marbo:
Mladen,

esse fato eu entendo. Falo apenas para o meu simples indicador. Para mim, não é importante de onde vem a linha de tendência ou para onde ela vai. Eu só preciso do valor dela na barra atual. Portanto, perguntei se poderia montá-lo e trabalhar somente com ObjectGetValueByShift() para ambas as linhas.

Mas, no entanto, você acha que funciona da forma como eu o fiz no código acima?

Obrigado!!

Marbo

Até onde eu vejo que deve funcionar

 
cain82:
Hi,

Alguém pode ajudar a resolver um problema com este indicador?

Em mt4 visual tester com modo Backtesting habilitado funciona Ok em modo mtf (H1-H4 no gráfico M5)

mas no gráfico real - as linhas estão atrasando.

Obrigado!

mtf_moving_average.mq4

Tente usar o deste post em seu lugar : https://www.mql5.com/en/forum/173574/page239

 
mladen:
Tente usar o deste post em seu lugar: https: //www.mql5.com/en/forum/173574/page239

Obrigado pela resposta!

Mas você trabalha de maneira diferente.

 
cain82:
Obrigado pela resposta! Mas você trabalha de maneira diferente.

Sim, porque funciona corretamente. Se tudo o que precisa ser corrigido fosse feito no que você postou, seria exatamente o mesmo.

cumprimentos