Cálculo do ângulo de inclinação da linha de tendência. - página 21

 

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta de novatos sobre MQL4 e MQL5, dicas e discussão sobre algoritmos e códigos

Nikolai Semko, 2020.10.26 00:34

Você não deve ter medo da velocidade. É apenas uma condicionalidade para a conversão do tipo.
Como uma variante da função de definição de ângulos:

struct PointPriceTime
  {
   double            price;
   datetime          time;
                     PointPriceTime(double p, datetime t) { price=p; time=t; };
   void              Set(double p, datetime t){ price=p; time=t;};
                     PointPriceTime(PointPriceTime &p){ price=p.price; time=p.time; };
                     PointPriceTime() { price=0.0; time=0; };
  };

double Angle(PointPriceTime &p1,PointPriceTime &p2) // возвращает угол в градусах в приведенной системе координат price-price, где по оси X 
  {                                                 // расстояние между x1 и  x2  = N*_Point, где N - количество минутных баров во временном промежутке отрезка. 
   static int tf[9]= {PERIOD_M1,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4,PERIOD_D1,PERIOD_W1,PERIOD_MN1};
   int i=0;
   while(i<9 && SeriesInfoInteger(_Symbol,tf[i],SERIES_FIRSTDATE)>p1.time)
      i++;
   if(i==9)
     {
      Print("Время левой границы вне диапазона исторических данных");
      return DBL_MAX;
     }
   int bar1 = iBarShift(_Symbol,tf[i],p1.time);
   int bar2 = iBarShift(_Symbol,tf[i],p2.time);
   if(bar1==bar2)
      return 0.0;
   return atan((p2.price-p1.price)/((bar1-bar2)*PeriodSeconds(tf[i])*_Point/60))*180/M_PI;
  }

Depois do MT5, a sensação do MT4 é simplesmente horrível. O acesso ao histórico é de alguma forma emasculado. Não estou nem mesmo falando dos carrapatos.




 
Nikolai Semko:

E então para onde iria esse "canto"?

 
Dmitry Fedoseev:

E então, onde você coloca esse "ângulo"?

Chegar a um ponto por minuto, observar quanto tempo e tirar conclusões)

 
Valeriy Yastremskiy:

Chegar a um ponto por minuto, ver quanto tempo e tirar conclusões)

Qual é o objetivo em um minuto? Por que trazer para algum lugar quando tudo já está reduzido a pontos por barra há muito tempo?

 
Dmitry Fedoseev:

E por que em um minuto? Por que levar a algum lugar quando tudo já foi levado a pontos por barra há muito tempo?

questão filosófica. Se eu levar em conta a fractalidade em diferentes períodos de tempo, às vezes estimo a velocidade em barras, mas ela é interessante e chega ao mesmo denominador. Não é muito útil, mas é óbvio que a velocidade é maior em pequenos períodos de tempo.

Com certeza tem algo, não sei como dizer, um reflexo da dinâmica, algo assim. A estrutura dos movimentos é a mesma.

 
Valeriy Yastremskiy:

questão filosófica. Eu tenho tentado tirar o máximo proveito disso, mas tenho tentado tirar o máximo proveito disso, e tenho tentado tirar o máximo proveito disso. Não vejo nenhum valor, mas é óbvio que a velocidade em pequenos períodos de tempo é maior.

Com certeza tem algo, não sei como dizer, um reflexo da dinâmica. A estrutura dos movimentos é a mesma.

Você pode fantasiar com o que quiser. Você pode até contar quantas vezes um caminhoneiro foi mijar por viagem e até mesmo acrescentar isto à distância total e maravilhar-se - oh, tornou-se 30 metros mais longo.

 
Dmitry Fedoseev:

Você pode fantasiar com o que quiser. Você pode até mesmo contar quantas vezes um caminhoneiro mijou por viagem e até mesmo acrescentar isso à distância total e maravilhar-se - oh, é 30 metros mais longo.

Eu NÃO possuo esse tipo de pensamento direto. Estou indo pelo caminho mais difícil. Primeiro olho para o que posso medir, calcular e só depois penso no que posso fazer com ele.

Pergunta, quão fácil é calcular à esquerda, a partir da barra atual, o final do corredor? O corredor pode estar em mudanças relativas de diferença de baixas e altas, e a velocidade de baixas e altas pode ser calculada, mas é difícil. Eu gostaria de simplificá-lo.

Minuto com extremos.

 

Simplicidade é um conceito relativo. Simples em que sentido? O mais simples em termos de implementação - basta percorrer as últimas barras.

Se mais simples em termos de desempenho... há muitas perguntas. Neste caso, devemos tentar ir da esquerda para a direita, e estar em cada bar apenas uma vez. Se for de todo possível. Pelo menos um deve se esforçar para isso.

 
Dmitry Fedoseev:

Simplicidade é um conceito relativo. Simples em que sentido? O mais simples em termos de implementação - basta percorrer as últimas barras.

Se mais simples em termos de desempenho... há muitas perguntas. Neste caso, devemos tentar ir da esquerda para a direita, e estar em cada bar apenas uma vez. Se for de todo possível. Pelo menos, devemos nos esforçar para isso.

É claro que devemos fazer loop por barras ou extrema. Os dados extremos estão disponíveis como um número de barras e preço. O que colocar na condição. Os corredores podem ser de diferentes larguras e declive. É claro, se for menos largura, estaremos no corredor, mas é uma solução de impasse. E eu não posso fazer uma dinâmica. Isto é para o primeiro cálculo, para entender que existe um corredor para a barra atual.

Ainda não penso no desempenho e na otimização.

 
Valeriy Yastremskiy:

É claro que ele passa por barras ou extremos. Os dados extremos estão na forma de número de barras e preço. O que colocar na condição. Os corredores podem ser de diferentes larguras e declive. É claro, se for menos largura, estaremos no corredor, mas é uma solução de impasse. E eu não posso fazer uma dinâmica. Isto é para o primeiro cálculo, para entender que existe um corredor para a barra atual.

Ainda não estou pensando em desempenho e otimização.

Podemos calcular uma regressão linear para cima e para baixo. A distância entre os limites deve ser medida em relação ao desvio padrão.

Você pode estimar quão plano é o canal por correlação dos coeficientes B dos limites superior e inferior. Se tal precisão for necessária.

A inclinação do canal também é determinada pelo coeficiente B.

...

Ou, você pode simplesmente calcular a média da diferença de dois fractais vizinhos.