Calcolo dell'angolo di pendenza della linea di tendenza. - pagina 21

 

Forum sul trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4 e MQL5, consigli e discussioni su algoritmi e codici

Nikolai Semko, 2020.10.26 00:34

Non bisogna avere paura della velocità. È solo una condizionalità per la conversione dei tipi.
Come variante della funzione di definizione degli angoli:

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;
  }

Dopo MT5 la sensazione di MT4 è semplicemente terribile. L'accesso alla storia è in qualche modo evirato. Non sto nemmeno parlando delle zecche.




 
Nikolai Semko:

E poi dove andrebbe a finire quell'"angolo"?

 
Dmitry Fedoseev:

E poi dove mettete questo "angolo"?

Portarlo a un punto al minuto, vedere quanto tempo e trarre conclusioni)

 
Valeriy Yastremskiy:

Portare a un punto un minuto, vedere quanto tempo e trarre conclusioni)

Qual è il punto tra un minuto? Perché portare da qualche parte quando tutto è già ridotto a punti per barra da molto tempo?

 
Dmitry Fedoseev:

E perché tra un minuto? Perché condurre da qualche parte quando tutto è già stato condotto ai punti per barra molto tempo fa?

questione filosofica. Se prendo in considerazione la frattalità a diversi timeframes, a volte stimo la velocità in barre, ma è piuttosto interessante e arriva allo stesso denominatore. Non è molto utile, ma è ovvio che la velocità è maggiore sui piccoli timeframe.

Sicuramente ha qualcosa, non so come dirlo, un riflesso della dinamica, qualcosa del genere. La struttura dei movimenti è la stessa.

 
Valeriy Yastremskiy:

domanda filosofica. Ho cercato di ottenere il massimo, ma ho cercato di ottenere il massimo, e ho cercato di ottenere il massimo. Non vedo alcun valore, ma è ovvio che la velocità su piccoli timeframe è maggiore.

Sicuramente ha qualcosa, non so come dirlo, un riflesso della dinamica, qualcosa del genere. La struttura dei movimenti è la stessa.

Puoi fantasticare come vuoi e su tutto quello che vuoi. Si può anche contare quante volte un camionista è andato a pisciare per ogni viaggio e anche aggiungere questo alla distanza totale e meravigliarsi - oh, è diventato 30 metri più lungo.

 
Dmitry Fedoseev:

Puoi fantasticare su tutto quello che vuoi. Si può anche contare quante volte un camionista ha pisciato per ogni viaggio e aggiungerlo alla distanza totale e meravigliarsi - oh, è 30 metri più lungo.

Io NON possiedo una tale franchezza di pensiero. Sto andando nel modo più difficile. Prima guardo cosa posso misurare, calcolare e solo dopo penso a cosa posso farci.

Domanda: quanto è facile calcolare a sinistra, dalla barra attuale, la fine del corridoio? Il corridoio può essere in cambiamenti relativi di differenza di bassi e alti, e la velocità di bassi e alti può essere calcolata, ma è difficile. Vorrei renderlo più semplice.

Minuto con gli estremi.

 

La semplicità è un concetto relativo. Semplicità in che senso? La più semplice in termini di implementazione - basta ciclare le ultime battute.

Se più semplice in termini di prestazioni... ci sono molte domande. In questo caso, dovremmo cercare di andare da sinistra a destra, e di essere su ogni barra solo una volta. Se è possibile. Almeno si dovrebbe lottare per questo.

 
Dmitry Fedoseev:

La semplicità è un concetto relativo. Semplice in che senso? La più semplice in termini di implementazione - basta ciclare le ultime battute.

Se più semplice in termini di prestazioni... ci sono molte domande. In questo caso, dovremmo cercare di andare da sinistra a destra, e di essere su ogni barra solo una volta. Se è possibile. Almeno, dovremmo sforzarci di farlo.

È chiaro che dovremmo fare il loop per barre o per estremi. I dati estremi sono disponibili come numero di barra e prezzo. Cosa mettere nella condizione. I corridoi possono essere di diversa larghezza e pendenza. Certo, se è meno largo, saremo nel corridoio, ma è una soluzione di stallo. E non posso farne uno dinamico. Questo è per il primo calcolo, per capire che c'è un corridoio per la barra corrente.

Non penso ancora alle prestazioni e all'ottimizzazione.

 
Valeriy Yastremskiy:

È chiaro che ciclicamente attraversa le barre o gli estremi. I dati estremi sono sotto forma di numero di barra e prezzo. Cosa mettere nella condizione. I corridoi possono essere di diversa larghezza e pendenza. Certo, se è meno largo, saremo nel corridoio, ma è una soluzione di stallo. E non posso farne uno dinamico. Questo è per il primo calcolo, per capire che c'è un corridoio per la barra corrente.

Non sto ancora pensando alle prestazioni e all'ottimizzazione.

Possiamo calcolare una regressione lineare per i top e i bottom. La distanza tra i limiti dovrebbe essere misurata rispetto alla deviazione standard.

Si può stimare quanto sia piatto il canale tramite la correlazione dei coefficienti B dei limiti superiore e inferiore. Se tale precisione è richiesta.

La pendenza del canale può anche essere determinata dal coefficiente B.

...

Oppure, si può semplicemente calcolare la media della differenza di due frattali vicini.