यह रणनीति विलियम्स संकेतक फ्रैक्टल ब्रेकआउट सिद्धांत को अपनाती है और एक कुशल लंबी और छोटी खोलने और बंद करने के मॉडल को डिजाइन करने के लिए विशिष्ट के-लाइन पैटर्न को जोड़ती है। यह मध्यम और अल्पकालिक रुझानों को पकड़ने और अतिरिक्त रिटर्न प्राप्त करने के लिए बाजार आंदोलनों के प्रमुख उलट बिंदुओं पर सटीक रूप से लंबी और छोटी जा सकती है।
यह रणनीति विल्यम्स सूचक में फ्रैक्टल बिंदुओं का उपयोग रिवर्स सिग्नल निर्धारित करने के लिए करती है। जब एक ऊपरी या निचला फ्रैक्टल दिखाई देता है और यह K-लाइन इकाई दिशा के अनुरूप होता है, तो एक ट्रेडिंग सिग्नल उत्पन्न होता है।
विशेष रूप से, WMX विलियम्स फ्रैक्टल्स नामक एक कस्टम संकेतक को रणनीति में परिभाषित किया गया है। यह शीर्ष फ्रैक्टल (अपफ्रैक्टल) और निचले फ्रैक्टल (डीएनफ्रैक्टल) को निर्धारित करने के लिए कारक कार्यों का उपयोग करता है।
शीर्ष फ्रैक्टल तर्क हैः वर्तमान के-लाइन का उच्चतम मूल्य पिछले n के-लाइनों के उच्चतम मूल्य से अधिक है (n एक समायोज्य पैरामीटर है), इस प्रकार एक शीर्ष पक्ष ब्रेकआउट फ्रैक्टल का गठन करता है।
निचला फ्रैक्टल तर्क यह हैः वर्तमान के-लाइन का सबसे कम मूल्य पिछले एन के-लाइनों के सबसे कम मूल्य से कम है, इस प्रकार एक निचला पक्ष ब्रेकआउट फ्रैक्टल का गठन करता है।
ऊपर और नीचे के फ्रैक्टल प्राप्त करने के बाद, यह निर्धारित करें कि क्या वे बदलते हैं, अर्थात, शून्य से अस्तित्व में या इसके विपरीत। इस समय, फ्रैक्टल अभी बन गया है, जो उलटने की अधिक संभावना को दर्शाता है।
फिर, विशिष्ट ट्रेडिंग सिग्नल निर्धारित करने के लिए K-लाइन इकाई दिशा के साथ संयुक्त। जब ऊपरी फ्रैक्टल बन जाता है और क्लोज ओपन से अधिक होता है, तो लंबा हो जाता है। जब निचला फ्रैक्टल बन जाता है और क्लोज ओपन से कम होता है, तो छोटा हो जाता है।
विल्यम्स संकेतक फ्रैक्टल बिंदुओं का उपयोग पलटने के समय को निर्धारित करने के लिए करें। यह एक परिपक्व और विश्वसनीय तकनीकी संकेतक है।
ट्रेडिंग संकेतों की पुष्टि करने के लिए K-लाइन इकाई दिशा को मिलाएं और चंचल गैर-प्रवृत्ति क्षेत्रों से बचें।
कुछ पैरामीटर जो केवल फ्रैक्टल अवधि n को समायोजित करने की आवश्यकता है, परीक्षण और अनुकूलन के लिए आसान है।
पदों को खोलने के लिए लचीली सेटिंग्स जैसे पद आकार, समापन की शर्तें आदि, लाइव ट्रेडिंग में लागू करना आसान है।
फ्रैक्टल रूपों के बाद, बाजार पूरी तरह से उलट नहीं हो सकता है, प्रवृत्ति निर्णय के साथ संयोजन की आवश्यकता है।
स्टॉप लॉस पोजीशन सेट करने में सावधानी बरतने की जरूरत है ताकि शोर मचाने वाली भारी अस्थिरता की चाल से बाहर निकलने से रोका जा सके।
n पैरामीटर को विभिन्न उत्पादों के लिए समायोजित करने की आवश्यकता है। यदि अवधि बहुत बड़ी या बहुत छोटी है तो यह परिणामों को प्रभावित करेगा।
समाधान:
प्रमुख रुझानों का न्याय करने के लिए चलती औसत जैसे संकेतक जोड़ सकते हैं, रुझानों के खिलाफ व्यापार से बच सकते हैं।
गतिशील ट्रेलिंग स्टॉप लॉस का प्रयोग करें या उचित ड्रॉडाउन आधारित स्टॉप लॉस सेट करें।
मापदंडों को अनुकूलित करने और इष्टतम मान खोजने के लिए वाक फॉरवर्ड विश्लेषण का उपयोग करें।
फ्रैक्टल रिवर्सल रणनीतियों में कई लाभ बनाने की प्रवृत्ति होती है और फिर नुकसान बनाने के लिए फिर से उलट जाती है। ट्रेडिंग रेंज को और सीमित करने और अनावश्यक रिवर्सल ट्रेडों को कम करने के लिए ट्रेंड फिल्टर जोड़ने पर विचार किया जा सकता है।
वर्तमान सरल स्टॉप लॉस विधि प्रभावी रूप से बाजार की चाल को ट्रैक नहीं कर सकती है। अधिक उन्नत स्टॉप लॉस तकनीकों जैसे मूविंग स्टॉप लॉस, समय आधारित स्टॉप लॉस, गतिशील स्टॉप लॉस आदि की कोशिश कर सकती है।
वर्तमान में केवल के-लाइन इकाई दिशा का उपयोग करें. यदि अधिक के-लाइन जानकारी जैसे कि विक्स और निकट स्थान पर विचार किया जाता है, तो और भी अधिक सटीक व्यापार संकेत डिजाइन कर सकते हैं.
यह तकनीकी संकेतकों पर आधारित एक उलट रणनीति है। यह महत्वपूर्ण पिव्होट बिंदुओं पर अंतर्निहित की प्रवृत्ति में परिवर्तन को पकड़ने के लिए विलियम्स संकेतक फ्रैक्टल का उपयोग करता है, जो व्यापार संकेतों को बनाने के लिए के-लाइन इकाई दिशा के साथ संयुक्त है, जिसका उद्देश्य अतिरिक्त रिटर्न प्राप्त करना है।
अन्य रिवर्सल रणनीतियों की तुलना में, यह रणनीति स्पष्ट तर्क और आसान समझ के लिए पैरामीटर डिजाइन की विशेषता है। इसमें सुविधाजनक परीक्षण के लिए लचीले पैरामीटर समायोजन हैं, और इसे सीधे लाइव ट्रेडिंग में लागू किया जा सकता है। अगला कदम प्रवृत्ति फ़िल्टरिंग, स्टॉप लॉस विधियों आदि पर और अनुकूलन रणनीति प्रदर्शन में सुधार कर सकता है।
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © WMX_Q_System_Trading //@version=4 SystemName="WMX Williams Fractals strategy V4" InitCapital = 1000000 InitPosition = 100 InitCommission = 0.075 InitPyramidMax = 10 strategy(title=SystemName, shorttitle=SystemName, overlay=true, initial_capital=InitCapital, default_qty_type=strategy.percent_of_equity, default_qty_value=InitPosition, commission_type=strategy.commission.percent, commission_value=InitCommission) //study("WMX Williams Fractals", shorttitle="WMX Fractals", format=format.price, precision=0, overlay=true) // Define "n" as the number of periods and keep a minimum value of 2 for error handling. n = input(title="Periods", defval=2, minval=2, type=input.integer) h=close l=close factorh(High)=> upFractal = ( (High[n+2] < High[n]) and (High[n+1] < High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n])) or ( (High[n+3] < High[n]) and (High[n+2] < High[n]) and (High[n+1] == High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n])) or ( (High[n+4] < High[n]) and (High[n+3] < High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n])) or ( (High[n+5] < High[n]) and (High[n+4] < High[n]) and (High[n+3] == High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n])) or ((High[n+6] < High[n]) and (High[n+5] < High[n]) and (High[n+4] == High[n]) and (High[n+3] <= High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n])) upFractal upFractal=factorh(h) factorl(Low)=> dnFractal = ( (Low[n+2] > Low[n]) and (Low[n+1] > Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n])) or ( (Low[n+3] > Low[n]) and (Low[n+2] > Low[n]) and (Low[n+1] == Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n])) or ( (Low[n+4] > Low[n]) and (Low[n+3] > Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n])) or ( (Low[n+5] > Low[n]) and (Low[n+4] > Low[n]) and (Low[n+3] == Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n])) or ((Low[n+6] > Low[n]) and (Low[n+5] > Low[n]) and (Low[n+4] == Low[n]) and (Low[n+3] >= Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n])) dnFractal=factorl(l) U=valuewhen(upFractal[0]!= upFractal[1],l[0],3) L=valuewhen(dnFractal[0]!=dnFractal[1],h[0],3) longcon=crossover(close ,L) and close>open shortcon=crossunder(close ,U) and close<open if longcon strategy.entry("Long", strategy.long, when = strategy.position_size <= 0 ) if shortcon strategy.entry("Short", strategy.short, when = strategy.position_size >= 0 )