Diskussion zum Artikel "Fortschrittliches Resampling und Auswahl von CatBoost-Modellen durch die Brute-Force-Methode" - Seite 15

 

Hallo!

vielen Dank für den Artikel. Ich habe es versucht, aber irgendwie bekomme ich nicht die schöne Equity-Kurve (auch für den Trainingszeitraum) in MT5 Backtest, wie es in Python (siehe unten) angezeigt wird. Wenn ich Backtest mit Ihrem EURUSD EA aus Ihrem Artikel funktioniert es. Was kann ich den Fehler zu lösen?


 
konorti:

Hallo,

vielen Dank für den Artikel. Ich habe es versucht, aber irgendwie bekomme ich nicht die schöne Equity-Kurve (auch für den Trainingszeitraum) in MT5 Backtest, wie es in Python (siehe unten) angezeigt wird. Wenn ich Backtest mit Ihrem EURUSD EA aus Ihrem Artikel funktioniert es. Was kann ich den Fehler zu lösen?

Hallo, vielleicht ein Problem mit MARKUP für den benutzerdefinierten Tester für usdjpy, so dass die Ergebnisse unterschiedlich sind

 

Hinzufügen einer neuen Methode zur Suche nach Extrema (Chart Markup), wie ein Zickzack-Muster

from scipy.signal import argrelextrema

def add_peaks(dataset, order, plot=False):
    ilocs_min = argrelextrema(dataset.close.values,
                              np.less_equal, order=order)[0]
    ilocs_max = argrelextrema(dataset.close.values,
                              np.greater_equal, order=order)[0]
    dataset['low_lbl'] = False
    dataset['high_lbl'] = False
    dataset.loc[dataset.iloc[ilocs_min].index, 'low_lbl'] = True
    dataset.loc[dataset.iloc[ilocs_max].index, 'high_lbl'] = True

    if(plot):
        dataset.close.plot(figsize=(15, 5), alpha=.3)
        dataset[dataset['high_lbl']].close.plot(
            style='.', lw=10, color='red', marker="v")
        dataset[dataset['low_lbl']].close.plot(
            style='.', lw=10, color='green', marker="^")
        plt.show()

    conditions = [
        (dataset['low_lbl'] == False) & (dataset['high_lbl'] == False),
        dataset['low_lbl'] == True,
        dataset['high_lbl'] == True
    ]
    choices = [np.nan, 0, 1]
    dataset['labels'] = np.select(conditions, choices)
    dataset = dataset.drop(['low_lbl', 'high_lbl'], axis = 1)
    dataset = dataset.fillna(method='ffill')
    return dataset.dropna()

pr = add_peaks(pr, 15, plot=True)

Durch das Spielen mit dem Parameter können Sie die Häufigkeit der Trades einstellen. Tests haben gezeigt, dass die Markierung nach Extrema nicht die beste Idee ist. Der Ansatz aus dem Artikel funktioniert besser.

 
Maxim Dmitrievsky:

Hallo, vielleicht Problem mit MARKUP für den benutzerdefinierten Tester für usdjpy, so dass die Ergebnisse unterschiedlich sind

Danke! Ich habe es mit verschiedenen MARKUPs (höher & niedriger) und auch verschiedenen Zeitrahmen versucht, aber nicht wirklich erfolgreich. Ich sah einige gute Ergebnisse auf 4H Zeitrahmen/USDJPY, aber mit anderen Forex-Paaren nicht wirklich, und ich versuchte, den Test zu wiederholen, mehrere Male ohne Erfolg. Ist es möglich, irgendwie filtern die Trades, so dass die EA ist nicht immer in den Markt, sondern nur mit starken Signalen?
 

Hallo Maxim,

Der aktuelle Artikel ist in Ordnung, aber begrenzte Rechenleistung und Kurvenanpassung sind die größten Bedenken bei solchen traditionellen Methoden und daher halte ich mich normalerweise vom Testen solcher Ansätze fern.

Sind Sie daran interessiert, einen Artikel über die Implementierung von "MuZero" von DeepMind in Forex zu schreiben?

https://deepmind.com/blog/article/muzero-mastering-go-chess-shogi-and-atari-without-rules

https://medium.com/applied-data-science/how-to-build-your-own-muzero-in-python-f77d5718061a

Ich bitte Sie darum, da ich ein einfacher MQL5-Programmierer bin und es lange dauern kann, einen Artikel von Grund auf zu schreiben, was Sie wahrscheinlich leicht tun können.

Bitte teilen Sie mir Ihre Gedanken mit.


