गति दोहरी चलती औसत ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-01 18:13:21
टैगः

img

अवलोकन

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

रणनीतिक सिद्धांत

रणनीति मुख्य रूप से निम्नलिखित आकलन संकेतकों के आधार पर व्यापारिक निर्णय करती है:

  1. मूल्य चैनलः चैनल रेंज निर्धारित करने के लिए पिछले 30 मोमबत्तियों के उच्चतम और निम्नतम मूल्य की गणना करें। चैनल के मध्य बिंदु से ऊपर की समापन मूल्य को तेजी माना जाता है। चैनल के मध्य बिंदु से नीचे की समापन मूल्य को मंदी माना जाता है।

  2. फास्ट आरएसआईः नवीनतम 2 मोमबत्तियों के आरएसआई मूल्य की गणना करें। 25 से नीचे आरएसआई को ओवरसोल्ड माना जाता है और 75 से ऊपर आरएसआई को ओवरबॉट माना जाता है।

  3. यिन यांग रेखा: नवीनतम 2 मोमबत्तियों के इकाई आकार की गणना करें। दो लाल मोमबत्तियां एक मंदी संकेत का सुझाव देती हैं जबकि दो हरी मोमबत्तियां एक तेजी संकेत का सुझाव देती हैं।

  4. स्टॉप लॉस कंडीशनः जब नुकसान एक निश्चित प्रतिशत तक पहुंच जाता है तो नुकसान को सीमित करने के लिए विलय करना।

प्रवृत्ति, गति और ओवरबॉट/ओवरसोल्ड संकेतकों के संयोजन संकेतों के साथ, यह अल्पकालिक रणनीति प्रभावी रूप से उलटफेर की पहचान कर सकती है और समय पर ट्रेडिंग संकेत उत्पन्न कर सकती है।

लाभ विश्लेषण

इस रणनीति के लाभों में निम्नलिखित शामिल हैंः

  1. कई संकेतकों के संयोजन से संकेत की सटीकता में सुधार, जो झूठे संकेतों को फ़िल्टर करने में मदद करता है।

  2. फास्ट आरएसआई के उपयोग के कारण मोड़ बिंदुओं पर तेजी से प्रतिक्रियाएं, जो नियमित आरएसआई की तुलना में अधिक संवेदनशील है।

  3. विभिन्न उत्पादों और समय सीमाओं में उच्च विश्वसनीयता, बैकटेस्ट के दौरान कठोर पैरामीटर अनुकूलन के लिए धन्यवाद।

  4. अपेक्षित से अधिक संभावित नुकसान को नियंत्रित करने के लिए स्वचालित स्टॉप लॉस तंत्र

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

इस रणनीति के कुछ जोखिमः

  1. अनुचित मूल्य चैनल पैरामीटर सेटिंग के कारण झटके हो सकते हैं। बहुत संकीर्ण चैनल झूठे ब्रेकआउट को ट्रिगर कर सकते हैं।

  2. मजबूत रुझानों के दौरान एकतरफा स्थिति रखने का समय बहुत लंबा हो सकता है, जो अनुमानों से अधिक हो सकता है।

  3. गलत स्टॉप लॉस बिंदु सेटिंग से नुकसान बढ़ सकता है। इस पैरामीटर को सावधानीपूर्वक कॉन्फ़िगरेशन की आवश्यकता है - बहुत अधिक या बहुत कम प्रतिकूल हो सकता है।

हम चैनल पैरामीटर को समायोजित करके, प्रवेश समय को अनुकूलित करके, स्टॉप लॉस बिंदुओं को गतिशील रूप से समायोजित करके इन जोखिमों को कम और कम कर सकते हैं।

अनुकूलन दिशाएँ

कुछ दिशाएं जिनमें रणनीति को और अनुकूलित किया जा सकता हैः

  1. स्वचालित पैरामीटर अनुकूलन प्राप्त करने के लिए मशीन लर्निंग एल्गोरिदम को शामिल करें, अनुकूलन क्षमता को बढ़ाएं।

  2. व्यापारिक निर्णयों और संकेत सटीकता में सुधार के लिए समाचार जैसे अधिक डेटा स्रोतों को मिलाएं।

  3. जोखिमों को बेहतर ढंग से नियंत्रित करने के लिए बाजार की स्थितियों के आधार पर गतिशील स्थिति आकार निर्धारण तंत्र विकसित करना।

  4. निरपेक्ष प्रतिफल को और बढ़ाने के लिए वायदा मध्यस्थता व्यापार पर लागू करने का विस्तार करना।

निष्कर्ष

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


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.2", shorttitle = "Price Channel str 1.2", overlay=true, 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 = 100000, title = "capital, %")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
usersi = input(true, defval = true, title = "Use RSI strategy")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel Period")
showcl = input(true, defval = true, title = "Price Channel")
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")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
col2 = showcl ? black : na
plot(lasthigh, color = col2, linewidth = 2)
plot(lastlow, color = col2, linewidth = 2)
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and uset
dn1 = gbars and close < center and uset
up2 = close <= lastlow and close < open and usect
dn2 = close >= lasthigh and close > open and usect
up3 = fastrsi < 25 and close > center and usersi
dn3 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

अधिक