
Bybit EMA RSI ٹرینڈ ٹریکنگ اینڈ ڈرائیو اسٹریٹجی ایک مقداری تجارتی حکمت عملی ہے جس میں انڈیکس کی حرکت پذیری اوسط ((EMA) اور نسبتا strong مضبوط اشارے ((RSI) کا امتزاج کیا گیا ہے۔ یہ حکمت عملی مارکیٹ کے رجحانات کا فیصلہ کرنے کے لئے دو مختلف ادوار کے EMA کا استعمال کرتی ہے ، جبکہ رجحانات کی تاثیر کی تصدیق کے لئے RSI اشارے کا استعمال کرتی ہے۔ جب تیز EMA پر سست EMA اور RSI کسی خاص نچلی حد سے نیچے ہوتا ہے تو حکمت عملی ایک سے زیادہ سگنل پیدا کرتی ہے۔ اس کے برعکس ، جب تیز EMA کے نیچے سست EMA اور RSI کسی خاص حد سے اوپر ہوتا ہے تو حکمت عملی ایک خالی سگنل پیدا کرتی ہے۔ یہ حکمت عملی Bybit اکاؤنٹ کے درجے کے مطابق مختلف ہینڈلنگ فیس تناسب بھی ترتیب دیتی ہے ، اور اس میں اسٹاپ نقصان کو روکنے کی صلاحیت موجود ہے ، جس سے خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
Bybit EMA RSI ٹرینڈ ٹریکنگ اور حرکیات کی حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جس میں رجحان کی پیروی اور حرکیات کے اشارے شامل ہیں۔ ای ایم اے اور آر ایس آئی کے ساتھ مل کر ، مارکیٹ کے رجحانات کو بہتر طور پر پکڑنے کے لئے۔ اس حکمت عملی میں اسٹاپ نقصان کی خصوصیت اور بیبیٹ اکاؤنٹ کی سطح کے مطابق کمیشن کی ترتیب کی خصوصیت شامل ہے ، جو خطرے کو مؤثر طریقے سے کنٹرول کرسکتی ہے اور صارفین کے مختلف تجارتی حالات کے مطابق ہے۔ تاہم ، اس حکمت عملی میں ابھی بھی اصلاح کی گنجائش موجود ہے ، جیسے پیرامیٹرز کی اصلاح ، دیگر تکنیکی اشارے متعارف کروانا ، اسٹاپ نقصان کی ترتیب کو بہتر بنانا وغیرہ۔ مسلسل اصلاح اور بہتری کے ذریعہ ، اس حکمت عملی کو حقیقی تجارت میں بہتر اثر انداز ہونے کی امید ہے۔
/*backtest
start: 2024-03-21 00:00:00
end: 2024-03-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @BryanAaron
//@version=5
strategy("Bybit EMA RSI Strategy", overlay=true)
// Input parameters
fastLength = input(90, title="Fast EMA Length")
slowLength = input(300, title="Slow EMA Length")
rsiLength = input(5, title="RSI Length")
rsiUpperThreshold = input(85, title="RSI Upper Threshold")
rsiLowerThreshold = input(45, title="RSI Lower Threshold")
takeProfitPerc = input(5, title="Take Profit %")
stopLossPerc = input(3, title="Stop Loss %")
bybitAccountLevel = input.string("VIP 0", title="Bybit Account Level", options=["VIP 0", "VIP 1", "VIP 2", "VIP 3", "VIP 4"])
// Calculate moving averages
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Trading conditions
longCondition = (fastMA > slowMA) and (rsi < rsiLowerThreshold)
shortCondition = (fastMA < slowMA) and (rsi > rsiUpperThreshold)
// Set commission based on Bybit account level
commissionPerc = switch bybitAccountLevel
"VIP 0" => 0.075
"VIP 1" => 0.065
"VIP 2" => 0.055
"VIP 3" => 0.045
"VIP 4" => 0.035
=> 0.075
// Calculate entry prices with commission
var float longEntryPrice = na
var float shortEntryPrice = na
longEntryPriceWithCommission = close * (1 + commissionPerc / 100)
shortEntryPriceWithCommission = close * (1 - commissionPerc / 100)
// Calculate take profit and stop loss prices
takeProfitPrice(entryPrice) => entryPrice * (1 + takeProfitPerc / 100)
stopLossPrice(entryPrice) => entryPrice * (1 - stopLossPerc / 100)
// Plot entry prices
plotchar(longCondition, title="Long Entry Price", char="LE", location=location.belowbar, color=color.green)
plotchar(shortCondition, title="Short Entry Price", char="SE", location=location.abovebar, color=color.red)
// Draw position on the chart
longColor = color.green
shortColor = color.red
profitColor = color.new(color.green, 80)
lossColor = color.new(color.red, 80)
plotshape(longCondition and strategy.position_size > 0, title="Long Position", text="Long", location=location.belowbar, style=shape.labelup, size=size.small, color=longColor, textcolor=color.white)
plotshape(shortCondition and strategy.position_size < 0, title="Short Position", text="Short", location=location.abovebar, style=shape.labeldown, size=size.small, color=shortColor, textcolor=color.white)
if (strategy.position_size > 0)
line.new(bar_index, longEntryPrice, bar_index + 1, longEntryPrice, color=longColor, width=2)
longProfitLine = line.new(bar_index, takeProfitPrice(longEntryPrice), bar_index + 1, takeProfitPrice(longEntryPrice), color=profitColor, width=1)
longLossLine = line.new(bar_index, stopLossPrice(longEntryPrice), bar_index + 1, stopLossPrice(longEntryPrice), color=lossColor, width=1)
else if (strategy.position_size < 0)
line.new(bar_index, shortEntryPrice, bar_index + 1, shortEntryPrice, color=shortColor, width=2)
shortProfitLine = line.new(bar_index, stopLossPrice(shortEntryPrice), bar_index + 1, stopLossPrice(shortEntryPrice), color=profitColor, width=1)
shortLossLine = line.new(bar_index, takeProfitPrice(shortEntryPrice), bar_index + 1, takeProfitPrice(shortEntryPrice), color=lossColor, width=1)
// Entry
if (longCondition)
strategy.entry("Long", strategy.long)
longEntryPrice := longEntryPriceWithCommission
else if (shortCondition)
strategy.entry("Short", strategy.short)
shortEntryPrice := shortEntryPriceWithCommission