एडीएक्स फ़िल्टर के साथ गति ब्रेकआउट रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-04 17:12:30
टैगः

img

अवलोकन

यह एक अल्पकालिक ट्रेडिंग रणनीति है जो ब्रेकआउट सिग्नल को फ़िल्टर करने के लिए ADX संकेतक का उपयोग करती है। जब कीमत ऊपरी बोलिंगर बैंड से ऊपर टूटती है और ADX गिर रहा है, तो यह छोटा हो जाता है, और जब कीमत निचले बोलिंगर बैंड से नीचे टूटती है और ADX बढ़ रहा है तो यह लंबा हो जाता है। रणनीति पूरी तरह से स्वचालित ट्रेडिंग के लिए स्टॉप लॉस और लाभ लेने को भी स्वचालित रूप से सेट करती है।

रणनीति तर्क

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

विशेष रूप से, यह रणनीति 33 अवधि के समापन की कीमतों का उपयोग करके बोलिंगर बैंड की गणना करती है। मध्य बैंड 33 अवधि का सरल चलती औसत है, और ऊपरी / निचले बैंड को मध्य बैंड के ऊपर / नीचे दो मानक विचलन पर रखा जाता है। जब कीमत ऊपरी बैंड से नीचे बंद होती है और 8-अवधि एडीएक्स 15-अवधि एडीएक्स से नीचे होता है, तो रणनीति शॉर्ट सिग्नल देती है। जब कीमत निचले बैंड से ऊपर बंद होती है और 8-अवधि एडीएक्स 15-अवधि एडीएक्स से ऊपर होता है, तो यह लंबी सिग्नल देती है। बाहर निकलने के लिए 800 लाभ अंक और 400 अंक स्टॉप लॉस पर सेट किया जाता है।

लाभ विश्लेषण

प्रवृत्ति और गति फ़िल्टर को शामिल करने वाली ब्रेकआउट रणनीति के रूप में, इसके कई फायदे हैंः

  1. ब्रेकआउट का पता लगाने के लिए बोलिंगर बैंड का उपयोग अधिकांश व्यापारियों की आदतों के अनुरूप है।
  2. अतिरिक्त एडीएक्स फ़िल्टर से पिस्तौल से होने वाले नुकसान से बचने में मदद मिलती है।
  3. तर्क सरल और समझने और अनुकूलित करने में आसान है।
  4. स्वचालित स्टॉप लॉस और टेक प्रॉफिट एल्गोरिथ्म ट्रेडिंग को सुविधाजनक बनाता है।

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

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

  1. अनुचित बीबी मापदंडों से अति आवृत्ति वाले संकेत उत्पन्न हो सकते हैं और लागत बढ़ सकती है।
  2. अनुचित एडीएक्स मापदंडों वैध संकेतों को फ़िल्टर कर सकते हैं।
  3. स्टॉप लॉस की दूरी बहुत व्यापक हो सकती है जिससे बड़े नुकसान हो सकते हैं।

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

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

आगे अनुकूलन के लिए जगह हैः

  1. इष्टतम पैरामीटर सेट खोजने के लिए विभिन्न बाजार डेटा पर परीक्षण करें।
  2. सिग्नल फ़िल्टरिंग के लिए वॉल्यूम और मूविंग एवरेज जैसे अन्य संकेतक शामिल करें।
  3. मापदंडों का स्वतः अनुकूलन करने के लिए मशीन लर्निंग विधियों का उपयोग करें।
  4. गतिशील स्टॉप लॉस पर विचार करें और लाभ लें।

निष्कर्ष

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


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hizbullah XAUUSD Sniper", overlay=true)

Price = close

Length = input(33)
Mult = input(2)
Basis = sma(Price, Length)
StdDev = Mult * stdev(Price, Length)
Upper = Basis + StdDev
Lower = Basis - StdDev

ADX_Length = input(4)
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
SmoothedTrueRange = sma(TrueRange, ADX_Length)
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length)
SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length)
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100
SmoothedADX1 = ema(DX, input(8))
SmoothedADX2 = ema(DX, input(15))

Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2

Take_Profit = input(800)
Stop_Loss = input(400)

strategy.entry("ShortEntry", true, when = Condition1)
strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)


अधिक