রিকার্সিভ ভলিউম ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2024-01-31 16:56:31 অবশেষে সংশোধন করুন: 2024-01-31 16:56:31
অনুলিপি: 0 ক্লিকের সংখ্যা: 596
1
ফোকাস
1617
অনুসারী

রিকার্সিভ ভলিউম ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

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

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

শীর্ষ রেখা = সর্বোচ্চ মান ((প্রথম K রেখার শীর্ষ রেখা, সমাপ্তি মূল্য + n*ওঠানামা) নিচের রেখা = সর্বনিম্ন মান ((প্রথম K রেখার নিচের রেখা, সমাপ্তি মূল্য - n*ওঠানামা)
মধ্যম রেখা = (উপরের রেখা + নিচের রেখা) / 2

যেখানে 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)