Marktknigge oder gute Manieren im Minenfeld - Seite 74

 
Neutron >> :

Ich liege viel öfter falsch, als Sie vielleicht denken (fast immer).

Strukturell sind die Codes für Kaga und Renko identisch. Der Algorithmus enthält zwei Vergleichsoperatoren. Der einzige Unterschied besteht in einem von ihnen - bei Kagi ist der Scheitelpunkt durch einen Quotienten definiert, bei Renko ist der Scheitelpunkt durch einen Partitionsschritt H definiert.

Und wenn Sie den Renko-Algorithmus in drei Zeilen unterbringen konnten, dann wird Kagi diese Bedingung automatisch erfüllen (wenn ich ehrlich bin).

Schauen Sie genau hin, ich habe unabhängige Indizierung für cotier, und für Kagi-Gebäude. Ich gebe aus dem Unterprogramm nicht nur die vertikalen Koordinaten der Kagi-Zählungen aus, sondern auch ihre Indizes in den Kotierkoordinaten...

OK, hier ist ein kleines Skript, mit einem Renko-Algorithmus. Sie können es in 3 Zeilen schreiben, aber es sind immer noch 15 Operatoren. Einschließlich Zuweisung, Verzweigung, usw. Abzüglich der Ausgabe der Ergebnisse in eine Datei.

//+------------------------------------------------------------------+
//|                                              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);
  }

Der Algorithmus kann bei Daten mit Lücken, Lücken usw. korrekt funktionieren. Und das ist gut und nützlich.


Hier ist die Zahl. Das Blaue sind die Daten, das Rote ist der Renko.


Der Nachteil des Algorithmus ist, dass er an Abschnitten, an denen es einen monotonen Anstieg oder Abfall gibt, Zwischenpunkte setzt. Das ist nicht ganz richtig, denn um die Werte der H-Volatilität zu erhalten, müssen wir eine zusätzliche Verarbeitung durchführen ("Entfernen" der Zwischenpunkte), was bedeutet, dass es mehr Operationen gibt, als es scheint.


Für kaga ist der Algorithmus komplizierter, sowohl in der Logik als auch in der Anzahl der Operatoren.


Die Fragen lauten nun,

1) Was sollte mit diesem Renko-Algorithmus gemacht werden, damit er kürzer wird?

2) Was sollte getan werden, um den Renco-Algorithmus zu verschlüsseln, ohne ihn komplexer zu machen?


Ich sehe noch keine vernünftigen Lösungen, aber Sie sagen, es sei einfach und möglich.

 

Hier scheint es mit Kagi geklappt zu haben. Ich würde mich freuen, wenn jemand das überprüfen könnte.



 
HideYourRichess писал(а) >>

Bei Kaga ist der Algorithmus komplexer, sowohl in der Logik als auch in der Anzahl der Operatoren.

Wenn wir den in Pastuchows Arbeit beschriebenen Algorithmus als Grundlage nehmen, liegt der Unterschied zwischen Renko und Kaga genau in dem Schritt der Diskretisierung des Scheitelpunkts entlang der vertikalen Achse. Das ist es, worüber ich oben gesprochen habe.

Sie und ich haben also keine Übereinstimmung in unserem Verständnis auf der Ebene des Algorithmus. Natürlich müssen wir uns zuerst mit diesem Thema befassen.

paralocus schrieb >>

Hier scheint es mit Kagi geklappt zu haben. Ich würde mich freuen, wenn jemand das überprüfen könnte.

Paralocus, senden Sie uns die Cotier-Datei und das Programm, dann können wir vergleichen. Oder erklären Sie, was Ihre P- und m-Parameter sind.
 
Ich habe die Liste und die Kostenvoranschläge beigefügt. Parameter P ist eine Serie von Open(in diesem Fall GBPUSD-Minuten - im Archiv verfügbar) Parameter m ist die Anzahl der elementaren Basissplits s in einem Kagi-Schritt
Dateien:
kagi.rar  163 kb
 
Neutron >> :

