Einige Anzeichen für die richtigen TCs - Seite 15

 
Nikolai Semko:

Wenn Ihr TS nicht die gesamte Historie benötigt, um zu funktionieren, habe ich schlechte Nachrichten für Sie.

Aber die Wirkung der Geschichte verblasst exponentiell je nach ihrer Tiefe. Das ist wahr.

Aus diesem Grund verwende ich eine logarithmische Darstellung der Geschichte.

D.h. wenn ich 20 Jahre Geschichte verwende, dann ist die nächste wöchentliche Geschichte 80 % so groß wie die gesamte Geschichte.


ZS Das ist eine gute Analogie zur Schwerkraft. Wussten Sie, dass die Flugbahn unseres Planeten sehr stark von der Schwerkraft der benachbarten Galaxie, dem Andromedanebel, beeinflusst wird, zu dem das Licht 2,5 Millionen Jahre unterwegs ist?

Zahlen, Zahlen, Zahlen:

Die Erde dreht sich mit ~30 km/s um die Sonne.

Die Sonne dreht sich mit ~ 230 km/s um das Zentrum unserer Galaxie.

Unsere Milchstraßengalaxie und die Galaxie Andromedanebel rasen mit ~300 km/s aufeinander zu.

ZS Die Fortsetzung... Das ist noch nicht alles

Unsere Galaxie und ihre Nachbargalaxien bewegen sich mit einer Geschwindigkeit von ca. 500 km/sec auf die Galaxie M83 zu.

Insgesamt bewegt sich unsere Galaxie mit einer Geschwindigkeit von etwa 1000 km/sec durch das Universum.

Nimmst du Drogen?

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Einige Anzeichen für gute TS

fxsaber, 2020.03.01 21:56

In Kommentaren wurde angeregt, über das Verhalten von TS nach einer Zeitumkehr nachzudenken - die Ticks laufen in umgekehrter Richtung (von der Zukunft in die Vergangenheit), als ob der Rücklauf aktiviert wäre.

Dort können Sie auch nachlesen, bei welchen Symbolen die Umkehrung keinen Einfluss auf das Ergebnis des TS hat und bei welchen es sich um eine schwerwiegende Veränderung der Marktmuster handelt.

Glücklicherweise sollten Forex-Symbole mit dieser Zeitumkehrung theoretisch keine Marktmuster zerstören. Ich fand es interessant, dies an einem meiner TS zu testen.


Zunächst der Code für die Inversion der Tick-Serien in MQL5.

int TimeDayOfWeek( const datetime Date )
{
  MqlDateTime mTime;
  
  TimeToStruct(Date, mTime);
  
  return(mTime.day_of_week);
}

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
datetime GetTimeDayOfWeek( const datetime TimeSource, const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeSource / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

void ReverseTick( MqlTick &Tick, const long &Offset )
{
  Tick.time_msc = Offset - Tick.time_msc;
  Tick.time = (datetime)(Tick.time_msc / 1000);
  
  return;
}

// Инверсирование времени.
void ReverseTicks( MqlTick &Ticks[] )
{
  const int Size = ArraySize(Ticks);
  
  if (Size)
  {
    const long Offset = (long)(GetTimeDayOfWeek(Ticks[0].time, 0, MONDAY) + GetTimeDayOfWeek(Ticks[Size - 1].time, -1, SATURDAY)) * 1000;

    for (int i = 0; i < Size; i++)
      ReverseTick(Ticks[i], Offset);

    ArrayReverse(Ticks);
  }

  return;  
}


Auf der Grundlage dieser Funktion wird das Skript, das das invertierte Symbol erzeugt, angehängt. Wir werden mit ihr arbeiten. Die Ergebnisse sind wie folgt.


Der beste Pass des Optimierers auf das gerade Symbol.


Dasselbe gilt für das invertierte Zeitzeichen.


Keine Schlussfolgerungen.


Dieses Ergebnis ist nur von theoretischem Interesse. Sie ist schwer zu interpretieren.

Es gibt ein Codesymbol, so dass jeder seinen TS auf dem umgedrehten Symbol ausprobieren kann, wenn er möchte.

 
Алексей Тарабанов:

Nimmst du Drogen?

Soweit ich sehen kann, ist es einer der essbarsten Menschen im Forum. Und Sie achten sorgfältig darauf, was Sie sagen.

 
Uladzimir Izerski:

Soweit ich das beurteilen kann, ist er einer der nervösesten Menschen im Forum. Und Sie sind vorsichtig mit dem, was Sie sagen.

Ich habe ihn gefragt, nicht Sie).

 
fxsaber:

