মোমেন্টাম ফিল্টার করা মুভিং এভারেজ কৌশল


সৃষ্টির তারিখ: 2023-12-12 12:35:05 অবশেষে সংশোধন করুন: 2023-12-12 12:35:05
অনুলিপি: 0 ক্লিকের সংখ্যা: 412

মোমেন্টাম ফিল্টার করা মুভিং এভারেজ কৌশল

ওভারভিউ

এটি একটি চলমান গড় ট্রেডিং কৌশল যা গতিশীল ফিল্টারিং প্রযুক্তি ব্যবহার করে নির্মিত। এটি মূল্যের পরিবর্তনের থ্রেশহোল্ড সেট করে ছোট দামের ওঠানামা ফিল্টার করে এবং কেবলমাত্র বড় দামের পরিবর্তনের অংশগ্রহণের জন্য নির্বাচন করে যা কৌশলটির স্থায়িত্ব বাড়ায়।

কৌশল নীতি

এই কৌশলটির কেন্দ্রীয় সূচকটি হল গতিশীলতা ফিল্টার করা চ্যান্ডে ডায়নামিক স্লাইডিং সূচক (CMO) । চ্যান্ডে ডায়নামিক স্লাইডিং সূচকটি গতিশীলতার সূচকগুলির মধ্যে একটি, যা খালি গতির পরিমাপ করার জন্য খালি গতির সমষ্টি এবং দামের পতনের পার্থক্যের সমষ্টি গণনা করে। এই কৌশলটি এটির উন্নতি করেছে, একটি দামের পরিবর্তনের ন্যূনতম প্যারামিটার ফিল্টার সেট করে, কেবলমাত্র যখন দামের পরিবর্তন এই প্যারামিটার অতিক্রম করে তখনই সিএমওর গণনাতে অংশ নেয়। এটি বাজারে প্রচুর পরিমাণে ছোট ওঠানামা ফিল্টার করে, সূচকটিকে আরও স্থিতিশীল করে তোলে।

সূচক গণনার উপর ভিত্তি করে, এটি আপলাইন টপব্যান্ড এবং ডাউনলাইন লোব্যান্ড সেট করে, যখন সূচকটি এই দুটি লাইন অতিক্রম করে তখন একটি লেনদেনের সংকেত উত্পন্ন হয়। অবশেষে, বিপরীত ইনপুট প্যারামিটার বিপরীতটি মূল সংকেতকে বিপরীত করতে পারে, বিপরীত ক্রিয়াকলাপটি সম্পাদন করতে পারে।

সামর্থ্য বিশ্লেষণ

এটি একটি খুব স্থিতিশীল এবং নির্ভরযোগ্য প্রবণতা ট্র্যাকিং কৌশল, যা গতিশীল ফিল্টারিং প্রযুক্তির কারণে কার্যকরভাবে বাজার শব্দকে ফিল্টার করে এবং বেনিফিট হওয়া থেকে রক্ষা করে। কৌশল পরামিতিগুলি অপ্টিমাইজ করার জন্য প্রচুর জায়গা রয়েছে, ফিল্টার, টপব্যান্ড, লোব্যান্ড ইত্যাদির মতো প্যারামিটারগুলি সামঞ্জস্য করে কৌশল সূচকগুলি অপ্টিমাইজ করা যেতে পারে। এবং এটির বিপরীত ট্রেডিং বৈশিষ্ট্য রয়েছে, যা বিভিন্ন বাজারের পরিবেশের সাথে নমনীয়ভাবে মানিয়ে নিতে পারে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটি মূলত ট্রেন্ড ট্র্যাকিংয়ের উপর ভিত্তি করে তৈরি করা হয়েছে, তাই এটি ভুল সংকেত এবং ক্ষতির দিকে পরিচালিত করে। এছাড়াও, প্যারামিটার অপ্টিমাইজেশনের ভুলটি ট্রেডিং ফ্রিকোয়েন্সি বা সংকেত অস্থিরতার দিকে পরিচালিত করতে পারে। অবশেষে, বিপরীত ট্রেডিং প্যারামিটারগুলির ভুল ব্যবহার অপ্রয়োজনীয় ক্ষতির দিকে পরিচালিত করতে পারে।

