Diskussion zum Artikel "Den Gewinn bis zum letzten Pip extrahieren" - Seite 18

 
fxsaber:

Wenn niedrige Mattenerwartungen das Ergebnis zerstören.

Meiner Meinung nach ist die MOE-Schätzung nicht ausreichend, um die TK in der Zukunft zu bewerten.

Hier ist die ZigZag MOE mit einem Blick in die Geschichte, die MOE ist viel niedriger https://www.mql5.com/ru/forum/221552/page1630#comment_13582832.

als in dem Artikel, Sie haben einen MO von 6,17.

Ich brauche eine Art komplexen Indikator, wie z.B. den Mismatch-Fehler zwischen dem Bilanzdiagramm des Testers und dem Handelsbilanzdiagramm, aber ich weiß noch nicht, wo ich solches Material lesen kann.

 
multiplicator:

Schreiben Sie eine Fortsetzung. Zu diesen Punkten.

Ich habe versucht, diesen Artikel in einfacher Sprache zu schreiben. Es scheint, dass er von den Lesern (vor allem in anderen Sprachen) nicht verstanden wurde. Und unerwartet stellte sich am Ende heraus, dass ich froh über diesen Umstand bin. Also, ich denke, genug ist genug.

 
Igor Makanu:

Ich brauche einen komplexen Indikator, wie z.B. den Fehler der Diskrepanz zwischen der Bilanzkurve des Testers und der Bilanzkurve des Handels, aber ich weiß nicht, wo ich solches Material lesen kann

Er ist fast Null. Die Synchronisierung funktioniert sehr gut. Es ist nur die Kommission, die ihn auffrisst.

 
fxsaber:

Es ist fast Null. Das Synchronisationsgerät funktioniert sehr gut. Er frisst nur die Provision.

MO ist MO, imho eine der wertlosesten Bewertungen überhaupt.... Nun, das ist meine Meinung :)

Haben Sie meinen Bericht über ZZ gesehen? Achten Sie auf den Artikel https://www.mql5.com/de/articles/1492 und auf den Z-Score.

Mein Z-Score: Z-Score: -17.44 (99.74%).

Ihr Z-Score: -3.52.

Laut dem Artikel "MATHEMATICS IN TRADING" haben Sie gute Daten zum Z-Account und MO ist positiv und höher als ZZ, aber ZZ hat einen niedrigeren MO und einen 5-mal höheren Z-Account (Streuung im Test des Terminals, das ich habe).


hier bin ich auf der Suche nach Antworten auf meine Fragen - wie die TS richtig zu bewerten, aber wie ich oben schrieb - MO ist nicht die Bewertung der TS überhaupt, wenn ich mich nicht irre, der Tester Grails auf Ticks von MT4 haben negative MO? - Ich habe schon lange nicht mehr nachgesehen, ich muss in KB nachsehen

 
Igor Makanu:

MO ist MO, imho eine der wertlosesten Bewertungen..... Nun, das ist meine Meinung).

MO spricht also nur darüber, wie schwer es sein wird, wenn man Kosten (Provisionen, Schlupf, etc.) zu zahlen hat.

Haben Sie meinen ZZ-Bericht gesehen? Sehen Sie sich den Artikel https://www.mql5.com/de/articles/1492 und die Z-Konto-Bewertung an.

Das habe ich getan. Da es sich um einen Blick in die Zukunft handelt, habe ich nicht ganz verstanden, was ich sehen musste.

Mein Z-Score: Z-Score: -17.44 (99.74%).

Ihr Z-Score: -3,52.

Laut dem Artikel "MATHEMATICS IN TRADING" haben Sie gute Daten zum Z-Account und MO ist positiv und höher als ZZ, aber ZZ hat einen niedrigeren MO und einen 5-mal höheren Z-Account (Streuung im Test auf dem Terminal, den ich habe).

Ich bin nicht ganz sicher, warum es notwendig ist, mit ZZ-TS zu vergleichen. Wenn man reinschaut, hätte es gar keinen Nachteil geben dürfen. Ich erinnere mich nicht mehr genau, ich glaube, die MO sollte doppelt so hoch sein wie das Min-Knie der ZZ.

Ich habe noch nie von einer Z-Zahl gehört. Ich habe die Definition gelesen. Ich muss mir die Reihe der Trades selbst ansehen.

Ich suche nach Antworten auf meine Fragen - wie man einen TS richtig bewertet, aber wie ich oben schrieb - MO ist überhaupt keine TS-Bewertung, wenn ich mich nicht irre, haben Tester Grails auf Ticks von MT4 negative MO? - Ich habe schon lange nicht mehr nachgesehen, ich muss in KB nachsehen

