
یہ ایک رجحان سے باخبر رہنے کی حکمت عملی ہے جس میں اشاریہ کی حرکت پذیری اوسط ((EMA) اور بے ترتیب نسبتا weak مضبوط اشارے ((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ď. ===== //