প্যারাবলিক এসএআর ডায়নামিক ব্রেকআউট ট্রিপল এসএমএমএ কৌশল

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

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

কৌশলটি নিম্নলিখিত মূল পয়েন্টগুলির উপর ভিত্তি করেঃ

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

  2. বিভিন্ন সময়ের সাথে তিনটি এসএমএমএ লাইন সেট আপ করুন (দ্রুত লাইন 21, মাঝারি লাইন 50, ধীর লাইন 200) । যখন তিনটি লাইনই উঠছে, এটি একটি আপট্রেন্ডের সংকেত দেয়। যখন সবগুলি হ্রাস পাচ্ছে, এটি একটি ডাউনট্রেন্ডের সংকেত দেয়।

  3. এসএআর নিচে নেমে গেলে লম্বা হয়ে যায়, যখন তিনটি এসএমএমএ লাইন উঠে যায়।

  4. যখন এসএআর ফ্লিপ আপ হয় যখন তিনটি এসএমএমএ লাইন পড়ে।

  5. এসএআর-এর উপর ভিত্তি করে স্টপ লস অন্তর্ভুক্ত করা এবং প্রবেশ মূল্যের একটি নির্দিষ্ট শতাংশে মুনাফা নেওয়া।

বিশেষত, কৌশলটি প্রথমে পরীক্ষা করে যে এসএআর বর্তমান বারে দিকনির্দেশগুলি ফ্লিপ করে কিনা। যদি এসএআর এসএমএমএগুলি বাড়ার সময় উপরে থেকে নীচে ফ্লিপ করে তবে এটি দীর্ঘ হয়। যদি এসএআর এসএমএমএগুলি হ্রাসের সময় নীচে থেকে উপরে ফ্লিপ করে তবে এটি সংক্ষিপ্ত হয়।

প্রবেশের পরে, স্টপ লসটি পরবর্তী বারের SAR মূল্যে সেট করা হয়, একটি গতিশীল ট্রেলিং স্টপ লস হিসাবে SAR ব্যবহার করে। লাভ গ্রহণ প্রবেশ মূল্যের 10% এ সেট করা হয়। যখন মূল্য লাভ বা স্টপ লস স্তরে পৌঁছে যায়, তখন অবস্থানটি বন্ধ হয়ে যায়।

সুবিধা বিশ্লেষণ

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

  1. এসএআর দ্রুত প্রবণতা পরিবর্তন সনাক্ত করতে পারে এবং বিপরীতমুখী সুযোগগুলি ধরতে পারে।

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

  3. এসএমএমএ ব্যবহার করে মসৃণতম বক্ররেখা এবং এমএ হুইপসো থেকে কম হস্তক্ষেপের ফলাফল।

  4. স্টপ লস এবং লাভ গ্রহণের অন্তর্ভুক্তি একক বাণিজ্য ক্ষতি নিয়ন্ত্রণ এবং আংশিক মুনাফা লক করতে সহায়তা করে।

  5. নমনীয় পরামিতি সেটিং বিভিন্ন বাজারের জন্য অপ্টিমাইজেশান অনুমতি দেয়।

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

এছাড়াও কিছু ঝুঁকি রয়েছে যা বিবেচনা করা উচিতঃ

  1. অস্থির প্রবণতা চলাকালীন SAR প্রায়শই ফ্লিপ হতে পারে, অত্যধিক ব্যবসায় থেকে ব্যয় বাড়িয়ে তোলে।

  2. এসএমএমএ সেটিংস সমস্ত যন্ত্রের জন্য উপযুক্ত নাও হতে পারে, যার জন্য পৃথক অপ্টিমাইজেশান প্রয়োজন।

  3. এসএআর স্টপ লস এর টাইম লেগ আছে, যা সম্ভাব্যভাবে ক্ষতি বাড়িয়ে তুলতে পারে।

  4. এসএআর স্থিতিশীল প্রবণতাগুলিতে মিথ্যা বিরতিতে ফ্লিপ করতে পারে। এসএআর পরামিতিগুলি মসৃণ করা সাহায্য করতে পারে।

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

ঝুঁকি মোকাবেলা করার জন্য, অপ্টিমাইজেশানগুলি নিম্নলিখিত বিষয়গুলিতে ফোকাস করতে পারেঃ

  1. ফ্লিপ হ্রাস করার জন্য অস্থিরতার উপর ভিত্তি করে SAR পরামিতিগুলি সামঞ্জস্য করা।

  2. যন্ত্রের বৈশিষ্ট্য অনুসারে এসএমএমএ সময়কালের সমন্বয়।

  3. স্টপ লস উন্নত করা, যেমন ট্রেলিং বা লিমিট অর্ডারের মাধ্যমে।

  4. সক্রিয় ট্রেডিংয়ে স্টপ লস অর্ডারের জন্য লিমিট অর্ডার ব্যবহার করা।

  5. পরিমাপ পরীক্ষা এবং সেটিং।

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

