Strategi ini dinamakan
Logik teras strategi ini adalah untuk menggunakan trek ganda penunjuk RSI untuk penghakiman. Penunjuk RSI biasanya ditetapkan kepada 14 tempoh, mewakili kekuatan dan kelemahan stok dalam 14 hari terakhir. Strategi ini menambah RSI10 sebagai penunjuk penghakiman tambahan.
Apabila RSI14 memecahkan di bawah trek 40, dipercayai bahawa harga saham telah menembusi sisi lemah dan mungkin ada peluang pemulihan sokongan. Pada masa ini, jika RSI10 kurang dari RSI14, ini bermakna bahawa trend jangka pendek masih menurun, yang dapat mengesahkan isyarat jual. Jadi apabila
Apabila RSI14 memecahkan di atas trek 70, ia dipercayai bahawa harga saham telah memasuki kawasan yang kuat jangka pendek dan mungkin ada peluang untuk penyesuaian mundur. Pada masa ini, jika RSI10 lebih besar daripada RSI14, ini bermakna trend jangka pendek berterusan ke atas, yang dapat lebih mengesahkan isyarat beli.
Oleh itu, pertimbangan gabungan RSI14 dan RSI10 merupakan logik teras strategi dual-track.
Untuk memanfaatkan sepenuhnya strategi ini, parameter RSI boleh diselaraskan dengan betul, kedudukan stop loss harus dikawal dengan ketat, mengelakkan operasi yang terlalu kerap, dan mengejar keuntungan yang stabil.
Strategi ini membuat penilaian berdasarkan idea dua trek RSI dan menapis beberapa isyarat bising hingga tahap tertentu. Tetapi tidak ada strategi penunjuk tunggal yang boleh menjadi sempurna, penunjuk RSI cenderung menyesatkan dan harus dilihat dengan berhati-hati. Strategi ini menggabungkan pergerakan stop loss dan mengambil keuntungan mekanisme untuk mengawal risiko, yang penting. Pengoptimuman masa depan boleh diteruskan untuk membuat parameter strategi dan kaedah stop loss lebih pintar dan dinamik.
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-07 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © DojiEmoji //@version=4 strategy("[KL] RSI 14 + 10 Strategy",overlay=true) backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time) //backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time) TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met") REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit") // Trailing stop loss { TSL_ON = input(true,title="Use trailing stop loss") var entry_price = float(0) ATR_multi_len = 26 ATR_multi = input(2, "ATR multiplier for stop loss") ATR_buffer = atr(ATR_multi_len) * ATR_multi plotchar(ATR_buffer, "ATR Buffer", "", location = location.top) risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO take_profit_long = low > entry_price + risk_reward_buffer take_profit_short = low < entry_price - risk_reward_buffer var bar_count = 0 //number of bars since entry var trailing_SL_buffer = float(0) var stop_loss_price = float(0) stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer) // plot TSL line trail_profit_line_color = color.green showLine = strategy.position_size == 0 if showLine trail_profit_line_color := color.black stop_loss_price := close - trailing_SL_buffer plot(stop_loss_price,color=trail_profit_line_color) // } // RSI RSI_LOW = input(40,title="RSI entry") RSI_HIGH = input(70,title="RSI exit") rsi14 = rsi(close, 14) rsi10 = rsi(close, 10) if true// and time <= backtest_timeframe_end buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14 exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14 //ENTRY: if strategy.position_size == 0 and buy_condition entry_price := close trailing_SL_buffer := ATR_buffer stop_loss_price := close - ATR_buffer strategy.entry("Long",strategy.long, comment="buy") bar_count := 0 else if strategy.position_size > 0 bar_count := bar_count + 1 //EXIT: // Case (A) hits trailing stop if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price if close > entry_price strategy.close("Long", comment="take profit [trailing]") stop_loss_price := 0 else if close <= entry_price and bar_count strategy.close("Long", comment="stop loss") stop_loss_price := 0 bar_count := 0 // Case (B) take targeted profit relative to risk if strategy.position_size > 0 and TARGET_PROFIT_MODE if take_profit_long strategy.close("Long", comment="take profits [risk:reward]") stop_loss_price := 0 bar_count := 0 // Case (C) if strategy.position_size > 0 and exit_condition if take_profit_long strategy.close("Long", comment="exit[rsi]") stop_loss_price := 0 bar_count := 0