ATR এবং MA সংমিশ্রণের উপর ভিত্তি করে সুপারট্রেন্ড ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

সুপারট্রেন্ড ট্রেডিং কৌশল হল গড় সত্য পরিসীমা (এটিআর) এবং চলমান গড় (এমএ) এর উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী কৌশল। এটি মধ্যবর্তী প্রবণতা দিক সনাক্ত করতে এবং প্রবণতা পরিবর্তনের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করতে প্রবণতা ট্র্যাকিং এবং ব্রেকআউট ট্রেডিং উভয়ের সুবিধা অন্তর্ভুক্ত করে।

এই কৌশলটির মূল ধারণা হ'ল যখন দাম সুপারট্রেন্ড চ্যানেলটি ভেঙে দেয় তখন দীর্ঘ বা সংক্ষিপ্ত যেতে হয়, যা প্রবণতা বিপরীতের ইঙ্গিত দেয়। এটি লাভ এবং নিয়ন্ত্রণের ঝুঁকিগুলি লক করতে স্টপ লস এবং লাভের স্তরগুলিও সেট করে।

এই কৌশল কিভাবে কাজ করে

সুপারট্রেন্ড হিসাবের মধ্যে বেশ কয়েকটি ধাপ রয়েছেঃ

  1. এটিআর গণনা করুন। এটিআর একটি সময়ের মধ্যে গড় অস্থিরতা প্রতিফলিত করে।
  2. সর্বাধিক উচ্চ এবং সর্বনিম্ন নিম্নের উপর ভিত্তি করে মধ্যরেখা গণনা করুন। মধ্যরেখা গণনা করা হয়ঃ (সর্বাধিক উচ্চ + সর্বনিম্ন নিম্ন) /২
  3. ব্যবসায়ীর দ্বারা নির্ধারিত ATR এবং ATR গুণকের উপর ভিত্তি করে উপরের এবং নীচের চ্যানেল গণনা করুন। উপরের চ্যানেলটি গণনা করা হয়ঃ মিডলাইন + (ATR × মাল্টিপ্লায়ার) । নিম্ন চ্যানেলটি গণনা করা হয়ঃ মিডলাইন - (ATR × মাল্টিপ্লায়ার) ।
  4. প্রবণতা দিক নির্ধারণের জন্য উপরের / নিম্ন চ্যানেলের সাথে বন্ধের দামের তুলনা করুন। যদি বন্ধ উপরের চ্যানেলের উপরে থাকে তবে প্রবণতা আপ হয়। যদি বন্ধ নিম্ন চ্যানেলের নীচে থাকে তবে প্রবণতা ডাউন হয়।
  5. চ্যানেলের উপরে বা নীচে একটি ব্রেকআউট বিপরীত ট্রেডিং সংকেত তৈরি করে। উদাহরণস্বরূপ, উপরের চ্যানেলের উপরে একটি ব্রেকআউট দীর্ঘ প্রবেশের সংকেত দেয় যখন নিম্ন চ্যানেলের নীচে একটি ভাঙ্গন সংক্ষিপ্ত প্রবেশের সংকেত দেয়।

এই কৌশলটির সুবিধা হ'ল এটি প্রবণতা অনুসরণ এবং প্রবণতা বিপরীত কৌশল উভয়ই একত্রিত করে। এটি মূল প্রবণতা সনাক্ত করে এবং একই সাথে সময়মতো বিপরীত সুযোগগুলি ক্যাপচার করতে সক্ষম হয়। তদতিরিক্ত, স্টপ লস / লাভ গ্রহণ প্রক্রিয়া ঝুঁকি নিয়ন্ত্রণে সহায়তা করে।

শক্তি

সুপারট্রেন্ড কৌশল নিম্নলিখিত শক্তি আছেঃ

১. মধ্যবর্তী প্রবণতা অনুসরণ করুন

সুপারট্রেন্ড চ্যানেলটি ATR এর উপর ভিত্তি করে গণনা করা হয়, যা কার্যকরভাবে মধ্যবর্তী দামের ওঠানামা পরিসীমা প্রতিফলিত করে। এটি সহজ চলমান গড়ের চেয়ে মধ্যবর্তী প্রবণতাকে আরও ভালভাবে অনুসরণ করে।

২. সময়মতো বিপরীতমুখী অবস্থা চিহ্নিত করুন

চ্যানেল থেকে দামের ব্রেকআউটগুলি দ্রুত ট্রেডিং সংকেত তৈরি করে যাতে বড় ট্রেন্ড বিপরীতমুখীতা সময়মতো ধরা যেতে পারে।

৩. স্টপ লস করুন এবং লাভ নিন

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

৪. বাস্তবায়ন করা সহজ

