दोहरी रिवर्सल मोमेंटम इंडेक्स ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-25 12:02:57
टैगः

img

अवलोकन

यह रणनीति ट्रेडिंग के लिए डबल रिवर्सल मोमेंटम इंडेक्स संकेतक पर आधारित है। यह उच्चतम मूल्य, सबसे कम मूल्य और समापन मूल्य का उपयोग करके एक निश्चित समय अवधि में रिवर्सल मोमेंटम इंडेक्स की गणना करता है, और जब सूचकांक ओवरबॉट क्षेत्र से नीचे या ओवरसोल्ड क्षेत्र से ऊपर की ओर मुड़ता है तो ट्रेडिंग सिग्नल उत्पन्न करता है। यह एक ब्रेकआउट स्टॉप लॉस तंत्र भी निर्धारित करता है।

रणनीति तर्क

इस रणनीति का मुख्य सूचक स्टोचैस्टिक मोमेंटम इंडेक्स (एसएमआई) है। एसएमआई का गणना सूत्र हैः

$$SMI = \frac{Close-(HH+LL)/2}{AVGDIFF/2}*100$$

जहां HH पिछले N दिनों में उच्चतम मूल्य है, LL पिछले N दिनों में सबसे कम मूल्य है, N पैरामीटर a द्वारा निर्धारित किया गया है; AVGDIFF HH-LL का M-दिन का चलती औसत है, M पैरामीटर b द्वारा निर्धारित किया गया है।

एसएमआई कीमतों की उलट विशेषता को दर्शाता है। जब स्टॉक की कीमत पिछले एन दिनों में उच्चतम बिंदु के करीब आती है, तो एसएमआई 100 के करीब होता है, जो स्टॉक के ओवरबॉय को दर्शाता है; जब यह पिछले एन दिनों में सबसे कम बिंदु के करीब होता है, तो एसएमआई -100 के करीब होता है, जो ओवरसोल्ड को दर्शाता है। खरीद / बिक्री संकेत तब उत्पन्न होते हैं जब एसएमआई 100 स्तर से नीचे या -100 स्तर से ऊपर की ओर मुड़ता है।

रणनीति ट्रेडिंग सिग्नल लाइन के रूप में एसएमआई के एम-डे मूविंग एवरेज एसएमए का उपयोग करती है। जब एसएमआई ओवरबॉट जोन से नीचे की ओर मुड़ता है और एसएमए से नीचे टूट जाता है, तो एक खरीद संकेत उत्पन्न होता है। जब एसएमआई ओवरसोल्ड जोन से ऊपर की ओर मुड़ता है और एसएमए से ऊपर टूट जाता है, तो एक बिक्री संकेत उत्पन्न होता है।

इसके अलावा, रणनीति स्टॉप लॉस के लिए कैंडलस्टिक बॉडी ब्रेकआउट का न्याय करती है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

  1. मूल्य उलट-फेर के सिद्धांत का उपयोग करते हुए, यह उलट-फेर के बिंदुओं पर ट्रेडिंग सिग्नल उत्पन्न कर सकता है और उलट-फेर के अवसरों को पकड़ सकता है।

  2. एसएमआई उच्चतम मूल्य, निम्नतम मूल्य और समापन मूल्य को जोड़कर ओवरबॉट और ओवरसोल्ड स्थितियों का आकलन करता है, जिससे अधिक विश्वसनीय संकेत प्राप्त होते हैं।

  3. कैंडलस्टिक बॉडी ब्रेकआउट स्टॉप लॉस के साथ, यह समय पर पदों से बाहर निकल सकता है और जोखिमों को प्रभावी ढंग से नियंत्रित कर सकता है।

  4. रणनीति में कुछ पैरामीटर हैं और इसे लागू करना और अनुकूलित करना आसान है।

जोखिम विश्लेषण

इस रणनीति के लिए कुछ जोखिम भी हैंः

  1. रिवर्स ट्रेडिंग में सफल रिवर्स का सटीक समय निर्धारित करना मुश्किल होता है और ट्रेंड रिवर्स को पकड़ने से पहले कई नुकसान हो सकते हैं।

  2. पलटने के बिंदुओं का गलत आकलन नुकसान को बढ़ा सकता है।

  3. बॉडी ब्रेकआउट स्टॉप लॉस बहुत संवेदनशील हो सकता है जिसमें फंसने की उच्च संभावना हो सकती है।

समाधान इस प्रकार हैं:

  1. रिवर्स ट्रेडिंग आवृत्ति को समायोजित करने के लिए एसएमआई मापदंडों को अनुकूलित करें।

  2. पलटने के समय को निर्धारित करने के लिए अन्य संकेतकों को मिलाएं।

  3. बहुत संवेदनशील होने से बचने के लिए खोने को रोकने के लिए शरीर के आकार को समायोजित करें।

अनुकूलन

इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः

  1. SMI के पैरामीटर a और b को अनुकूलित करना ताकि रिवर्स को कैप्चर करने की संवेदनशीलता को समायोजित किया जा सके।

  2. मुख्य रुझान दिशाओं को याद करने से बचने के लिए निर्णय के लिए अन्य संकेतक जोड़ें, उदाहरण के लिए चलती औसत, अस्थिरता संकेतक आदि।

  3. बहुत संवेदनशील या असंवेदनशील होने से बचने के लिए अधिक स्टॉप लॉस विधियों को जोड़ें, जैसे कि ट्रेलिंग स्टॉप लॉस, कर्व स्टॉप लॉस आदि।

  4. असफल रिवर्स ट्रेडों से बचते हुए रिवर्स सफलता की संभावना का आकलन करने के लिए मशीन लर्निंग मॉडल शामिल करें।

निष्कर्ष

संक्षेप में, यह रिवर्सल मोमेंटम इंडेक्स एसएमआई पर आधारित एक दो-दिशात्मक ट्रेडिंग रणनीति है। लाभ मूल्य रिवर्सल का उपयोग करके और रिवर्सल बिंदुओं पर संकेत उत्पन्न करके अधिक अल्पकालिक ट्रेडिंग अवसरों को पकड़ने में निहित है। लेकिन रिवर्सल ट्रेडिंग के विशिष्ट जोखिम भी हैं। प्रबलित नुकसान को रोकने के लिए पैरामीटर ट्यूनिंग और स्टॉप लॉस अनुकूलन की आवश्यकता है। कुल मिलाकर, यह रणनीति रिवर्सल ट्रेडिंग में रुचि रखने वाले निवेशकों के लिए उपयुक्त है, लेकिन जोखिमों को नियंत्रित करने के लिए अन्य संकेतकों और सख्त स्टॉप लॉस को शामिल करना चाहिए।


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Stochastic Strategy v1.0", shorttitle = "Stochastic str 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
a = input(5, "Percent K Length")
b = input(3, "Percent D Length")
limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Stochastic Momentum Index
ll = lowest (low, a)
hh = highest (high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ema(ema(rdiff,b),b)
avgdiff = ema(ema(diff,b),b)
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,b)

//Lines
plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index")
plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line")
plot(limit, color = black, title = "Over Bought")
plot(-1 * limit, color = black, title = "Over Sold")
plot(0, color = blue, title = "Zero Line")

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = SMIsignal < -1 * limit and close < open
dn = SMIsignal > limit and close > open
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot)

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : lot)
    
if  exit
    strategy.close_all()

अधिक