
इस रणनीति को RSI-आधारित ट्रेंड ट्रैकिंग स्टॉप-लॉस रणनीति कहा जाता है। यह रणनीति RSI का उपयोग करके ओवरबॉट और ओवरसोल्ड की स्थिति का आकलन करती है, जो कि तेजी से और धीमी गति से MA संकेतकों के साथ मिलकर ट्रेंड की दिशा का आकलन करती है, जो कि प्रवेश की शर्तों को निर्धारित करती है। साथ ही प्रतिशत ट्रैकिंग स्टॉप-लॉस तंत्र का उपयोग करके स्टॉप-लॉस से बाहर निकलती है।
यह रणनीति मुख्य रूप से आरएसआई सूचक और एमए सूचक के माध्यम से प्रवेश समय का न्याय करती है। आरएसआई सूचक पैरामीटर 2 चक्र के लिए सेट किया गया है, ओवरबॉय ओवरसोल की स्थिति का न्याय करता है। तेजी से एमए क्रमशः 50 चक्र और 200 चक्र के लिए सेट किया गया है, प्रवृत्ति की दिशा का न्याय करता है। विशिष्ट प्रवेश तर्क हैः
मल्टीहेड एंट्रीः फास्ट एमए पर स्लो एमए पहनें, और कीमत धीमी एमए से अधिक है, जबकि आरएसआई ओवरसोल्ड क्षेत्र (डिफ़ॉल्ट 10%) से कम है;
खोखला प्रवेशः तेजी से एमए के तहत धीमी गति से एमए के माध्यम से, और कीमत धीमी गति से एमए से कम है, जबकि आरएसआई ओवरबॉय क्षेत्र (डिफ़ॉल्ट 90%) से अधिक है।
इसके अलावा, रणनीति में एक वैकल्पिक अस्थिरता फ़िल्टर भी है। यह फ़िल्टर एमए के ढलान अंतर को धीमी गति से गणना करता है, और जब अंतर सेट थ्रेशोल्ड से अधिक हो जाता है, तो यह स्थिति खोलने के लिए होता है। इसका उद्देश्य कीमतों के उतार-चढ़ाव के दौरान स्पष्ट दिशा के बिना स्थिति खोलने से बचना है।
बाहर निकलने पर, रणनीति प्रतिशत ट्रैक स्टॉप का उपयोग करती है। इनपुट स्टॉप प्रतिशत के आधार पर, प्रत्येक कूद मूल्य अंतर के साथ स्टॉप मूल्य की गणना करें, गतिशील समायोजन स्टॉप प्राप्त करें।
इस रणनीति के मुख्य फायदे हैंः
इस रणनीति में कुछ जोखिम भी हैं, जो मुख्य रूप से इस प्रकार हैंः
उपरोक्त जोखिमों के लिए अनुकूलन निम्नलिखित तरीकों से किया जा सकता हैः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
इस रणनीति के लिए समग्र एक अधिक स्थिर प्रवृत्ति ट्रैकिंग रणनीति है. यह आरएसआई और एमए दोहरे सूचक निर्णय के साथ संयुक्त है, जबकि कुछ स्थिरता की गारंटी, लेकिन यह भी स्पष्ट प्रवृत्ति पलटाव अवसर पकड़ कर सकते हैं. साथ ही अस्थिरता फ़िल्टर सेट अप कुछ जोखिम से बचने के लिए, प्रतिशत स्टॉप लॉस विधि भी प्रभावी रूप से एकल नुकसान को नियंत्रित कर सकते हैं. इस रणनीति के रूप में इस्तेमाल किया जा सकता है कई किस्मों के लिए सामान्य रणनीति है, लेकिन यह भी विशेष किस्मों के लिए पैरामीटर समायोजन और मॉडल अनुकूलन, ताकि बेहतर रणनीति प्रभाव प्राप्त कर सकते हैं.
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// Scalping strategy
// © Lukescream and Ninorigo
// (original version by Lukescream - lastest versions by Ninorigo) - v1.3
//
//@version=4
strategy(title="Scalping using RSI 2 indicator", shorttitle="RSI 2 Strategy", overlay=true, pyramiding=0, process_orders_on_close=false)
var bool ConditionEntryL = false
var bool ConditionEntryS = false
//***********
// Costants
//***********
def_start_date = timestamp("01 Jan 2021 07:30 +0000")
def_end_date = timestamp("01 Dec 2024 07:30 +0000")
def_rsi_length = 2
def_overbought_value = 90
def_oversold_value = 10
def_slow_ma_length = 200
def_fast_ma_length = 50
def_ma_choice = "EMA"
def_tick = 0.5
def_filter = true
def_trailing_stop = 1
//***********
// Change the optional parameters
//***********
start_time = input(title="Start date", defval=def_start_date, type=input.time)
end_time = input(title="End date", defval=def_end_date, type=input.time)
// RSI
src = input(title="Source", defval=close, type=input.source)
rsi_length = input(title="RSI Length", defval=def_rsi_length, minval=1, type=input.integer)
overbought_threshold = input(title="Overbought threshold", defval=def_overbought_value, type=input.float)
oversold_threshold = input(title="Oversold threshold", defval=def_oversold_value, type=input.float)
// Moving average
slow_ma_length = input(title="Slow MA length", defval=def_slow_ma_length, type=input.integer)
fast_ma_length = input(title="Fast MA length", defval=def_fast_ma_length, type=input.integer)
ma_choice = input(title="MA choice", defval="EMA", options=["SMA", "EMA"])
// Input ticker
tick = input(title="Ticker size", defval=def_tick, type=input.float)
filter = input(title="Trend Filter", defval=def_filter, type=input.bool)
// Trailing stop (%)
ts_rate = input(title="Trailing Stop %", defval=def_trailing_stop, type=input.float)
//***********
// RSI
//***********
// Calculate RSI
up = rma(max(change(src), 0), rsi_length)
down = rma(-min(change(src), 0), rsi_length)
rsi = (down == 0 ? 100 : (up == 0 ? 0 : 100-100/(1+up/down)))
//***********
// Moving averages
//***********
slow_ma = (ma_choice == "SMA" ? sma(close, slow_ma_length) : ema(close, slow_ma_length))
fast_ma = (ma_choice == "SMA" ? sma(close, fast_ma_length) : ema(close, fast_ma_length))
// Show the moving averages
plot(slow_ma, color=color.white, title="Slow MA")
plot(fast_ma, color=color.yellow, title="Fast MA")
//***********
// Strategy
//***********
if true
// Determine the entry conditions (only market entry and market exit conditions)
// Long position
ConditionEntryL := (filter == true ? (fast_ma > slow_ma and close > slow_ma and rsi < oversold_threshold) : (fast_ma > slow_ma and rsi < oversold_threshold))
// Short position
ConditionEntryS := (filter == true ? (fast_ma < slow_ma and close < slow_ma and rsi > overbought_threshold) : (fast_ma < slow_ma and rsi > overbought_threshold))
// Calculate the trailing stop
ts_calc = close * (1/tick) * ts_rate * 0.01
// Submit the entry orders and the exit orders
// Long position
if ConditionEntryL
strategy.entry("RSI Long", strategy.long)
// Exit from a long position
strategy.exit("Exit Long", "RSI Long", trail_points=0, trail_offset=ts_calc)
// Short position
if ConditionEntryS
strategy.entry("RSI Short", strategy.short)
// Exit from a short position
strategy.exit("Exit Short", "RSI Short", trail_points=0, trail_offset=ts_calc)
// Highlights long conditions
bgcolor (ConditionEntryL ? color.navy : na, transp=60, offset=1, editable=true, title="Long position band")
// Highlights short conditions
bgcolor (ConditionEntryS ? color.olive : na, transp=60, offset=1, editable=true, title="Short position band")