Pergunta indicadora - página 5

 
Oh, uma última pergunta

É mais típico contar para frente ou para trás ao construir indicadores que podem ser usados nas EA's

Um cria mais problemas do que o outro ou é apenas uma questão de preferência e desenho?

Favor informar

Obrigado

 
De vez em quando, dê uma olhada neste artigo: https: //www.mql5.com/en/articles/1456 pode ser um pouco assustador, mas continue assim, pouco a pouco, uma vez que você o tenha entendido terá aprendido sobre Indicadores, EAs e suas diferenças.
 
Agent86:
Oh, uma última pergunta

É mais típico contar para frente ou para trás ao construir indicadores que podem ser usados nas EA's

Um cria mais problemas do que o outro ou é apenas uma questão de preferência e desenho?

Normalmente muitos dos Indicadores que vi contam i++, na minha humilde opinião isto está errado... um gráfico constrói da esquerda para a direita, velhas velas estão à esquerda novas à direita. Quando um Indicador processa as barras antigas em um gráfico ( para que possa então começar a processar a(s) barra(s) mais atual(is) ) não deveria fazê-lo de uma forma que seja representativa da forma como funcionará nos dados ao vivo?

Os Indicadores técnicos não são o meu forte, tive que me familiarizar com eles por necessidade, mas minha experiência com eles é pequena, eu também gostaria de receber outras respostas de pessoas mais experientes.

 

geralmente, no que me diz respeito durante o comércio real, os conjuntos inteiros de preços de barras muito distantes no passado são bastante irrelevantes. Talvez apenas aqueles poucos recentes, em um determinado quadro.

A este respeito, prefiro "transferir" a lógica do indicador, se eles forem bons o suficiente, para alguma função ou libra onde a EA possa usar diretamente, em vez de chamar o iCustom e buffers de leitura, etc. Isto pode ser problemático, não esqueça.

Portanto, para mim um bom indicador é aquele que é capaz de me permitir fazer exatamente isso.

 
Acho que vou experimentar alguns com cada um, mas parece-me que preferiria aumentar de 0 para 0, no entanto, como é que os indicadores padrão aumentam?

Se eu quisesse usar iFractals para algo útil em uma EA, parece que o sinal ocorre naturalmente; e se eu quisesse voltar no tempo para um iFractal anterior, então eu iria i++ a mudança para um iFractal anterior

Mas quando eu vejo as EA das pessoas e aparecem indicadores nos gráficos. Eles estão usando indicadores iCustom e indicadores que eles adicionaram ou isso normalmente é colocado na própria EA e quando você abre a EA isso ocorre automaticamente?

Estou tentando resolver tudo

 
RaptorUK:
De vez em quando, dê uma olhada neste artigo: https: //www.mql5.com/en/articles/1456 pode ser um pouco assustador, mas continue assim, pouco a pouco, uma vez que você o tenha entendido terá aprendido sobre Indicadores, EAs e suas diferenças.
Eu agradeço.

Preciso apenas continuar a trabalhar, não quero continuar lutando, mas prefiro aprender tudo o que há sobre MQL4 para que eu possa codificar minhas próprias idéias e também contribuir um pouco para a base de códigos.

Vou continuar lendo obrigado novamente
 
Hi

Alguém pode confirmar se eu estou considerando este código corretamente?

Minha declaração impressa está se referindo ao iFractal anterior ?

//maybe something like this to count back to the previous iFractal for reference
//needs work     
    for(i=0; val1==val3; i++)
      {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if (val1 > 0)
         {
         Print (val1, " = val1");
         }
        }
Foi tudo o que pude pensar com meu conhecimento limitado até agora.

De qualquer forma, há algo de errado com este método para voltar ao iFractal anterior, se é que de fato é o que eu criei aqui.

Parece certo em teoria, pelo que posso dizer?

Favor informar

Obrigado

 

Quando você recebe um iFractal o valor é > 0, sim ?

Então, por exemplo, se você quiser saber onde os últimos UPPER e LOWER iFractals estavam apenas fazendo algo assim ...

val1 = 0; val2 = 0; i = 0;

while( val1==0 && val2==0)
   {
   if (iFractals(NULL, 0, MODE_UPPER,i) > 0 && val1==0) val1 = i;
   if (iFractals(NULL, 0, MODE_LOWER,i) > 0 && val2==0) val2 = i;
   i++;
   }
Print("Last UPPER Fractal at ", val1, " Last LOWER Fractal at ", val2);
 
for(i=0; val1==val3; i++) <--- val1==val3??? This is indeed, "tricky"
       {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if (val1 > 0)
         {
         Print (val1, " = val1");
         }
        }

Honestamente, esta é minha primeira vez que vejo isto, para a condição de terminação do loop. É complicado...

 

A mim me parece legal ... Tudo o que você tem que fazer é testá-lo dentro do contra-teste. Eis como eu o faria.

void start(){
   double val1=0,val3=0;
   for(int i=0; i<=3; i++){
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if(val1>val3){
        Print("Value_1="+val1+" TimeOf_Fractal="+TimeToStr(TimeCurrent()));
        break;
      }
   }
}

Não consigo lembrar como os fractais são formados. Acredito que se formou na terceira barra. E considera as duas barras antes e depois dela.

Salve o código acima como um EA e faça um pequeno teste de retroatividade. Você poderia anexar o indicador aográfico de back-test para confirmar.

Aqui está o que eu tenho:

2011.10.06 06:38:49     2011.01.02 23:00  De_Bugger EURUSD,M1: Value_1=1.33710000 TimeOf_Fractal=2011.01.02 23:00
Razão: