ATR Stop Loss Ichimoku Kijun Ausbruchstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-14 20:06:11
Tags:

In diesem Artikel wird eine quantitative Handelsstrategie detailliert erläutert, bei der ATR für Stop Loss und Kijun-Sen-Breakouts für Entry verwendet werden, wobei zusätzliche Signalvalidierung mit dem Williams %R-Indikator zur Kontrolle des Handelsrisikos durchgeführt wird.

I. Strategische Logik

Zu den Kernindikatoren dieser Strategie gehören:

  1. Die ATR als Stop-Loss-Indikator, der die Marktvolatilität dynamisch widerspiegelt.

  2. Ichimoku Kijun-Sen-Linie, um die Trendrichtung zu bestimmen und Eintrittssignale zu geben.

  3. Williams %R für zusätzliche Signalvalidierung, um falsche Eingaben zu vermeiden.

Die spezifische Handelslogik lautet:

Wenn der Preis unterhalb der Kijun-Sen-Linie bricht und sich wieder erholt, nehmen Sie Long-Positionen ein.

Gleichzeitig überprüfen Sie, ob Williams %R mit der Richtung übereinstimmt, wenn nicht, überspringen Sie den Eintrag.

Der Stop-Loss wird für jeden Eintrag auf die berechneten ATR-Niveaus festgelegt.

Wenn der Stop-Loss oder Take-Profit ausgelöst wird, schließen Sie Positionen mit Gewinn.

II. Vorteile der Strategie

Die wichtigsten Vorteile dieser Strategie sind:

Erstens legt ATR-Stop-Loss die Risikokontrolle entsprechend der Marktvolatilität fest und vermeidet damit effektiv große Verluste.

Zweitens verbessert Kijun-Sen-Einträge mit Williams %R-Validierung die Signalqualität.

Schließlich definieren die Stop-Loss- und Take-Profit-Einstellungen für jeden Handel auch Risiko-Gewinn.

III. Mögliche Schwächen

Es sollten jedoch auch folgende Risiken berücksichtigt werden:

Erstens können die Kijun-Sen-Signale bei Trendübergängen verzögern und nicht rechtzeitig reagieren.

Zweitens besteht die Gefahr, dass ein zu aggressiv eingestellter Stop-Loss vorzeitig eingestellt wird.

Schließlich kann eine unsachgemäße Optimierung der Parameter auch zu Problemen mit Überanpassung führen.

IV. Zusammenfassung

Zusammenfassend wurde in diesem Artikel eine quantitative Handelsstrategie erklärt, bei der ATR für Stop Loss und Kijun-Sen für Eingangssignale verwendet wird. Sie kann durch dynamische Stops und Signalfilterung eine effektive Risikokontrolle erreichen. Allerdings müssen Risiken wie Trendübergänge und Stop Loss-Unwirksammachung verhindert werden. Insgesamt bietet sie eine einfache und effektive Trendfolgemethode.


/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy("NNFX ft. ATR, Kijun-Sen, %R","NNFX-2",true,pyramiding=1,calc_on_order_fills=true,calc_on_every_tick=true,initial_capital = 1000, currency="USD",slippage=5,commission_type=strategy.commission.cash_per_contract,commission_value=0.000035)
strategy.initial_capital = 50000    
//INDICATOR---------------------------------------------------------------------    
    //Average True Range (1. RISK)
atr_period = input(14, "Average True Range Period")
atr = atr(atr_period)

    //Ichimoku Cloud - Kijun Sen (2. BASELINE)
ks_period = input(20, "Kijun Sen Period")
kijun_sen = (highest(high,ks_period) + lowest(low,ks_period))/2
base_long = open < kijun_sen and close > kijun_sen
base_short = open > kijun_sen and close < kijun_sen

    //Williams Percent Range (3. Confirmation#1)
use_wpr = input(true,"Use W%R?")
wpr_len = input(1, "Williams % Range Period")
wpr = -100*(highest(high,wpr_len) - close)/(highest(high,wpr_len) - lowest(low,wpr_len))
wpr_up = input(-25, "%R Upper Level")
wpr_low = input(-75, "%R Lower Level")
conf1_long = wpr >= wpr_up
conf1_short = wpr <= wpr_low
if(use_wpr == false)
    conf1_long := true
    conf1_short := true
//TRADE LOGIC-------------------------------------------------------------------
    //Long Entry
    //if -> WPR crosses below -39 AND MACD line is less than signal line
l_en = base_long and conf1_long
    //Long Exit
    //if -> WPR crosses above -14
l_ex = close < kijun_sen
    //Short Entry
    //if -> WPR crosses above -39 AND MACD line is greater than signal line
s_en = base_short and conf1_short
    //Short Exit
    //if -> WPR crosses under -14
s_ex = close > kijun_sen
    
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...")
risk = input(5,"Risk %")/100           //risk % per trade
equity_protector = input(30,"Equity Protection %")/100  //equity protection %
stop = atr*100000*input(1.5,"Average True Range multiplier")    //Stop level
if(isTwoDigit)
    stop := stop/100
target = input(150, "Target TP in Points")  //TP level
    //Calculate current DD and determine if stopout is necessary
equity_stopout = false
if(floating<0 and abs(floating/balance)>equity_protector)
    equity_stopout := true
    
    //Calculate the size of the next trade
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
    size := 1000            //Set min. lot size

//TRADE EXECUTION---------------------------------------------------------------
strategy.close_all(equity_stopout)      //Close all trades w/equity protector
is_open = strategy.opentrades > 0

if(true)
    strategy.entry("l_en",true,oca_name="a",when=l_en and not is_open)  //Long entry
    strategy.entry("s_en",false,oca_name="a",when=s_en and not is_open) //Short entry
    
    strategy.exit("S/L","l_en",loss=stop, profit=target)      //Long exit (stop loss)
    strategy.close("l_en",when=l_ex)            //Long exit (exit condition)
    strategy.exit("S/L","s_en",loss=stop, profit=target)      //Short exit (stop loss)
    strategy.close("s_en",when=s_ex)            //Short exit (exit condition)
    
//PLOTTING----------------------------------------------------------------------
plot(kijun_sen,"Kijun-Sen",color.blue,2)

Mehr