Ajuda na codificação - página 192

 

oi mladen,

eu tento há muito tempo incorporar, aplicar e fazer alguns códigos a este indicador, ele tem exibição, sem problemas de atualização e repintura, mas eu não sei porque não tem, você poderia me dizer o motivo? mas ele também tem uma grande fraqueza que ele só calcula o sinal ou valor após a barra da vela fechar, quando a vela ainda em funcionamento, ele não mudará nenhum sinal ou valor, mas eu apenas uso exatamente a mesma fórmula de cálculo que antes de os indicadores de teste CCI lhe enviaram antes, por que tem um resultado tão diferente? o que o código dentro tem feito para fazer tais diferenças? Mas espero que ele possa calcular como o seu, que possa calcular os valores e sinais instantaneamente quando as velas ainda estiverem em funcionamento (não apenas após fechar), caso contrário os sinais ficarão com pelo menos um castiçal. como melhorar este indicador se eu quiser que ele mude instantaneamente os valores e sinais, muito obrigado pela ajuda.

 

Olá Codificadores,

olá, mladen,

Encontrei um indicador em meu HDD que exibe um alerta quando uma linha horizontal é tocada pelo preço. Modifiquei-o um pouco e ele funciona bem. Mas agora eu gostaria de acrescentar algo. Muitas vezes acontece que uma linha exata não é tocada e o preço inverte alguns pips antes. Agora eu poderia desenhar muitas linhas mais no gráfico ou tentar modificar este indicador para que ele não exiba apenas um alerta quando a linha no gráfico é tocada, mas alguns pips mais alto ou mais baixo. Portanto, o indicador deve exibir um alerta quando os preços tocarem a linha no gráfico +5 pips ou linha -5 pips.

Minha idéia é mudar esta linha:

if (Alto[0]>=linha && linha>=Baixo[0]) para algo como isto:

if ((Alto[0]>= linha+0,0005 && linha+0,0005>=Baixo[0]) ||| (if (Alto[0]>=line-0,0005 && linha- 0,0005>=Baixo[0]))

Obviamente, isso não funciona... Eu não tenho idéia do porquê... :-/

E outro problema é que isso só funcionaria por 1,XXXX preços. Eu não posso usar 0,0005 para pares de ienes ou índices de CFDs.

Eu ficaria feliz se alguém pudesse consertar isso.

Obrigado!!

Aqui está o código:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

bool Notificação externa=verdadeiro;

Bool display externoAlerta=verdadeiro;

texto de corda;

#Janela_do_cartão_indicador_de_propriedade

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de desinicialização de indicador personalizada |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

//----

se (displayAlert===falso) retornar;

data/hora estática Hora0;

se (Hora0 == Hora[0]) retornar; // Um alerta por barra.

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

{

nome da cadeia = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

linha dupla = ObjectGet(nome, OBJPROP_PRICE1);

}

caso contrário continuar; // Não HLINE

if (Alto[0]>=linha && linha>=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);

}

}

//----

retorno(0);

}

//+------------------------------------------------------------------+

 
Marbo:
Olá Codificadores,

olá, mladen,

Encontrei um indicador em meu HDD que exibe um alerta quando uma linha horizontal é tocada pelo preço. Modifiquei-o um pouco e ele funciona bem. Mas agora eu gostaria de acrescentar algo. Muitas vezes acontece que uma linha exata não é tocada e o preço inverte alguns pips antes. Agora eu poderia desenhar muitas linhas mais no gráfico ou tentar modificar este indicador para que ele não exiba apenas um alerta quando a linha no gráfico é tocada, mas alguns pips mais alto ou mais baixo. Portanto, o indicador deve exibir um alerta quando os preços tocarem a linha no gráfico +5 pips ou linha -5 pips.

Minha idéia é mudar esta linha:

if (Alto[0]>=linha && linha>=Baixo[0]) para algo como isto:

