মাল্টি ইন্ডিকেটর শর্ত ফিল্টারিংয়ের উপর ভিত্তি করে পরিমাণগত কৌশল অনুসরণ করে একটি ইনট্রা-ডে ট্রেন্ড

লেখক:চাওঝাং, তারিখঃ 2023-12-15 15:59:37
ট্যাগঃ

img

সারসংক্ষেপ

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

নীতিমালা

এই কৌশলটির মূল মূল্যায়ন নিয়মগুলি হলঃ

  1. দামগুলি আপট্রেন্ডে রয়েছে কিনা তা বিচার করতে পিএসএআর সূচকটি ব্যবহার করুন। দামের নীচে পিএসএআর এর পতন আপট্রেন্ডের শেষ এবং নেমে যাওয়ার প্রবণতার সূচনা নির্দেশ করে।

  2. ওভারসোল্ড জোনগুলোতে ভুয়া ব্রেকআউট ফিল্টার করার জন্য RSI এর মধ্যপন্থা 50 এর উপরে থাকতে হবে।

  3. ADX এর EMA লাইনের উপরে থাকা প্রয়োজন, যা প্রবণতা বিশ্লেষণে একটি টেকসই সংকেত নির্দেশ করে।

  4. ক্রমবর্ধমান তহবিল প্রবাহকে মূল্যায়ন করে সিএমএফকে 0 এর চেয়ে বড় হতে হবে।

উপরের চারটি শর্ত পূরণ হলে ক্রয় সংকেত তৈরি করা হয়। বিক্রয় শর্তগুলি ঘটে যখন পিএসএআর দামের উপরে উঠে যায়, আরএসআই 50 এর নীচে পড়ে, এডিএক্স তার ইএমএর নীচে পড়ে এবং সিএমএফ 0 এর চেয়ে কম হয়ে যায়।

এই কৌশলটি ট্রেডিং নিয়মগুলি স্থাপন করার সময় মূল্যের প্রবণতার দিক, প্রবণতার শক্তি, অতিরিক্ত ক্রয় / oversold অবস্থা এবং তহবিল প্রবাহকে ব্যাপকভাবে বিবেচনা করে। ট্রেডিং সংকেত তৈরি করার সময় কঠোর যৌক্তিক নিয়ম নির্ধারণ করে, মিথ্যা ব্রেকআউটগুলি কার্যকরভাবে ফিল্টার করা যায় এবং উচ্চ সম্ভাব্যতা টেকসই প্রবণতা দিকগুলি ধরা যায়।

সুবিধা

এই কৌশলটির প্রধান সুবিধাগুলির মধ্যে রয়েছেঃ

  1. ট্রেডিংয়ের নিয়ম নির্ধারণে একাধিক সূচককে একত্রিত করা মিথ্যা ব্রেকআউটকে কার্যকরভাবে প্রতিরোধ করতে পারে এবং সংকেতের গুণমান নিশ্চিত করতে পারে।

  2. দ্রুত ট্রেন্ডের দিকনির্দেশনা এবং ট্র্যাকিং সনাক্ত করা বেশিরভাগ ট্রেন্ড মুনাফা অর্জন করতে সক্ষম করে।

  3. প্রক্রিয়া ফিল্টারিংয়ের শর্তগুলি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে এবং ট্র্যাকিং কার্যকারিতা নিশ্চিত করতে পারে।

  4. ট্রেন্ডের শক্তি বিবেচনা করা ট্রেডিং রেঞ্জের ঘনত্ব এড়াতে সাহায্য করে।

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

এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. একটি একক কৌশল সমাগম পোর্টফোলিও ঝুঁকি সৃষ্টি করে, যার জন্য উপযুক্ত পজিশনের আকার প্রয়োজন।

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

  3. এই মাঝারি/দীর্ঘমেয়াদী কৌশলটি স্বল্পমেয়াদী ওঠানামা দ্বারা বিঘ্নিত হতে পারে এবং স্টপ লস ঝুঁকি জড়িত।

সংশ্লিষ্ট ঝুঁকি ব্যবস্থাপনা ব্যবস্থাগুলির মধ্যে রয়েছেঃ পজিশনের আকার নির্ধারণের নিয়মগুলি অপ্টিমাইজ করা, ঝুঁকি সতর্কতা লাইন নির্ধারণ করা এবং স্টপ দূরত্ব বাড়ানো ইত্যাদি।

অপ্টিমাইজেশান নির্দেশাবলী

অপ্টিমাইজেশান স্পেসগুলির মধ্যে রয়েছেঃ

  1. মেশিন লার্নিং এর মাধ্যমে প্যারামিটার অপ্টিমাইজেশান বর্তমান স্বতন্ত্র সেটিংস দেওয়া।

  2. ঝুঁকিগুলির উপর ভিত্তি করে গতিশীলভাবে আকার নির্ধারণ করে এমন অবস্থান আকারের মডিউল যুক্ত করুন।

  3. স্টপ মেকানিজমের উন্নতি করা, যেমন ট্রেইলিং স্টপ, টাইম স্টপ বা ব্রেকআউট স্টপ।

সিদ্ধান্ত

এই কৌশলটি সূচকগুলিকে একত্রিত করে দ্রুত উদ্ভূত প্রবণতাগুলি সনাক্ত এবং ট্র্যাকিংয়ে কার্যকর প্রমাণিত হয়েছে, প্রবণতা এবং তহবিলের মতো একাধিক মাত্রার উপর ভিত্তি করে পরিমাণগত ট্রেডিং যাচাই করে। একটি বেস হিসাবে, এটি চক্র জুড়ে সূচিবদ্ধ করা যেতে পারে। প্যারামিটার টিউনিং এবং মডুলার বর্ধনের সাথে এটি একটি স্থিতিশীল মাঝারি / দীর্ঘমেয়াদী কৌশলও হয়ে উঠতে পারে।


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

//@version=4
strategy("psar+ adx + cmf + rsi Strategy", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

start = input(1.02)
increment = input(1.02)
maximum = input(1.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)

//rsi strat
length = input( 50 )
middle_RSI=input(49)
price = close
vrsi = rsi(price, length)

//cmf
lengthCMF = input(20, minval=1)
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthCMF) / sum(volume, lengthCMF)

//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)
ema_length=input(10)
ema_sig= ema(sig,ema_length)


long = not uptrend  and vrsi > middle_RSI and sig > ema_sig   and mf>0 
short= uptrend   and vrsi < middle_RSI and sig<ema_sig and mf<0

strategy.entry("long",1,when=long)
strategy.close('long',when=short)

আরো