ইএমএ উন্নত সুপারট্রেন্ড কৌশল

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

সারসংক্ষেপ

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

কৌশল নীতি

দামের প্রবণতা নির্ধারণের জন্য এই কৌশলটির প্রধান পদক্ষেপগুলি হলঃ

  1. সাম্প্রতিক N দিনের ATR গণনা করুন, যা বর্তমান বাজারের অস্থিরতাকে আরও ভালভাবে প্রতিফলিত করতে পারে।

  2. ATR এবং ATK সহগের উপর ভিত্তি করে উপরের এবং নীচের ব্যান্ড গণনা করুন। উপরের ব্যান্ড = মূল্য - (atk x ATR); নিম্ন ব্যান্ড = মূল্য + (atk x ATR) । atk সাধারণত 2-3 এর মধ্যে সেট করা হয়।

  3. প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য দামের উপরের এবং নীচের ব্যান্ডের সাথে তুলনা করুন। উপরের ব্যান্ডের দামের ব্রেকআউট একটি উত্থান সংকেত; নীচের ব্যান্ডের দামের ব্রেকআউট একটি হ্রাস সংকেত।

  4. যখন ট্রেডিং সিগন্যাল আসে তখন লং বা শর্ট নিন। সিগন্যালের গুণমান নির্ধারণের জন্য এখানে চলমান গড় ব্যবহার করা হয়।

  5. ঝুঁকি নিয়ন্ত্রণে স্টপ লস কৌশল যুক্ত করুন।

  6. কৌশল স্থিতির জন্য রঙিন চিহ্নিতকরণ ব্যবহার করুন।

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

সুবিধা

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

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

  2. ছোট ড্রাউনডাউনঃ উপরের এবং নীচের ব্যান্ডগুলির মধ্যে বাফার জোন স্টপ লস ব্রেকআউট এবং নিম্ন ড্রাউনডাউনের সম্ভাবনা হ্রাস করতে পারে।

  3. স্পষ্ট ট্রেডিং সিগন্যাল। রেঞ্জ ব্রেকআউট দীর্ঘ এবং সংক্ষিপ্ত দিকের জন্য উচ্চ মানের সংকেত।

  4. উচ্চ কাস্টমাইজযোগ্যতা। বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য এটিআর সময়কাল এবং গুণক সামঞ্জস্যযোগ্য।

  5. শক্তিশালী ভিজ্যুয়ালাইজেশন। গ্রাফিকাল সরঞ্জামগুলি কৌশল স্থিতি স্বজ্ঞাতভাবে প্রদর্শন করে।

  6. অপ্টিমাইজ করা সহজ। আরও অপ্টিমাইজেশনের জন্য চলমান স্টপ লস, ফিল্টার মত মডিউল যোগ করা যেতে পারে।

সাধারণভাবে, এই কৌশলটির উল্লেখযোগ্য সুবিধা রয়েছে যেমন ছোট ড্রাউনডাউন, যা এটিকে ট্রেন্ড অনুসরণকারী কৌশলগুলির জন্য খুব উপযুক্ত করে তোলে।

ঝুঁকি

এছাড়াও কিছু ঝুঁকি আছেঃ

  1. প্রবণতা নির্ধারণের ত্রুটির ঝুঁকি। মূল্য সংহতকরণের সময় ভুল সংকেত দেখা দিতে পারে।

  2. প্রস্থান পয়েন্ট নির্বাচন ঝুঁকিঃ অকাল প্রস্থান এড়ানোর জন্য স্টপ লস পয়েন্ট যুক্তিসঙ্গতভাবে সেট করা প্রয়োজন।

  3. প্যারামিটার অপ্টিমাইজেশান ঝুঁকি। ATR সময় এবং গুণক পুনরাবৃত্তি পরীক্ষা এবং অপ্টিমাইজেশান প্রয়োজন, ভুল সেটিংস কর্মক্ষমতা প্রভাবিত করবে।

  4. উচ্চ ট্রেডিং ফ্রিকোয়েন্সি ঝুঁকি। চরম বাজারের অস্থিরতার সময় ট্রেডিং ফ্রিকোয়েন্সি খুব বেশি হতে পারে।

  5. মাঝারি পারফরম্যান্সের ঝুঁকি। কিছু বাজারে স্পষ্ট প্রবণতা ছাড়াই পারফরম্যান্স অসন্তোষজনক হতে পারে।

  6. লাইভ ট্রেডিং ঝুঁকির জন্য সমন্বয় করা। লাইভ ট্রেডিংয়ে স্লিপ, কমিশন জন্য সমন্বয় করা প্রয়োজন।

  7. পদ্ধতিগত ঝুঁকিঃ এই কৌশলটির উপর নির্ভর করার পরিবর্তে সামগ্রিক সিস্টেম ঝুঁকি নিয়ন্ত্রণ বিবেচনা করা উচিত।

