স্টোকআরএসআই ট্রেন্ড ট্র্যাকিং কৌশলের সাথে মিলিত মাল্টি-পিরিয়ড গাউসিয়ান চ্যানেল

RSI HLC3 TR SMA BAND
সৃষ্টির তারিখ: 2025-02-18 13:50:36 অবশেষে সংশোধন করুন: 2025-02-18 13:50:36
অনুলিপি: 3 ক্লিকের সংখ্যা: 503
1
ফোকাস
1617
অনুসারী

স্টোকআরএসআই ট্রেন্ড ট্র্যাকিং কৌশলের সাথে মিলিত মাল্টি-পিরিয়ড গাউসিয়ান চ্যানেল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটির মূল অংশ হল দামের চ্যানেল, যা গসপিনোভা অ্যালগরিদমের উপর ভিত্তি করে নির্মিত। এর বাস্তবায়ন নিম্নলিখিত কয়েকটি মূল পদক্ষেপের মাধ্যমে করা হয়েছেঃ

  1. বহুপদীয় ফাংশন f_filt9x ব্যবহার করে 9 পর্যায়ের গসকোস ফিল্টার বাস্তবায়ন করুন, পোল অপ্টিমাইজেশনের মাধ্যমে ফিল্টার প্রভাব উন্নত করুন
  2. HLC3 মূল্যের উপর ভিত্তি করে গণনা করা প্রধান ফ্রিকোয়েন্সি লাইন এবং ওভাররাইডিং চ্যানেল
  3. Reduced Lag মোডের মাধ্যমে ফিলারিংয়ের বিলম্ব হ্রাস করা হয়েছে, FastResponse মোডের মাধ্যমে প্রতিক্রিয়া বাড়ানো হয়েছে
  4. স্টোকআরএসআই সূচক ব্যবহার করে ওভারবয় ওভারসেল ব্যাপ্তি ((8020) ট্রেডিং সিগন্যাল নির্ধারণ করুন
  5. গাউস চ্যানেলের উপরে এবং যখন দামটি ট্র্যাক থেকে বেরিয়ে আসে তখন স্টোকআরএসআই সূচকের সাথে মিলিত হয়ে একটি মাল্টিসিগন্যাল তৈরি হয়
  6. যখন দাম নেমে আসে তখন প্লেইন করুন

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

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

কৌশলগত ঝুঁকি

  1. গসপিনোভা কিছুটা পিছিয়ে পড়েছে, যার ফলে সময়মতো প্রবেশ বা প্রস্থান করতে পারে না
  2. বাজারের অস্থিরতার মধ্যে ট্রেডিংয়ের খরচ বাড়ানোর জন্য ঘন ঘন ট্রেডিং সিগন্যাল তৈরি হতে পারে
  3. StochRSI সূচক কিছু বাজারের অবস্থার অধীনে একটি lag সংকেত হতে পারে
  4. প্যারামিটার অপ্টিমাইজেশান প্রক্রিয়াটি জটিল, বিভিন্ন বাজার পরিস্থিতিতে প্যারামিটারগুলি পুনরায় সমন্বয় করা প্রয়োজন
  5. কম্পিউটিং রিসোর্সের উপর সিস্টেমের উচ্চ চাহিদা, রিয়েল-টাইম গণনা কিছু বিলম্ব আছে

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

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

সারসংক্ষেপ

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

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

//@version=5
strategy(title="Demo GPT - Gaussian Channel Strategy v3.0", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=250)

// ============================================
// Gaussian Functions (Must be at top)
// ============================================
f_filt9x(_a, _s, _i) =>
    var int _m2 = 0, var int _m3 = 0, var int _m4 = 0, var int _m5 = 0, var int _m6 = 0,
    var int _m7 = 0, var int _m8 = 0, var int _m9 = 0, var float _f = 0.0
    _x = 1 - _a
    _m2 := _i == 9 ? 36 : _i == 8 ? 28 : _i == 7 ? 21 : _i == 6 ? 15 : _i == 5 ? 10 : _i == 4 ? 6 : _i == 3 ? 3 : _i == 2 ? 1 : 0
    _m3 := _i == 9 ? 84 : _i == 8 ? 56 : _i == 7 ? 35 : _i == 6 ? 20 : _i == 5 ? 10 : _i == 4 ? 4 : _i == 3 ? 1 : 0
    _m4 := _i == 9 ? 126 : _i == 8 ? 70 : _i == 7 ? 35 : _i == 6 ? 15 : _i == 5 ? 5 : _i == 4 ? 1 : 0
    _m5 := _i == 9 ? 126 : _i == 8 ? 56 : _i == 7 ? 21 : _i == 6 ? 6 : _i == 5 ? 1 : 0
    _m6 := _i == 9 ? 84 : _i == 8 ? 28 : _i == 7 ? 7 : _i == 6 ? 1 : 0
    _m7 := _i == 9 ? 36 : _i == 8 ? 8 : _i == 7 ? 1 : 0
    _m8 := _i == 9 ? 9 : _i == 8 ? 1 : 0
    _m9 := _i == 9 ? 1 : 0
    _f := math.pow(_a, _i) * nz(_s) + _i * _x * nz(_f[1]) - (_i >= 2 ? _m2 * math.pow(_x, 2) * nz(_f[2]) : 0) + (_i >= 3 ? _m3 * math.pow(_x, 3) * nz(_f[3]) : 0) - (_i >= 4 ? _m4 * math.pow(_x, 4) * nz(_f[4]) : 0) + (_i >= 5 ? _m5 * math.pow(_x, 5) * nz(_f[5]) : 0) - (_i >= 6 ? _m6 * math.pow(_x, 6) * nz(_f[6]) : 0) + (_i >= 7 ? _m7 * math.pow(_x, 7) * nz(_f[7]) : 0) - (_i >= 8 ? _m8 * math.pow(_x, 8) * nz(_f[8]) : 0) + (_i == 9 ? _m9 * math.pow(_x, 9) * nz(_f[9]) : 0)
    _f

f_pole(_a, _s, _i) =>
    _f1 = f_filt9x(_a, _s, 1)
    _f2 = _i >= 2 ? f_filt9x(_a, _s, 2) : 0.0
    _f3 = _i >= 3 ? f_filt9x(_a, _s, 3) : 0.0
    _f4 = _i >= 4 ? f_filt9x(_a, _s, 4) : 0.0
    _f5 = _i >= 5 ? f_filt9x(_a, _s, 5) : 0.0
    _f6 = _i >= 6 ? f_filt9x(_a, _s, 6) : 0.0
    _f7 = _i >= 7 ? f_filt9x(_a, _s, 7) : 0.0
    _f8 = _i >= 8 ? f_filt9x(_a, _s, 8) : 0.0
    _f9 = _i == 9 ? f_filt9x(_a, _s, 9) : 0.0
    _fn = _i == 1 ? _f1 : _i == 2 ? _f2 : _i == 3 ? _f3 : _i == 4 ? _f4 : _i == 5 ? _f5 : _i == 6 ? _f6 : _i == 7 ? _f7 : _i == 8 ? _f8 : _i == 9 ? _f9 : na
    [_fn, _f1]

// ============================================
// Date Filter
// ============================================
startDate = input(timestamp("1 Jan 2018"), "Start Date", group="Time Settings")
endDate = input(timestamp("31 Dec 2069"), "End Date", group="Time Settings")
timeCondition = true

// ============================================
// Stochastic RSI (Hidden Calculations)
// ============================================
stochRsiK = input.int(3, "Stoch RSI K", group="Stochastic RSI", tooltip="Only for calculations, not visible")
stochRsiD = input.int(3, "Stoch RSI D", group="Stochastic RSI")
rsiLength = input.int(14, "RSI Length", group="Stochastic RSI")
stochLength = input.int(14, "Stochastic Length", group="Stochastic RSI")

rsiValue = ta.rsi(close, rsiLength)
k = ta.sma(ta.stoch(rsiValue, rsiValue, rsiValue, stochLength), stochRsiK)
d = ta.sma(k, stochRsiD)

// ============================================
// Gaussian Channel
// ============================================
gaussianSrc = input(hlc3, "Source", group="Gaussian")
poles = input.int(4, "Poles", minval=1, maxval=9, group="Gaussian")
samplingPeriod = input.int(144, "Sampling Period", minval=2, group="Gaussian")
multiplier = input.float(1.414, "Multiplier", step=0.1, group="Gaussian")
reducedLag = input.bool(false, "Reduced Lag Mode", group="Gaussian")
fastResponse = input.bool(false, "Fast Response Mode", group="Gaussian")

// Gaussian Calculations
beta = (1 - math.cos(4 * math.asin(1) / samplingPeriod)) / (math.pow(1.414, 2 / poles) - 1)
alpha = -beta + math.sqrt(math.pow(beta, 2) + 2 * beta)
lag = (samplingPeriod - 1) / (2 * poles)

srcData = reducedLag ? gaussianSrc + (gaussianSrc - gaussianSrc[lag]) : gaussianSrc
trData = reducedLag ? ta.tr(true) + (ta.tr(true) - ta.tr(true)[lag]) : ta.tr(true)

[mainFilter, filter1] = f_pole(alpha, srcData, poles)
[trFilter, trFilter1] = f_pole(alpha, trData, poles)

finalFilter = fastResponse ? (mainFilter + filter1) / 2 : mainFilter
finalTrFilter = fastResponse ? (trFilter + trFilter1) / 2 : trFilter

upperBand = finalFilter + finalTrFilter * multiplier
lowerBand = finalFilter - finalTrFilter * multiplier

// ============================================
// Trading Logic
// ============================================
longCondition = 
  finalFilter > finalFilter[1] and      // Green Channel
  close > upperBand and                 // Price above upper band
  (k >= 80 or k <= 20) and             // Stoch RSI condition
  timeCondition

exitCondition = ta.crossunder(close, upperBand)

if longCondition
    strategy.entry("Long", strategy.long)

if exitCondition
    strategy.close("Long")

// ============================================
// Visuals (Gaussian Only)
// ============================================
bandColor = finalFilter > finalFilter[1] ? color.new(#00ff00, 0) : color.new(#ff0000, 0)
plot(finalFilter, "Filter", bandColor, 2)
plot(upperBand, "Upper Band", bandColor)
plot(lowerBand, "Lower Band", bandColor)
fill(plot(upperBand), plot(lowerBand), color.new(bandColor, 90))

barcolor(close > open and close > upperBand ? color.green : 
         close < open and close < lowerBand ? color.red : na)