উপরের বিশ্লেষণের ভিত্তিতে, অপ্টিমাইজেশানগুলি নিম্নলিখিতগুলিকে অন্তর্ভুক্ত করতে পারেঃ

  1. আরও মসৃণ বক্ররেখা এবং কম ফ্লিপ জন্য SAR পরামিতি অপ্টিমাইজ করা।

  2. লেনদেনের যন্ত্রপাতিগুলির সাথে সামঞ্জস্যের জন্য এসএমএমএ দৈর্ঘ্যগুলি সামঞ্জস্য করা।

  3. ডায়নামিক স্টপ লস যেমন ট্রেইলিং স্টপ বা লিমিট অর্ডার ব্যবহার করে।

  4. উচ্চ ফ্রিকোয়েন্সি ট্রেডিংয়ে স্টপ লস অর্ডারের জন্য লিমিট অর্ডার ব্যবহার করা।

  5. সিগন্যালের গুণমান উন্নত করতে আরএসআই, কেডি এর মতো ফিল্টার যুক্ত করা।

  6. প্রবেশের অবস্থার উন্নতি, যেমন SAR ফ্লিপগুলির সাথে মোমবাতি প্যাটার্নগুলি পরীক্ষা করা।

  7. স্টপ লস ট্রিগারের পরে পুনরায় প্রবেশের শর্ত যোগ করা।

  8. অল্প অল্প, আংশিকভাবে বন্ধ, অত্যাশ্চর্য মাত্রা নিয়ে লাভ বাড়ানো।

  9. ব্যাকটেস্টের ফলাফল এবং সংবেদনশীলতা বিশ্লেষণের উপর ভিত্তি করে পরামিতি সেটিং।

সংক্ষিপ্তসার

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


/*backtest
start: 2023-10-08 00:00:00
end: 2023-11-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="SAR + 3SMMA with SL & TP", overlay=true, calc_on_order_fills=false, calc_on_every_tick=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type= strategy.commission.percent, commission_value=0.03)
start = input.float(0.02, step=0.01, group="SAR")
increment = input.float(0.02, step=0.01, group="SAR")
maximum = input.float(0.2, step=0.01, group="SAR")

//Take Profit Inputs     
take_profit = input.float(title="Take Profit (%)", minval=0.0, step=0.1, defval = 0.1, group="Stop Loss and Take Profit", inline="TP") * 0.01

//Stop Loss Inputs
stop_loss = input.float(title="StopLoss (%)", minval=0.0, step=0.1, defval=1, group="Stop Loss and Take Profit", inline="SL") * 0.01

// Smooth Moving Average
fastSmmaLen = input.int(21, minval=1, title="Fast Length", group = "Smooth Moving Average")
midSmmaLen = input.int(50, minval=1, title="Mid Length", group = "Smooth Moving Average")
slowSmmaLen = input.int(200, minval=1, title="Slow Length", group = "Smooth Moving Average")

src = input(close, title="Source", group = "Smooth Moving Average")

smma(ma, src, len) => 
    smma = 0.0
    smma := na(smma[1]) ? ma : (smma[1] * (len - 1) + src) / len
    smma

fastSma = ta.sma(src, fastSmmaLen)
midSma = ta.sma(src, midSmmaLen)
slowSma = ta.sma(src, slowSmmaLen)

fastSmma = smma(fastSma, src, fastSmmaLen)
midSmma = smma(midSma, src, midSmmaLen)
slowSmma = smma(slowSma, src, slowSmmaLen)

isSmmaUpward = ta.rising(fastSmma, 1) and ta.rising(midSmma, 1) and ta.rising(slowSmma, 1)

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 := math.max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := math.min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := math.min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := math.min(AF + increment, maximum)
	if uptrend
		SAR := math.min(SAR, low[1])
		if bar_index > 1
			SAR := math.min(SAR, low[2])
	else
		SAR := math.max(SAR, high[1])
		if bar_index > 1
			SAR := math.max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)

sarIsUpTrend = uptrend ? true : false

sarFlippedDown = sarIsUpTrend and not sarIsUpTrend[1] ? true : false
sarFlippedUp = not sarIsUpTrend and sarIsUpTrend[1] ? true : false


longEntryCondition = isSmmaUpward and sarFlippedDown
shortEntryCondition = not isSmmaUpward and sarFlippedUp

if(longEntryCondition)
    strategy.entry("L", strategy.long, stop=nextBarSAR, comment="L")

if(shortEntryCondition)
    strategy.entry("S", strategy.short, stop=nextBarSAR, comment="S")


strategy.exit("CL", when=strategy.position_size > 0, limit=strategy.position_avg_price * (1+take_profit), stop=strategy.position_avg_price*(1-stop_loss))
strategy.exit("CS", when=strategy.position_size < 0, limit=strategy.position_avg_price * (1-take_profit), stop=strategy.position_avg_price*(1+stop_loss))


plot(SAR, style=plot.style_cross, linewidth=1, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=1, color=color.aqua)
plot(series = fastSmma, title="fastSmma", linewidth=1)
plot(series = midSmma, title="midSmma", linewidth=2)
plot(series = slowSmma, title="slowSmma", linewidth=3)
plotchar(series = isSmmaUpward, title="isSmmaUpward", char='')
plotchar(series=sarIsUpTrend, title="sarIsUpTrend", char='')
plotchar(series=sarFlippedUp, title="sarFlippedUp", char='')
plotchar(series=sarFlippedDown, title="sarFlippedDown", char='')
plotchar(series=longEntryCondition, title="longEntryCondition", char='')
plotchar(series=shortEntryCondition, title="shortEntryCondition", char='')
plotchar(series=strategy.position_size > 0, title="inLong", char='')
plotchar(series=strategy.position_size < 0, title="inShort", char='')


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)



আরো