এই কৌশলটি চ্যান্ডে মম্পটাম অ্যাসিললেটর (সিএমও) এর উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম। এটি ঝুঁকি পরিচালনার জন্য অবস্থান ধরে রাখার সময়সীমা অন্তর্ভুক্ত করার সময় ওভারসোল্ড অঞ্চলে কেনার সুযোগ এবং ওভারসোল্ড অঞ্চলে বিক্রয় সুযোগগুলি সন্ধান করে। এই পদ্ধতিটি রেঞ্জিং মার্কেটে ঘন ঘন ট্রেডিং এড়ানোর সময় মূল্য বিপরীতগুলি ক্যাপচার করার অনুমতি দেয়।
কৌশলটির মূলটি বাজারের গতিবেগ পরিমাপ করতে সিএমও সূচক ব্যবহার করে। সিএমও তাদের যোগফলের তুলনায় ঊর্ধ্বমুখী এবং নিম্নমুখী আন্দোলনের পার্থক্যের অনুপাত গণনা করে -১০০ থেকে ১০০ এর মধ্যে একটি দোলক তৈরি করে। সিএমও -৫০ এর নীচে পড়লে সিস্টেমটি একটি দীর্ঘ সংকেত তৈরি করে, যা একটি ওভারসোল্ড মার্কেট শর্তকে নির্দেশ করে। সিএমও ৫০ ছাড়িয়ে গেলে বা হোল্ডিং পিরিয়ড ৫ টি চক্র অতিক্রম করলে অবস্থানগুলি বন্ধ হয়ে যায়। এই নকশাটি সময়মত মুনাফা গ্রহণ এবং স্টপ-লস ব্যবস্থা বাস্তবায়নের সময় মূল্য রিবাউন্ডের সুযোগগুলি ক্যাপচার করে।
এই গতি-ভিত্তিক প্রবণতা অনুসরণকারী কৌশলটি সিএমও সূচক ব্যবহার করে বাজারের অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয়ের সুযোগগুলি ক্যাপচার করে। কৌশল নকশাটি যুক্তিসঙ্গত, পরিষ্কার ট্রেডিং নিয়ম এবং ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়া সহ। যদিও অন্তর্নিহিত ঝুঁকি রয়েছে, অপ্টিমাইজেশন কৌশল স্থিতিশীলতা এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে। কৌশলটি অত্যন্ত অস্থির বাজারগুলির জন্য বিশেষভাবে উপযুক্ত এবং স্পষ্ট প্রবণতা পর্যায়ে ভাল রিটার্ন অর্জন করতে পারে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chande Momentum Oscillator Strategy", overlay=false) // Input for the CMO period cmoPeriod = input.int(9, minval=1, title="CMO Period") // Calculate price changes priceChange = ta.change(close) // Separate positive and negative changes up = priceChange > 0 ? priceChange : 0 down = priceChange < 0 ? -priceChange : 0 // Calculate the sum of ups and downs using a rolling window sumUp = ta.sma(up, cmoPeriod) * cmoPeriod sumDown = ta.sma(down, cmoPeriod) * cmoPeriod // Calculate the Chande Momentum Oscillator (CMO) cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown) // Define the entry and exit conditions buyCondition = cmo < -50 sellCondition1 = cmo > 50 sellCondition2 = ta.barssince(buyCondition) >= 5 // Track if we are in a long position var bool inTrade = false if (buyCondition and not inTrade) strategy.entry("Long", strategy.long) inTrade := true if (sellCondition1 or sellCondition2) strategy.close("Long") inTrade := false // Plot the Chande Momentum Oscillator plot(cmo, title="Chande Momentum Oscillator", color=color.blue) hline(-50, "Buy Threshold", color=color.green) hline(50, "Sell Threshold", color=color.red)