Galateo del mercato o buone maniere in un campo minato - pagina 74

 
Neutron >> :

Mi sbaglio molto più spesso di quanto si possa immaginare (quasi sempre).

Strutturalmente, i codici di Kaga e Renko sono identici. L'algoritmo contiene due operatori di confronto. L'unica differenza è in uno di essi - per Kagi il vertice è definito ad un quoziente, per Renko il vertice è definito ad un passo di partizione H.

E se siete stati in grado di infilare l'algoritmo Renko in tre righe, allora di conseguenza Kagi soddisferà automaticamente (per la correttezza della mia affermazione) questa condizione.

Guardate bene, ho un'indicizzazione indipendente per il cotier, e per la costruzione di Kagi. Non solo emetto dalla subroutine le coordinate verticali dei conteggi Kagi, ma anche i loro indici nelle coordinate kotir...

OK, ecco un piccolo script con un algoritmo Renko. Potresti scriverlo in 3 righe, ma sono comunque 15 operatori. Inclusa l'assegnazione, la ramificazione, ecc. Meno l'output dei risultati in un file.

//+------------------------------------------------------------------+
//|                                              test_Renko_Kagi.mq4 |
//|                                Copyright © 2009, HideYourRichess |
//+------------------------------------------------------------------+
int      rand[];
int      Series = 65000;
int      H = 7;

int start()
  {
   int csvHandle = FileOpen( "test_Renko_Kagi" + ".csv", FILE_CSV| FILE_WRITE, ';');
   if( csvHandle > 0) {
    ArrayResize( rand, Series);
    
    rand[0] = 0;
    MathSrand( TimeLocal());
    for( int i = 1; i < Series; i++) { rand[ i] = rand[ i-1] + (MathRand() - 16383) / 4000; }
    
    int renko = rand[0];
    FileWrite( csvHandle, 0, rand[0], renko);
    
    for( i = 1; i < Series; i++) {
     if( MathAbs( rand[ i] - renko) < H) {
      FileWrite( csvHandle, i, rand[ i]);
     } else {
      while( rand[ i] - renko >= H) { renko = renko + H; }
      while( renko - rand[ i] >= H) { renko = renko - H; }
      FileWrite( csvHandle, i, rand[ i], renko);
     }
    }
    
   }
   if( csvHandle > 0) FileClose( csvHandle);
   return(0);
  }

L'algoritmo può funzionare correttamente su dati con lacune, vuoti, ecc. E questo è buono e utile.


Ecco la cifra. Il blu sono i dati, il rosso è il renko.


Lo svantaggio dell'algoritmo, - espone punti intermedi, in aree dove c'è un aumento o una caduta monotona. Il che non è molto vero, perché per ottenere i valori di H-volatilità dovremo eseguire un'ulteriore elaborazione ("rimuovere" i punti intermedi), il che significa che in realtà ci sono più operazioni di quanto sembri.


Per kaga, l'algoritmo è più complicato, sia nella logica che nel numero di operatori.


Ora le domande sono,

1. Cosa si dovrebbe fare con questo algoritmo renko per renderlo più breve?

2. Cosa si dovrebbe fare per rendere questo algoritmo di Renco più cauto senza renderlo più complesso?


Non vedo ancora nessuna soluzione ragionevole, ma tu dici che è semplice e possibile.

 

Qui, sembra aver funzionato kagi. Sarei felice di far controllare a qualcuno.



 
HideYourRichess писал(а) >>

Per Kaga, l'algoritmo è più complesso, sia nella logica che nel numero di operatori.

Se prendiamo come base l'algoritmo descritto nel lavoro di Pastukhov, la differenza tra Renko e Kaga è esattamente nel passo di discretizzazione del vertice lungo l'asse verticale. Questo è ciò di cui sto parlando sopra.

Quindi io e lei non siamo d'accordo nella nostra comprensione a livello dell'algoritmo. Ovviamente, dobbiamo affrontare prima questo problema.

