পুনরাবৃত্ত গতির ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-31 16:56:31
ট্যাগঃ

img

সারসংক্ষেপ

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

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

পুনরাবৃত্তি ব্যান্ড সূচক গণনা

পুনরাবৃত্তীয় ব্যান্ডের সূচকটি একটি উপরের ব্যান্ড, নীচের ব্যান্ড এবং মাঝারি রেখার সমন্বয়ে গঠিত। সূচকটি নিম্নরূপ গণনা করা হয়ঃ

Upper Band = Max ((Previous bars upper band, Close price + n) ঊর্ধ্ববর্তী ব্যান্ড, বন্ধের মূল্য + nভোল্টেবিলিটি) Lower Band = Min(Previous bar's lower band, Close price - nভোল্টেবিলিটি) মাঝারি রেখা = (উপরের ব্যান্ড + নীচের ব্যান্ড) /২

এখানে n একটি স্কেলিং সহগ, এবং অস্থিরতা ATR, স্ট্যান্ডার্ড ডিভিয়েশন, গড় সত্য পরিসীমা বা একটি বিশেষ RFV পদ্ধতি থেকে বেছে নেওয়া যেতে পারে। দৈর্ঘ্য পরামিতি সংবেদনশীলতা নিয়ন্ত্রণ করে, বৃহত্তর মানগুলি সূচকটি কম ঘন ঘন ট্রিগার করে।

ট্রেডিং নিয়ম

কৌশলটি প্রথমে পরীক্ষা করে দেখায় যে, মিথ্যা ব্রেকআউট এড়ানোর জন্য নীচের ব্যান্ড এবং উপরের ব্যান্ড একই দিকে প্রবণতা দেখায় কিনা।

যখন দাম নীচের ব্যান্ডের নিচে যায়, তখন লম্বা যান। যখন দাম উপরের ব্যান্ডের উপরে যায়, তখন শর্ট যান।

এছাড়াও, স্টপ লস লজিক বাস্তবায়ন করা হয়।

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

এই কৌশলটির সুবিধাগুলো হল:

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

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

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

  1. অনুপযুক্ত প্যারামিটার সেটিংগুলি ওভারট্রেডিং বা দুর্বল সংকেত মানের দিকে পরিচালিত করতে পারে
  2. বড় ধরনের প্রবণতা পরিবর্তনের সময় বড় ধরনের ক্ষতির সম্মুখীন হতে পারে
  3. চরম গতিতে অপর্যাপ্ত স্লিপ নিয়ন্ত্রণ ক্ষতি বাড়িয়ে তুলতে পারে

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

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

কৌশলটি আরও উন্নত করার জন্য কিছু দিকনির্দেশনাঃ

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

সিদ্ধান্ত

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// Original indicator by alexgrover
strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000)
length = input.int(260, step=10, title='Length')
src = input(close, title='Source')
method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method')
bandDirectionCheck = input.bool(true, title='Bands Hold Direction')
lookback = input(3)
//----
atr = ta.atr(length)
stdev = ta.stdev(src, length)
ahlr = ta.sma(high - low, length)
rfv = 0.
rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1]
//-----
f(a, b, c) =>
    method == a ? b : c
v(x) =>
    f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x))))
//----
sc = 2 / (length + 1)
a = 0.
a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src)))
b = 0.
b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src)))
c = (a+b)/2

// Colors
beColor = #675F76
buColor = #a472ff

// Plots
pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band')
pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band')
pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band')
fill(pC, pA, color=color.new(beColor,90))
fill(pC, pB, color=color.new(buColor,90))

// Band keeping direction
// By Adulari
longc = 0
shortc = 0
for i = 0 to lookback-1
    if b[i] > b[i+1]
        longc:=longc+1
    if a[i] < a[i+1]
        shortc:=shortc+1
bhdLong = if bandDirectionCheck
    longc==lookback
else
    true
bhdShort = if bandDirectionCheck
    shortc==lookback
else
    true

// Strategy
if b>=low and bhdLong
    strategy.entry(id='Long',direction=strategy.long)
if high>=a and bhdShort
    strategy.entry(id='Short',direction=strategy.short)

// TP at middle line
//if low<=c and strategy.position_size<0 and strategy.position_avg_price>close
    //strategy.exit(id="Short",limit=close)
//if high>=c and strategy.position_size>0 and strategy.position_avg_price<close
    //strategy.exit(id="Long",limit=close)

আরো