Strategi ini memantau penembusan penunjuk RSI dalam julat yang berbeza untuk melaksanakan membeli rendah dan menjual tinggi. Ia pergi lama apabila RSI berada dalam julat rendah dan pergi pendek apabila RSI berada dalam julat tinggi, dengan itu membalikkan kedudukan apabila keadaan overbought atau oversold muncul.
Tetapkan tempoh RSI kepada 14
Tetapkan julat isyarat beli RSI:
Tetapkan julat isyarat jual RSI:
Apabila RSI memasuki julat beli, pergi panjang:
Apabila RSI memasuki julat jual, pergi pendek:
Tetapkan keuntungan tetap untuk 2500 pips dan stop loss untuk 5000 pips
Penutupan kedudukan apabila RSI keluar dari julat isyarat
Tetapan julat berganda membantu mengenal pasti keadaan overbought dan oversold dengan lebih baik, mengelakkan peluang pembalikan yang hilang
Mengambil keuntungan tetap mengambil dan berhenti kerugian dalam pip menghalang mengejar trend terlalu banyak
RSI adalah pengayun yang matang dalam mengenal pasti tahap overbought dan oversold dengan kelebihan berbanding penunjuk lain
Dengan penyesuaian parameter yang betul, strategi ini dapat menangkap titik pembalikan trend dengan berkesan dan menjana pulangan yang berlebihan
Perbezaan RSI boleh berlaku yang membawa kepada kerugian berturut-turut dari kedudukan pendek yang berterusan
Pendapatan tetap mengambil keuntungan dan menghentikan kerugian mungkin tidak sesuai dengan turun naik pasaran, tidak dapat memperoleh keuntungan atau berhenti sebelum masa
Tetapan julat yang tidak betul boleh menyebabkan perdagangan yang hilang atau perdagangan yang tidak menguntungkan yang kerap
Strategi ini bergantung kepada pengoptimuman parameter berdasarkan backtest.
Kesan ujian RSI dengan panjang tempoh yang berbeza
Mengoptimumkan nilai julat beli dan jual untuk menyesuaikan ciri-ciri produk yang berbeza
Penyelidikan dinamik mengambil keuntungan dan menghentikan kerugian untuk meningkatkan keuntungan dan munasabah
Pertimbangkan untuk menggabungkan penunjuk lain untuk dagangan ensemble untuk meningkatkan ketahanan
Meneroka teknik pembelajaran mesin untuk mengoptimumkan julat parameter secara automatik untuk ketahanan
Strategi ini berdasarkan prinsip RSI
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m 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/ // © Rawadabdo // Ramy's Algorithm //@version=5 strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000) // User input length = input(title = "Length", defval=14, tooltip="RSI period") first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers") second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers") first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers") second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers") takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance") stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance") lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size") // Get RSI vrsi = ta.rsi(close, length) // Entry Conditions long1 = (vrsi <= first_buy_level and vrsi>second_buy_level) long2 = (vrsi <= second_buy_level) short1= (vrsi >= first_sell_level and vrsi<second_sell_level) short2= (vrsi >= second_sell_level) // Entry Orders // Buy Orders if (long1 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") if (long2 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") // Short Orders if (short1 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") if (short2 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") // Exit our trade if our stop loss or take profit is hit strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss) strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss) // plot data to the chart hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) plot (vrsi, title = "RSI", color = color.blue, linewidth=2)