
মাল্টি-টাইম ফ্রেম আরএসআই এবং র্যান্ডম সূচক কৌশল হ’ল একটি কৌশল যা আরএসআই এবং র্যান্ডম সূচকগুলির সংমিশ্রণ ব্যবহার করে একাধিক সময় ফ্রেমে বাজার ওভারসোল্ডের বিচার করে। এই কৌশলটি একই সাথে 4 টি সময় ফ্রেমের আরএসআই এবং র্যান্ডম সূচকগুলিকে একত্রিত করে, সামগ্রিক বাজারের গতি এবং ওভারসোল্ড ওভারসোল্ডের বিচার করার জন্য তাদের গড় মান ব্যবহার করে, যাতে প্রতিটি সময় ফ্রেমের সূচকের সুবিধা নেওয়া যায়।
আরএসআই একটি শক্তিশালী ওভারব্রিজ ও ওভারসেল সূচক যা নির্দিষ্ট সময়ের মধ্যে শেয়ারের উত্থান-পতনের উপর ভিত্তি করে গণনা করা হয়। আরএসআই মান 0 থেকে 100 এর মধ্যে ওঠানামা করে, সাধারণত, 70 এর চেয়ে বড় আরএসআই ওভারব্রিজ এবং 30 এর চেয়ে ছোট ওভারসেল বোঝায়।
এই কৌশলটি 14 টি RSI সূচক ব্যবহার করে এবং 1 মাস, 1 দিন, 4 ঘন্টা এবং 1 ঘন্টা 4 টি সময় ফ্রেমের RSI মান পায়।
Random Indicator %K হল একটি সূচক যা দেখায় যে বাজারটি ওভারবয় বা ওভারসোল্ডের মধ্যে রয়েছে। এর মান 0 থেকে 100 এর মধ্যে রয়েছে। সাধারণভাবে, 80 এর চেয়ে বড় একটি এলোমেলো সূচক ওভারবয় এবং 20 এর চেয়ে ছোট একটি ওভারসোল্ড।
এই কৌশলটিতে, র্যান্ডম সূচক %K এর দৈর্ঘ্য 14 এবং মসৃণতা 3। একইভাবে উপরের 4 টি সময় ফ্রেমের মান প্রাপ্ত করুন।
কৌশলটির মূল বিষয় হল চারটি সময় ফ্রেমের মধ্যে উপরের দুটি সূচকের গড় মান গণনা করা, যাতে প্রতিটি সময় ফ্রেমের সুবিধা নেওয়া যায় এবং সামগ্রিক বাজার গতিপথ নির্ধারণ করা যায়। নির্দিষ্ট গণনা সূত্রটি নিম্নরূপঃ
আরএসআই গড় = (আরএসআই মাসিক লাইন + আরএসআই দৈনিক লাইন + আরএসআই 4 ঘন্টা + আরএসআই 1 ঘন্টা) / 4
র্যান্ডম সূচক গড় = (র্যান্ডম সূচক চন্দ্র + র্যান্ডম সূচক সূচক + র্যান্ডম সূচক 4 ঘন্টা + র্যান্ডম সূচক 1 ঘন্টা) / 4
RSI গড় 30 এর চেয়ে কম এবং র্যান্ডম গড় 20 এর চেয়ে কম হলে, অতিরিক্ত করুন; আরএসআই গড় 70 এর চেয়ে বেশি এবং র্যান্ডম গড় 80 এর চেয়ে বেশি হলে, শূন্য করুন।
অতিরিক্ত হওয়ার পরে, যখন এলোমেলো সূচকের গড় মান 70 এর চেয়ে বেশি এবং আরএসআই গড় মান 50 এর চেয়ে বেশি হয় তখন প্লেইন করা হয়; বন্ধ হওয়ার পরে, যখন এলোমেলো সূচকের গড় মান 30 এর চেয়ে কম এবং আরএসআই গড় মান 50 এর চেয়ে কম হয় তখন প্লেইন করা হয়।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল একই সময়ে দুটি সূচক এবং একাধিক টাইম ফ্রেম একত্রিত করা, যা ট্রেডিং সিগন্যালের নির্ভরযোগ্যতাকে ব্যাপকভাবে উন্নত করতে পারে এবং যতটা সম্ভব ভুয়া সংকেত এড়াতে পারে। এর সুনির্দিষ্ট সুবিধা হলঃ
আরএসআই এবং র্যান্ডম সূচকগুলি একে অপরকে যাচাই করে। শুধুমাত্র একটি একক সূচকের উপর নির্ভর করা মিথ্যা সংকেত তৈরি করতে পারে, এবং এই কৌশলটি দুটি সূচককে একত্রিত করে সংকেতের নির্ভুলতা বাড়িয়ে তুলতে পারে।
একাধিক টাইম ফ্রেম বিশ্লেষণ সিদ্ধান্তের নির্ভুলতা বাড়িয়ে তুলতে পারে। উদাহরণস্বরূপ, মুনলাইন এবং সানলাইন ওভারব্রিজ দেখায়, তবে 4 ঘন্টা এবং 1 ঘন্টা পুরোপুরি ওভারব্রিজ নয়, যা ইঙ্গিত দেয় যে প্রবণতা অব্যাহত থাকতে পারে। সমস্ত টাইম ফ্রেম একত্রিত হলে, সংকেতটি আরও নির্ভরযোগ্য।
কাঠামোগত বিপর্যয় চিহ্নিত করা আরও সহজ। একাধিক টাইম ফ্রেম জুড়ে সমন্বিতভাবে গুরুত্বপূর্ণ সমর্থন/প্রতিরোধের বিপর্যয় দেখা যায়, যা বর্তমান প্রবণতার বিপর্যয় চিহ্নিত করে।
স্বয়ংক্রিয়ভাবে পরিমাপের গড় মান গণনা করা অপারেশনকে সহজ করে তোলে। ম্যানুয়ালি গণনা করার প্রয়োজন নেই, কোড স্বয়ংক্রিয়ভাবে ডেটা নিষ্কাশন, পরিমাপ গণনা এবং গড়ের কাজ শেষ করে, কাজের পরিমাণ হ্রাস করে।
এই কৌশলটির প্রধান ঝুঁকিটি হল যে, সমস্ত প্রযুক্তিগত বিশ্লেষণ কৌশলগুলির মতো, এটি সম্পূর্ণরূপে প্রতারণা এবং মিথ্যা সংকেত তৈরির সম্ভাবনা এড়াতে পারে না। প্রধান ঝুঁকিগুলি হলঃ
প্রবণতার স্বল্পমেয়াদী বিপরীতমুখীতার ফলে বন্ধ হয়ে যায়। উদাহরণস্বরূপ, মাল্টি-হোল্ডিং পজিশনের সময়, দামের সংক্ষিপ্ত লাইনটি নীচে থেকে সমর্থনটি ভেঙে যাওয়ার পরে আবারও পুনরুদ্ধার হয়। এই সময়ে কৌশলটির সমতল অবস্থানের যুক্তি অনুসারে অবিলম্বে ক্ষতি বন্ধ করা প্রয়োজন, তবে স্বল্পমেয়াদী ক্ষতির সম্ভাবনা রয়েছে।
মূল সমর্থন/প্রতিরোধের পয়েন্টের অমান্য হলে ট্র্যাকিং স্টপ ব্যর্থ হয়। যদি মূল সমর্থন বা প্রতিরোধের পয়েন্টের অমান্য হয়, তবে মূল স্টপ মূল্য সরাসরি ভেঙে যেতে পারে, যার ফলে আরও বড় ক্ষতি হতে পারে।
সময় ফ্রেমটি ভুলভাবে সেট করা হলে বিচারক ভুল করে। যদি সময় ফ্রেমটি খুব দীর্ঘ বা খুব ছোট হয় তবে এটি সূচক বিচারকে বিভ্রান্ত করতে পারে।
সূচক ছড়িয়ে পড়ার ফলে Dunkirk প্রভাব ঘটে। অর্থাৎ, উচ্চতর সময় ফ্রেমের সূচকগুলি ওভারবয় এবং নিম্নতর সময় ফ্রেমের সূচকগুলি ওভারসোল দেখায়, গড় সূচকটি সত্যিকারের পরিস্থিতি প্রতিফলিত করতে পারে না।
ঝুঁকি মোকাবেলার সমাধানগুলির মধ্যে রয়েছেঃ অপ্টিমাইজ করা স্টপ লস কৌশল, গতিশীল সমর্থন / প্রতিরোধের স্থানগুলি ট্র্যাক করা, সময় ফ্রেম প্যারামিটারগুলি সামঞ্জস্য করা এবং ফিল্টারিং প্রক্রিয়া যুক্ত করা ইত্যাদি।
উপরোক্ত ঝুঁকির কথা বিবেচনা করে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
অপ্টিমাইজ করা ক্ষতি বন্ধ করার ব্যবস্থা, ট্র্যাকিং ক্ষতি এবং ব্যাচিং ক্ষতি বন্ধ করা। এটি লাভজনকতা নিশ্চিত করার সময় একক ক্ষতির ঝুঁকি নিয়ন্ত্রণ করতে পারে।
কোয়ার্টার লাইন ইত্যাদির মতো উচ্চতর টাইম ফ্রেম যুক্ত করুন। এটি বৃহত্তর স্তরের প্রবণতা ফিল্টারিংয়ের মাধ্যমে বিভ্রান্তিকর সংকেতগুলি ব্যবহার করতে পারে। সূচকগুলি বিভ্রান্ত হলে উচ্চতর টাইম ফ্রেমকে অগ্রাধিকার দিন।
ট্র্যাফিক ভলিউমের জন্য মাল্টি-ফায়ার যাচাইকরণ বাড়ানো হয়েছে। ট্র্যাফিকের পরিবর্তনের সংমিশ্রণটি নীচের এবং শীর্ষের বিচ্যুতি নির্ধারণ করে, জম্বি চলাচলের দ্বারা বিভ্রান্ত হওয়া এড়ানো যায়।
প্রবেশের সময় অপ্টিমাইজ করুন। গুরুত্বপূর্ণ ঐতিহাসিক সমর্থন/প্রতিরোধের কাছাকাছি প্রবেশের জন্য অপেক্ষা করতে পারেন, অথবা সর্বোত্তম প্রত্যাহারের জন্য অপেক্ষা করতে পারেন।
স্বনির্ধারিত স্টপ লস বৃদ্ধি করা হয়েছে। সাম্প্রতিক সময়ের ওঠানামা এবং ATR এর উপর ভিত্তি করে গতিশীল স্টপ লস গণনা এবং সমন্বয় করা যেতে পারে।
মাল্টি টাইম ফ্রেম আরএসআই এবং র্যান্ডম সূচক কৌশলটি বেশ কয়েকটি টাইম ফ্রেমে আরএসআই এবং র্যান্ডম সূচকগুলির সংমিশ্রণ ব্যবহার করে বাজারের ওভার-বিক্রয় ওভার-বিক্রয় ব্যবধানের বিচার করে একটি পরিষ্কার এবং নির্ভরযোগ্য ট্রেডিং কৌশল। এর সর্বাধিক সুবিধা হ’ল সূচক এবং সময় ফ্রেমের সংমিশ্রণটি একে অপরের সাথে যাচাই করে, যা প্যাডিং এবং মিথ্যা সংকেতের ঝুঁকি এড়াতে পারে। অবশ্যই এই কৌশলটি প্রযুক্তিগত বিশ্লেষণের কৌশলগুলির মতো সাধারণ ঝুঁকিও রয়েছে, যা স্থিতিশীল লাভজনক অ্যালগরিদমিক ট্রেডিং কৌশল হওয়ার জন্য স্টপ লস টাইম, ফ্রেম ইত্যাদির অপ্টিমাইজেশন এবং অপ্টিমাইজেশনের প্রয়োজন।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
////////////////////////////////////////// MTF Stochastic & RSI Strategy 🚥 ©️ bykzis /////////////////////////////////////////
//
// *** Inspired by "Binance CHOP Dashboard" from @Cazimiro and "RSI MTF Table" from @mobester16 *** and LOT OF COPY of Indicator-Jones MTF Scanner
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//@version=5
strategy('MTF RSI & STOCH Strategy🚥 by kzi', overlay=false,initial_capital=100, currency=currency.USD, commission_value=0.01, commission_type=strategy.commission.percent)
// Pair list
var string GRP1 = '══════════ General ══════════'
overbought = input.int(80, 'Overbought Level', minval=1, group=GRP1)
oversold = input.int(20, 'Oversold Level', minval=1, group=GRP1)
/// Timeframes
var string GRP2 = '══════════ Timeframes ══════════'
timeframe1 = input.timeframe(title="Timeframe 1", defval="W", group=GRP2)
timeframe2 = input.timeframe(title="Timeframe 2", defval="D", group=GRP2)
timeframe3 = input.timeframe(title="Timeframe 3", defval="240", group=GRP2)
timeframe4 = input.timeframe(title="Timeframe 4", defval="60", group=GRP2)
// RSI settings
var string GRP3 = '══════════ RSI settings ══════════'
rsiLength = input.int(14, minval=1, title='RSI length', group=GRP3)
rsiSource = input(close, 'RSI Source', group=GRP3)
rsioverbought = input.int(70, 'RSI Overbought Level', minval=1, group=GRP3)
rsioversold = input.int(30, 'RSI Oversold Level', minval=1, group=GRP3)
/// Get RSI values of each timeframe /////////////////////////////////////////////////////
rsi = ta.rsi(rsiSource, rsiLength)
callRSI(id,timeframe) =>
rsiValue = request.security(id, str.tostring(timeframe), rsi, gaps=barmerge.gaps_off)
rsiValue
RSI_TF1 = callRSI(syminfo.tickerid, timeframe1)
RSI_TF2 = callRSI(syminfo.tickerid, timeframe2)
RSI_TF3 = callRSI(syminfo.tickerid, timeframe3)
RSI_TF4 = callRSI(syminfo.tickerid, timeframe4)
/////// Calculate Averages /////////////////////////////////////////////////////////////////
calcAVG(valueTF1, valueTF2, valueTF3, valueTF4) =>
math.round((valueTF1 + valueTF2 + valueTF3 + valueTF4) / 4, 2)
AVG=calcAVG(RSI_TF1, RSI_TF2, RSI_TF3, RSI_TF4)
// Stochastic settings
var string GRP4 = '══════════ Stochastic settings ══════════'
periodK = input.int(14, '%K length', minval=1, group=GRP4)
smoothK = input.int(3, 'Smooth K', minval=1, group=GRP4)
stochSource = input(close, 'Stochastic Source', group=GRP4)
stochoverbought = input.int(70, 'Stochastic Overbought Level', minval=1, group=GRP4)
stochoversold = input.int(30, 'Stochastic Oversold Level', minval=1, group=GRP4)
/// Get Stochastic values of each timeframe ////////////////////////////////////////////////
stoch = ta.sma(ta.stoch(stochSource, high, low, periodK), smoothK)
getStochastic(id,timeframe) =>
stochValue = request.security(id, str.tostring(timeframe), stoch, gaps=barmerge.gaps_off)
stochValue
Stoch_TF1 = getStochastic(syminfo.tickerid, timeframe1)
Stoch_TF2 = getStochastic(syminfo.tickerid, timeframe2)
Stoch_TF3 = getStochastic(syminfo.tickerid, timeframe3)
Stoch_TF4 = getStochastic(syminfo.tickerid, timeframe4)
AVG_STOCH=calcAVG(Stoch_TF1, Stoch_TF2, Stoch_TF3, Stoch_TF4)
plot(AVG, color = color.blue, title='RSI')
plot(AVG_STOCH, color = color.yellow,title='STOCH')
hline(rsioverbought,color=color.red)
hline(rsioversold, color=color.lime)
hline(50, color=color.white)
//============ signal Generator ==================================//
if AVG <= rsioversold and AVG_STOCH <=stochoversold
strategy.entry('Buy_Long', strategy.long)
strategy.close("Buy_Long",when=(AVG_STOCH >=70 and AVG >=50 and close >=strategy.position_avg_price),comment="Long_OK")
if AVG >=rsioverbought and AVG_STOCH >=stochoverbought
strategy.entry('Buy_Short', strategy.short)
strategy.close("Buy_Short",when=(AVG_STOCH <=30 and AVG <=50 and close <=strategy.position_avg_price),comment="Short_OK")
///////////////////////////////////////////////////////////////////////////////////////////