[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 202

 
hoz:


Para começar, acostume-se a colocar parênteses onde você precisar. Assim:

Pode não haver um tique neste segundo ou mesmo um minuto, então melhor sem segundos e Minuto() < 5 e limite de abertura: if(OrdersTotal< 1) ou tantos quantos forem necessários!
 

Estou olhando para o código do indicador padrão de Média Móvel.

Eu cheguei à função:

//+------------------------------------------------------------------+
//| Exponential Moving Average                                       |
//+------------------------------------------------------------------+
void ema()
  {
   double pr=2.0/(MA_Period+1);
   int    pos=Bars-2;
   if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
           pos--;
     }
  }

A variável pr é apenas um coeficiente retirado da caixa? Por que 2.0 /(MA_Periodo+1)?

Além disso, vejo que ele só é ativado se eu não tiver calculado 2 barras... onde está a lógica novamente?

E aqui:

ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);

Soma do valor dos 2 últimos preços de fechamento, multiplicado por coeficientes. Por quê? Qual é a lógica aqui? O último preço foi dominado pelo pr e o penúltimo preço pelo (1-pr).

O que ele dá? Eu quero entender o princípio de como a máquina funciona completamente,

 
hoz:

Estou olhando para o código do indicador padrão de Média Móvel.

Eu cheguei à função:

A variável pr é apenas um coeficiente retirado da caixa? Por que 2.0 /(MA_Periodo+1)?

Além disso, vejo que ele só é ativado se eu não tiver calculado 2 barras... onde está a lógica nesta situação novamente?

E aqui:

Soma do valor dos 2 últimos preços de fechamento, multiplicado por coeficientes. Por quê? Qual é a lógica aqui? O último preço foi dominado pelo pr e o penúltimo preço pelo (1-pr).

O que ele dá? Eu quero entender o princípio de como a máquina funciona completamente,

Victor, experimente substituindo um valor numérico por pr. Digamos, se o período MA = 19, então 2,0 /(MA_Periodo+1) = 0,1, e(1-pr) = 0,9.
 
borilunad:
Victor, experimente substituindo um valor numérico por pr. Digamos, se o período MA = 19, então 2,0 /(MA_Periodo+1) = 0,1, e(1-pr) = 0,9.

Boris, eu até desenhei um par de amortecedores em uma folha de papel. Algo sai estranho. Mas notei que desta forma o mashki é pressionado para o passado. Isto é, tem um valor mais baixo se o preço de fechamento atual. Isto se os preços estiverem subindo o tempo todo. Se for ao contrário, ele se move mais rápido na outra direção. Esta é a lógica por trás disso.
 
hoz:

Boris, eu até escrevi um par de buffers em um pedaço de papel. Algo sai estranho. Mas tenho notado que desta forma as amostras são pressionadas contra o passado. Isto é, tem um valor mais baixo se o preço de fechamento atual. Isto se os preços estiverem subindo o tempo todo. Se for ao contrário, ele se move mais rápido na outra direção. Esta é a lógica.

A soma do valor dos 2 últimos preços de fechamento.... é incorreta - a cloze é adicionada ao valor médio
 
YOUNGA:

A soma do valor dos 2 últimos preços de fechamento.... está incorreta - a cloze é adicionada ao valor médio
é normal encontrar na internet suavização exponencial - descrição
 
YOUNGA:

A soma do valor dos 2 últimos preços de fechamento.... está errada - o cloze
é adicionado ao valor médio.


Sim, era isso que eu queria dizer. Mas exatamente a distribuição dopr entre os últimos valores, ou seja, o último preço de fechamento e o valor médio, ou seja, o último buffer recebido, não é muito clara.

 
YOUNGA:


Deixe-me explicar se você abrir um lote em cada par EURJPY e USDJPY então o lote EURUSD deve ter uma mudança de 1 ponto no preço do EURUSD algo deve acontecer com o sintético EURJPY/USDJPY já que eles estão correlacionados


Esse é o ponto, um lote para EURJPY e USDJPY não são posições iguais. É por isso que a situação deles será a seguinte (acho que eles abriram em direções diferentes, não acha?): 100 000 EUR - 100 000 USD = 100 000 USD * (EUR/USD -1). Ou seja, o resultado do comércio, expresso em dólares, será diretamente proporcional à taxa de câmbio EURUSD menos 1.
 
YOUNGA:
e, em geral, não há problema em encontrar anti-aliasing exponencial na web - descrição

A propósito, sim. Obrigado pela dica :) Tenho sido um verdadeiro chato ultimamente. Estou lendo a descrição de" suavizaçãoexponencial" e começo a perceber...
 
hoz:

O que ele faz? Quero entender bem o princípio de construir a máquina onduladora,


A forma como funciona é a seguinte (transformamos a equação recursiva em uma explícita):

EMA (i) = C (i)*pr + EMA (i+1)*(1-pr) = C (i)*pr + (1-pr)* (C (i+1)*pr + EMA (i+2)*(1-pr)) = C (i)*pr + C (i+1)*pr* (1-pr) + EMA (i+2)*(1-pr)^2 = C (i)*pr + C (i+1)*pr* (1-pr) + (C (i+2)*pr + EMA (i+3)*(1-pr))*(1-pr)^2

= C (i)*pr + C (i+1)*pr* (1-pr) + C (i+2)*pr*(1-pr)^2 + EMA (i+3)* (1-pr)^3 = ... repetir, repetir... = soma {k = de i a infinito; C(k)*pr* (1-pr)^ (k-1)}

Em outras palavras, trata-se de uma série cujos coeficientes são uma progressão geométrica com denominador (1-pr)<1, ou seja, uma progressão decrescente. Sabemos pela álgebra escolar que tal progressão é um expoente decrescente. É de lá que vem o nome MA.

Por que eles tomaram esta fórmula? Sem entrar em detalhes, posso dizer que esta fórmula nos dará o mesmo atraso médio de grupo de uma cotação de entrada na saída do MA que o SMA com o mesmo período. Em outras palavras, EMA e SMA com o mesmo parâmetro de período dão aproximadamente o mesmo atraso. (Mas apenas aproximadamente! - SMA é um filtro de fase linear, EMA não é)