Bibliotheken: BestInterval - Seite 22

 
fxsaber:

Es wird richtig funktionieren, wenn Sie MT4Orders vor BestInterval kodieren lassen.

Die Bibliothek betrifft nur Handelsoperationen und deren Verlauf. Außerdem kann sie parallel mit SB und anderen arbeiten.

Die Indikatoren beeinflussen sie also in keiner Weise.

Ich sehe, danke, ich werde es versuchen.
 
fxsaber:

BestInterval auf Netting nur in einem bestimmten Fall (für mich gemacht) nimmt die Handelsgeschichte richtig.

Was ist dieser Fall, wenn es nicht ein Geheimnis ist? Vielleicht kann ich etwas ähnliches ohne Schamanismus verwenden.

 
traveller00:

Was ist der Fall, wenn es nicht ein Geheimnis ist? Vielleicht kann ich etwas Ähnliches ohne Schamanismus verwenden.

Ein formwandelnder TC.

 
fxsaber:

Das kann ich nicht beantworten. Ich weiß es noch nicht.

Zu sagen, dass ich zufrieden bin, ist eindeutig eine Untertreibung..... BestInterval ist jetzt großartig. Und die Änderungen sind minimal. Wie immer, ein Beispiel.


Hier ist ein 24-Stunden-Durchlauf.


Wir wenden das klassische BestInterval an.

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 10721.00 = 8018.00 + 2703.00 (33.71%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 13:00 - 08:00, CountHours = 18
00:00:00 - 08:03:48 : Profit = 3278.00 (30.58%), Total = 161 (79.50%), PF = 2.21, Mean = 20.36, DD = 518.00, RF = 6.33
13:07:59 - 23:59:59 : Profit = 7443.00 (69.42%), Total = 389 (74.55%), PF = 2.14, Mean = 19.13, DD = 417.00, RF = 17.85
SUMMARY: 00:00:00 - 23:59:59 : Profit = 10721.00 (100.00%), Total = 550 (76.00%), PF = 2.16, Mean = 19.49, DD = 536.00, RF = 20.00

Wir sehen, dass der Gewinn um ein Drittel gestiegen ist, und andere Indikatoren sind besser geworden.


Aber wir wollten Flexibilität. Und hier ist sie.

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 4868.00 = 8018.00 + -3150.00 (-39.29%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 20:00 - 01:00, CountHours = 4
00:00:00 - 01:31:54 : Profit = 1067.00 (21.92%), Total = 32 (87.50%), PF = 4.63, Mean = 33.34, DD = 177.00, RF = 6.03
19:29:54 - 23:59:59 : Profit = 3801.00 (78.08%), Total = 118 (83.90%), PF = 5.53, Mean = 32.21, DD = 249.00, RF = 15.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4868.00 (100.00%), Total = 150 (84.67%), PF = 5.29, Mean = 32.45, DD = 310.00, RF = 15.70


Der Gewinn ist nicht gestiegen, er ist gesunken! Aber sehen Sie sich die anderen Indikatoren an. Anstatt das Intervall mit dem höchsten Gewinn und der höchsten Anpassungswahrscheinlichkeit zu finden, wurde ein viel engeres Intervall gefunden, das aber viel besser ist als das klassische.


Die Neuerung wird wie folgt hinzugefügt

#define  BESTINTERVAL_SLIPPAGE // Erstellen eines künstlichen Filters zur Berechnung von BestInterval.


Die Qualität der Marktmusterforschung ist nun sehr viel besser. Erhebliche Auswirkungen auf die Arbeit mit mehreren Testern.

[Gelöscht]  
150 Berufe sind also sehr viel wahrscheinlicher, oder?
 
trader_number_one:
150 Abschlüsse sind also viel wahrscheinlicher, oder?

DieAnzahl der Abschlüsse hängt von der Länge des Intervalls ab.

 

Manchmal geht das Löschen von Intervallen schief. Nämlich

const double Profit = dDeals[i].Profit + SlipPerLot * dDeals[i].Lots;

ergibt NaN, weil dDeals[i].Lots bei i=0 gleich NaN ist.

Es scheint, dass die Beine aus der Funktion int Set( const DEAL &dDeals[] ) wachsen, wo das Feld Lots nicht gefüllt wird, wenn Amount=0 ist. Oder ist es korrekter zu sagen, dass Lots in void ToNull( void ) nicht ausgefüllt wird?

Auf jeden Fall ist der Fehler sehr unangenehm, tritt selten auf und ist nicht leicht zu beheben.

 
traveller00:

Aber in jedem Fall ist der Fehler sehr unangenehm, tritt selten auf und ist nicht leicht zu beheben.

Ja, ich habe es gleich gepostet, ohne es richtig zu überprüfen. Ich werde es überprüfen, danke.

 
Ich habe die Funktion int Set( const DEAL &dDeals[] ) korrigiert , indem ich Lots mit Null gefüllt habe . Wenn ich es falsch gemacht oder etwas anderes übersehen habe, schreiben Sie mir bitte zurück. Danke!
 
traveller00:
Ich habe die Funktion int Set( const DEAL &dDeals[] ) korrigiert , indem ich Lots mit Null gefüllt habe . Wenn ich es falsch gemacht oder etwas anderes übersehen habe, schreiben Sie mir bitte zurück. Danke!

Bis jetzt habe ich nur dies getan

        const double Profit = dDeals[i].Profit ? dDeals[i].Profit + SlipPerLot * dDeals[i].Lots : 0;

Der Rest muss für Lots nicht korrigiert werden. Aber es gibt Fehler im Zusammenhang mit einer anderen (alten). Müssen korrigiert werden.