গাউসিয়ান চ্যানেল ট্রেন্ড ফলোয়িং এবং স্টোকাস্টিক আরএসআই ট্রেডিং কৌশল

RSI GWMA GWSD SRSI
সৃষ্টির তারিখ: 2025-02-20 11:01:36 অবশেষে সংশোধন করুন: 2025-02-20 11:01:36
অনুলিপি: 1 ক্লিকের সংখ্যা: 638
2
ফোকাস
319
অনুসারী

গাউসিয়ান চ্যানেল ট্রেন্ড ফলোয়িং এবং স্টোকাস্টিক আরএসআই ট্রেডিং কৌশল গাউসিয়ান চ্যানেল ট্রেন্ড ফলোয়িং এবং স্টোকাস্টিক আরএসআই ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

কৌশলটির মূল যুক্তি দুটি প্রধান অংশ নিয়ে গঠিতঃ

  1. গ্যাস চ্যানেল সিস্টেমঃ গ্যাস ওজনের চলমান গড় ((GWMA) এবং গ্যাস ওজনের স্ট্যান্ডার্ড পার্থক্য ((GWSD) ব্যবহার করে একটি মূল্য চ্যানেল তৈরি করা। GWMA সাম্প্রতিক ডেটাকে আরও বেশি ওজন দেয়, যা সমান্তরালকে মূল্য পরিবর্তনের প্রতি আরও সংবেদনশীল করে তোলে। চ্যানেলের আপ এবং ডাউন ট্র্যাকটি GWSD এর গুণিতক ফ্যাক্টর দ্বারা নির্ধারিত হয়।

  2. এলোমেলো আরএসআই সিস্টেমঃ প্রচলিত আরএসআই সূচককে এলোমেলোভাবে প্রক্রিয়াকরণ করা হয়, কে এবং ডি মান গণনা করা হয়। এই প্রক্রিয়াকরণটি ওভারবড ওভারসোল্ড অঞ্চলগুলিকে আরও ভালভাবে সনাক্ত করতে পারে এবং আরও সঠিক গতিশীল সংকেত সরবরাহ করতে পারে।

ট্রেডিং সিগন্যালের উৎপত্তি নিম্নলিখিত শর্তের উপর ভিত্তি করেঃ

  • মাল্টি-এন্ট্রি করুনঃ দাম বন্ধ দাম গাউস চ্যানেলের ট্র্যাকটি ভেঙে দেয় এবং এলোমেলোভাবে আরএসআইয়ের কে লাইনে ডি লাইনটি অতিক্রম করে
  • সমান্তরাল সংকেতঃ গাউস চ্যানেলের নীচে দরপতন

কৌশলগত সুবিধা

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

কৌশলগত ঝুঁকি

  1. প্রবণতা নির্ভরতাঃ বাজারের অস্থিরতার মধ্যে ঘন ঘন মিথ্যা সংকেত তৈরি হতে পারে, যার ফলে অত্যধিক লেনদেন হয়।
  2. পিছিয়ে পড়ার প্রভাবঃ মাল্টিপল গড় লাইন মসৃণকরণের কারণে ট্রেন্ড পাল্টানোর সময় সিগন্যাল পিছিয়ে পড়তে পারে।
  3. প্যারামিটার সংবেদনশীলতাঃ প্যারামিটার সেটিং দ্বারা কৌশল কার্যকারিতা প্রভাবিত হয়, যা প্যারামিটারগুলিকে যত্ন সহকারে অপ্টিমাইজ করতে হবে।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Gaussian Channel + Stoch RSI Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=1)

// User Inputs
length     = input.int(20, "Gaussian Length", minval=5)
multiplier = input.float(2.0, "Channel Multiplier", step=0.1)
rsiLength  = input.int(14, "RSI Length", minval=1)
stochLength= input.int(14, "Stoch RSI Length", minval=1)
kLength    = input.int(3, "Stoch K Smoothing", minval=1)
dLength    = input.int(3, "Stoch D Smoothing", minval=1)

// Gaussian Weighted Moving Average Function
f_gaussian(source, length) =>
    half = (length - 1) / 2.0
    sum = 0.0
    norm = 0.0
    // Gaussian standard deviation chosen as length/6 for a smooth curve
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x) / (2 * denom))
        sum += source[i] * w
        norm += w
    sum / norm

// Gaussian Weighted Standard Deviation Function
f_gaussian_std(source, length) =>
    half = (length - 1) / 2.0
    gavg = f_gaussian(source, length)
    sum = 0.0
    norm = 0.0
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x)/(2*denom))
        diff = source[i] - gavg
        sum += diff * diff * w
        norm += w
    math.sqrt(sum/norm)

// Compute Gaussian Channel
gaussMid = f_gaussian(close, length)
gaussStd = f_gaussian_std(close, length)
gaussUpper = gaussMid + gaussStd * multiplier
gaussLower = gaussMid - gaussStd * multiplier

// Stochastic RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiLowest = ta.lowest(rsi, stochLength)
rsiHighest = ta.highest(rsi, stochLength)
stoch = 100 * (rsi - rsiLowest) / math.max(rsiHighest - rsiLowest, 1e-10)
k = ta.sma(stoch, kLength)
d = ta.sma(k, dLength)

// Conditions
// Long entry: Price closes above upper Gaussian line AND Stoch RSI K > D (stochastic is "up")
longCondition = close > gaussUpper and k > d

// Exit condition: Price closes below upper Gaussian line
exitCondition = close < gaussUpper

// Only trade in the specified date range
inDateRange = time >= timestamp("2018-01-01T00:00:00") and time < timestamp("2069-01-01T00:00:00")

// Submit Orders
if inDateRange
    if longCondition and strategy.position_size <= 0
        strategy.entry("Long", strategy.long)
    if exitCondition and strategy.position_size > 0
        strategy.close("Long")
        
// Plot Gaussian Channel
plot(gaussMid, "Gaussian Mid", color=color.new(color.yellow, 0))
plot(gaussUpper, "Gaussian Upper", color=color.new(color.green, 0))
plot(gaussLower, "Gaussian Lower", color=color.new(color.red, 0))