Quando faz sentido manter parte do código do robô em um indicador? - página 15

 
OneDepo:

Não, não vai. Você pode ver no código que o processo de cálculo do sinal é controlado (somente última barra ou dadas barras nMax) pelo parâmetro prevVals[0]. Se for 0, restabelecemos o cálculo por barras nMax. O valor de prevVals[0] é controlado por outro código.

Mas não nos desviemos, vamos direto ao assunto. Há duas opções acima, o que é mais rápido no testador? Então


Como posso saber se você não tem todo o código? Coloque-o no EA como ele deve estar lá, então haverá uma conversa substantiva e você poderá comparar o desempenho.
 
Integer:

Talvez tenha me enganado nas probabilidades, vou verificar agora, mas o princípio não muda.

Não estou falando de coeficientes. O EMA dá valores errados durante as primeiras n barras, mas depois tudo está bem. O consultor especializado deve levá-lo em conta. Caso contrário, teremos problemas com valores a cada falha de conexão
 
Vinin:

Não se trata dos coeficientes. Quero dizer que o EMA não dá o valor correto durante as primeiras n barras, depois disso tudo está bem. O consultor especializado deve levá-lo em conta. Caso contrário, teremos problemas com valores a cada falha de conexão

Está bem assim?

extern double Alpha = 0.1;

double EMA;

double GetPrice( int Shift )
{
  return(Open[Shift]);
}

void init()
{
  int i = Bars - 1;
  
  EMA = GetPrice(i);
  i--;
  
  while (i > 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    i--;
  }
  
  return;
}  

void start()
{
  static int PrevTime = 0;
    
  if (PrevTime == Time[0])
    return;
 
  PrevTime = Time[0];
    
  EMA = EMA * Alpha + (1 - Alpha) * GetPrice(0);
  
  return;  
} 
 
Vinin:

Não se trata dos rácios. O EMA dá um valor errado para as primeiras n barras, mas mais tarde tudo está bem. O consultor especializado deve levá-lo em conta. Caso contrário, teremos problemas com valores cada vez que rompermos a conexão.


Sem problemas, o indicador recalculará após problemas na obtenção dos dados.

O fato de estar torto à esquerda, no início do gráfico, também não é um problema tão grande, o testador perde as primeiras 1000 barras.

Aqui, exatamente à esquerda (no apêndice).

Arquivos anexados:
iema_1.mq4  1 kb
 
Integer:

Como posso saber se você não tem o código completo? Coloque-o no EA da maneira que ele deve estar lá, então haverá uma conversa substantiva.
Por favor, uma variante para testes
Arquivos anexados:
bb-ii-08.mq4  11 kb
 
Integer:


Não haverá nenhum problema, o indicador recalculará após problemas na obtenção dos dados.

O fato de estar torto à esquerda, no início do gráfico, também não é um problema tão grande, o testador perde as primeiras 1000 barras.

Aqui, exatamente à esquerda (em anexo).


Eu estava falando do conselheiro, não do indicador. Eu já vi isso. Só que eu não disse tudo para você, eu disse para a hrenfx.
 
hrenfx:

Está bem assim?


Tudo o que resta a fazer é prever interrupções de conexão e saltos históricos (infelizmente, isto acontece). O indicador trata disso sem nenhum problema. Mas o Consultor Especialista não o vê.
 
OneDepo:
Favor testar a opção

Não adequado para a indicação anunciada. Haverá erros após uma interrupção na comunicação, quanto menor o prazo, mais freqüentes e maiores serão os erros.
 
Vinin:

Tudo o que resta a fazer é prever interrupções de conexão e saltos históricos (infelizmente, isto acontece). O indicador lida com isso sem nenhum problema. Mas o Consultor Especialista não o vê.

Na verdade, agora estamos nos baseando no conceito de comércio. O Consultor Especialista recebe dados do indicador aqui e agora. De repente, a história muda e o indicador muda drasticamente seus valores. Então, o que o Consultor Especialista recebeu antes? Vamos lembrar o que está sendo comparado. E estamos comparando a velocidade, no caso de alguém ter esquecido. Mas apesar de todas as escolhas discutíveis, vou escrever um consultor especializado que leva em conta as lacunas e a paginação da história.
 
hrenfx:

...e de repente a história muda...

Incrível!