এই কৌশলটির নাম
এই কৌশলটির প্রবেশ সংকেতগুলি মূলত আরএসআই সূচক এবং এমএ ক্রসওভারের দ্বারা নির্ধারিত হয়। বিপরীতমুখী সুযোগের জন্য দ্রুত ওভারকপিং এবং ওভারসোল্ড পরিস্থিতিগুলি ক্যাপচার করতে আরএসআই পরামিতিটি 2 পিরিয়ডে সেট করা হয়। প্রবণতা দিকটি সনাক্ত করতে দ্রুত এমএ এবং ধীর এমএ যথাক্রমে 50 এবং 200 পিরিয়ডে সেট করা হয়। বিশেষত, প্রবেশের যুক্তিটি হ'লঃ
লং এন্ট্রিঃ দ্রুত এমএ ধীর এমএ এর উপরে অতিক্রম করে, দাম ধীর এমএ এর উপরে এবং আরএসআই ওভারসোল্ড স্তরের নিচে (ডিফল্ট 10%); সংক্ষিপ্ত এন্ট্রিঃ দ্রুত এমএ ধীর এমএ এর নিচে অতিক্রম করে, দাম ধীর এমএ এর নিচে এবং আরএসআই ওভারকোপড স্তরের উপরে (ডিফল্ট 90%) ।
এছাড়াও, কৌশলটিতে একটি ঐচ্ছিক অস্থিরতা ফিল্টার রয়েছে। এটি দ্রুত এবং ধীর এমএগুলির ঝাঁকুনির মধ্যে পার্থক্য গণনা করে। পার্থক্যটি যখন একটি প্রান্তিক সীমা অতিক্রম করে তখনই অবস্থানগুলি খোলা হবে। উদ্দেশ্যটি হ'ল বাজারের ওঠানামা চলাকালীন কোনও স্পষ্ট দিক না থাকলে অবস্থানগুলি খোলা এড়ানো।
প্রস্থান দিক থেকে, কৌশলটি শতাংশ ট্রেলিং স্টপ লস ব্যবহার করে। ইনপুট শতাংশের ভিত্তিতে, এটি স্টপ লসের দামটি টিক আকারের সাথে একত্রিত করে গতিশীলভাবে স্টপ লস সামঞ্জস্য করতে গণনা করে।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
এই কৌশলের কিছু ঝুঁকিও রয়েছেঃ
ঝুঁকিগুলির জন্য অপ্টিমাইজেশান দিকগুলি হলঃ
এই কৌশলটির জন্য অপ্টিমাইজেশান দিকগুলি হলঃ
সাধারণভাবে, এটি একটি তুলনামূলকভাবে স্থিতিশীল প্রবণতা অনুসরণকারী কৌশল। দ্বৈত আরএসআই এবং এমএ সূচকগুলিকে একত্রিত করে, এটি স্পষ্ট প্রবণতা বিপরীতমুখী সুযোগগুলি ক্যাপচার করার সময় একটি নির্দিষ্ট স্থিতিশীলতা নিশ্চিত করে। অস্থিরতা ফিল্টার কিছু ঝুঁকি এড়ায় এবং শতাংশ স্টপ লস একক বাণিজ্য ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করে। এই কৌশলটি একটি মাল্টি-সিম্বল জেনেরিক কৌশল হিসাবে ব্যবহার করা যেতে পারে এবং আরও ভাল ফলাফল অর্জনের জন্য নির্দিষ্ট চিহ্নগুলির জন্য পরামিতি এবং মডেলগুলিতেও অনুকূলিত করা যেতে পারে।
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // Scalping strategy // © Lukescream and Ninorigo // (original version by Lukescream - lastest versions by Ninorigo) - v1.3 // //@version=4 strategy(title="Scalping using RSI 2 indicator", shorttitle="RSI 2 Strategy", overlay=true, pyramiding=0, process_orders_on_close=false) var bool ConditionEntryL = false var bool ConditionEntryS = false //*********** // Costants //*********** def_start_date = timestamp("01 Jan 2021 07:30 +0000") def_end_date = timestamp("01 Dec 2024 07:30 +0000") def_rsi_length = 2 def_overbought_value = 90 def_oversold_value = 10 def_slow_ma_length = 200 def_fast_ma_length = 50 def_ma_choice = "EMA" def_tick = 0.5 def_filter = true def_trailing_stop = 1 //*********** // Change the optional parameters //*********** start_time = input(title="Start date", defval=def_start_date, type=input.time) end_time = input(title="End date", defval=def_end_date, type=input.time) // RSI src = input(title="Source", defval=close, type=input.source) rsi_length = input(title="RSI Length", defval=def_rsi_length, minval=1, type=input.integer) overbought_threshold = input(title="Overbought threshold", defval=def_overbought_value, type=input.float) oversold_threshold = input(title="Oversold threshold", defval=def_oversold_value, type=input.float) // Moving average slow_ma_length = input(title="Slow MA length", defval=def_slow_ma_length, type=input.integer) fast_ma_length = input(title="Fast MA length", defval=def_fast_ma_length, type=input.integer) ma_choice = input(title="MA choice", defval="EMA", options=["SMA", "EMA"]) // Input ticker tick = input(title="Ticker size", defval=def_tick, type=input.float) filter = input(title="Trend Filter", defval=def_filter, type=input.bool) // Trailing stop (%) ts_rate = input(title="Trailing Stop %", defval=def_trailing_stop, type=input.float) //*********** // RSI //*********** // Calculate RSI up = rma(max(change(src), 0), rsi_length) down = rma(-min(change(src), 0), rsi_length) rsi = (down == 0 ? 100 : (up == 0 ? 0 : 100-100/(1+up/down))) //*********** // Moving averages //*********** slow_ma = (ma_choice == "SMA" ? sma(close, slow_ma_length) : ema(close, slow_ma_length)) fast_ma = (ma_choice == "SMA" ? sma(close, fast_ma_length) : ema(close, fast_ma_length)) // Show the moving averages plot(slow_ma, color=color.white, title="Slow MA") plot(fast_ma, color=color.yellow, title="Fast MA") //*********** // Strategy //*********** if true // Determine the entry conditions (only market entry and market exit conditions) // Long position ConditionEntryL := (filter == true ? (fast_ma > slow_ma and close > slow_ma and rsi < oversold_threshold) : (fast_ma > slow_ma and rsi < oversold_threshold)) // Short position ConditionEntryS := (filter == true ? (fast_ma < slow_ma and close < slow_ma and rsi > overbought_threshold) : (fast_ma < slow_ma and rsi > overbought_threshold)) // Calculate the trailing stop ts_calc = close * (1/tick) * ts_rate * 0.01 // Submit the entry orders and the exit orders // Long position if ConditionEntryL strategy.entry("RSI Long", strategy.long) // Exit from a long position strategy.exit("Exit Long", "RSI Long", trail_points=0, trail_offset=ts_calc) // Short position if ConditionEntryS strategy.entry("RSI Short", strategy.short) // Exit from a short position strategy.exit("Exit Short", "RSI Short", trail_points=0, trail_offset=ts_calc) // Highlights long conditions bgcolor (ConditionEntryL ? color.navy : na, transp=60, offset=1, editable=true, title="Long position band") // Highlights short conditions bgcolor (ConditionEntryS ? color.olive : na, transp=60, offset=1, editable=true, title="Short position band")