কৌশলটি মূলত এমএ এবং এটিআর এর মতো মৌলিক সূচক ব্যবহার করে। এটি লাইভ ট্রেডিংয়ের জন্য এটি বোঝা এবং বাস্তবায়ন করা বেশ সহজ করে তোলে।

**5. উচ্চ মূলধন দক্ষতা **

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

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

সুপারট্রেন্ড কৌশলটির কিছু সম্ভাব্য দুর্বলতা রয়েছেঃ

১. ব্যাপ্তি বাজারে নিম্ন ফলপ্রসূ

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

2. প্যারামিটার অপ্টিমাইজেশান সংবেদনশীল

ATR সময়কাল এবং গুণক জন্য নির্বাচিত মান কৌশল কর্মক্ষমতা তুলনামূলকভাবে বড় প্রভাব আছে। পরামিতিগুলির অনুপযুক্ত সমন্বয় ট্রেডিং সংকেত কার্যকারিতা হুমকির সম্মুখীন হতে পারে।

৩. বিলম্বের সমস্যা থাকতে পারে

সুপারট্রেন্ড চ্যানেল গণনার সাথে কিছু বিলম্ব সমস্যা হতে পারে, যার ফলে অকাল সংকেত উত্পাদন হতে পারে। বিলম্ব সমস্যাটি সমাধান করা অগ্রাধিকার হওয়া উচিত।

৪. কঠোর স্টপ লস ম্যানেজমেন্ট প্রয়োজন

চরম বাজারের পরিস্থিতিতে, অপ্রয়োজনীয়ভাবে বড় স্টপ লস ছাড় বা অপর্যাপ্ত ঝুঁকি ব্যবস্থাপনা বড় ক্ষতির দিকে পরিচালিত করতে পারে। স্টপ লস নিয়মগুলি কঠোরভাবে অনুসরণ করা ধারাবাহিক মুনাফার জন্য গুরুত্বপূর্ণ।

উন্নতির ক্ষেত্র

এই সুপারট্রেন্ড কৌশলকে আরও উন্নত করার সুযোগ রয়েছে:

১. একাধিক এটিআর সময়কাল একত্রিত করুন

১০ দিন এবং ২০ দিনের মতো বিভিন্ন সময়ের মধ্যে এটিআর রিডিং একত্রিত করে একটি সমন্বিত সূচক তৈরি করা হয়, যা সংবেদনশীলতা এবং বিলম্বিত সমস্যাগুলি উন্নত করতে সহায়তা করে।

2. স্টপ লস মডিউল যোগ করুন

ট্রাইপল স্টপ লস, ভোল্টেবিলিটি স্টপ লস এবং সিকোয়েন্সিয়াল স্টপ লসের মতো আরও পরিশীলিত স্টপ লস মেকানিজম যুক্ত করা ঝুঁকি নিয়ন্ত্রণ এবং ড্রাউনডাউন হ্রাসকে শক্তিশালী করতে পারে।

৩. প্যারামিটার অপ্টিমাইজেশন

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

৪. মেশিন লার্নিং মডেল একীভূত করুন

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

সিদ্ধান্ত

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

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


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

//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:",  defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth   = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2039, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10)) 
Atr = atrValue
if(decimals == 5)
    Atr := atrValue * 10000
if(decimals == 4)
    Atr := atrValue * 1000
if(decimals == 3)
    Atr := atrValue * 100
if(decimals == 2)
    Atr := atrValue * 10


//VJ2 Supertrend

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))

TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)




//Strategy 
Trend_buy = Trend == 1 
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1 
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na

strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)

strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)

bought = strategy.position_size > strategy.position_size 
sold = strategy.position_size < strategy.position_size 

longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0) 
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0) 
longProfit = factor_profit * longStop 
shortProfit = factor_profit * shortStop 


if(decimals == 5) 
    longStop := longStop *100000 
    longProfit := longProfit *100000 
if(decimals == 4) 
    longStop := longStop * 10000 
    longProfit := longProfit * 10000 
if(decimals == 3) 
    longStop := longStop * 1000 
    longProfit := longProfit * 1000 
if(decimals == 2) 
    longStop := longStop * 100 
    longProfit := longProfit *100 
if(decimals == 5) 
    shortStop := shortStop * 100000 
    shortProfit := shortProfit * 100000 
if(decimals == 4) 
    shortStop := shortStop * 10000 
    shortProfit := shortProfit * 10000 
if(decimals == 3) 
    shortStop := shortStop * 1000 
    shortProfit := shortProfit * 1000 
if(decimals == 2) 
    shortStop := shortStop * 100 
    shortProfit := shortProfit * 100 

strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit) 
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit) 


আরো