Wenn wir den in Pastuchows Arbeit beschriebenen Konstruktionsalgorithmus als Grundlage nehmen, liegt der Unterschied zwischen Renko und Kaga genau in dem Schritt der Diskretisierung des Scheitelpunkts entlang der vertikalen Achse. Das ist es, worüber ich oben gesprochen habe.

Sie und ich haben also keine Übereinstimmung in unserem Verständnis auf der Ebene des Algorithmus. Natürlich müssen wir uns zuerst mit diesem Thema befassen.


Ich habe den Eindruck, dass Sie einen solchen Algorithmus nicht haben, denn der Kagi-Algorithmus ist nicht komplexer als der Renko-Algorithmus.


Lassen Sie uns zuerst darauf eingehen und dann auf mein Verständnis.


Ein weiterer Punkt ist die Verarbeitung des Zeilenanfangs. Hier ist zum Beispiel Ihre Zeichnung.




Meiner Meinung nach ist der Anfang nicht ganz klar. Warum haben Sie sich dafür entschieden, es so zu machen? Aus der Sicht der Korrespondenz von Handelsalgorithmus und Partitionsalgorithmus ist es wünschenswert, dass der erste Punkt mit dem ersten Scheitelpunkt übereinstimmt.


Darüber hinaus bleibt die Frage der korrekten Behandlung von "Lücken" in den Daten offen.

 
paralocus >> :

Hier scheint es mit Kagi geklappt zu haben. Ich würde mich freuen, wenn jemand das überprüfen könnte.

Es ist kein Kagi. Die lokalen Scheitelpunkte werden übersprungen.

 
HideYourRichess >> :

Das sind keine Kagi. Die lokalen Knoten werden übersprungen.

Können Sie etwas genauer werden? Nach dem Kaga-Partitionierungsalgorithmus werden manchmal lokale Knotenpunkte übersprungen.

 
paralocus >> :

Können Sie etwas genauer sein? Durch den Algorithmus des Kaga-Splittings werden lokale Knoten manchmal übersehen.

Nein, es kann bei Renko überspringen, niemals bei Kagi. In der Neutronenkurve sind dies die roten und blauen Punkte. Es ist nur so, dass Ihr Kagi Aglorythmus nicht korrekt ist. Ich habe bereits den richtigen Algorithmus (ganz korrekt, es gibt ein kleines Problem mit dem Anfang der Zeile) von Candid angegeben. Der in Pastukhovs Dissertation angegebene Algorithmus ist leider nicht ganz korrekt bei der Verarbeitung der Zeilenanfänge.


So muss es sein.


Die roten sind die Cagi-Spitzen, oder Zickzack-Spitzen. Grün, "no-return"-Punkte - die Stelle, an der festgestellt wird, dass der nächste Scheitelpunkt des Käfigs vollständig ausgebildet ist. Die dunkelblauen Punkte sind die Daten.

 
HideYourRichess >> :

Auch der in der Dissertation von Pastuchow angegebene Algorithmus ist leider nicht ganz korrekt, was die Verarbeitung des Zeilenanfangs angeht.



Leider übersteigt Pastukhovs Dissertation bei weitem das Niveau meiner mathematischen Fähigkeiten.

 
paralocus >> :

Leider übersteigt Pastukhovs Dissertation bei weitem das Niveau meiner mathematischen Fähigkeiten.

Nun, dann vergessen Sie es. Dort werden mehrere Dinge mathematisch bewiesen, und das ist für Mathematiker von Interesse. Und die Schlussfolgerungen sind ziemlich einfach und meist in Worten beschrieben. Im Wesentlichen ist die H-Volatilität eine nicht-parametrische Statistik. Die wichtigste Schlussfolgerung ist, dass, wenn die H-Volatilität gleich 2H ist, Arbitrage bei einer solchen Serie unmöglich ist (mathematisch bewiesen). Andernfalls ist Arbitrage möglich. Es gibt zwei Strategien, je nachdem, ob die H-Volatilität größer oder kleiner als 2H ist. Dies sind die Grundlagen. Außerdem einige Bemerkungen über Gönner usw.