MO ist der durchschnittliche Gewinn einer geschlossenen Position. Keineswegs ein Optimierungskriterium oder dergleichen. Nur eine Information.


ZY Für Genetics habe ich so etwas verwendet

sinput int inMinTrades = 0; // Mindestanzahl von Geschäften (Positionen).

double OnTester()
{      
  return((TesterStatistics(STAT_TRADES) > inMinTrades) ? TesterStatistics(STAT_PROFIT) : 0);
}

erlaubt es, eine Menge Müll herauszufiltern und GA auf mehr oder weniger interessante Extreme zu lenken.

 
fxsaber:

Ich bin mir nicht ganz sicher, warum Sie es mit dem ZZTS vergleichen müssen. Es sollte überhaupt kein Minus geben, wenn man hineinschaut. Ich weiß es nicht mehr genau, ich glaube, der MO sollte doppelt so hoch sein wie das minimale Knie des ZZ.

Gewinnbringende Trades (% von allen): 12217 (99,96%) Verlusttrades (% von allen): 5 (0.04%)

hier gibt es keine Verluste, nur Verlust beim Schließen - ich war zu faul, es zu tun.

fxsaber:

Ich habe noch nie von einem Z-Konto gehört. Ich habe die Definition gelesen. Ich muss mir die Handelsreihen selbst ansehen.

Die Formel ist in dem Artikel beschrieben, so dass ich denke, dass es sich lohnen könnte, dieses Z-Konto online zu berechnen, aber dann muss ich die Statistiken des Testers berücksichtigen, um zu sehen, wie sich das Z-Konto weiter verhält

 

fxsaber:


Dies ist ein Bild des TC-Ergebnisses, das für das rot markierte Intervall optimiert wurde. Ich kann nicht genau wiedergeben, wie es damals war. Aber ich erinnere mich, dass das Bild links vom Optimierungsintervall viel angenehmer war - eine gerade Linie. Fast ein Gral, der auf den realen gelegt wurde und genau das gleiche wie im Tester verdiente. Als nach dem Jahreswechsel der systematische Abfluss begann, hatte ich genug Verstand oder Erfahrung, um den Handel abzuschalten. Der Verlust betrug etwa 10 % dessen, was man vorher verdient hatte. Was die Ursache für die Verschrottung war, ist unklar.

Wichtig an dieser Geschichte ist, dass auch Graalität zu Abflüssen führt.


Vielleicht hat der Anbieter den Spread ausgeweitet? Sie können die Tick-Historie für diesen Zeitraum herunterladen und die durchschnittliche Spread-Größe vor dem Jahreswechsel und nach dem Jahreswechsel sehen.
 
fxsaber:

Ich habe noch nie von einem Z-Konto gehört. Ich habe die Definition gelesen. Ich muss mir die Reihe der Abschlüsse selbst ansehen.

Visualisierer

