
इस रणनीति में विलियम सूचकांक के ब्रेकआउट सिद्धांतों को शामिल किया गया है, जो एक विशेष रूप से K लाइन के साथ संयुक्त है, जो एक कुशल बहु-खाली स्थिति खोलने और शून्य स्थिति के मॉडल को डिजाइन करता है, ताकि बाजार में उलटफेर के महत्वपूर्ण बिंदुओं पर अधिक से अधिक कमियां की जा सकें, मध्य-लघु रेखा की प्रवृत्ति को पकड़ सकें और अतिरिक्त लाभ प्राप्त कर सकें।
यह रणनीति विल्हेम सूचकांक में विखंडन बिंदुओं का उपयोग करती है ताकि एक उलटा संकेत का न्याय किया जा सके। जब ऊपर या नीचे विखंडन होता है, तो एक व्यापार संकेत उत्पन्न होता है यदि यह K-लाइन इकाई की दिशा से मेल खाता है।
विशेष रूप से, रणनीति में एक कस्टम सूचक WMX Williams Fractals की परिभाषा की गई है। इस सूचक में एक कारक फ़ंक्शन का उपयोग किया जाता है ताकि ऊपरी वर्गीकरण ((upFractal) और निचले वर्गीकरण ((dnFractal) का निर्धारण किया जा सके।
उपरोक्त वर्गीकरण तर्क यह है कि वर्तमान K लाइन का अधिकतम मूल्य पूर्ववर्ती n रूट K लाइन का अधिकतम मूल्य से अधिक है (जिसमें n समायोज्य पैरामीटर हैं) । इस प्रकार एक ब्रेक-अप उपरोक्त वर्गीकरण होता है।
निम्न वर्गीकरण निर्णय तर्क यह है कि वर्तमान K रेखा का न्यूनतम मूल्य पिछले n रूट K रेखा के न्यूनतम मूल्य से कम है, इस प्रकार एक ब्रेक डाउन वर्गीकरण होता है।
उपवर्ग और उपवर्ग प्राप्त करने के बाद, यह निर्धारित करने के लिए कि क्या वे बदल गए हैं, अर्थात् कुछ भी नहीं या कुछ भी नहीं। इस समय वर्गीकरण केवल गठन किया गया है, जो प्रतिगमन की अधिक संभावना दर्शाता है।
इसके बाद के-लाइन इकाई की दिशा के साथ संयोजन करके विशिष्ट व्यापारिक संकेतों को निर्धारित किया जाता है। जब ऊपर का वर्गीकरण होता है, तो ओपन से अधिक बंद करें, अधिक करें; जब नीचे का वर्गीकरण होता है, तो ओपन से कम बंद करें, खाली करें।
विल्हेम सूचकांक का उपयोग करके विच्छेदन बिंदु को उलटने का समय निर्धारित करने के लिए, यह एक सिद्ध और विश्वसनीय तकनीकी सूचक है
ट्रेडिंग सिग्नल की पुष्टि करने के लिए K-लाइन इकाई की दिशा के साथ संयोजन, गैर-प्रवृत्ति क्षेत्रों में अराजक चॉप्स से बचें
कम मापदंडों के साथ, केवल n टाइपिंग चक्र को समायोजित करने की आवश्यकता है, परीक्षण और अनुकूलन के लिए आसान है
लचीला स्थिति नियम सेट करें, जैसे कि स्थिति का आकार, स्थिति की स्थिति, आदि, जो वास्तविक समय में लागू करने में आसान है
एक बार वर्गीकरण हो जाने के बाद, स्थिति पूरी तरह से उलट नहीं हो सकती है, और प्रवृत्ति के आकलन की आवश्यकता होती है
शोर-प्रदर्शन से होने वाले नुकसान से बचने के लिए सावधानीपूर्वक स्टॉप पोजीशन सेटिंग्स का उपयोग करें
पैरामीटर n को विभिन्न किस्मों के अनुसार समायोजित करने की आवश्यकता है, यदि चक्र बहुत बड़ा या बहुत छोटा है तो यह प्रभाव को प्रभावित करेगा
समाधान:
चलती औसत जैसे संकेतकों को शामिल करने के लिए बड़े रुझानों का आकलन करने के लिए, प्रतिगामी स्थिति खोलने से बचें
गतिशील ट्रैक रोक या उचित वापसी सीमा रोक
वॉक फॉरवर्ड एनालिसिस विधि का उपयोग करके पैरामीटर का अनुकूलन करें और सर्वोत्तम पैरामीटर ढूंढें
विभाजन-आधारित रिवर्स रणनीतियों में कई लाभ के बाद एक बार फिर रिवर्स करने की स्थिति उत्पन्न होती है, जिससे नुकसान होता है। ट्रेड फ़िल्टर को जोड़ने पर विचार किया जा सकता है, जो ट्रेडिंग के दायरे को और सीमित करता है, और अनावश्यक रिवर्स ट्रेडों को कम करता है।
वर्तमान में, रोकथाम के तरीके बहुत सरल हैं, और आप प्रभावी रूप से ट्रैक नहीं कर सकते हैं। आप रोकथाम के तरीकों को जोड़ने की कोशिश कर सकते हैं जैसे कि गति रोकथाम, समय रोकथाम, गतिशील रोकथाम आदि।
वर्तमान में, केवल K लाइन की वास्तविक दिशा का आकलन किया जा सकता है। अधिक K लाइन जानकारी जैसे कि छाया रेखा, समापन स्थान आदि को ध्यान में रखते हुए, एक अधिक सटीक ट्रेडिंग सिग्नल तैयार किया जा सकता है।
यह रणनीति तकनीकी सूचकांकों पर आधारित रिवर्स रणनीतियों में से एक है। यह विलियम सूचकांक के वर्गीकरण का उपयोग करके सूचकांक के शेयरों में महत्वपूर्ण समय पर परिवर्तन की प्रवृत्ति को पकड़ने के लिए, K-लाइन संस्थाओं के साथ मिलकर एक व्यापारिक संकेत बनाने के लिए अतिरिक्त लाभ प्राप्त करने के लिए करता है।
अन्य रिवर्स रणनीतियों की तुलना में, यह रणनीति पैरामीटर डिजाइन, तर्क स्पष्टता, समझने में आसान, पैरामीटर समायोजन सुविधाजनक, परीक्षण करने में आसान है, और इसे सीधे वास्तविक संचालन में डाला जा सकता है। अगले चरण में, रुझान निर्णय, स्टॉप लॉस आदि के माध्यम से आगे अनुकूलन, बेहतर रणनीति प्रभाव प्राप्त करने की उम्मीद है।
/*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 )