यह रणनीति एक खरीद और बिक्री संकेत उत्पन्न करती है, जो Jurik Moving Average ((JMA) और RSI के संकेतकों के साथ क्रॉस होती है। यह रणनीति दो संकेतकों के संयोजन का उपयोग करने का प्रयास करती है, जब रुझान अधिक स्पष्ट होता है, तो व्यापार करने के लिए।
यह रणनीति मुख्य रूप से दो सूचकांकों के संयोजन का उपयोग करती हैः
जेएमए सूचकांकः एक सरलीकृत चलती औसत जो कि कम विलंबता और मूल्य परिवर्तनों को अधिक तेज़ी से पकड़ने में सक्षम है।
आरएसआई सूचकांकः बाजार की क्रय-विक्रय शक्ति को दर्शाने वाला एक सामान्य मजबूत-कमजोर सूचक।
जब JMA RSI को पार करता है, तो यह दर्शाता है कि अल्पकालिक मूल्य वृद्धि की गति लंबी अवधि की प्रवृत्ति से अधिक है, जो एक खरीद संकेत उत्पन्न करती है; जब JMA RSI को पार करता है, तो यह संकेत देता है कि यह शून्य है।
क्रॉस सिग्नल के बाद, ट्रेडों को विपरीत दिशा में खोला जाता है। कीमत निर्दिष्ट लक्ष्य अनुपात से अधिक हो जाती है या सूचक फिर से क्रॉस रिवर्स करता है।
JMA सूचकांक पैरामीटर समायोज्य है और विभिन्न चक्रों के लिए अनुकूलित किया जा सकता है।
आरएसआई सूचकांक झूठे ब्रेक को फ़िल्टर कर सकता है।
दोहरे सूचकांक संयोजन का उपयोग करके, झूठे संकेतों को कम किया जा सकता है।
एक अंतर्निहित स्टॉप लॉस सिस्टम जो नुकसान को सीमित कर सकता है
अनुकूलन योग्य लाभ अनुपात, लाभ लक्ष्य प्राप्त करने के लिए
दोहरे संकेतक संयोजन inating, सिग्नल उत्पादन आवृत्ति बहुत कम हो सकता है. आप संकेतक अधिक संवेदनशील बनाने के लिए पैरामीटर समायोजित कर सकते हैं.
जेएमए सूचकांक भी पिछड़े हुए हैं, और शायद कीमत के मोड़ को याद कर रहे हैं। अन्य अग्रणी सूचकांकों के साथ संयोजन में अनुकूलित किया जा सकता है।
एक गलत स्टॉप-लॉस सेट को तोड़ दिया जा सकता है जिससे नुकसान बढ़ सकता है। एक उपयुक्त स्टॉप-लॉस को ऐतिहासिक डेटा परीक्षण के आधार पर निर्धारित किया जाना चाहिए।
केवल संकेतक पर भरोसा करने से झूठे संकेत उत्पन्न होते हैं। ट्रेड वॉल्यूम या अस्थिरता संकेतक को फ़िल्टर करने के लिए जोड़ा जा सकता है।
JMA मापदंडों के परीक्षण के लिए सबसे अच्छा संयोजन खोजने के लिए।
विभिन्न RSI पैरामीटर सेटिंग्स को आज़माएं, सूचक प्रभाव को अनुकूलित करें।
मोबाइल स्टॉप लॉस को शामिल करना, स्टॉप लॉस को अधिक अनुकूलनीय बनाता है।
स्टॉक खोलने के लिए भंडारण प्रबंधन तर्क का अनुकूलन करें, जैसे कि स्टॉक जोड़ने और बैचों के निर्माण की शर्तें।
KD, MACD, आदि जैसे अन्य फिल्टर सिग्नल पर शोध करें।
यह रणनीति जेएमए और आरएसआई दो सूचकांक क्रॉस पर ट्रेंड ट्रैकिंग को लागू करने के लिए कॉन्फ़िगर की जा सकती है, जो जोखिम को सीमित करने के लिए है। हालांकि, अभी भी कुछ झूठे संकेतों की संभावना है, और गलत व्यापार को कम करने के लिए सूचक मापदंडों और फ़िल्टरिंग शर्तों को अनुकूलित करने की आवश्यकता है। स्टॉप-लॉस रणनीति को रिटर्न्स डेटा के आधार पर अनुकूलित परीक्षण की भी आवश्यकता है। यह रणनीति द्वि-सूचक क्रॉस ट्रेडिंग के लिए एक बुनियादी ढांचा प्रदान करती है, जिसमें कुछ विस्तार की जगह है।
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Stratégie marche le mieux sur du 2 jours
strategy("JMA(7,50,RSI) crossing RSI(14,close)", overlay=false, currency=currency.EUR, default_qty_type=strategy.cash, default_qty_value=5000)
// Strategy Tester Start Time
sYear = input(2019, title = "Start Year")
sMonth = input(06, title = "Start Month", minval = 01, maxval = 12)
sDay = input(01, title = "Start Day", minval = 01, maxval = 31)
sHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = true
// Strategy Tester End Time
eYear = input(2019, title = "End Year")
eMonth = input(12, title = "End Month", minval = 01, maxval = 12)
eDay = input(01, title = "End Day", minval = 01, maxval = 31)
eHour = input(00, title = "End Hour", minval = 00, maxval = 23)
eMinute = input(00, title = "End Minute", minval = 00, maxval = 59)
endTime = true
// === RSI ===
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=color.purple)
band1 = hline(70)
band0 = hline(30)
// === JMA ===
_length = input(7, title="Length")
_phase = input(50, title="Phase")
_power = input(2, title="Power")
highlightMovements = input(true, title="Highlight Movements ?")
// srcJMA = input(rsi, title="Source")
srcJMA = rsi
phaseRatio = _phase < -100 ? 0.5 : _phase > 100 ? 2.5 : _phase / 100 + 1.5
beta = 0.45 * (_length - 1) / (0.45 * (_length - 1) + 2)
alpha = pow(beta, _power)
jma = 0.0
e0 = 0.0
e0 := (1 - alpha) * srcJMA + alpha * nz(e0[1])
e1 = 0.0
e1 := (srcJMA - e0) * (1 - beta) + beta * nz(e1[1])
e2 = 0.0
e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) + pow(alpha, 2) * nz(e2[1])
jma := e2 + nz(jma[1])
// === End of JMA def ===
jmaColor = highlightMovements ? (jma > jma[1] ? color.green : color.red) : #6d1e7f
plot(jma, title="JMA switch", linewidth=2, color=jmaColor, transp=0)
// === Inputs ===
// risk management
useStop = input(true, title = "Use Initial Stop Loss?")
goLong() => crossover(rsi, jma)
killLong() => crossunder(rsi, jma)
// ======= DEBUGGGGGGGG ============
long_price = 0.0
short_price = 0.0
if(startTime and endTime)
if(goLong())
long_price := close
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong() and close > long_price)
// Shorting if using
goShort() => killLong()
killShort() => goLong()
if(startTime and endTime)
if(goShort())
short_price := close
strategy.entry("Sell", strategy.short, when = goShort() and close < short_price)
strategy.close("Sell", when = killShort())
// =========================
if (useStop)
strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08)
strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)