
Bybit ईएमए आरएसआई ट्रेंड ट्रैकिंग और गतिशीलता रणनीति एक मात्रात्मक व्यापार रणनीति है जो सूचकांक चलती औसत (ईएमए) और अपेक्षाकृत मजबूत सूचकांक (आरएसआई) को जोड़ती है। यह रणनीति बाजार की प्रवृत्ति का आकलन करने के लिए दो अलग-अलग अवधि के ईएमए का उपयोग करती है, जबकि रुझान की प्रभावशीलता की पुष्टि करने के लिए आरएसआई का उपयोग करती है। जब तेजी से ईएमए धीमी गति से ईएमए और आरएसआई को एक विशिष्ट निचले सीमा से नीचे पार करता है, तो रणनीति अधिक संकेत उत्पन्न करती है; इसके विपरीत, जब तेजी से ईएमए धीमी गति से ईएमए को पार करता है और आरएसआई एक विशिष्ट ऊपरी सीमा से ऊपर है, तो रणनीति एक खाली संकेत उत्पन्न करती है। यह रणनीति विभिन्न प्रकार के हैंडओवर अनुपात सेट करती है, जैसे कि बिबिट खाता स्तर, और इसमें एक अंतर्निहित स्टॉप लॉस फ़ंक्शन है, जो जोखिम को प्रभावी रूप से नियंत्रित कर सकता है।
Bybit ईएमए आरएसआई ट्रेंड ट्रैकिंग और गतिशीलता रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जिसमें ट्रेंड ट्रैकिंग और गतिशीलता संकेतकों का संयोजन होता है, ईएमए और आरएसआई के संयोजन के माध्यम से, बाजार की प्रवृत्ति को बेहतर ढंग से पकड़ने के लिए। यह रणनीति अंतर्निहित स्टॉप-लॉस फ़ंक्शन और Bybit खाते के स्तर के आधार पर सेट करने की प्रक्रिया शुल्क की सुविधा प्रदान करती है, जिससे जोखिम को प्रभावी ढंग से नियंत्रित किया जा सकता है और उपयोगकर्ताओं की विभिन्न ट्रेडिंग स्थितियों के लिए अनुकूलित किया जा सकता है। हालांकि, इस रणनीति में अभी भी अनुकूलन की जगह है, जैसे कि पैरामीटर अनुकूलन, अन्य तकनीकी संकेतकों को शामिल करना, स्टॉप-लॉस सेटिंग्स को अनुकूलित करना आदि। निरंतर अनुकूलन और सुधार के माध्यम से, रणनीति को वास्तविक व्यापार में बेहतर प्रभाव की उम्मीद है।
/*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