Die Ressourcen sind geladen. Beförderung...

Algorithmische Handelsstrategie mit einfacher Pivot-Umkehrung

Schriftsteller:ChaoZhang, Datum: 2024-01-17 15:37:33
Tags:

img

Übersicht

Diese Strategie führt umgekehrten Handel auf der Grundlage von Pivot Point Breakouts durch. Es berechnet den Pivot-Hoch und Pivot-Tief über einen bestimmten Zeitraum, um die Pivot-Levels zu bestimmen. Es geht kurz, wenn der Preis über den Pivot-Hoch bricht, und geht lang, wenn der Preis unter den Pivot-Tief bricht. Dies ist eine typische kurzfristige Mittelumkehrstrategie.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, die Pivot-Hoch- und Tiefpunkte zu berechnen.

Pivot-High = Summe des höchsten Höchststands über die letzten N1-Barren / N1

Pivotlow = Summe des niedrigsten Tiefpunkts der letzten N2-Bars / N2

Hierbei sind N1 und N2 Parameter, die die Anzahl der für die Berechnung der Drehpunkte verwendeten Stäbe definieren.

Nach Erlangung der Pivot-Hoch-/Niedrigniveaus gelten folgende Handelsregeln:

  1. Kurz, wenn der Kurs über das Pivot-Hoch geht
  2. Long, wenn der Preis unter das niedrigste Pivot-Tief fällt
  3. Stop-Loss nach Eintragung einstellen

Also realisiert es eine kurzfristige Umkehrstrategie basierend auf Drehpunkt-Ausbrüchen.

Analyse der Vorteile

Die Vorteile dieser einfachen Strategie sind:

  1. Einfache Logik, leicht zu verstehen und umzusetzen
  2. Für den kurzfristigen Hochfrequenzhandel geeignet
  3. Erfasst die Umkehrung nach Pivot-Ausbrüchen
  4. Optimierbar durch Parameter-Tuning

Risikoanalyse

Es gibt einige Risiken:

  1. Das Risiko einer fehlgeschlagenen Umkehrung - Die Umkehrung nach dem Pivot-Breakout kann fehlschlagen und der Trend setzt sich fort
  2. Stop-Loss-Risiko - Der voreingestellte Stop-Loss-Risiko könnte geschlagen werden, was zu einem großen Verlust führt
  3. Parameterrisiko - Unangemessene Parameter beeinflussen die Ergebnisse erheblich

Diese Risiken können durch Parameter-Tuning, Anwendung von Ausstiegsregeln usw. verwaltet werden.

Optimierungsrichtlinien

Es gibt viel Optimierungsmöglichkeiten:

  1. Kombination mit anderen technischen Indikatoren zur Verbesserung der Eintrittszeit
  2. Hinzufügen von Ausstiegsregeln wie Trailing Stop Loss, Gewinnnahme usw.
  3. Dynamische Anpassung der Parameter zur Verbesserung der Anpassungsfähigkeit
  4. Parameteroptimierung zur Suche nach den besten Parameterkombinationen

Zusammenfassung

Zusammenfassend ist dies eine sehr einfache kurzfristige Pivot-Umkehrstrategie. Seine Vorteile sind Einfachheit und Fähigkeit, Umkehrungen zu erfassen. Aber es gibt einige Risiken, die durch Optimierung angegangen werden müssen. Insgesamt dient dies als eine gute Praxisstrategie für Anfänger und bildet die Grundlage für fortgeschrittene Strategien.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075)

leftBars = input(4)
rightBars = input(2)

// backtesting date range
from_day = input(defval=1, title="From Day", minval=1, maxval=31)
from_month = input(defval=1, title="From Month", minval=1, maxval=12)
from_year = input(defval=2018, title="From Year", minval=1900)

to_day = input(defval=1, title="To Day", minval=1, maxval=31)
to_month = input(defval=1, title="To Month", minval=1, maxval=12)
to_year = input(defval=9999, title="To Year", minval=1900)

time_cond = true

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

middle = (swh+swl)/2

swh_cond = not na(swh)



hprice = 0.0
hprice := swh_cond ? swh : hprice[1]

le = false
le := swh_cond ? true : le[1] and high > hprice ? false : le[1]

if le and time_cond
    strategy.entry("LONG", strategy.long, comment="LONG", stop=hprice + syminfo.mintick)

swl_cond = not na(swl)

lprice = 0.0
lprice := swl_cond ? swl : lprice[1]


se = false
se := swl_cond ? true : se[1] and low < lprice ? false : se[1]

if se and time_cond
    strategy.entry("SHORT", strategy.short, comment="SHORT", stop=lprice - syminfo.mintick)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Mehr