सामान्यीकृत MACD पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-09-14 20:01:07 अंत में संशोधित करें: 2023-09-14 20:01:07
कॉपी: 1 क्लिक्स: 1118
1
ध्यान केंद्रित करना
1617
समर्थक

इस लेख में एक मात्रात्मक ट्रेडिंग रणनीति के बारे में विस्तार से बताया गया है, जो कि एकीकरण MACD सूचक पर आधारित है। यह रणनीति सिग्नल की गुणवत्ता में सुधार के लिए क्लासिक MACD रणनीति के लिए अनुकूलित है।

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

इस रणनीति का मूल विचार पारंपरिक MACD संकेतकों को एकीकरण के लिए है ताकि त्रुटि को कम किया जा सके। इसके लिए निम्नलिखित चरणों का पालन किया जाता हैः

  1. अल्पकालिक और दीर्घकालिक हल चलती औसत की गणना करें और उनके क्रॉस-रिलेशंस के आधार पर बड़े रुझानों का आकलन करें।

  2. MACD सूचकांक के अंतर की गणना करें;

  3. MACD सूचकांक के लिए एक निश्चित चक्र के भीतर एकीकरण उपचार;

  4. ट्रेडिंग ट्रिगर के लिए एक समेकित MACD के लिए औसत रेखा की गणना करें;

  5. जब एकीकरण MACD ऊपर ट्रिगर एकसमान पहनने के लिए अधिक करते हैं, नीचे पहनने के लिए खाली;

  6. इस प्रकार, हम एक-दूसरे के लिए एक-दूसरे के लिए एक-दूसरे के लिए एक-दूसरे के लिए हैं।

  7. स्टॉप लॉस स्टॉपलॉस सेट करें और एकल लेनदेन के जोखिम को नियंत्रित करें।

एकरूपता उपचार MACD विचलन के पूर्ण आयाम को कम कर सकता है, जिससे शोर कम हो जाता है और सिग्नल की गुणवत्ता में सुधार होता है। प्रवृत्ति फ़िल्टर भी स्थानीय समायोजन के कारण रिवर्स ऑपरेशन से बचता है। स्टॉप लॉस स्टॉप एकल हानि को नियंत्रित करता है।

  1. रणनीतिक लाभ

इस रणनीति की तुलना में सरल MACD रणनीति, सबसे बड़ा लाभ यह है कि एकीकरण प्रसंस्करण किया जाता है, जो MACD की त्रुटि दर को कम करने और संकेत की सटीकता में सुधार करने के लिए प्रभावी है।

एक और लाभ यह है कि इसमें एक प्रवृत्ति-निर्णय फ़िल्टर जोड़ा गया है, जिससे प्रवृत्ति में उलटा संचालन से बचा जा सकता है।

अंत में, स्टॉप-लॉस और स्टॉप-ऑफ की शर्तों को सेट करना, जो प्रत्येक लेनदेन के लिए जोखिम-लाभ को नियंत्रित करता है, सक्रिय धन प्रबंधन को प्राप्त करता है।

  1. संभावित जोखिम

हालांकि इस रणनीति को अनुकूलित किया गया है, वास्तविक उपयोग में निम्नलिखित जोखिमों के बारे में भी ध्यान दिया जाना चाहिएः

सबसे पहले, पैरामीटर अनुकूलित करने में अधिक कठिनाई होती है, और गलत सेटिंग ओवरफिट का कारण बन सकती है।

दूसरा, स्टॉप लॉस सेटिंग को बहुत करीब से तोड़ने से नुकसान बढ़ सकता है।

अंत में, जब रुझान बदलता है, तो संकेतों में देरी हो सकती है और समय पर प्रतिक्रिया नहीं दी जा सकती है।

चार बातें, सारांश

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

रणनीति स्रोत कोड
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Normalized MACD but heavily modified by SeaSide420. Normalized MACD v420
strategy("Normalized MACD (v420)",shorttitle="NmacD(v420)",overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1440, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) 
p=input(ohlc4)
jah=input(title="HullMA cross",defval=21)
tsp = input(34,title='Trigger')
np = input(50,title='Normalize')
SL = input(defval=-420.00, title="Stop Loss in $", step=1)
TP = input(defval=31.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(p,round(jah/2))
nma=wma(p,jah)
diff=n2ma-nma
sqn=round(sqrt(jah))
n2ma1=2*wma(p[2],round(jah/2))
nma1=wma(p[2],jah)
diff1=n2ma1-nma1
sqn1=round(sqrt(jah))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
sh=n1
lon=n2
ratio = min(sh,lon)/max(sh,lon)
Mac = (iff(sh>lon,2-ratio,ratio)-1)
MacNorm = ((Mac-lowest(Mac, np)) /(highest(Mac, np)-lowest(Mac, np)+.000001)*2)- 1
MacNorm2 = iff(np<2,Mac,MacNorm)
Trigger = wma(MacNorm2, tsp)
Hist =(MacNorm2-Trigger)
Hist2= Hist>1?1:Hist<-1?-1:Hist
teh=MacNorm2+MacNorm2[2]-MacNorm2[1]
closelong = strategy.openprofit<SL or strategy.openprofit>TP or teh[1]<Trigger[1] and n1<n2[1]
if (closelong)
    strategy.close("Long")
closeshort = strategy.openprofit<SL or strategy.openprofit>TP or  teh[1]>Trigger[1] and n1>n2[1]
if (closeshort)
    strategy.close("Short")
longCondition = Trigger<0 and teh>Trigger and MacNorm>Trigger and strategy.opentrades<ot 
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = Trigger>0 and teh<Trigger and MacNorm<Trigger and strategy.opentrades<ot 
if (shortCondition)
    strategy.entry("Short",strategy.short)