Ich werde definieren, was für die folgenden in Forex-Codierung zu schreiben und können Sie es in MQL5-Code konvertieren:

  • Der Wert: wie gut ist die aktuelle Position?
  • Die Politik: Welche Aktion ist die beste zu nehmen?
  • Die Belohnung: Wie gut war die letzte Aktion?

Vielen Dank!

MuZero: Mastering Go, chess, shogi and Atari without rules
MuZero: Mastering Go, chess, shogi and Atari without rules
  • deepmind.com
In 2016, we introduced AlphaGo, the first artificial intelligence (AI) program to defeat humans at the ancient game of Go. Two years later, its successor - AlphaZero - learned from scratch to master Go, chess and shogi. Now, in a paper in the journal Nature, we describe MuZero, a significant step forward in the pursuit of general-purpose...
 
Maxim, es wäre schön, ein Signal auf den Artikel zu tun, scheint wie gute Ergebnisse.
 
elibrarius:
Maxim, es wäre gut, ein Signal auf den Artikel zu machen, es scheint gute Ergebnisse zu haben.

Es gibt bereits fortgeschrittenere Methoden zur Datenaufbereitung, ich arbeite damit.

Die Überwachung jedes Artikels ist keine Option.

Es ist mehr für wissenschaftliche und kognitive Zwecke.

 
Wenn ich die Start- und Endzeit des Zuges ändere, sind die Ergebnisse der Backtests des Modells schlecht. Was kann ich tun, um die Leistung des Modells zu verbessern?
 
Ich habe viel Zeit damit verbracht, endlich zu verstehen, was Sie tun. Weil das Etikett des ml-Algorithmus unausgewogen ist, verwenden Sie ein GaussMixtureModel, um den geborenen Preis zu simulieren, und nehmen dann Stichproben aus dem Modell, dann können Sie einen besseren ml-Algorithmus trainieren
 
Was den Artikel betrifft, so habe ich ihn zwar nicht gelesen, aber ich fand ihn sehr aussagekräftig. Daher habe ich beschlossen, mir einen Moment Zeit zu nehmen, um einige Ratschläge zu geben. Erstens ist die Datenquelle in diesem Markt nur ein Teil der Chips auf dem Markt, oder ein kleiner Teil der Chips, ist es die Mehrheit der Chips in den Händen der Händler, die die Richtung des Marktes bestimmen können, so ist es schwierig zu erreichen, was wir von der Datenerhebung erwarten, auf welche Methodik und Ansatz zu optimieren, was nur eine Passform für die Vergangenheit Markt sein kann. Zweitens, dieser Markt für einen kurzen Zeitraum ist es nicht zufällig, als ein Beispiel, wenn es nur 2 Multi-Side-Händler und 2 Short-Side-Händler, ein Short-Side-N-Preis zum Verkauf, der andere Short-Side-N-1-Preis zum Verkauf aufgeführt. Eine Multi-Partei N-1 kaufen, den aktuellen Preis von N, vorausgesetzt, dass eine andere Multi-Partei N Preis kaufen, theoretisch auf den Preis sollte N, in der Tat, die leere N keine einzige, die Aggregation Mechanismus wird auf N-1 gehen, um ein Geschäft zu finden, so dass der aktuelle Preis von N-1, ist wahrscheinlich so bedeuten. So N und N-1, N+1, etc. sind alle im Zusammenhang und nicht völlig zufällig, so dass Daten-Optimierung kann besser sein, von Momentum. Schließlich, ob es EA oder manuellen Handel, ist es schwierig, Geld aus dem Markt stetig zu machen, weil, wenn es stabil ist, dann wird der Reichtum unweigerlich auf einen bestimmten Marktteilnehmer übertragen werden, und dieser Markt wird aufhören zu existieren. So ist die Investition in Risiko, Ernte-Risiko-Prozess zu investieren, zu besorgt über die Stabilität der möglichen Verluste, ich habe nichts dagegen, dass einige Leute in den Markt-Transaktionen ein bestimmtes Gesetz gefunden, das Äquivalent des Marktes BUG realisiert Reichtum nur, in der Tat, der Markt selbst ist auch in den Prozess der Selbst-Verbesserung wegen der Komplexität der Teilnehmer, aber das Gold ist nicht rot, niemand ist perfekt. Die Richtung des intelligenten Handels ist theoretisch der Prozess der ständig auf der Suche nach Markt Bugs, ist diese BUG nur eine kleine Anzahl von Menschen zu verwenden, mit mehr Menschen auf das Scheitern. Ich hoffe, mein Kommentar kann eine Referenz für Sie sein. vx tiger54088 vorbei