Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 362

 
Sepulca:


Aí, parece estar desenhando algo.

Embora eu possa não ter

compreender plenamente o significado do indicador

A questão é que se o indicador não deve mudar em relação ao valor anterior quando não estava excedendo 50 pips quando estava caindo ou subindo,

que registramos se não houvesse um excesso. E a cada carrapato que comparamos.

Enquanto não há excesso, uma linha reta é traçada; se houver um excesso, o indicador recebe o valor atual.

Aproximadamente.

o código abaixo. Mas quando o analiso no testador, vejo que ele mostra coisas diferentes na vida real. Ele começa a desviar-se quando não há excesso

pelos mesmos 50 pontos. Vejo que isso atrasa especialmente na subida e começa a mudar através da barra.

Eu cometi um erro em algum lugar, não sei onde.

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_SECTION,0,1);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,MA_1_t,MA_2_t;
    
  if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;
  static double MA_otshet; 
  for(int i=0;i<limit;i++)
   {    
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.005 && raznica_static < 0.005)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.005 && raznica < 0.005)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.005) || (raznica <- 0.005))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }  
   } 
   return(0);
  }
//+------------------------------------------------------------------+
 
ALXIMIKS:


Você está brincando comigo? As linhas tracejadas não têm outra espessura que não seja padrão (e na documentação em algum lugar foi escrito, não posso especificar o local, mas lembro que li)

Nós provamos:

1) colocar uma máscara normal

2) introduzir as propriedades "Cores

3) tipo de linha definida - linha tracejada

4) Selecionar a espessura 2-5.

Resultado - uma linha pontilhada se torna uma linha normal.

Bem, isso é o que estou escrevendo sem a linha pontilhada.
 
XuMuk:
Olá a todos!!! Eu mesmo tentei escrever um simples especialista. Mas surge um problema que eu não entendo. Aqui está um osciloscópio simples que peguei em um livro. Eu o compenso e nada é exibido. Embora, se você colocar "-" no lugar de divisão enquanto loop, tudo funciona.

Aí está, ele até desenha

#property indicator_buffers 1
#property indicator_separate_window
extern int Period_valroc=10;
double Line0[];
int init()
  {
   SetIndexBuffer(0,Line0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Magenta);

   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i,Counted_bars=1000+Period_valroc;
    for (i=Counted_bars-1-Period_valroc; i>=0;i--)
      {
        Line0[i]=100*(Close[i]/Close[i+Period_valroc]);
//        i--;
      }
//----
   return(0);
  }

roxo seu peru))))

 

Boa noite.

Eu decidi baixar a história, houve apenas um ano de USD|JPY.

Acabou sendo uma péssima idéia, eu recebi um gráfico mole.

Como voltar ao início :(?

DoC: F r o u r !

Obrigado!

 
Forexman77:

A questão é que se houver uma queda ou subida de não mais de 50 pips, o indicador não deve mudar em relação ao valor anterior,

que registramos se não houvesse um excesso. E a cada carrapato que comparamos.

Enquanto não há excesso, uma linha reta é traçada; se houver um excesso, o indicador recebe o valor atual.

Aproximadamente.

o código abaixo. Mas quando o analiso no testador, vejo que ele mostra coisas diferentes na vida real. Ele começa a desviar-se quando não há excesso

pelos mesmos 50 pontos. Vejo que isso atrasa especialmente na subida e começa a mudar através da barra.

Eu cometi um erro em algum lugar nele, não sei onde.


À primeira vista, está tudo bem. A única coisa é que eu, por exemplo, prefiro ciclos de barras do passado ao futuro: menos oportunidades de mudar os valores indicadores ao invés da história. O atraso pode ser devido ao uso de um muving (você tem um período de 7 períodos) e a "tagarelice" pode ser devido ao uso do preço de fechamento da barra zero - ele está mudando constantemente ao longo do curso da barra.
 
VladislavVG:

À primeira vista, tudo é normal. A única coisa que eu, por exemplo, prefiro ciclos de barras do passado ao futuro: menos oportunidades de mudar os valores do indicador ao longo da história. O atraso pode estar ligado ao uso de um muving (você tem um muving de 7 períodos), e a "tagarelice" - com o uso do preço de fechamento da barra zero - muda constantemente durante a barra.

Fez as condições do ciclo

for(int i=Bars-1;i>=0;i--)

Velocidade de teste significativamente reduzida.

Para verificar, acrescentei um muving de 7 períodos ao testador. Há desvios de 50 pontos, mas o indicador não muda imediatamente.

 
Forexman77:

Fez as condições do ciclo

Reduziu significativamente a velocidade de teste.



  for(int i=limit-1;i>=0;i--)

O resto é o mesmo que em sua versão.

Além disso, IMHO, você não deve usar valores absolutos ao comparar - 0,005 - melhor 50*Point. Caso contrário, você obterá resultados diferentes em pares diferentes.

 
VladislavVG:

O resto é o mesmo que em sua versão.

E também, IMHO, você não deve usar valores absolutos ao comparar - 0,005 - melhor 50*Point. Caso contrário, você obterá resultados diferentes em pares diferentes.

Obrigado! Parece funcionar.

Você já encontrou algo semelhante? Quem pode ter implementado esta idéia?

Encontrei o indicador de deslizamento e o ziguezague do Kaufman. Basicamente, o indicador ziguezague é feito de forma semelhante.

 
Forexman77:

Obrigado! Parece estar funcionando.

Você já se deparou com algo parecido com isto? Talvez alguém tenha implementado esta idéia?

Até agora, encontrei o indicador de deslizamento e ziguezague do Kaufman. Basicamente, o indicador ziguezague é feito de forma semelhante.



Não, eu não vi nada parecido com isso.
 
fozi:

Boa noite.

Eu decidi baixar a história, houve apenas um ano de USD|JPY.

Acabou sendo uma péssima idéia, eu recebi um gráfico mole.

Como voltar ao início :(?

DoC: F r o u r !

Obrigado!

Se você clicar com o botão direito do mouse no gráfico e selecionar "refresh" ?