এই কৌশলটি ট্রেডিং সংকেত তৈরি করতে এবং দুটি ইতিবাচকভাবে সম্পর্কিত সম্পদ এমসিএল এবং ওয়াইজি এর মধ্যে জোড়া ট্রেডিং বাস্তবায়নের জন্য বোলিংজার ব্যান্ড ব্রেকআউট ব্যবহার করে। এটি দীর্ঘ এমসিএল এবং সংক্ষিপ্ত ওয়াইজি যায় যখন এমসিএল মূল্য উপরের ব্যান্ডকে স্পর্শ করে এবং কম এমসিএল এবং দীর্ঘ ওয়াইজি যায় যখন এমসিএল মূল্য নিম্ন ব্যান্ডকে স্পর্শ করে, দামের প্রবণতা বরাবর বাণিজ্য করতে।
প্রথমত, কৌশলটি একটি নির্দিষ্ট সময়ের মধ্যে বন্ধের দামের উপর ভিত্তি করে এসএমএ লাইন এবং স্ট্যাডডিভ গণনা করে। তারপর এটি বোলিঞ্জার ব্যান্ডের উপরের এবং নীচের ব্যান্ডগুলি গঠনের জন্য এসএমএর উপরে এবং নীচে একটি অফসেট যুক্ত করে। যখন দাম উপরের ব্যান্ডটি স্পর্শ করে তখন একটি ক্রয় সংকেত উত্পন্ন হয় এবং যখন দাম নিম্ন ব্যান্ডটি স্পর্শ করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটি বোলিংজার ব্যান্ডের ব্রেকআউট ট্রেডিং লজিক ব্যবহার করে - যখন দাম উপরের ব্যান্ডের উপরে ভেঙে যায় এবং যখন দাম নীচের ব্যান্ডের নীচে ভেঙে যায় তখন লম্বা হয়। বোলিংজার ব্যান্ডগুলি বাজারের অস্থিরতার উপর ভিত্তি করে ব্যান্ডগুলির প্রস্থকে গতিশীলভাবে সামঞ্জস্য করে, যা ব্যাপ্তির সময়কালে বাজারের গোলমাল ফিল্টার করতে সহায়তা করে। স্থির চ্যানেল ব্যান্ডগুলির বিপরীতে, বোলিংজার ব্যান্ডগুলি উচ্চ অস্থিরতার সময় প্রশস্ত হয় এবং কম অস্থিরতার সময় সংকীর্ণ হয়। এটি যখন অস্থিরতা বেশি হয় তখন কিছু গোলমাল ফিল্টার করতে এবং অস্থিরতা কম হলে ছোট ব্রেকআউটগুলি ক্যাপচার করতে দেয়।
এটি দুটি ইতিবাচকভাবে সংশ্লিষ্ট সম্পদ এমসিএল এবং ওয়াইজি এর মধ্যে জোড়া বাণিজ্য বাস্তবায়ন করে। যখন এমসিএল উপরের ব্যান্ডের উপরে ভেঙে যায়, তখন এটি দেখায় যে এমসিএল একটি আপট্রেন্ডে রয়েছে। কৌশলটি দীর্ঘ এমসিএল এবং সংক্ষিপ্ত ওয়াইজি যায় - তাদের দামের পার্থক্য থেকে উপকৃত হওয়ার জন্য শক্তিশালী সম্পদটি কেনা এবং দুর্বলটি বিক্রি করে।
প্যারামিটারগুলিকে অনুকূল করে তুলতে, শক্তিশালী সম্পর্ক এবং তরলতার সাথে সম্পদ নির্বাচন করতে, যথাযথ স্টপ লস সেট করতে ইত্যাদি ঝুঁকি হ্রাস করা যেতে পারে।
সামগ্রিকভাবে কৌশলটি সহজ এবং সরল, বলিংজার ব্যান্ডগুলির সাথে প্রবণতা ক্যাপচার করে এবং জোড়া ট্রেডিং থেকে আলফা অর্জন করে। তবে প্যারামিটার টিউনিং, স্টপ লস, এবং জোড়া নির্বাচনে উন্নতির সুযোগ রয়েছে। প্যারামিটার, ট্রেডিং যানবাহন, প্রবণতা ফিল্টার ইত্যাদির আরও পরীক্ষা কৌশল কর্মক্ষমতা উন্নত করতে পারে।
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h 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/ // © shark792 //@version=5 // 1. Define strategy settings strategy(title="MCL-YG Pair Trading Strategy", overlay=true, pyramiding=0, initial_capital=10000, commission_type=strategy.commission.cash_per_order, commission_value=4, slippage=2) smaLength = input.int(title="SMA Length", defval=20) stdLength = input.int(title="StdDev Length", defval=20) ubOffset = input.float(title="Upper Band Offset", defval=1, step=0.5) lbOffset = input.float(title="Lower Band Offset", defval=1, step=0.5) usePosSize = input.bool(title="Use Position Sizing?", defval=true) riskPerc = input.float(title="Risk %", defval=0.5, step=0.25) // 2. Calculate strategy values smaValue = ta.sma(close, smaLength) stdDev = ta.stdev(close, stdLength) upperBand = smaValue + (stdDev * ubOffset) lowerBand = smaValue - (stdDev * lbOffset) riskEquity = (riskPerc / 100) * strategy.equity atrCurrency = (ta.atr(20) * syminfo.pointvalue) posSize = usePosSize ? math.floor(riskEquity / atrCurrency) : 1 // 3. Output strategy data plot(series=smaValue, title="SMA", color=color.teal) plot(series=upperBand, title="UB", color=color.green, linewidth=2) plot(series=lowerBand, title="LB", color=color.red, linewidth=2) // 4. Determine long trading conditions enterLong = ta.crossover(close, upperBand) exitLong = ta.crossunder(close, smaValue) // 5. Code short trading conditions enterShort = ta.crossunder(close, lowerBand) exitShort = ta.crossover(close, smaValue) // 6. Submit entry orders if enterLong strategy.entry(id="EL", direction=strategy.long, qty=posSize) if enterShort strategy.entry(id="ES", direction=strategy.short, qty=posSize) // 7. Submit exit orders strategy.close(id="EL", when=exitLong) strategy.close(id="ES", when=exitShort)