una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 26

 
Un blackout può essere mitigato da gruppi di continuità.
Il server del mio broker è andato giù per alcune ore ieri. Non si può fare assolutamente nulla.
 
Un blackout può essere mitigato da gruppi di continuità. <br / translate="no"> Il server del mio broker è andato giù per qualche ora ieri. Non c'è niente da fare.


Sì - non c'è stata luce per mezza giornata e l'ISP è vicino in ufficio - niente luce o niente rete :).

Buona fortuna e in bocca al lupo per le tendenze.
 
Vladislav,
La procedura del canale di regressione lineare è una cosa abbastanza semplice. Anche implementato su più t/f + tutta l'altra logica (quella che immagino) non richiederà molto tempo.
Allo stesso tempo hai scritto che il ciclo di calcolo del tuo programma è di circa 30-40 secondi.
Per quanto ho capito la parte fondamentale di questo tempo è occupata dal processo di ottimizzazione della ricerca di una vera traiettoria, cioè il minimo di funzionale del prezzo. È così? Se no, cosa consuma una tale quantità di tempo?
 
Vladislav, <br / translate="no"> La procedura del canale di regressione lineare è una cosa abbastanza semplice. Anche implementato su diversi t/fs + tutta l'altra logica (quella che immagino) non richiederà molto tempo.
Allo stesso tempo hai scritto che il ciclo di calcolo del tuo programma è di circa 30-40 secondi.
Per quanto ho capito la parte fondamentale di questo tempo è occupata dal processo di ottimizzazione della ricerca di una vera traiettoria, cioè il minimo di funzionale del prezzo. È così? Se non è così, perché ci vuole così tanto tempo?


Questo è esattamente ciò che l'ottimizzazione assorbe. C'è più di un canale. Inoltre ci sono passaggi iterativi e perfezionamenti. Proiezioni. Solo che è già un po' più veloce - ho aggiunto alcuni criteri per tagliare i campioni.

Buona fortuna e buone tendenze.
 
Vladislav

È da molto tempo che penso di fare l'identificazione dei livelli, ma non l'ho ancora fatto. Riporto i miei tre copechi (seguendo il principio - più facile è, meglio è). Ho usato l'indicatore MarketProfil, le linee verdi sono responsabili dei livelli di ieri, rossastri - per quelli di oggi (linee disegnate manualmente). L'algoritmo non è ancora scritto, ma l'idea è chiara dall'immagine (non so quando lo scriverò).

https://c.mql5.com/mql4/forum/2006/05/levels.gif
 
Ciao a tutti!

