Strategie der Goldenen Handelsstunde

Schriftsteller:ChaoZhang, Datum: 2023-09-19 16:03:52
Tags:

Übersicht

Die Goldene Handelsstunde Strategie bestimmt automatisch die besten Stunden, um jeden Tag zu kaufen und zu verkaufen, indem historische Daten zurück getestet werden.

Strategieprinzip

  1. Verwenden Sie die aktuelle Zeit, um die aktuelle Stunde now_hour zu erhalten.

  2. Verwenden Sie den ROC-Indikator zur Berechnung des stündlichen Anstiegs und -abstiegs des Candlesticks-Indikators.

  3. Berechnen Sie das kumulative Produkt von Indikator und now_hour als buy_hourXindicator_cum.

  4. Die kumulative Summe des Indikators wird als buy_indicator_cum berechnet.

  5. Die beste Kaufstunde buy_hour = buy_hourXindicator_cum / buy_indicator_cum.

  6. Gleichermaßen berechnet man die beste Verkaufsstunde sell_hour.

  7. Vergleichen Sie now_hour mit buy_hour und sell_hour, um festzustellen, ob die aktuelle Stunde die optimale Kauf- oder Verkaufsstunde ist.

  8. Entsprechende Signale während der optimalen Kauf- und Verkaufszeiten senden.

  9. Verwenden Sie verschiedene Hintergrundfarben, um die optimalen Kauf- und Verkaufsstunden in Echtzeit anzuzeigen.

Analyse der Vorteile

Der größte Vorteil dieser Strategie ist die Fähigkeit, automatisch die besten Handelszeiten des Tages zu bestimmen. Es spart viel Zeit und Mühe, historische Daten manuell zu beobachten, um die optimalen Handelszeiten zu beurteilen. Außerdem kann die Strategie die optimalen Handelszeiten in Echtzeit anpassen, basierend auf Live-Daten, um schnell auf Marktveränderungen zu reagieren. Diese Strategie hat im Vergleich zu festen Handelszeiten mehr Vorteile.

Darüber hinaus nutzt die Strategie den ROC-Indikator gut. Durch die Berechnung des stündlichen Anstiegs und Falls des Prozentsatzes der Kerzen kann sie die Handelsleistung verschiedener Perioden genauer beurteilen. Der ROC-Indikator ist empfindlich auf asymmetrische Schwankungen und kann Marktveränderungen widerspiegeln.

Risikoanalyse

Das größte Risiko dieser Strategie liegt in den Einschränkungen des ROC-Indikators selbst. ROC berücksichtigt nur Preisänderungen und ist unempfindlich gegenüber Veränderungen des Handelsvolumens. Auch funktioniert ROC nicht gut in Bereichsgebundenen Märkten mit schmalen Bands.

Darüber hinaus verwendet die Strategie das Backtesting historischer Daten, um die optimalen Handelszeiten zu bestimmen. Aber historische Muster gelten möglicherweise nicht für den aktuellen Markt. Auf dem Markt können strukturelle Veränderungen auftreten und die ursprünglichen Handelsregeln gelten möglicherweise nicht mehr. Dies erfordert die Anpassung von Parametern auf der Grundlage der aktuellen Marktbedingungen, anstatt sich ausschließlich auf die Ergebnisse des Backtests zu verlassen.

Um dies anzugehen, können wir andere Indikatoren wie das Handelsvolumen kombinieren, um ein umfassenderes Urteil über die Marktbedingungen zu erhalten.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Versuchen Sie, andere Indikatoren anstelle des ROC-Indikators, wie z. B. das Handelsvolumen, zu verwenden, um geeignete Indikatoren für die Berechnung der Stärken und Schwächen pro Stunde zu finden.

  2. Hinzufügen anderer Filterbedingungen unter Verwendung gleitender Durchschnitte, Oszillatoren usw., um lokale Trends zu beurteilen und unzumutbaren Handel zu vermeiden.

  3. Optimierung der Zeitperiodeparameter und Prüfung der Auswirkungen verschiedener Zeiträume auf die Ergebnisse.

  4. Hinzufügen von Stop-Loss-Mechanismen und Festlegen angemessener Stop-Loss-Punkte zur Kontrolle von Handelsrisiken.

  5. Kombination von Methoden des maschinellen Lernens und größeren Datensätzen zur Lösung der optimalen Handelszeiten.

Zusammenfassung

Zusammenfassend ist die Goldene Handelsstunde-Strategie ein machbarer und effektiver Ansatz. Sie verwendet den ROC-Indikator, um automatisch die optimalen Intraday-Kauf- und Verkaufsstunden zu bestimmen, was viel Zeit und Mühe spart. Aber wir sollten auch die Einschränkungen des ROC-Indikators und des historischen Backtests beachten und die Parameter anhand der aktuellen Marktbedingungen anpassen. Darüber hinaus gibt es noch viel Verbesserungsmöglichkeiten, indem diese Strategie in vielen Aspekten optimiert wird, um genauere und zuverlässigere Signale zu generieren. Wenn sie für den Live-Handel verwendet wird, wird empfohlen, die Stop-Loss-Regeln streng zu befolgen, um Handelsrisiken zu kontrollieren.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mablue (Masoud Azizi)

//@version=5
strategy("Trade Hour V3",overlay=false)
timezone = input.string("Europe/London",options=["America/New_York","America/Los_Angeles","America/Chicago","America/Phoenix","America/Toronto","America/Vancouver","America/Argentina" ,"America/El_Salvador","America/Sao_Paulo","America/Bogota","Europe/Moscow","Europe/Athens","Europe/Berlin","Europe/London","Europe/Madrid","Europe/Paris","Europe/Warsaw","Australia/Sydney","Australia/Brisbane","Australia/Adelaide","Australia/ACT","Asia/Almaty","Asia/Ashkhabad","Asia/Tokyo","Asia/Taipei","Asia/Singapore","Asia/Shanghai","Asia/Seoul","Asia/Tehran","Asia/Dubai","Asia/Kolkata","Asia/Hong_Kong","Asia/Bangkok","Pacific/Auckland","Pacific/Chatham","Pacific/Fakaofo","Pacific/Honolulu"]	)
source = input.source(close)
tp = input.int(1,"ROC Timeperiod")

now_hour = hour(time,timezone)

indicator = ta.roc(source,tp)

buy_hourXindicator_cum = ta.cum(indicator* now_hour)
buy_indicator_cum = ta.cum(indicator)
buy_hour = buy_hourXindicator_cum/buy_indicator_cum

sell_hourXindicator_cum = ta.cum( (1/indicator ) * now_hour)
sell_indicator_cum = ta.cum(1/indicator)
sell_hour = sell_hourXindicator_cum/sell_indicator_cum

plot(buy_hour,color=color.green)
plot(sell_hour,color=color.red)
plot(now_hour,color=color.gray,display=display.none)


bool isLongBestHour = now_hour==math.round(buy_hour)
bool isShortBestHour = now_hour==math.round(sell_hour)

bgcolor(isLongBestHour ? color.new(color.green,80) : na)
bgcolor(isShortBestHour ? color.new(color.red,80) : na)
strategy.order("buy", strategy.long, when =isLongBestHour)
strategy.order("sell", strategy.short, when = isShortBestHour)

Mehr