Dieses Ergebnis ist bisher nur von theoretischem Interesse. Sie ist schwer zu interpretieren.

Der Symbolcode ist vorhanden, so dass jeder seinen TS an einem invertierten Symbol ausprobieren kann, wenn er möchte.

Die Symmetrie hat sich in ihrer ganzen Pracht gezeigt. So sollte es sein. Und ich wollte schon früher etwas beweisen. (Ich wurde ungeduldig))

 
Алексей Тарабанов:

Ich habe ihn gefragt, nicht Sie.)

Stellen Sie keine leeren und vulgären Fragen. Sie diskreditieren sich auf diese Weise nur selbst.

 
Uladzimir Izerski:

Stellen Sie keine leeren und vulgären Fragen. Sie diskreditieren sich auf diese Weise nur selbst.

Ich bin nicht am Arsch.

 
Алексей Тарабанов:

Ich bin nicht in Schwierigkeiten.

Diskret wäre richtiger.

 
Nikolai Semko:

...

Eine gute TS braucht eine geeignete Datenstruktur, Speicher- und Zugriffsbasis.

Das derzeitige System ist sehr umständlich und schwerfällig für die Erstellung eines richtigen TS.

Ich musste meine eigene entwickeln, die meiner Meinung nach viel praktischer, kompakter und wendiger ist.

Ich kann das kurz und bündig erklären.

...

Danach können Sie auch das Tick-Array löschen und aus der 30-40Mb großen Datenbank eine logarithmisch komprimierte Datenbank von bis zu 1Mb bilden. In dieser Datenbank ist ein vollständiges Bild der gesamten Symbolgeschichte ab dem aktuellen Zeitpunkt enthalten.

...

Ich bin an einer "logarithmischen Komprimierung" der Datenbank interessiert. Können Sie mir mehr darüber erzählen?

 
Vladimir:

Interesse an der "logarithmischen Komprimierung" der Datenbank. Können Sie das genauer erläutern?

Das ist nicht ganz richtig.

Die richtige Formulierung ist "Kompression aufgrund der logarithmischen Skala der Datendarstellung".

Es ist ganz einfach.

Hier sehen Sie die Struktur des Balkens in einem solchen System im Überblick:

struct iRates {
   double    open;
   double    high;
   double    low;
   double    close;
   datetime  open_time;
   datetime  high_time;
   datetime  low_time;
   datetime  close_time;
   int       volume;
};

wobei die Zeitspanne des Balkens für jeden Balken im Array unterschiedlich ist.

Es gibt zum Beispiel eine endliche Anzahl von Balken wie 28000.

Der Zeitraum des Nullbalkens beträgt z. B. 1 Sekunde.
Die Zeitspanne des 1. Balkens ist int(1.00047) = 1 Sekunde.
Die Zeitspanne des 2. Balkens ist int(1.00047^2) = 1 Sekunde.
Die Zeitspanne des dritten Balkens ist int(1.00047^3) = 1 Sekunde.
...
die Zeitspanne von 1500 bar beträgt int(1,00047^1500) = 2 Sekunden.
...
die Zeitspanne von 3000 bar beträgt int(1.00047^3000) = 4 Sekunden.
...
die Zeitspanne von 10000 Balken beträgt int(1.00047^10000) = 109 Sekunden = 1 Minute und 49 Sekunden
...
die Zeitspanne des 12000sten Balkens ist int(1.00047^12000) = 281 Sekunden = 4 min 41 sec
...
die Zeitspanne von 15000 bar wäre int(1.00047^15000) = 1150 Sekunden = 19.21 Minuten ...
...
die Zeitspanne des 17000sten Balkens wäre int(1.00047^17000) = 2945 Sekunden = 49 Minuten ...
...
die Zeitspanne des 20000sten Balkens ist int(1.00047^20000) = 12061 Sekunden = 3.35 Stunden ...
...
die Zeitspanne des 25000sten Balkens beträgt int(1.00047^25000) = 126404 Sekunden = 1,46 Tage
...
die Zeitspanne des 27999. Balkens wäre int(1.00047^27999) = 517331 Sekunden=5.99 Tage


Die Balken werden in gepackter Form mit einer durchschnittlichen Größe von etwa 20 Byte pro Balken gespeichert

Index-Arrays für den schnellen Zugriff nehmen etwa 5 % der Gesamtgröße ein

d.h. die Gesamtgröße einer solchen Datenbank wäre 28000*20*1,05 = 588 kB, ein solches Array würde 40-50 Jahre der Geschichte abdecken.