এই কৌশলটি কমোডিটি চ্যানেল সূচক (সিসিআই) সূচকের উপর ভিত্তি করে এবং প্রবণতা বিপরীত সময় নির্ধারণের জন্য গতিশীল অভিযোজিত এন্ট্রি স্তরগুলি ব্যবহার করে, মুনাফা লক করার জন্য একটি ট্রেলিং স্টপ লস ব্যবহার করে। কৌশল নাম
মূল সূচকটি হ'ল সিসিআই, যা ওভারসোল্ড জোনগুলি স্পট করতে ব্যবহৃত হয়, তাই প্রবণতা বিপরীত হওয়ার সুযোগের ইঙ্গিত দেয়। এছাড়াও, সিসিআই ওভারসোল্ড জোনগুলির মাত্রা বিভিন্ন যন্ত্র এবং বাজারের পরিবেশে পরিবর্তিত হয়। অতএব, এই কৌশলটি একটি "দূরদর্শী" পদ্ধতি গ্রহণ করে, নির্দিষ্ট পিরিয়ডের মধ্যে সর্বনিম্ন সিসিআই স্তরগুলি পরীক্ষা করে, গতিশীলভাবে সিসিআই কিনতে প্রবেশের স্তর সেট করে। যদি গত ৪০ দিনের মধ্যে সর্বনিম্ন সিসিআই -৯০ এর উপরে থাকে তবে -৯০ নতুন ওভারসোল্ড জোনের থ্রেশহোল্ড হয়ে যায়, ইত্যাদি। এই অভিযোজক নকশাটি বিভিন্ন বাজারের অবস্থার সাথে গতিশীলভাবে ফিট করার অনুমতি দেয়, শক্তিশালী ডাউনট্রেন্ডের সময় আরও সংরক্ষণশীল এন্ট্রিগুলি অনুসরণ করে এবং পরিসীমা-সীমাবদ্ধ বাজারে আরও আক্রমণাত্মক এন্ট্রিগুলি।
বিশেষত, ডিফল্ট সিসিআই ক্রয় সংকেত স্তরটি -১৪৫। কৌশলটি তারপরে গত ৪০ দিন, ৫০ দিন ইত্যাদির সর্বনিম্ন সিসিআই রিডিংগুলি পরীক্ষা করে। যদি সর্বনিম্ন সিসিআই পরবর্তী স্তরের উপরে থাকে যেমন -৯০, তবে -৯০ নতুন এন্ট্রি স্তর হয়ে যায়। এবং তাই, এন্ট্রি স্তরটি -১৪৫ / -৯০ / -৭০ / -৫০ / -৪ / ০ / +২৫ / +৫০ / +৭০ এর মধ্যে গতিশীলভাবে স্যুইচ করতে পারে। যখন সিসিআই সংশ্লিষ্ট স্তরের নীচে পড়ে তখন একটি দীর্ঘ এন্ট্রি সংকেত ট্রিগার করা হয়।
উপরন্তু, একটি ট্রেলিং স্টপ লস মুনাফা লক করার জন্য ব্যবহৃত হয়, স্টপ স্তর মূল্যের সাথে উপরে চলে যায়।
স্থির এন্ট্রি স্তরের তুলনায়, এই ধরনের গতিশীল নকশা অনুকূলিত এন্ট্রি টাইমিং সক্ষম করে। শক্তিশালী ডাউনট্রেন্ডের সময় আরও সংরক্ষণশীল এন্ট্রিগুলি অনুসরণ করা ঝুঁকি হ্রাস করে, যখন ব্যাপ্তি-সীমাবদ্ধ বাজারের সময় কম এন্ট্রিগুলি আরও সুযোগগুলি ক্যাপচার করার অনুমতি দেয়। এটি কৌশলটির অভিযোজনযোগ্যতা বাড়ায়।
সিসিআই নিজেই অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তর চিহ্নিত করার জন্য একটি পরিষ্কার এবং নির্ভরযোগ্য সূচক। সিসিআই ভিত্তিক প্রবণতা বিপরীত মূল্যায়নের যুক্তি প্রমাণিত। গতিশীল এন্ট্রি ডিজাইনের সাথে মিলিত, এই কৌশলটির সামগ্রিক সুবিধা উল্লেখযোগ্য।
প্রবণতা বিপরীত পয়েন্টগুলি স্পট করার যুক্তিতে কিছু পিছিয়ে থাকা বৈশিষ্ট্য রয়েছে। হঠাৎ দামের উত্থান বা ক্র্যাশের সময় এন্ট্রি টাইমিং সঠিক নাও হতে পারে। এছাড়াও, অভিযোজনশীল প্রক্রিয়াটি বর্তমান বাজারের পরিবেশে পুরোপুরি ফিট নাও হতে পারে, যা অপ্টিমাল এন্ট্রিগুলির দিকে পরিচালিত করে। অবশেষে, কমোডিটি বাজারে উচ্চতর ওঠানামা যদি স্টপ লস পরামিতিগুলি সঠিকভাবে সেট না করা হয় তবে বিশাল ক্ষতি হতে পারে।
মূলত সিসিআই নিজেই, এন্ট্রি লেভেল ডিজাইন এবং স্টপ লস পরামিতিগুলি উন্নত করা যেতে পারে। নির্দিষ্ট যন্ত্রগুলির জন্য সর্বোত্তম পরামিতিগুলি সঠিকভাবে সনাক্ত করা কৌশলটির কার্যকারিতা উন্নত করতে পারে।
এই কৌশলটি ওভারবয়ড / ওভারসোল্ড অঞ্চলগুলি স্পট করার জন্য সিসিআই ব্যবহার করার যুক্তি এবং প্রবণতা বিপরীতমুখী ক্যাপচার করার জন্য গতিশীল অভিযোজনশীল এন্ট্রি লেভেল ডিজাইনকে একত্রিত করে। স্থির পরামিতিগুলির তুলনায়, গতিশীল এন্ট্রি স্তরগুলি উল্লেখযোগ্যভাবে অভিযোজনযোগ্যতা উন্নত করে। ট্রেলিং স্টপ লসের সাথে এই এন্ট্রি বিপরীতমুখী ক্যাপচার মডেলটি শক্তিশালী গতির সাথে সুযোগগুলি দখল করতে এবং সময়মতো ক্ষতি কমাতে পারে। সঠিকভাবে কনফিগার করা পরামিতিগুলির সাথে, এই কৌশলটি কার্যক্ষমতা এবং দৃust়তা প্রদর্শন করে। আরও স্থিতিশীলতা এবং লাভজনকতা অর্জনের জন্য সিসিআই পরামিতি এবং এন্ট্রি লেভেল নিয়মগুলি অপ্টিমাইজ করে আরও উন্নতি করা যেতে পারে।
/*backtest start: 2023-11-20 00:00:00 end: 2023-12-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Extended Adaptive CCI Entry Strategy for Commodities", shorttitle="Ext_Adaptive_CCI_Entry_Com", overlay=true) // Inputs cciLength = input(20, title="CCI Period") defaultCCIEntryOversold = input(-145, title="Default CCI Entry Oversold Level") adaptiveCCIEntryLevel90 = input(-90, title="Adaptive CCI Entry Level for 40 Days") adaptiveCCIEntryLevel70_50Days = input(-70, title="Adaptive CCI Entry Level for 50 Days") adaptiveCCIEntryLevel50 = input(-50, title="Adaptive CCI Entry Level for 60 Days") adaptiveCCIEntryLevel4 = input(-4, title="Adaptive CCI Entry Level for 90 Days") adaptiveCCIEntryLevel0 = input(0, title="Adaptive CCI Entry Level for 120 Days") adaptiveCCIEntryLevel25 = input(25, title="Adaptive CCI Entry Level for 140 Days") adaptiveCCIEntryLevel50_160Days = input(50, title="Adaptive CCI Entry Level for 160 Days") adaptiveCCIEntryLevel70_180Days = input(70, title="Adaptive CCI Entry Level for 180 Days") lookback40 = input(40, title="Lookback Period for -90 Level") lookback50 = input(50, title="Lookback Period for -70 Level") lookback60 = input(60, title="Lookback Period for -50 Level") lookback90 = input(90, title="Lookback Period for -4 Level") lookback120 = input(120, title="Lookback Period for 0 Level") lookback140 = input(140, title="Lookback Period for +25 Level") lookback160 = input(160, title="Lookback Period for +50 Level") lookback180 = input(180, title="Lookback Period for +70 Level") // Indicator Calculation cci = ta.cci(close, cciLength) // Determine adaptive entry level based on lookback periods var float entryLevel = defaultCCIEntryOversold // Initialize with the default level if ta.lowest(cci, lookback40) > adaptiveCCIEntryLevel90 entryLevel := adaptiveCCIEntryLevel90 if ta.lowest(cci, lookback50) > adaptiveCCIEntryLevel70_50Days entryLevel := adaptiveCCIEntryLevel70_50Days if ta.lowest(cci, lookback60) > adaptiveCCIEntryLevel50 entryLevel := adaptiveCCIEntryLevel50 if ta.lowest(cci, lookback90) > adaptiveCCIEntryLevel4 entryLevel := adaptiveCCIEntryLevel4 if ta.lowest(cci, lookback120) > adaptiveCCIEntryLevel0 entryLevel := adaptiveCCIEntryLevel0 if ta.lowest(cci, lookback140) > adaptiveCCIEntryLevel25 entryLevel := adaptiveCCIEntryLevel25 if ta.lowest(cci, lookback160) > adaptiveCCIEntryLevel50_160Days entryLevel := adaptiveCCIEntryLevel50_160Days if ta.lowest(cci, lookback180) > adaptiveCCIEntryLevel70_180Days entryLevel := adaptiveCCIEntryLevel70_180Days // Entry Condition longCondition = cci < entryLevel // Entry and Exit if (longCondition) strategy.entry("Long", strategy.long, qty=1) alert("Long entry executed at " + str.tostring(close), alert.freq_once_per_bar) trailOffset = input(10.0, title="Trailing Stop Offset in USD") strategy.exit("Trailing Stop", "Long", trail_offset = trailOffset, trail_price = close) if (close < entryLevel - trailOffset) alert("Long position closed at " + str.tostring(close), alert.freq_once_per_bar) // Plotting plot(series=cci, color=color.purple, title="CCI") hline(price=defaultCCIEntryOversold, color=color.red, title="Default CCI Entry Oversold Level") hline(price=adaptiveCCIEntryLevel90, color=color.orange, title="CCI -90 Level (40 Days)") hline(price=adaptiveCCIEntryLevel70_50Days, color=color.yellow, title="CCI -70 Level (50 Days)") hline(price=adaptiveCCIEntryLevel50, color=color.green, title="CCI -50 Level (60 Days)") hline(price=adaptiveCCIEntryLevel4, color=color.blue, title="CCI -4 Level (90 Days)") hline(price=adaptiveCCIEntryLevel0, color=color.purple, title="CCI 0 Level (120 Days)") hline(price=adaptiveCCIEntryLevel25, color=color.aqua, title="CCI +25 Level (140 Days)") hline(price=adaptiveCCIEntryLevel50_160Days, color=color.black, title="CCI +50 Level (160 Days)") hline(price=adaptiveCCIEntryLevel70_180Days, color=color.gray, title="CCI +70 Level (180 Days)")