Un mio conoscente mi ha dato fastidio, - guarda Her-sta. E mi ha mandato lo script e un link a questa pagina.
Ho trovato molto difficile guardarlo così com'era, così ho abbozzato frettolosamente la mia versione.
Il testo è qui sotto. Il grafico si mette trascinando con il mouse e può essere spostato a piacere.
Penso che sia più conveniente vederla in questo modo. Potrebbe essere più facile creare semplicemente un indicatore, però.
Grazie a solandr per il lavoro preliminare. Un tempo, io stesso volevo approfondire
Ho sempre voluto fare un'analisi degli errori di diverse funzioni che si riferiscono alla probabilità di cambiamento di tendenza, ma non l'ho mai fatto.
Anche se io stesso sono un grande sostenitore delle estrapolazioni basate sulla trasformata di Fourier o sui metodi "veloci" di ampiezza-tempo.
metodi di ampiezza-tempo. Una linea è una linea, ma un'onda è qualcos'altro.
E cosa ha fatto VG? Interessante. Ricordate molto tempo fa quando vi ho mandato le varianti della regressione polinomiale?
Ma mi sembra di avere un soprannome diverso allora...
//------------------------
//#property show_inputs
//-----------------------
//extern int ip=800;
//extern int i0=570;
//-----------------------
double lr0,lrp;
int t0,tp;
double A[10],R[10],DDR[10];
double SA,is,aa,bb,sum2,SAo,disp_o;
double S,pMin,pMax,RM,Hrst; 
int T,i0,ip,f;
//**************************************************************
int init()
{
   t0=TimeOnDropped();
   i0=iBarShift(Symbol(),Period(),t0); 
   ip=i0+100;
   tp=Time[ip];
   T=ip-i0+1;
  
   ArrayResize(A, T);
   ArrayResize(R, T);
   ArrayResize(DDR, T);
  
   ObjectCreate("lrHerst",2,0,0,0,0,0);
   ObjectSet("lrHerst",OBJPROP_COLOR,Yellow);
} 
//**************************************************************
int start()
{
  while(IsStopped()==false)
  {
    if (f==1)
    {
      tp=ObjectGet("lrHerst",OBJPROP_TIME1);
      ip=iBarShift(Symbol(),Period(),tp);
      t0=ObjectGet("lrHerst",OBJPROP_TIME2);
      if (t0>Time[0]) t0=Time[0];
      i0=iBarShift(Symbol(),Period(),t0);
  
      T=ip-i0+1;
      ArrayResize(A, T);
      ArrayResize(R, T);
      ArrayResize(DDR, T);
    }
    
    for(int i=T-1; i>=0; i--) A[i]=Open[i+i0];

    SA=af_SA(A,T);
  
    //----------------------------LR----------------------------------------
    //----------aa-------------
    is=(T-1)/2.0;   //среднее значение по оси индекса
    aa=0;        
    sum2=0;
    
    for(i=T-1; i>=0; i--)
    {
       aa+=(i-is)*(A[i]-SA);
       sum2+=MathPow((i-is),2);
    }
    aa=aa/sum2;
    //-----------bb------------
    bb=SA-aa*is;
 
    for(i=T-1; i>=0; i--) DDR[i]=aa*i+bb; 

    lr0=DDR[0];
    lrp=DDR[T-1];
  
    //linregres_grafic_c(0,DDR,i0);
//----------------------------------------------------------------------

    //-----Расчёт ошибок линейной регрессии
    for(i=T-1; i>=0; i--) R[i]=A[i]-(aa*i+bb);

    SAo=af_SA(R,T);   //среднее значение ошибок линейной регрессии
    disp_o=af_disp_o(R,SAo,T);  // Дисперсия ошибок
    S=CKO(disp_o);
         
    pMin=Low[Lowest(NULL,0,MODE_LOW,T,i0)];
    pMax=High[Highest(NULL,0,MODE_HIGH,T,i0)];
    RM=pMax-pMin;
  
    Hrst = MathLog(RM/S)/MathLog(T*0.5);
    Comment("Хёрст = ",DoubleToStr(Hrst ,4),"\n","T = ",T);
    
    ObjectMove("lrHerst",0,tp,lrp); 
    ObjectMove("lrHerst",1,t0,lr0);
    f=1;
  
  }//---while
  //--------------------------------------------------
  return(0);
}
//***************************************************************
//функция для расчёта дисперсии ошибок
double af_disp_o(double data[], double centr, int T)
{
   double disp=0;
   for(int k=T-1; k>=0; k--) disp+=MathPow((data[k]-centr),2);
   if(T>1) disp=disp/(T-2);
   return(disp);
}
//***************************************************************
//функция для расчёта СКО
double CKO(double disp)
{
   double sko=MathPow(disp,0.5);
   return(sko);
}
//***************************************************************
//функция для подсчёта среднего арифметического значения по массиву
double af_SA(double data[],int T)
{
   double sum=0;
   for(int k=T-1; k>=0; k--) sum+=data[k];
   sum=sum/T;
   return(sum);
}
//***************************************************************
/*
//функция рисования канала линейной регрессии 
int linregres_grafic_c(int window_number, double data[], int i0b)
{
   int deletedArrows,k,size;
   string line_name;
   //очистка предыдущего рисунка
   deletedArrows=ObjectsDeleteAll(window_number,OBJ_TREND);
   
   //находим размер массива
   size=ArraySize(data);
   
   //рисуем центральную линию линейной регрессии
   for(k=size-1; k>=1; k--)
   {
      line_name="line_lin_reg"+k;
      ObjectCreate(line_name,OBJ_TREND,window_number,Time[k+i0b],data[k],Time[k+i0b-1],data[k-1]);
      ObjectSet(line_name,OBJPROP_COLOR,Yellow);
      ObjectSet(line_name,OBJPROP_STYLE,DRAW_LINE);
      ObjectSet(line_name,OBJPROP_WIDTH,2);
      ObjectSet(line_name,OBJPROP_BACK,true);
      ObjectSet(line_name,OBJPROP_RAY,false);
   }
   
   //рисуем проекцию центральной линии линейной регрессии
   line_name="line_lin_reg_proec";
   ObjectCreate(line_name,OBJ_TREND,window_number,Time[size-1+i0b],data[size-1],Time[i0b],data[0]);
   ObjectSet(line_name,OBJPROP_COLOR,Red);
   ObjectSet(line_name,OBJPROP_STYLE,DRAW_LINE);
   ObjectSet(line_name,OBJPROP_WIDTH,1);
   ObjectSet(line_name,OBJPROP_BACK,false);
   ObjectSet(line_name,OBJPROP_RAY,true);
   
   return(0);
}
*/
//***************************************************************
void deinit()
{
  ObjectDelete("lrHerst");
  Comment(" ");
}
//***************************************************************



