Strategie zur Rückkehr der aufeinanderfolgenden Kerzen

Schriftsteller:ChaoZhang, Datum: 2023-10-08 13:56:39
Tags:

Übersicht

Diese Strategie basiert auf einer klassischen kurzfristigen Handelsidee - kurz nach aufeinanderfolgenden bullischen Kerzen und lang nach aufeinanderfolgenden bärischen Kerzen zu gehen. Insbesondere erkennt diese Strategie die Körperhöhe und Farbe von Kerzen, um das Auftreten von aufeinanderfolgenden Kerzen mit der gleichen Farbe zu bestimmen, und verwendet dann den RVI-Indikator, um festzustellen, ob eine Umkehr stattfinden sollte. Insgesamt ist dies eine Strategie, die Kerzenmuster und den RVI-Indikator kombiniert, um kurzfristigen Umkehrhandel zu implementieren. Es zielt darauf ab, Umkehrmöglichkeiten zu erfassen, wenn abnorme kurzfristige Preisverhaltensweisen auftreten.

Strategie Logik

Die Kernlogik dieser Strategie umfaßt:

  1. Überprüfen Sie, ob die Kerzenkörperhöhe die Mindestschwelle überschreitet, um unbedeutende bullische/bärenische Bewegungen auszufiltern.

  2. Stellen Sie fest, ob die beiden vorangegangenen Kerzen die gleiche Farbe haben, was auf eine mögliche kurzfristige Umkehr hindeuten kann.

  3. Wenn die aktuelle Kerze eine andere Farbe hat als die vorherigen beiden, wird ein Handelssignal generiert. d.h. nach zwei bärischen Kerzen und einer bullischen, nach zwei bärischen Kerzen und einer bärischen, gehen Sie kurz.

  4. Der RVI-Indikator kann kurzfristige Umkehrungen identifizieren.

  5. Zusammenfassend lässt sich sagen, dass diese Strategie Kerzenmuster und den RVI-Indikator kombiniert, um ein kurzfristiges Mittelumkehrsystem zu schaffen, das profitable Umkehrungen aus abnormalen kurzfristigen Preisverhaltensweisen erfasst.

Analyse der Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Kurzfristige Kursanomalien erfassen. Folgende Kerzen derselben Farbe zeigen oft Anomalien an, die bereit sind, umzukehren.

  2. Der RVI-Indikator unterstützt die Umkehrbestimmung und ergänzt die Kerzenmuster für stabilere Signale.

  3. Relativ hohe Handelsfrequenz für den kurzfristigen Handel.

  4. Kontrollierbare Risiken aus fester Handelsgröße und Stop-Loss/Profit-Taking.

  5. Einfache und klare Logik, die für den Live-Handel leicht zu verstehen und umzusetzen ist.

Risikoanalyse

Einige Risiken:

  1. Kurzfristige Umkehrungen sind während starker Trends, wenn Signale ausfallen können, nicht garantiert.

  2. RVI kann unter besonderen Marktbedingungen falsche Signale erzeugen.

  3. Eine unzureichende Stop-Loss-Einstellung könnte zu großen Verlusten führen.

  4. Die Kriterien für aufeinanderfolgende Kerzen sind zu starr.

  5. Eine feste Handelsgröße kann das Gesamtrisiko der Position nicht kontrollieren.

Optimierungsrichtlinien

Einige Möglichkeiten zur weiteren Optimierung der Strategie:

  1. Optimieren Sie die Folge-Löschlogik mit Hilfe von Statistiken anstelle von festen Perioden.

  2. Optimieren Sie die RVI-Parameter, um die besten Kombinationen zu finden.

  3. Hinzufügen von Stop-Loss auf Basis der Marktvolatilität.

  4. Fügen Sie die Positionsgröße basierend auf der Nutzung des Kontos hinzu.

  5. Fügen Sie mehr Filter wie Kanäle, Trends hinzu, um die Systemstabilität zu verbessern.

  6. Parameter-Tuning für verschiedene Produkte.

  7. Maschinelles Lernen auf historischen Daten zur dynamischen Optimierung von Parametern.

Zusammenfassung

Zusammenfassend ist dies eine typische kurzfristige Mittelumkehrstrategie, die auf Kerzenmustern und RVI basiert. Sie hat Vorteile, aber auch Risiken. Weitere Optimierungen an Parametern und Robustheit können ihre Stabilität und Rentabilität verbessern. Allerdings beseitigt keine Strategie Verluste vollständig. Händler müssen diszipliniert im Risikomanagement bleiben.


/*backtest
start: 2022-10-07 00:00:00
end: 2023-10-07 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//This is part of a series of strategies developed automatically by a online software. I cannot share the site url, which is not related to me in any way, because it is against the TV reules.
//
//This strategy was optimized for GBPUSD, timeframe 1D, fixed lots 0.1, initial balance 1000€
//LOGIC:
//- LONG ENTRY when previous candle is bear
//- LONG EXIT: RVI > signal line
//- SHORT ENTRY when previous candle is bull
//- SHORT EXIT: RVI <  signal line
//
//NOTE: I considered the open of actual candle instead of close otherwise there will be a back shift of 1 candle in pine script
//
//Take profit = no
//Stop loss = no

// strategy("Expert studio strategy 1 - GBPUSD", overlay=false, precision=6, initial_capital=1000,calc_on_every_tick=true, pyramiding=0, default_qty_type=strategy.fixed, default_qty_value=10000, currency=currency.EUR)

//INPUTS
src = input(close, "source")
min_body_height = input(42, "Minimum body height", type=input.float)
//bars_back=input(2, "Consecutive bars of same color")
rvi_period = input(55, "RVI period")

//CALCULATIONS_____________________________
//candle color
body_height = abs(open - close) / syminfo.mintick
body_color = open > close ? color.red : color.green

//da migliorare for i=0 to bars_back-1

//RVI -------- thanks to hecate
p = rvi_period

CO = close - open
HL = high - low

value1 = (CO + 2 * CO[1] + 2 * CO[2] + CO[3]) / 6
value2 = (HL + 2 * HL[1] + 2 * HL[2] + HL[3]) / 6

num = sum(value1, p)
denom = sum(value2, p)

RVI = denom != 0 ? num / denom : 0

RVIsig = (RVI + 2 * RVI[1] + 2 * RVI[2] + RVI[3]) / 6

plot(RVI, color=color.green, style=plot.style_line, linewidth=1)
plot(RVIsig, color=color.red, style=plot.style_line, linewidth=1)

//----------------------------------

longCondition = body_height[1] >= min_body_height and body_color[1] == color.red and 
   body_height[0] >= min_body_height and body_color[0] == color.red and 
   RVIsig > RVI
exitLong = RVI > RVIsig

shortCondition = body_height[1] >= min_body_height and body_color[1] == color.green and 
   body_height[0] >= min_body_height and body_color[0] == color.green and 
   RVIsig < RVI
exitShort = RVI < RVIsig

if longCondition and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

strategy.close("Long", when=exitLong)

if shortCondition and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

strategy.close("Short", when=exitShort)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(10, "Backtest Start Month")
testStartDay = input(7, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testStopHour = input(23, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END

if not isPeriod
    strategy.cancel_all()
    strategy.close_all()





Mehr