
এটি একটি ট্রেন্ড ট্র্যাকিং কৌশল যা সূচকীয় মুভিং এভারেজ (EMA) এবং র্যান্ডম অপেক্ষাকৃত দুর্বল সূচক (Stochastic RSI) এর সমন্বয় করে। এই কৌশলটি মূল্যের প্রবণতা এবং ওভারবাইট ওভারসোলের বিশ্লেষণের মাধ্যমে উচ্চ সম্ভাব্য ট্রেডিং সুযোগগুলি সনাক্ত করে। কৌশলটি EMA 9 এবং EMA 21 এর ক্রসগুলিকে ট্রেন্ডের দিকনির্দেশের জন্য ব্যবহার করে এবং স্টোক্যাস্টিক RSI ব্যবহার করে বাজারের অবস্থা নিশ্চিত করার জন্য, যার ফলে ট্রেডিং সিগন্যালের গুণমান উন্নত হয়।
কৌশলটির মূল যুক্তিটি দুটি প্রধান প্রযুক্তিগত সূচকের সংমিশ্রণের উপর ভিত্তি করেঃ
ট্রেডিং সিগন্যালের জন্য ট্রিগার শর্ত:
এটি একটি সুনির্দিষ্ট কাঠামো, যুক্তিসঙ্গতভাবে কঠোর ট্রেন্ড ট্র্যাকিং কৌশল। ইএমএ এবং স্টোক্যাস্টিক আরএসআই এর সংমিশ্রণ দ্বারা, কৌশলটি প্রবণতা এবং বাজারের অবস্থা সনাক্তকরণের ক্ষেত্রে ভাল ভারসাম্য বজায় রাখে। যদিও কিছু অন্তর্নিহিত ঝুঁকি রয়েছে, তবে যুক্তিসঙ্গত প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি পরিচালনার মাধ্যমে কৌশলটি একাধিক বাজার পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখতে পারে। ব্যবসায়ীদেরকে রিয়েল-স্টোর ব্যবহারের আগে পর্যাপ্ত ফিডব্যাক করার পরামর্শ দেওয়া হয় এবং নির্দিষ্ট বাজারের বৈশিষ্ট্য অনুসারে প্যারামিটার সেটিংগুলি সামঞ্জস্য করা উচিত।
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA 9/21 + Stoch RSI Strategy", shorttitle="EMA+StochRSI", overlay=true)
// ===== Užívateľské vstupy ===== //
emaFastLen = input.int(9, "Rýchla EMA (9)")
emaSlowLen = input.int(21, "Pomalá EMA (21)")
rsiLen = input.int(14, "RSI Length")
stochRsiLen = input.int(14, "Stoch RSI Length") // úsek, z ktorého berieme min/max RSI
stochSignalLen = input.int(3, "Stoch RSI K/D Smoothing")
overSold = input.int(20, "Stoch RSI Oversold (%)")
overBought = input.int(80, "Stoch RSI Overbought (%)")
// ===== Výpočet EMA(9) a EMA(21) ===== //
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
// ===== Výpočet RSI a Stoch RSI ===== //
// 1) Klasické RSI
rsiValue = ta.rsi(close, rsiLen)
// 2) Prevod RSI -> Stoch RSI:
// (rsiValue - min(rsiValue, stochRsiLen)) / (max(rsiValue, stochRsiLen) - min(rsiValue, stochRsiLen)) * 100
// Následne vyhladíme K a D (podobne ako pri bežnom Stochastic)
rsiLowest = ta.lowest(rsiValue, stochRsiLen)
rsiHighest = ta.highest(rsiValue, stochRsiLen)
stochRaw = (rsiValue - rsiLowest) / math.max(rsiHighest - rsiLowest, 1e-10) * 100.0
stochK = ta.sma(stochRaw, stochSignalLen)
stochD = ta.sma(stochK, stochSignalLen)
// ===== Podmienky pre LONG / SHORT ===== //
// LONG, ak:
// - EMA(9) prekríži EMA(21) smerom nahor
// - Stoch RSI je v prepredanej zóne (t.j. stochK < overSold)
longCondition = ta.crossover(emaFast, emaSlow) and (stochK < overSold)
// SHORT, ak:
// - EMA(9) prekríži EMA(21) smerom nadol
// - Stoch RSI je v prekúpenej zóne (stochK > overBought)
shortCondition = ta.crossunder(emaFast, emaSlow) and (stochK > overBought)
// ===== Vstup do pozícií ===== //
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// ===== Výstup z pozície pri opačnom signáli (okamžite na trhu) ===== //
if strategy.position_size > 0 and shortCondition
// Ak držíme LONG a príde signál na SHORT, zavrieme LONG
strategy.close("Long", comment="Exit Long")
if strategy.position_size < 0 and longCondition
// Ak držíme SHORT a príde signál na LONG, zavrieme SHORT
strategy.close("Short", comment="Exit Short")
// ===== (Nepovinné) Môžeš pridať stop-loss, take-profit, trailing stop atď. ===== //