এই কৌশলটি বোলিংজার ব্যান্ড এবং আপেক্ষিক শক্তি সূচক (আরএসআই) একত্রিত করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে। যখন দাম নিম্ন বোলিংজার ব্যান্ডের নীচে ভেঙে যায় এবং আরএসআই একটি নির্দিষ্ট নিম্ন স্তরের নীচে থাকে তখন একটি ক্রয় সংকেত সক্রিয় হয়। যখন দাম উপরের বোলিংজার ব্যান্ডের উপরে ভেঙে যায় এবং আরএসআই একটি নির্দিষ্ট উপরের স্তরের উপরে থাকে তখন একটি বিক্রয় সংকেত সক্রিয় হয়। উপরন্তু, কৌশলটি ঘন ঘন ট্রেডিং এড়াতে একটি ক্রয় ব্যবধান প্যারামিটার প্রবর্তন করে, যা পিরামিড অবস্থান পরিচালনার পক্ষে সহায়ক।
এই কৌশলটি বুদ্ধিমানভাবে দুটি ক্লাসিকাল প্রযুক্তিগত সূচককে একত্রিত করেঃ বোলিংজার ব্যান্ড এবং আরএসআই। এটি ট্রেন্ডিং সুযোগগুলি ক্যাপচার করার জন্য একটি দ্বৈত নিশ্চিতকরণ প্রক্রিয়া ব্যবহার করে। একই সাথে, কৌশলটি রিটার্নগুলি অনুকূল করার সময় ঝুঁকি নিয়ন্ত্রণের জন্য একটি পিরামিড অবস্থান-নির্মাণ পদ্ধতি প্রবর্তন করে। তবে, কৌশলটি প্রবণতা অব্যাহত রাখার ঝুঁকি, পরামিতি অপ্টিমাইজেশান ঝুঁকি এবং ব্ল্যাক সোয়ান ইভেন্টের ঝুঁকির মতো ঝুঁকিগুলির মুখোমুখি হয়। ভবিষ্যতে, স্টপ-লস এবং লভ্যাংশ গ্রহণ, গতিশীল পরামিতি অপ্টিমাইজেশান এবং অন্যান্য সূচকগুলির সাথে একত্রিত করে কৌশলটি আরও অনুকূল করা যেতে পারে। সামগ্রিকভাবে, এটি একটি স্পষ্ট এবং যৌক্তিকভাবে কঠোর পরিমাণগত ট্রেডিং কৌশল যা আরও অনুসন্ধান এবং অনুশীলনের মূল্যবান।
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 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/ //@version=4 strategy(overlay=true, shorttitle="cakes'Strategy For RSI", default_qty_type = strategy.percent_of_equity, initial_capital = 100000, default_qty_value = 100, pyramiding = 0, title="cakes'Strategy", currency = 'USD') ////////// ** Inputs ** ////////// // Stoploss and Profits Inputs v1 = input(true, title="GoTradePlz") ////////// ** Indicators ** ////////// // RSI len = 14 src = close up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) // Bollinger Bands length1 = 20 src1 = close mult1 = 1.0 basis1 = sma(src1, length1) dev1 = mult1 * stdev(src1, length1) upper1 = basis1 + dev1 lower1 = basis1 - dev1 ////////// ** Triggers and Guards ** ////////// // 输入 RSILowerLevel1 = input(30, title="RSI 下限水平") RSIUpperLevel1 = input(70, title="RSI 上限水平") // 购买间隔 buyInterval = input(5, title="购买间隔(K线数量)") // 跟踪购买间隔 var int lastBuyBar = na lastBuyBar := na(lastBuyBar[1]) ? bar_index : lastBuyBar // 策略信号 BBBuyTrigger1 = close < lower1 BBSellTrigger1 = close > upper1 rsiBuyGuard1 = rsi < RSILowerLevel1 rsiSellGuard1 = rsi > RSIUpperLevel1 Buy_1 = BBBuyTrigger1 and rsiBuyGuard1 and (bar_index - lastBuyBar) >= buyInterval Sell_1 = BBSellTrigger1 and rsiSellGuard1 if (Buy_1) lastBuyBar := bar_index strategy.entry("Long", strategy.long, when = Buy_1, alert_message = "Buy Signal!") strategy.close("Long", when = Sell_1, alert_message = "Sell Signal!")