Kurzfristige Handelsstrategie mit umgekehrtem K-Line-Ausbruch


Erstellungsdatum: 2023-11-21 17:03:32 zuletzt geändert: 2023-11-21 17:03:32
Kopie: 0 Klicks: 555
1
konzentrieren Sie sich auf
1617
Anhänger

Kurzfristige Handelsstrategie mit umgekehrtem K-Line-Ausbruch

Überblick

Die Strategie wird verwendet, um Short-Line-Umkehr-Trading-Möglichkeiten zu erfassen. Sie wird nach einem Anstieg der N-K-Linie in Folge aufgenommen und nach einem Rückgang der M-K-Linie in Folge platziert. Die Strategie enthält auch eine Zeitrahmbegrenzung und eine Stop-Loss-Funktion.

Grundsätze

  1. Eingabeparameter: Anzahl der K-Linien N, die kontinuierlich steigen, und Anzahl der K-Linien M, die kontinuierlich fallen
  2. Logik definiert:
    • ups-Statistik erhöht die Anzahl der K-Linien, price>price[1] ist +1, sonst ist es 0
    • dns-Statistik absteigende K-Linie, Preis
  3. Eintritt: Leerstellung bei ups≥N; Flachstellung bei dns≥M
  4. Ausstieg: Fixed Stop-Loss-Stop oder Zeitende

Vorteile

  1. Es ist wichtig, dass Sie die Umkehrmöglichkeiten nutzen, um kurzfristig zu handeln.
  2. Flexible Trading-Zeiträume für verschiedene Trading-Pläne
  3. Eingebettete Schadensschutzfunktion zur Risikokontrolle

Die Gefahr

  1. Kurze Umkehrungen sind nicht immer erfolgreich und können zu Verlusten führen.
  2. Die Parameter N, M müssen vernünftig eingestellt werden, zu groß oder zu klein ist nicht günstig
  3. Fehl eingestellte Stoppzeiten können den Schaden nicht rechtzeitig stoppen

Optimierungsrichtung

  1. Vermeidung von Rückschlägen in Kombination mit Trendindikatoren
  2. Dynamische Anpassungsparameter N, M
  3. Optimierung der Stop-Loss-Mechanismen

Zusammenfassen

Die Strategie erfasst Short-Line-Gelegenheiten durch die Erfassung von K-Line-Formen. Die Einrichtung von vernünftigen Parametern und Wind-Control-Maßnahmen ist entscheidend für die Erzielung von stabilen Erträgen. Eine weitere Kombination von Trendbeurteilung und dynamischen Anpassungsparametern wird zu besseren Ergebnissen führen.

Strategiequellcode
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
strategy("Up/Down Short Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

// There will be no short entries, only exits from long.
strategy.risk.allow_entry_in(strategy.direction.short)

consecutiveBarsUp = input(1, title='Consecutive Bars Up')
consecutiveBarsDown = input(1, title='Consecutive Bars Down')

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit Tick Based
enablesltp = input(false, title='Enable Take Profit & Stop Loss')
stopTick = input(5.0, title='Stop Loss Ticks', type=input.float) / 100
takeTick = input(10.0, title='Take Profit Ticks', type=input.float) / 100

longStop = strategy.position_avg_price - stopTick
shortStop = strategy.position_avg_price + stopTick
shortTake = strategy.position_avg_price - takeTick
longTake = strategy.position_avg_price + takeTick

plot(strategy.position_size > 0 and enablesltp ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesltp ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enablesltp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enablesltp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")
message_takeprofit = input("", title="Take Profit message")
message_stoploss = input("", title="Stop Loss message")

// Strategy Execution
if (ups >= consecutiveBarsUp) and time_cond and timetobuy
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_enterlong)
    
if (dns >= consecutiveBarsDown) and time_cond and timetobuy
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesltp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_takeprofit)
if strategy.position_size < 0 and enablesltp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_stoploss)