ঝুঁকিগুলি নিম্নলিখিত উপায়ে নিয়ন্ত্রণ করা যেতে পারেঃ

  1. সঠিকতা বাড়াতে ATR পরামিতি অপ্টিমাইজ করা।

  2. প্রবণতা নির্ধারণের জন্য মাল্টি-টাইমফ্রেম বিশ্লেষণ ব্যবহার করে।

  3. মুনাফা অর্জন এবং ড্রাউনডাউন কমানোর জন্য স্টপ লস চালু করা।

  4. ট্রেডিং ফ্রিকোয়েন্সি নিয়ন্ত্রণের জন্য ফিল্টার যোগ করা।

  5. বিভিন্ন বাজারের জন্য পরামিতিগুলি সামঞ্জস্য করা।

  6. সেরা অ্যাপ্লিকেশন দৃশ্যকল্প খুঁজে পেতে বিভিন্ন পণ্য পরীক্ষা করা।

  7. লাইভ ট্রেডিংয়ের সকল ট্রেডিং ঝুঁকিকে ব্যাপকভাবে বিবেচনা করা।

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

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

  1. ভুল সংকেত হ্রাস করার জন্য চলমান গড়ের মতো ফিল্টার যুক্ত করা। MACD, KDJ সহায়ক বিচারের জন্য ব্যবহার করা যেতে পারে।

  2. অপ্টিমাইজ করা ATR পরামিতি বিভিন্ন সময়ের পরীক্ষা করে সর্বোত্তম মান খুঁজে পেতে।

  3. সিগন্যাল উৎপাদনের সংবেদনশীলতা নির্ধারণের জন্য গুণক পরামিতি অপ্টিমাইজ করা।

  4. এটিআর বা অস্থিরতার উপর ভিত্তি করে গতিশীল স্টপ লস কৌশল যুক্ত করা। এটি ড্রডাউনগুলি আরও হ্রাস করতে পারে।

  5. বিশ্লেষণের জন্য উচ্চতর সময়সীমার সূচক ব্যবহার করে বিক্ষিপ্ত মিথ্যা সংকেত ফিল্টার করা।

  6. সিগন্যাল বিচার উন্নত করতে আরএনএন-এর মতো মেশিন লার্নিং মডেল গ্রহণ করা।

  7. পণ্যের বৈশিষ্ট্যগুলির উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করা। উদাহরণস্বরূপ, উদ্বায়ী স্টকগুলির জন্য একটি সংক্ষিপ্ত এটিআর সময়কাল ব্যবহার করা।

  8. আরও ভাল এন্ট্রি খুঁজতে ব্রেকআউট পুলব্যাক পদ্ধতি ব্যবহার করে এন্ট্রি পয়েন্টগুলি অপ্টিমাইজ করা।

  9. সিগন্যাল শক্তি বিচার করার জন্য ভলিউম সূচক একত্রিত করা।

  10. প্রবণতা গতির সূচকগুলির উপর ভিত্তি করে মুনাফা গ্রহণের কৌশল যোগ করা।

সিদ্ধান্ত

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


/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => true
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)

//@version=3
//study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true)
//len1 = input(17, minval=1, title="Fast")
//len2 = input(72, minval=1, title="Medium")
len3 = input(305, minval=1, title="Slow")
//src1 = input(close, title="Source Fast")
//src2 = input(close, title="Source Medium")
src3 = input(close, title="Source Slow")
//out1 = ema(src1, len1)
//out2 = ema(src2, len2)
out3 = ema(src3, len3)
//plot(out1, title="EMA1", color=fuchsia)
//plot(out2, title="EMA2", color=orange)
plot(out3, title="EMA3", color=color.blue)

আরো