Ichimoku Kinko Hyo-Strategie basierend auf ATR Stop Loss


Erstellungsdatum: 2023-09-14 20:06:11 zuletzt geändert: 2023-09-14 20:06:11
Kopie: 2 Klicks: 874
1
konzentrieren Sie sich auf
1617
Anhänger

In diesem Artikel wird eine quantitative Trading-Strategie beschrieben, die ATR als Stop-Loss und EQUAL als Einstieg verwendet. Die Strategie wird in Verbindung mit dem William-Index für die Signalprüfung verwendet, um das Trading-Risiko zu kontrollieren.

  1. Strategische Grundlagen

Die Kernindikatoren der Strategie sind:

  1. Der ATR ist ein Stop-Loss-Indikator, der dynamisch die Schwankungen des Marktes widerspiegelt.

  2. Die Gleichgewichtslinie ist ein Einstiegssignal, um die Richtung des Trends zu bestimmen.

  3. Die William-Kennzahlen werden zusätzlich überprüft, um falsche Anmeldungen zu vermeiden.

Die Transaktionslogik lautet wie folgt:

Wenn der Preis die erste Gleichgewichtslinie überschreitet und dann wieder zurückgeht, machen Sie mehr; wenn der Preis die Durchschnittslinie überschreitet und dann wieder zurückgeht, machen Sie einen Ausfall. Dies ermöglicht Trendverfolgung.

Gleichzeitig überprüfen Sie, ob die William-Indikatoren mit der Richtung übereinstimmen, und wenn dies nicht der Fall ist, verzichten Sie auf die Teilnahme.

Bei jedem Einstieg wird ein Stop-Loss-Punkt berechnet, der mit dem ATR berechnet wird. Der ATR kann dynamisch die Schwankungen des Marktes widerspiegeln und somit eine angemessene Stop-Loss-Grenze festlegen.

Wenn ein Stop-Loss oder ein Stop-Loss-Level ausgelöst wird, ist die Position platziert.

  1. Strategische Vorteile

Die wichtigsten Vorteile der Strategie sind:

Erstens, ATR Stop-Losses können große Verluste wirksam vermeiden, indem sie Risikokontrollen basierend auf Marktschwankungen einrichten.

Zweitens verbessert die Gleichschaltung die Signalqualität in Kombination mit der Validierung des William-Indikators.

Schließlich ermöglicht die Stop-Loss-Stopp-Setup auch eine definierte Risiko-Rendite für jeden Handel.

  1. Potenzielle Risiken

Es ist jedoch wichtig, die folgenden Risiken zu berücksichtigen:

Zunächst einmal kann es sein, dass ein Gleichgewichtssignal bei einem Trendwechsel zurückbleibt und nicht rechtzeitig reagiert.

Zweitens, die Radikalisierung des Stopps könnte dazu führen, dass der Stopp durchbrochen wird.

Schließlich kann eine falsche Optimierung der Parameter zu einer Überpassung führen.

Vier Inhalte, Zusammenfassung

In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, die auf ATR-Stop-Loss und Ebenen als Einstiegsbasis basiert. Sie kann durch dynamische Stop-Loss- und Signalfilterung gute Risikokontrollen erzielen. Wir müssen jedoch auch vor Problemen wie Trendbrechern und durchbrochenen Stopps schützen. Insgesamt bietet die Strategie eine einfache und effektive Methode zur Trendverfolgung.

Strategiequellcode
/*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)