string ZToString( const double Commission = 0, const int Length = 80 )
{
  const int Size = OrdersHistoryTotal();
  string Str = NULL;
  
  StringReserve(Str, Size + Size / Length);
  
  for (int i = 0, Count = 0; i < Size; i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
    {
      Str += (OrderProfit() + Commission> 0) ? "+" : "-";
      
      if (++Count >= Length)
      {
        Str += "\n";
        
        Count = 0;
      }
    }
    
  return(Str);
}


Für diesen Handel (die obere Linie ist ohne Provision, die blaue Linie ist mit Provision).



Z-Konto ist 0,76 (55,27%) - keine Provision. Und so sieht es aus


Offensichtlich gibt es eine Abhängigkeit des Z-Kontos von der Provision. Ich würde sie bei der Analyse nicht berücksichtigen. Ich habe mich nicht mit dem Thema der Analyse von Geschäften beschäftigt.

 
fxsaber:

Visualisierung

wie man ihn benutzt? - Ich brauche es wirklich!

fxsaber:

Z-Konto ist 0,76 (55,27%) - keine Provision. Und es sieht wie folgt aus

Nun, ich denke, Sie haben meine Vermutung bestätigt, dass es nicht um niedrige MO geht, sondern eher um eine niedrige Korrelation zwischen den Trades, d.h. Einstieg+Ausstieg aus einem Trade hängt wenig vom vorherigen und nächsten Paar von Input+Output ab. D.h. Ihr TS hat höchstwahrscheinlich experimentell eine zufällige Korrelation mit dem Kurschart gefunden (GA des Testers) und diese Korrelation hielt einige Zeit lang an.

Das sind meine Gedanken, und wenn sie richtig sind, dann sollten wir solche TS öfter neu optimieren, und TS mit höherer Korrelation zwischen Gewinn-/Verlustreihen sollten weniger oft neu optimiert werden..... aber es scheint, dass man hier auch die Änderungen im Z-Konto überwachen muss.


ZY: Ich würde gerne den vollständigen Bericht des Testers aus dem Artikel sehen, Trades sind nicht interessant, der Hut ist interessant, ich würde ihn gerne mit ZZ vergleichen, wenn es Ihnen nichts ausmacht, teilen Sie ihn bitte.

 
multiplicator:

Vielleicht hat der Anbieter den Spread ausgeweitet? Sie können die Tick-Historie für diesen Zeitraum herunterladen und die durchschnittliche Spread-Größe vor und nach dem Jahreswechsel sehen.

Hier ist der zeitgewichtete durchschnittliche Spread pro Woche (in Pips).

2018.06.04 00:05:09   33.21
2018.06.11 00:05:11   41.86
2018.06.18 00:05:01   36.99
2018.06.25 00:05:19   45.40
2018.07.02 00:05:20   41.26
2018.07.09 00:05:21   39.09
2018.07.16 00:05:14   40.79
2018.07.23 00:05:19   36.06
2018.07.30 00:05:04   33.86
2018.08.06 00:05:17   33.03
2018.08.13 00:05:04   37.92
2018.08.20 00:06:08   40.94
2018.08.27 00:05:04   39.02
2018.09.03 00:05:13   37.99
2018.09.10 00:05:11   40.37
2018.09.17 00:05:16   42.10
2018.09.24 00:05:12   38.52
2018.10.01 00:05:13   32.12
2018.10.08 00:05:12   30.94
2018.10.15 00:05:16   35.96
2018.10.22 00:05:18   32.76
2018.10.29 00:05:02   36.59
2018.11.05 00:05:14   30.08
2018.11.12 00:05:09   30.41
2018.11.19 00:05:14   30.16
2018.11.26 00:05:32   34.95
2018.12.03 00:05:07   26.41
2018.12.10 00:05:15   25.50
2018.12.17 00:05:15   28.62
2018.12.24 00:05:13   33.06
2018.12.31 00:05:09   78.09
2019.01.07 00:05:11   49.78
2019.01.14 00:05:03   33.54
2019.01.21 00:05:20   43.68
2019.01.28 00:05:07   45.67
2019.02.04 00:05:12   44.24
2019.02.11 00:05:10   40.00
2019.02.18 00:05:20   40.66
2019.02.25 00:05:20   46.09
2019.03.04 00:05:15   41.78
2019.03.11 00:05:10   43.28
2019.03.18 00:05:03   44.42
2019.03.25 00:09:06   47.47
2019.04.01 00:05:12   44.14
2019.04.08 00:05:12   47.25
2019.04.15 00:05:09   45.61
2019.04.22 00:05:13   56.57
2019.04.29 00:05:19   48.09
2019.05.06 00:28:42   49.82
2019.05.13 00:05:13   58.00
2019.05.20 00:05:13   58.75
2019.05.27 00:05:12   60.43

Zeichnen Sie ihn in Excel auf. Dem Auge nach zu urteilen, scheint er sich vergrößert zu haben. Das scheint auch der Grund zu sein.


// Zeitgewichteter durchschnittlicher Spread (in Pips) für jede Woche. Wird im Tester mit echten Ticks ausgeführt.
#define  MACROS(A, B)               \
  int Time##A( const datetime dt ) \
  {                                \
    MqlDateTime mdts;              \
                                   \
    TimeToStruct(dt, mdts);        \
                                   \
    return(mdts.B);                \
  }                                \
                                   \
  int A() { return(Time##A(TimeCurrent())); }

  MACROS(Day, day)
  MACROS(Month, mon)
  MACROS(Year, year)
  MACROS(DayOfYear, day_of_year)
  MACROS(DayOfWeek, day_of_week)
#undef  MACROS

void OnTick()
{
  static double SumSpread = 0;
  static long SumInterval = 0;  
  
  static MqlTick PrevTick = {0};
  static int PrevDay = 0;  
    
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick) && (Tick.time - PrevTick.time) < 60)
  {
    const long Interval = Tick.time_msc - PrevTick.time_msc;
    
    SumSpread += (PrevTick.ask - PrevTick.bid) * Interval / _Point;
    SumInterval += Interval;    
  }

  const int Day = DayOfWeek();
  
  if (Day < PrevDay)
  {    
    if (SumInterval)
      Print(DoubleToString(SumSpread / SumInterval, 2));
      
    SumSpread = 0;
    SumInterval = 0;        
  }
  
  PrevTick = Tick;  
  PrevDay = Day;
}