if ((Alto[0]>= linha+0,0005 && linha+0,0005>=Baixo[0]) ||| (if (Alto[0]>=line-0,0005 && linha- 0,0005>=Baixo[0]))

Obviamente, isso não funciona... Eu não tenho idéia do porquê... :-/

E outro problema é que isso só funcionaria por 1,XXXX preços. Eu não posso usar 0,0005 para pares de ienes ou índices de CFDs.

Eu ficaria feliz se alguém pudesse consertar isso.

Obrigado!!

Aqui está o código:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

bool Notificação externa=verdadeiro;

Bool display externoAlerta=verdadeiro;

texto de corda;

#Janela_do_cartão_indicador_de_propriedade

//+------------------------------------------------------------------+

//| Função de inicialização do indicador personalizado |

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de desinicialização de indicador personalizada |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| Função de iteração de indicador personalizada |

//+------------------------------------------------------------------+

int start()

{

//----

se (displayAlert===falso) retornar;

data/hora estática Hora0;

se (Hora0 == Hora[0]) retornar; // Um alerta por barra.

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

{

nome da cadeia = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

linha dupla = ObjectGet(nome, OBJPROP_PRICE1);

}

caso contrário continuar; // Não HLINE

if (Alto[0]>=linha && linha>=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);

}

}

//----

retorno(0);

}

//+------------------------------------------------------------------+

Marbo

Você pode fazer algo como no anexo. A única coisa que você deve revisar é o que exatamente a distância em pips de uma linha deve significar (+ ou - no caso de alta ou baixa)

Arquivos anexados:
 

Ótimo! Obrigado!!

 
zilliq:
Olá Mrtool e Mladen,

Um de vocês pode explicar como é construído o indicador TSV Bullish & Bearish, por favor? Eu não encontrei nenhuma informação sobre ele ?

Obrigado

Zilliq

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.

 
cwu:
Se eu entrar em 0, isso significa que não há SL ou TP? Mais uma vez, obrigado.

Cwu,

Sim, deveria.

 

Gente

Tenho verificado que a TSV Bullish & Bearish e a mais antiga que encontrei é de 2007. Se essa é a fórmula, então não é nada mais do que um ativador alto baixo de Gann em uma forma um pouco diferente (a essência - o cálculo - é a mesma)

 

Obrigado, pessoal,

Verei que este final de semana e postarei o TSV Bearish/bullish que tenho

Sou veterano na França e trabalho amanhã, por isso vou verificar no domingo

Eu já codifiquei um Gann alto e baixo, notadamente com uma versão suave, por isso deve ser simples

Tenha um bom fim de semana e obrigado a todos

Zilliq

 

Mladen,

Tenho outra pergunta sobre o indicador de alerta de linha. No momento, ele está trabalhando com linhas horizontais. Também tentei implementar as linhas de tendência usando OBJ_TREND, mas há um problema que não entendo. Li em outro Fórum há muitos meses que o ponto inicial e o ponto final da linha de tendência deve ser determinado. Você poderia, por favor, me dar algumas informações sobre como fazer isso? Ou isso é muito mais difícil do que eu imagino?

Com os melhores cumprimentos,

Marbo

 
Marbo:
Mladen,

Tenho outra pergunta sobre o indicador de alerta de linha. No momento, ele está trabalhando com linhas horizontais. Também tentei implementar as linhas de tendência usando OBJ_TREND, mas há um problema que não entendo. Li em outro Fórum há muitos meses que o ponto inicial e o ponto final da linha de tendência deve ser determinado. Você poderia, por favor, me dar algumas informações sobre como fazer isso? Ou isso é muito mais difícil do que eu imagino?

Com os melhores cumprimentos,

Marbo

Marbo

Na verdade, não é preciso saber o início e o fim. Você pode recuperar os valores de uma maneira diferente (usando a função ObjectGetValueByShift() que retornará o preço 0 se estiver procurando um preço fora da linha de tendência). Um exemplo de como isso pode ser feito você pode encontrar neste post : https://www.mql5.com/en/forum/177603/page3

Razão: