ADX, BB %B, AO এবং EMA এর উপর ভিত্তি করে চারটি ফ্যাক্টর মম্পটম ট্র্যাকিং ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-১১ 16:24:11
ট্যাগঃ

img

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

##কৌশল নীতি
কৌশলটি প্রবেশ এবং প্রস্থান পয়েন্ট নির্ধারণের জন্য চারটি ভিন্ন প্রযুক্তিগত সূচক ব্যবহার করে। নির্দিষ্ট যুক্তি নিম্নরূপঃ

লং এন্ট্রি শর্তঃ ৫ দিনের ইএমএ ২১ দিনের ইএমএ অতিক্রম করে, ৫০ দিনের ইএমএ ২০০ দিনের ইএমএ অতিক্রম করে, বিবি %বি সেট ওভারকোপড লাইনের চেয়ে বড়, এও সেট ইতিবাচক মানের চেয়ে বড় এবং এডিএক্স সেট মানের চেয়ে বড়।

সংক্ষিপ্ত এন্ট্রি শর্তঃ ৫ দিনের EMA ২১ দিনের EMA এর নিচে, ৫০ দিনের EMA ২০০ দিনের EMA এর নিচে, BB %B সেট ওভারসোল্ড লাইনের চেয়ে কম, AO সেট নেগেটিভ মানের চেয়ে কম এবং ADX সেট মানের চেয়ে বড়।

##সুবিধার বিশ্লেষণ কৌশলটি ট্রেন্ডের দিকনির্দেশ এবং শেয়ারের আপেক্ষিক শক্তি নির্ধারণের জন্য একাধিক সূচককে একত্রিত করে, যা কার্যকরভাবে মিথ্যা ব্রেকআউটগুলি ফিল্টার করতে পারে। নির্দিষ্ট সুবিধাগুলি হলঃ

  1. এডিএক্স সূচক কার্যকরভাবে ট্রেন্ডের অস্তিত্ব এবং শক্তি নির্ধারণ করতে পারে, একটি শক বাজারে ঘন ঘন খোলার এড়ানো।

  2. BB %B সূচকটি মূল্যায়ন করে যে, পৃথক স্টকগুলি উচ্চ অথবা নিম্ন স্তরে রয়েছে, যা কার্যকরভাবে উচ্চতা এবং বিক্রয় নিম্নতা অনুসরণ করা এড়াতে পারে।

  3. এও সূচকটি নির্ধারণ করে যে ক্রয়ের সময় বিরতির কার্যকারিতা নিশ্চিত করার জন্য তুলনামূলকভাবে শক্তিশালী গতি সমর্থন রয়েছে কিনা।

  4. ইএমএ সূচকের গোল্ডেন ক্রস/ডেড ক্রস এবং বাজারের প্রধান দিকের মূল্যায়ন প্রবণতার বিরুদ্ধে পজিশন খোলার থেকে বিরত থাকে।

সংক্ষেপে, এই কৌশলটি কার্যকরভাবে ট্রেডিং ঝুঁকি নিয়ন্ত্রণ করতে পারে এবং বাজারে শক্তিশালী স্টকগুলি ট্র্যাক করতে পারে।

##ঝুঁকি বিশ্লেষণ যদিও কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য একাধিক সূচক ব্যবহার করে, তবুও কিছু ঝুঁকি রয়েছেঃ

  1. একাধিক এক্সপোনেন্সিয়াল সূচকগুলির সংমিশ্রণটি পরামিতি সামঞ্জস্যের জন্য সংবেদনশীল। অনুপযুক্ত পরামিতি সংমিশ্রণগুলি পছন্দসই প্রভাব অর্জন করতে ব্যর্থ হতে পারে।

  2. অত্যধিক গতির অনুসরণ বাজারের প্রকৃত বিপরীতমুখী পয়েন্টগুলি মিস করতে পারে। লাভ এবং ক্ষতিগুলি সময়মতো নিয়ন্ত্রণ করা উচিত।

  3. EMA এর মতো সূচকগুলির একটি বিলম্বিত প্রকৃতি রয়েছে এবং সময়মতো হঠাৎ ঘটনাগুলির প্রভাব প্রতিফলিত করতে সক্ষম নাও হতে পারে।

  4. বড় হঠাৎ ঘটনাগুলি সূচকগুলির বিচ্যুতির কারণ হতে পারে। মৌলিক বিশ্লেষণকে একত্রিত করা উচিত এবং প্রয়োজন হলে কৌশলটি সাময়িকভাবে বন্ধ করা যেতে পারে।

##অপ্টিমাইজেশন দিকনির্দেশনা কৌশলটি বিভিন্ন দিক থেকেও অপ্টিমাইজ করা যেতে পারেঃ

  1. মেশিন লার্নিং ব্যবহার করে সর্বোত্তম প্যারামিটার সংমিশ্রণ খুঁজে বের করুন।

  2. অন্যান্য সূচক যোগ করুন যা প্রবণতা নির্ধারণ করে, যেমন সিসিআই এবং এমএসিডি, একটি সূচক সংমিশ্রণ গঠনের জন্য যা মূল্যায়নের নির্ভুলতা উন্নত করে।

  3. একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ-লস কৌশল যুক্ত করুন।

  4. অত্যধিক লোভ এড়ানোর জন্য অপেক্ষা করার সময় নির্ধারণ করুন।

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


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//ADX + BB %B + AO + EMA

strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000)
take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100)
stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100)
bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100)
bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100)
ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2)
adx_value = input(title="ADX", type=input.integer, defval=15)

startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

ema5 = ema(close, 5)
ema21 = ema(close, 21)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

//BB %B
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)

//Awesome Oscillator
ao = sma(hl2,5) - sma(hl2,34)

// ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value
short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value

plot(ema5, color=color.blue)
plot(ema21, color=color.aqua)
plot(ema50, color=color.purple)
plot(ema200, color=color.red)
bgcolor(color=long_strategy ? color.green : na, transp=80)
bgcolor(color=short_strategy ? color.purple : na, transp=80)
    
if inDateRange and long_strategy
    strategy.entry("long", strategy.long)
    strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100)
if inDateRange and short_strategy
    strategy.entry("short", strategy.short)
    strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)


আরো