এই ঝুঁকিগুলি হ্রাস করার জন্য, প্যারামিটারগুলি যুক্তিসঙ্গতভাবে অনুকূলিতকরণ করা উচিত যাতে সংকেতগুলি আরও স্থিতিশীল এবং নির্ভরযোগ্য হয়; বাজার পুনরুদ্ধার করার সময় এই কৌশলটি ব্যবহার করা এড়িয়ে চলুন এবং আরও উপযুক্ত কৌশলগত সরঞ্জাম চয়ন করুন; প্যারামিটার অপ্টিমাইজেশন দুর্বল হলে সতর্কতার সাথে বিপরীত ট্রেডিং ফাংশনটি ব্যবহার করা উচিত।

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. ফিল্টার প্যারামিটার মানগুলিকে অপ্টিমাইজ করুন যাতে বাজারের শব্দগুলি ফিল্টার করা যায় এবং নিশ্চিত করা যায় যে ট্রেডিং ফ্রিকোয়েন্সি খুব কম নয়।

  2. টপব্যান্ড এবং লোব্যান্ডের প্যারামিটার ব্যাপ্তিগুলিকে অপ্টিমাইজ করুন যাতে এটি বাজারের ওঠানামার সাথে মেলে এবং ভুল সংকেতগুলি এড়াতে পারে।

  3. ওয়াক ফরওয়ার্ড অ্যানালাইসিসের মতো পদ্ধতি ব্যবহার করে প্যারামিটারগুলিকে গতিশীলভাবে অপ্টিমাইজ করুন, যাতে কৌশলগত প্যারামিটারগুলি বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নিতে পারে।

  4. স্টপ লস স্টপ লজিক যুক্ত করুন এবং ক্ষতি নিয়ন্ত্রণের জন্য যুক্তিসঙ্গত স্টপ পয়েন্ট সেট করুন।

  5. অন্যান্য সূচক যেমন MACD, KD ইত্যাদির সাথে মিশ্রিত হয়ে ট্রেডিংয়ের ভুলগুলি এড়াতে ট্রেন্ডিং বাজার থেকে দূরে থাকুন।

সারসংক্ষেপ

এটি একটি খুব ব্যবহারিক প্রবণতা ট্র্যাকিং কৌশল। এটি গতিশীল ফিল্টারিং প্রযুক্তি ব্যবহার করে, যা কার্যকরভাবে বাজারের শব্দকে দমন করতে পারে এবং সংকেতকে আরও পরিষ্কার এবং নির্ভরযোগ্য করে তোলে। এটি প্যারামিটার অপ্টিমাইজেশন এবং লজিকাল অপ্টিমাইজেশনের মাধ্যমে একটি নির্ভরযোগ্য স্থিতিশীল পরিমাণে ট্রেডিংয়ের সরঞ্জাম হিসাবে প্রশিক্ষণ দেওয়া যেতে পারে। তবে বাজারের সমন্বয় এবং প্যারামিটার অপ্টিমাইজেশনের ভুল ব্যবহারের ঝুঁকি এড়াতে সতর্কতা অবলম্বন করা উচিত। সামগ্রিকভাবে, এটি একটি খুব সম্ভাব্য কৌশল টেমপ্লেট।

কৌশল সোর্স কোড
/*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"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/03/2017
// This indicator plots a CMO which ignores price changes which are less 
// than a threshold value. CMO was developed by Tushar Chande. A scientist, 
// an inventor, and a respected trading system developer, Mr. Chande developed 
// the CMO to capture what he calls "pure momentum". For more definitive 
// information on the CMO and other indicators we recommend the book The New 
// Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented 
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change, etc. 
// It is most closely related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly 
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
// movements in price are not hidden. Once calculated, smoothing can be applied to the 
// CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
// changes in net momentum using the 0 level. The bounded scale also allows you to 
// conveniently compare values across different securities.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

strategy(title="CMOfilt", shorttitle="CMOfilt")
Length = input(9, minval=1)
Filter = input(3, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xMom = close - close[1]
xMomAbs = abs(close - close[1])
xMomFilter = fFilter(xMom, xMomAbs, Filter)
xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter)
nSum = sum(xMomFilter, Length)
nAbsSum = sum(xMomAbsFilter, Length)
nRes =   100 * nSum / nAbsSum
pos = iff(nRes > TopBand, 1,
	     iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1 )
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="CMOfilt")