paralocus ha scritto >>.

Qui, sembra aver funzionato kagi. Sarei felice di far controllare a qualcuno.

Paralocus, mandaci il file cotier e il programma, poi possiamo confrontare. Oppure spiega quali sono i tuoi parametri P e m.
 
Ho allegato l'elenco e i preventivi. Il parametro P è una serie di Open(in questo caso i minuti di GBPUSD - disponibili nell'archivio) Il parametro m è il numero di suddivisioni elementari di base s in un passo kagi
File:
kagi.rar  163 kb
 
Neutron >> :

Se prendiamo come base l'algoritmo di costruzione descritto nel lavoro di Pastukhov, la differenza tra Renko e Kaga è esattamente nel passo di discretizzazione del vertice lungo l'asse verticale. Questo è quello di cui parlavo sopra.

Quindi io e lei non siamo d'accordo nella nostra comprensione a livello dell'algoritmo. Ovviamente, dobbiamo affrontare prima questo problema.


Ho l'impressione che tu non abbia un tale algoritmo, cioè l'algoritmo Kagi non è più complesso dell'algoritmo Renko.


Affrontiamo prima questo e poi la mia comprensione.


Un altro punto, il problema è l'elaborazione dell'inizio della riga. Ecco il tuo disegno per esempio.




Secondo me, l'inizio non è molto chiaro. Perché hai deciso di farlo in questo modo? Dal punto di vista della corrispondenza tra algoritmo di trading e algoritmo di partizione, è auspicabile che il primo punto coincida con il primo vertice.


Inoltre, la questione della corretta gestione dei "vuoti" nei dati rimane aperta.

 
paralocus >> :

Qui sembra aver funzionato kagi. Sarei felice di far controllare a qualcuno.

Non è un kagi. I vertici locali sono saltati.

 
HideYourRichess >> :

Questi non sono kagi. I nodi locali sono saltati.

Puoi essere un po' più specifico? Secondo l'algoritmo di partizionamento Kaga, i vertici locali saranno talvolta saltati.

 
paralocus >> :

Puoi essere un po' più specifico? Con l'algoritmo di suddivisione di Kaga, i nodi locali saranno talvolta mancati.

No, può saltare a Renko, mai a Kagi. Sul grafico dei neutroni, questi sono i punti rossi e blu. È solo che il tuo aglorio kagi non è corretto. Ho già dato l'algoritmo corretto (abbastanza corretto, c'è un piccolo problema con l'inizio della riga) da Candid. Algoritmo indicato nella dissertazione di Pastukhov, lo stesso, purtroppo, non è del tutto corretto nel trattamento dell'inizio delle file.


Ho bisogno che sia così.


Quelle rosse sono le cime dei cagi, o cime a zig zag. Verde, punti di "non ritorno" - il luogo dove si determina che il prossimo vertice della gabbia è completamente formato. I punti blu scuro sono i dati.

 
HideYourRichess >> :

Anche l'algoritmo dato nella dissertazione di Pastukhov, purtroppo, non è del tutto corretto, nel trattamento dell'inizio di una riga.



Purtroppo la dissertazione di Pastukhov supera di gran lunga il livello della mia capacità di comprendere la matematica.

 
paralocus >> :

Purtroppo la dissertazione di Pastukhov supera di gran lunga il livello della mia capacità di comprendere la matematica.

Beh, allora dimenticalo. Diverse cose sono dimostrate matematicamente lì, ed è di interesse per i matematici. E le conclusioni sono piuttosto semplici, e per lo più descritte a parole. Essenzialmente, la H-volatilità è una statistica non parametrica. La conclusione principale è che se la volatilità H è uguale a 2H allora l'arbitraggio su una tale serie è impossibile (dimostrato matematicamente). Altrimenti, l'arbitraggio è possibile. Ci sono due strategie, a seconda che la volatilità H sia maggiore o minore di 2H. Queste sono le basi. Più alcune osservazioni sui mecenati ecc.