Artikel ini menerangkan secara terperinci strategi perdagangan kuantitatif yang menggunakan ATR untuk stop loss dan Kijun-Sen breakout untuk masuk, dengan pengesahan isyarat tambahan menggunakan penunjuk Williams %R untuk mengawal risiko perdagangan.
I. Logik Strategi
Penunjuk teras strategi ini termasuk:
ATR sebagai penunjuk stop loss, yang secara dinamik mencerminkan turun naik pasaran.
Ichimoku Kijun-Sen garis untuk menentukan arah trend dan memberikan isyarat kemasukan.
Williams %R untuk pengesahan isyarat tambahan untuk mengelakkan entri palsu.
Logik perdagangan khusus ialah:
Mengambil kedudukan panjang apabila harga memecahkan di bawah dan pulih semula di atas garisan Kijun-Sen. Mengambil kedudukan pendek apabila harga memecahkan di atas dan jatuh kembali di bawah garisan. Ini membolehkan trend berikut.
Pada masa yang sama, periksa sama ada Williams % R bersetuju dengan arah, jika tidak, salurkan entri.
Tetapkan stop loss pada tahap ATR yang dikira untuk setiap entri. ATR mencerminkan turun naik pasaran secara dinamik, membolehkan ukuran stop loss yang munasabah.
Apabila stop loss atau mengambil keuntungan diaktifkan, tutup kedudukan untuk keuntungan.
II. Kelebihan Strategi
Kelebihan utama strategi ini ialah:
Pertama, ATR stop loss menetapkan kawalan risiko mengikut turun naik pasaran, dengan berkesan mengelakkan kerugian besar.
Kedua, entri Kijun-Sen dengan pengesahan Williams %R meningkatkan kualiti isyarat.
Akhirnya, tetapan stop loss dan mengambil keuntungan juga menentukan risiko-balasan untuk setiap perdagangan.
III. Kelemahan Potensial
Walau bagaimanapun, risiko berikut juga harus dipertimbangkan:
Pertama, isyarat Kijun-Sen mungkin tertunda semasa peralihan trend, gagal bertindak balas tepat pada masanya.
Kedua, stop loss yang ditetapkan terlalu agresif berisiko dihentikan lebih awal.
Akhirnya, pengoptimuman parameter yang tidak betul juga boleh membawa kepada masalah terlalu banyak.
IV. Ringkasan
Ringkasnya, artikel ini telah menerangkan strategi perdagangan kuantitatif menggunakan ATR untuk stop loss dan Kijun-Sen untuk isyarat masuk. Ia boleh mencapai kawalan risiko yang berkesan melalui berhenti dinamik dan penapisan isyarat. Tetapi risiko seperti peralihan trend dan pembatalan stop loss perlu dicegah. Secara keseluruhan, ia menyediakan trend yang mudah dan berkesan mengikut metodologi.
/*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)