Sinceramente - Alexander.

 
Vladislav, l'analisi che solandr ha fatto all'epoca era corretta, ma era di alta qualità.

Ma il mercato Forex non può avere altre analisi e previsioni, prima di tutto a causa della sua frattalità!
Cioè, c'è una fluttuazione costante degli intervalli di confidenza e delle probabilità di movimento in una direzione o nell'altra. E ogni prossima fluttuazione può cambiare il tipo di traiettoria dei prezzi e penso che sia abbastanza significativo. Allo stesso tempo, l'insieme di tutti gli incidenti (per esempio, le notizie) che hanno influenzato la fluttuazione attuale può portare allo sviluppo di uno o un altro scenario della traiettoria dei prezzi. Cioè, il prezzo può visitare i confini degli intervalli di confidenza, ma le traiettorie possono essere molto diverse. Non possiamo prevedere la traiettoria - il massimo che possiamo fare è solo guardare dove il prezzo è ora e cosa può fare dopo. Cioè, alcune previsioni standard come comprare qui, e poi vendere lì con uno stop qui sono di scarso effetto sul Forex. Il prezzo non raggiungerà/trasgredirà i livelli raccomandati e vagherà tra di essi diverse volte mentre il trader dovrebbe aspettare.
Infatti, come mi sembra, a giudicare dalle prime transazioni fatte nel sistema Vladislava, il mercato traccia semplicemente la probabilità di movimento in una direzione o nell'altra e prende le decisioni sulle transazioni da parte dei trader. L'unica differenza tra i trader di decisione del sistema Vladislava è che ogni trader prende una decisione sulla propria intuizione, che è tutta diversa (tutti hanno il loro canale, che secondo il parere del trader muove il prezzo ;o)). Mentre il sistema di Vladislava si basa sul teorema del limite centrale della matematica, che nell'applicazione al mercato Forex può avere la seguente interpretazione. Se consideriamo il trading di un singolo trader, che opera secondo la propria intuizione, allora secondo il teorema del limite centrale, la distribuzione del prezzo di mercato, formata dall'azione congiunta di tutti i trader, che operano secondo le proprie strategie, tenderà alla distribuzione normale. Per applicare questo al mercato, abbiamo solo bisogno di trovare, in primo luogo, i canali guardati dai commercianti, stimarli in termini di quali canali sono guardati dalla maggioranza dei commercianti, o quali canali sono ottimali secondo la stima integrale presa su tutto il campione di commercianti; o). Quindi, avendo tali canali selezionati, possiamo calcolare la probabilità di localizzazione del prezzo a varie distanze dal centro del canale, sulla base della quale possiamo fare delle ipotesi sulla probabilità di movimento del prezzo da una parte o dall'altra. Naturalmente i canali cambiano costantemente, specialmente nel trading intraday e il prezzo va avanti e indietro. E quello che era giusto 3 ore fa può avere poco o niente a che fare ORA, per ottenere un profitto. Quindi, nella migliore delle ipotesi, coloro che lo desiderano possono guardare il lavoro dell'Expert Advisor di Vladislava per avere una sorta di orientamento sulla situazione attuale. Bene, e la previsione nella forma standard ovviamente impossibile - al massimo, una specie di ragionamento qualitativo. E la vera decisione sarà presa quando la situazione si renderà necessaria. Allo stesso tempo i livelli e i tempi possono essere previsti in anticipo solo nelle gamme più ampie.

