Eine quantitative Handelsstrategie für den Ausbruch des ATR-Kanals

Schriftsteller:ChaoZhang, Datum: 2024-01-23 12:00:04
Tags:

img

Übersicht

Strategie Logik

Vorteile

  1. Einfache und klare Logik, die leicht zu verstehen und umzusetzen ist.

Risikoanalyse

Mögliche Lösungen:

  1. Hinzufügen einer Kreuzbestätigung mit MACD, KDJ, um ein systemisches SMA-Verzögerungsrisiko zu vermeiden

  2. Optimierung der ATR-Periode und des Koeffizienten, um einen angemessenen Kanalbereich zu gewährleisten.

  3. Es ist wichtig, dass der Markt für die Entwicklung von Trendverzerrungen auf der Grundlage von Trendverzerrungen ermittelt wird, wobei bei Bull Trends Long und bei Bear Trends Short zu wählen ist.

Möglichkeiten zur Verbesserung

  1. Hinzufügen zusätzlicher Indikatorfilter zur Verringerung falscher Breakout-Whipsaws, wobei MACD, KDJ usw. zur Bestätigung von Signalen verwendet werden.

  2. Schneiden Sie Verluste schnell ab, wenn sich der Kurs von der Basislinie des SMA entfernt.

Zusammenfassung


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="ATR Channel Breakout")

smaLength = input.int(150, title="SMA Length")
atrLength = input.int(30, title="ATR Length")

ubOffset = input.float(4, title="Upperband Offset", step=0.50)
lbOffset = input.float(4, title="Lowerband Offset", step=0.50)


smaValue = ta.sma(close, smaLength)
atrValue = ta.atr(atrLength)

upperBand = smaValue + (ubOffset * atrValue)
lowerBand = smaValue - (lbOffset * atrValue)


plot(smaValue, title="SMA", color=color.orange)
plot(upperBand, title="UB", color=color.green, linewidth=2)
plot(lowerBand, title="LB", color=color.red, linewidth=2)


enterLong = ta.crossover(close, upperBand)
exitLong  = ta.crossunder(close, smaValue)


enterShort = ta.crossunder(close, lowerBand)
exitShort  = ta.crossover(close, smaValue)


if enterLong
    strategy.entry("Long", strategy.long)

if enterShort
    strategy.entry("Short", strategy.short)


if exitLong
    strategy.close("Long", "Close Long")

if exitShort
    strategy.close("Short", "Close Short")

Mehr