সুপার এটিআর ট্রেন্ড অনুসরণকারী কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-19 11:41:20
ট্যাগঃ

img

সারসংক্ষেপ

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

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

কৌশলটি প্রথমে ATR সূচকটি গণনা করে, যা গত N দিনের দামের অস্থিরতার চলমান গড়, বাজারের ঝুঁকি এবং অস্থিরতার প্রতিনিধিত্ব করতে। কৌশলটি আমাদের ATR গণনার পদ্ধতি পরিবর্তন করতে দেয়, নিয়মিত ATR বা SMA।

তারপর উপরের এবং নীচের ব্যান্ডগুলি একটি ফ্যাক্টর দ্বারা গুণিত ATR মানের উপর ভিত্তি করে গণনা করা হয়, অর্থাৎঃclose - Multiplier * ATRউপরের ব্যান্ডের জন্য;close + Multiplier * ATRএটি একটি এটিআর ভিত্তিক ট্রেন্ড চ্যানেল গঠন করে।

আমরা তখন বিচার করি যে বর্তমান মূল্য চ্যানেলের উপরের বা নীচের ব্যান্ডটি ভেঙে ফেলেছে কিনা। যদি দাম উপরের ব্যান্ডটি ভেঙে দেয় তবে এটি একটি ডাউনট্রেন্ডে প্রবেশের মতো বিচার করা হয়; যদি দাম নীচের ব্যান্ডটি ভেঙে দেয় তবে এটি একটি আপট্রেন্ডে প্রবেশের মতো বিচার করা হয়। যখন একটি প্রবণতা ব্রেকআউট হয়, আমরা সংশ্লিষ্ট কিনতে এবং বিক্রি করি।

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

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

এই সূচক চ্যানেল ভিত্তিক প্রবণতা অনুসরণ কৌশল নিম্নলিখিত সুবিধা আছেঃ

  1. স্টপ লস পজিশন স্বয়ংক্রিয়ভাবে সামঞ্জস্য করার জন্য ATR সূচক ব্যবহার করে কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে
  2. ATR মূল্যের অস্থিরতা বিবেচনা করে, আরও যুক্তিসঙ্গত স্টপ লস
  3. চ্যানেল ব্রেকআউট দ্বারা প্রবেশের নির্ভুলতা বৃদ্ধি করুন
  4. এটিআর গণনা পদ্ধতির সমন্বয় করতে দেয়, আরো নমনীয়
  5. গুরুত্বপূর্ণ ইভেন্টের সময় ট্রেডিং উইন্ডো সেট করা কৌশল ব্যর্থতা এড়ায়

সাধারণভাবে, এটি একটি সহজ এবং ব্যবহারিক প্রবণতা যা কৌশল অনুসরণ করে কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে এবং ভাল রিটার্ন অর্জন করতে পারে।

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. বাজারে এমন পরিবর্তন হতে পারে যে ATR সময়মত প্রতিক্রিয়া জানাতে ব্যর্থ হয়, যার ফলে স্টপ লস খুব বেশি হয়
  2. যখন মনোভাব ভিন্ন হয় তখন মূল্য চ্যানেলে পরিবর্তিত হতে পারে, ট্রেডিং ঝুঁকি বাড়ায়
  3. ফিক্সড মাল্টিপল সব পণ্যের জন্য উপযুক্ত নাও হতে পারে, তাই সংশোধন করা প্রয়োজন
  4. সেট উইন্ডো ট্রেডিং সুযোগ সীমাবদ্ধ করে, যদি সঠিকভাবে সেট না করা হয় তবে ভাল ট্রেড মিস করতে পারে

এই ঝুঁকিগুলি নিয়ন্ত্রণ করতে, আমরা নিম্নলিখিত ব্যবস্থা গ্রহণ করতে পারিঃ

  1. বাজারের অবস্থা নির্ধারণের জন্য অন্যান্য সূচককে একত্রিত করুন, শুধুমাত্র ATR এর উপর নির্ভর করা এড়িয়ে চলুন
  2. ট্রেডিং ঝুঁকি প্রবর্তনকারী অবৈধ ব্রেকআউট এড়ানোর জন্য ফিল্টার যোগ করুন
  3. বিভিন্ন পণ্যের ঐতিহাসিক বৈশিষ্ট্য অনুযায়ী সঠিক গুণক নির্বাচন করুন
  4. সঠিক সেটআপ নিশ্চিত করার জন্য উইন্ডো পরামিতি সেট এবং পরীক্ষা করুন

অপ্টিমাইজেশন

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

  1. গতিশীলভাবে গুণক অপ্টিমাইজ করার জন্য মেশিন লার্নিং অ্যালগরিদম প্রবর্তন
  2. চ্যানেল পরিসীমা অপ্টিমাইজ করার জন্য আবেগ সূচক ইত্যাদি অন্তর্ভুক্ত করুন
  3. অবৈধ ব্রেকআউট এড়াতে ভলিউম বা ভোলাটিলিটি নিশ্চিতকরণ যোগ করুন
  4. ব্যাকটেস্টের জন্য উন্নত সময় ভিত্তিক কৌশল কাঠামো ব্যবহার করুন

এই অপ্টিমাইজেশানগুলি কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও উন্নত করতে পারে।

সিদ্ধান্ত

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


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

//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
    strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
    strategy.entry('SAL', strategy.short, comment = '做空')

buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na



আরো