PS: A proposito, guardate la questione di come i commercianti fanno trading. Così tanti scambi in un mercato veloce. Per questo ci vuole una gran fretta per prendere qualcosa. Ecco perché anche questo forum è pieno di thread che chiedono agli sviluppatori di MT4 di premere più comodamente i pulsanti quando si aprono/chiudono gli ordini in un mercato veloce, o di aprire/chiudere velocemente gli ordini da parte di un EA quando tutta la folla sta facendo lo stesso, intasando tutte le risorse tecniche di trading (solo che di solito la folla fa la stessa cosa quando la metà è già passata e non ci sono quasi possibilità di movimenti del mercato in una direzione o nell'altra) :o))) Cioè, il movimento più forte è quando la linea centrale del canale è passata (il centro della distribuzione di probabilità del prezzo - tutta la folla è saltata su ed è entrata nel gioco) Si potrebbe pensare che la corsa in un mercato veloce possa risolvere il problema di non capire la situazione attuale del mercato.
 
Ma non ci possono essere altre analisi e previsioni per il mercato Forex, prima di tutto, a causa della sua frattalità!

solandr,
Non volevo offenderla in alcun modo. Voglio solo dire che Vladislav all'inizio della discussione della sua strategia, ha sottolineato la sua differenza dalla maggior parte degli altri. Ed è stato proprio il fatto che permette una previsione non casuale grazie alle stime quantitative delle probabilità delle diverse direzioni del movimento dei prezzi.
 
Vladislav,
Mi sembra che in questa discussione ci sia una certa incomprensione del concetto di frattalità.
Per quanto ho capito, la frattalità è un'autosimilarità di strutture casuali. Non può di per sé impedirci di fare stime quantitative. E che queste stime hanno carattere probabilistico, quindi non deriva dalla frattalità, ma dal carattere casuale del fenomeno con cui abbiamo a che fare.
Mi piacerebbe sentire la vostra opinione su questo argomento. In particolare, che senso pratico hai messo in questa affermazione:
Una volta costruito un campione di base (livelli di mezz'ora=>giornalieri) puoi raffinarlo al giusto livello di dettaglio (hai dimenticato che qui si usa un approccio frattale?).

E un'altra domanda, in relazione alla sua ultima risposta:
Questo è esattamente ciò che l'ottimizzazione assorbe. C'è più di un canale lì.

Uno dei vostri assiomi è l'esistenza di una traiettoria vera (cioè una sola), che è determinata come risultato del processo di ottimizzazione. Come può una singola traiettoria portare a più canali?
 
Rosh,
Per quanto ho capito, MarketProfil dà la risposta in frequenza della gamma. Cioè, quante volte durante un determinato periodo di tempo il prezzo ha preso un dato valore. Ho capito bene?
Se è così, capisco la disposizione delle linee rosse. Ma perché ci sono così tanti verdi?
Ho avuto l'idea di fare dei livelli di identificazione su questa base. Anche se non ho mai avuto a che fare con l'indicatore MarketProfil. È bello sapere che è una bicicletta. :-) Almeno mi ha fatto risparmiare un sacco di tempo.