
এই কৌশলটি একটি প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম যা VIDYA ((variable index moving average) সূচকের উপর ভিত্তি করে। এই কৌশলটি বাজারের ওঠানামার সাথে সামঞ্জস্যপূর্ণ, গতিশীল সমন্বয় ওজনের মাধ্যমে। এটি আরও সঠিক প্রবণতা সনাক্তকরণ এবং ট্রেডিং সংকেত উত্পন্ন করার জন্য দুটি গণনা পদ্ধতি, কুইনস্টাইন গতিশীলতা সূচক ((CMO) এবং স্ট্যান্ডার্ড ডিভেরিয়েন্স ((StDev) এর সাথে মিলিত। সিস্টেমটি প্রচলিত চলমান গড়ের উপর ভিত্তি করে একটি স্ব-অনুকূলিতকরণ প্রক্রিয়া প্রবর্তন করে যা বাজারের অবস্থার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সংবেদনশীলতা সামঞ্জস্য করতে সক্ষম।
কৌশলটির কেন্দ্রবিন্দু হল ভিড্যা সূচক, যার গণনা প্রক্রিয়া নিম্নলিখিত কয়েকটি মূল পদক্ষেপ নিয়ে গঠিতঃ
এই কৌশলটি ব্যবহারকারীদের সিএমও বা স্ট্যান্ডার্ড ডিভেরিয়েন্স ব্যবহার করে ওঠানামার ফ্যাক্টর গণনা করার অনুমতি দেয়, কৌশলটির নমনীয়তা বাড়ায়। সিএমও মোডে 9 টি চক্রের স্থায়ী ব্যবহার করা হয়, যখন স্ট্যান্ডার্ড ডিভেরিয়েন্স মোডটি বেসিক চক্রের সাথে সামঞ্জস্যপূর্ণ থাকে।
VIDYA কৌশলটি একটি উদ্ভাবনী স্ব-অনুকূলিতকরণ ওজন ব্যবস্থার মাধ্যমে একটি অপেক্ষাকৃত নির্ভরযোগ্য প্রবণতা ট্র্যাকিং প্রোগ্রাম সরবরাহ করে। এই কৌশলটি সহজ এবং সহজেই ব্যবহারযোগ্য থাকার সময়, গতিশীল সামঞ্জস্যের মাধ্যমে বাজারের পরিবর্তনের সাথে অভিযোজনযোগ্যতা বাড়িয়ে তোলে। যদিও এখনও কিছু অন্তর্নিহিত সীমাবদ্ধতা রয়েছে, তবে প্রস্তাবিত অপ্টিমাইজেশন দিকনির্দেশের মাধ্যমে কৌশলটির স্থায়িত্ব এবং নির্ভরযোগ্যতা আরও বাড়ানো যেতে পারে। কৌশলটির দ্বৈত গণনা পদ্ধতি বিভিন্ন বাজারের পরিবেশের অধীনে প্রয়োগের জন্য আরও বেশি নমনীয়তা সরবরাহ করে।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GriffinJames
//@version=5
strategy("VIDYA Strategy", overlay=true, initial_capital=25000)
// Inputs
src = input(close, title="Source")
pds = input.int(21, title="Length")
fixCMO = input.bool(true, title="Fixed CMO Length (9)?")
select = input.bool(true, title="Calculation Method: CMO/StDev?")
alpha = 2 / (pds + 1)
momm = ta.change(src)
// Functions to calculate MOM
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = fixCMO ? math.sum(m1, 9) : math.sum(m1, pds)
sm2 = fixCMO ? math.sum(m2, 9) : math.sum(m2, pds)
percent(nom, div) => 100 * nom / div
chandeMO = na(percent(sm1 - sm2, sm1 + sm2)) ? 0 : percent(sm1 - sm2, sm1 + sm2)
// Select calculation method
k = select ? math.abs(chandeMO) / 100 : ta.stdev(src, pds)
// Calculate VIDYA
var float VIDYA = na
VIDYA := na(VIDYA[1]) ? src : alpha * k * src + (1 - alpha * k) * VIDYA[1]
// Conditions for long and short
col12 = VIDYA > VIDYA[1]
col32 = VIDYA < VIDYA[1]
// Plot VIDYA with dynamic colors
color2 = col12 ? color.new(color.blue, 0) : col32 ? color.new(color.maroon, 0) : color.new(color.blue, 0)
plot(VIDYA, "VAR", color=color2, linewidth=2)
// Long and Short Strategy
if (col12)
strategy.entry("Go Long", strategy.long)
if (col32)
strategy.entry("Go Short", strategy.short)
// Alert for VIDYA color change
alertcondition(ta.cross(VIDYA, VIDYA[1]), title="Color ALARM!", message="VIDYA has changed color!")