Diskussion zum Artikel "Klassische Strategien neu interpretieren (Teil XI): Kreuzung gleitender Durchschnitte (II)"
Vielen Dank, Gamu. Ich genieße Ihre Veröffentlichungen und versuche zu lernen, indem ich Ihre Schritte reproduziere.
Ich habe einige Probleme hoffentlich kann dies anderen helfen.
1) meine Tests mit Ihnen EURGBP_Stochastic täglich mit dem Skript geliefert produziert nur 2 Aufträge und anschließend Sharpe Ratio von 0,02 . Ich glaube, ich habe die gleichen Einstellungen wie Sie, aber bei 2 Brokern werden nur 2 Orders erzeugt.
2) als Vorwarnung für andere müssen Sie eventuell die Symboleinstellungen an Ihren Broker anpassen (z.B. EURGBP an EURGBP.i), falls nötig
3) als nächstes, wenn ich versuche, die Daten zu exportieren, erhalte ich ein Array außerhalb des Bereichs für die ATR, was meiner Meinung nach daran liegt, dass ich keine 100000 Datensätze in mein Array bekomme (wenn ich es auf 677 ändere), kann ich dementsprechend eine Datei mit 677 Zeilen erhalten. für mich ist der Standardwert für maximale Balken in einem Diagramm 50000, wenn ich das auf 100000 ändere, ist meine Array-Größe nur 677, aber möglicherweise habe ich eine schlechte Einrichtung. Vielleicht könnten Sie auch das Datenextraktionsskript in Ihren Download aufnehmen.
4) Ich habe den Code aus Ihrem Artikel kopiert, um ihn in Python auszuprobieren. Ich erhalte einen Fehler look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: Name 'look_ahead' ist nicht definiert
5) Als ich Ihr Juypiter-Notizbuch lud, stellte ich fest, dass es eine Vorausschau benötigte #Lassen Sie uns 20 Schritte in die Zukunft voraussagen
look_ahead = 20 , Danach habe ich nur noch die von Ihnen beigefügte Datei verwendet, aber ich bleibe bei folgendem Fehler hängen, der möglicherweise damit zusammenhängt, dass ich nur 677 Zeilen habe.
Ich lasse #Scale die Daten laufen, bevor wir sie visualisieren
from sklearn.preprocessing import RobustScaler
Skalierer = RobustScaler()
data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
was mir eine Fehlermeldung gibt, die ich nicht verstehe, wie ich sie lösen kann
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Es wird versucht, einen Wert auf eine Kopie eines Slice aus einem DataFrame zu setzen. Versuchen Sie es stattdessen mit .loc[row_indexer,col_indexer] = value Beachten Sie die Hinweise in der Dokumentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
Vielen Dank, Gamu. Ich genieße Ihre Veröffentlichungen und versuche zu lernen, indem ich Ihre Schritte reproduziere.
Ich habe einige Probleme hoffentlich kann dies anderen helfen.
1) meine Tests mit Ihnen EURGBP_Stochastic täglich mit dem Skript geliefert produziert nur 2 Aufträge und anschließend Sharpe Ratio von 0,02 . Ich glaube, ich habe die gleichen Einstellungen wie Sie, aber auf 2 Brokern produziert es nur 2 Aufträge.
2) als Vorwarnung für andere müssen Sie die Symboleinstellungen ggf. an Ihren Broker anpassen (z.B. EURGBP an EURGBP.i)
3) als nächstes, wenn ich versuche, die Daten zu exportieren, erhalte ich ein Array außerhalb des Bereichs für die ATR, was meiner Meinung nach daran liegt, dass ich keine 100000 Datensätze in mein Array bekomme (wenn ich es auf 677 ändere), kann ich dementsprechend eine Datei mit 677 Zeilen erhalten. für mich ist der Standardwert für maximale Balken in einem Diagramm 50000, wenn ich das auf 100000 ändere, ist meine Array-Größe nur 677, aber möglicherweise habe ich eine schlechte Einrichtung. Vielleicht könnten Sie auch das Datenextraktionsskript in Ihren Download aufnehmen.
4) Ich habe den Code aus Ihrem Artikel kopiert, um ihn in Python auszuprobieren. Ich erhalte einen Fehler look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: Name 'look_ahead' ist nicht definiert
5) Als ich Ihr Juypiter-Notizbuch lud, stellte ich fest, dass es eine Vorausschau benötigte #Lassen Sie uns 20 Schritte in die Zukunft voraussagen
look_ahead = 20 , Danach habe ich nur die von Ihnen beigefügte Datei verwendet, aber ich bleibe bei dem folgenden Fehler hängen, der möglicherweise damit zusammenhängt, dass ich nur 677 Zeilen habe.
Ich führe #Scale the data aus, bevor wir mit der Visualisierung beginnen.
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
was zu einer Fehlermeldung führt, deren Lösung ich nicht verstehe
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Es wird versucht, einen Wert auf eine Kopie eines Slice aus einem DataFrame zu setzen. Versuchen Sie es stattdessen mit .loc[row_indexer,col_indexer] = value Beachten Sie die Hinweise in der Dokumentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
Was gibt's, Neil? Ich hoffe, es geht dir gut.
Danke Gamu Ich weiß das zu schätzen, ja ich weiß, dass es viele bewegliche Teile gibt, ich werde sehen, ob dies meine Probleme lösen wird
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Klassische Strategien neu interpretieren (Teil XI): Kreuzung gleitender Durchschnitte (II) :
Wir haben bereits früher über die Idee der Vorhersage von gleitenden Durchschnittsüberkreuzungen berichtet, der Artikel ist hier verlinkt. Wir haben festgestellt, dass das Kreuzen der gleitenden Durchschnitte leichter zu prognostizieren ist als direkte Preisänderungen. Heute haben wir uns diesem bekannten Problem erneut zugewendet, allerdings mit einem völlig anderen Ansatz.
Wir haben gründlich untersucht, wie groß der Unterschied für unsere Handelsanwendungen ist und wie diese Tatsache Ihre Handelsstrategien verbessern kann. Das Kreuzen von gleitenden Durchschnitten ist eine der ältesten Handelsstrategien überhaupt. Es ist eine Herausforderung, eine gewinnbringende Strategie mit einer so weithin bekannten Technik zu entwickeln. Dennoch hoffe ich, Ihnen in diesem Artikel gezeigt zu haben, dass alte Hüte durchaus neue Tricks hervorzaubern können.
Um in unseren Vergleichen empirisch zu sein, werden wir zunächst eine Handelsstrategie in MQL5 für das EURGBP-Paar erstellen und dabei nur die folgenden Indikatoren verwenden:
Unsere Strategie ist auf den Handel im täglichen Zeitrahmen ausgerichtet. Wir werden diese Strategie vom ersten Januar 2022 bis Anfang Juni 2024 testen. Unsere Strategie wird zunächst klassische Handelsregeln verwenden. Kaufsignale werden also immer dann generiert, wenn der sich schnell bewegende Durchschnitt den sich langsam bewegenden Durchschnitt nach oben kreuzt und der Stochastikwert über 80 liegt. Umgekehrt gilt das für unsere Verkaufssignale. Wir registrieren ein Verkaufssignal, wenn der sich schnell bewegende Durchschnitt unter dem langsamen liegt und der Stochastik-Oszillator unter 20 liegt.
Autor: Gamuchirai Zororo Ndawana