
यह रणनीति एक समुद्री तट के आधार पर बनाई गई है, जो विभिन्न चक्रों के स्तर पर गतिशीलता विश्लेषण के साथ मिलकर वर्तमान शेयर की कीमत के पीछे के समर्थन बल को गतिशील रूप से निर्धारित करती है, जिससे यह निर्धारित किया जा सकता है कि स्टॉक बनाने और स्टॉक रखने का समय कब है।
विभिन्न चक्र स्तरों पर समुद्र तट की अक्षीय K रेखा के समापन मूल्य की गणना करना। यह बाद की गतिज ऊर्जा गणना का आधार है।
मासिक रेखा और दैनिक रेखा के उद्घाटन मूल्य और विभिन्न ऐतिहासिक चक्रों के समापन मूल्य के उतार-चढ़ाव की गणना की गई। यह वर्तमान शेयर की कीमतों के ऐतिहासिक मूल्य के सापेक्ष गतिशीलता की ताकत को दर्शाता है।
चन्द्र रेखा और सूर्य रेखा की गतिज ऊर्जा में गिरावट को क्रमशः औसत किया जाता है, कुछ शोर को फ़िल्टर किया जाता है, जिससे स्थिर चंद्र रेखा, सूर्य रेखा गतिज ऊर्जा सूचक प्राप्त होता है।
औसत गतिशीलता के उतार-चढ़ाव के आधार पर, एक बाजार समर्थन बल की गणना की जा सकती है जो वर्तमान शेयर की कीमत को दर्शाता है, यानी, बाजार में उतार-चढ़ाव के प्रभाव को हटाने वाली कीमत। इस कीमत को वर्तमान वास्तविक शेयर की कीमत के गतिशीलता के लिए एक थ्रेसहोल्ड के रूप में देखा जा सकता है।
जब समापन मूल्य गतिशीलता थ्रेशोल्ड से ऊपर होता है, तो मासिक रूप से अधिक स्टॉक बनाने के लिए। जब समापन मूल्य गतिशीलता थ्रेशोल्ड से नीचे होता है, तो स्टॉक बंद हो जाता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह केवल शेयरों की कीमतों का पालन नहीं करता है, बल्कि स्टॉक की कीमतों के पीछे की गतिशीलता के आधार पर वास्तविक समर्थन बल की गणना करता है, जिससे स्थिति बनाने और रोकने में मदद मिलती है। यह अस्थिर स्थिति के शोर को प्रभावी ढंग से फ़िल्टर कर सकता है और स्थिर वृद्धि के अवसरों को बंद कर सकता है।
इसके अलावा, रणनीति के आधार पर डेटा समुद्र तट एश के लाइनों से आता है। इस विशेष के लाइन को स्वयं के साथ जोड़ने की चक्र पर अत्यधिक निर्भरता की समस्या को कम किया जा सकता है। इसलिए रणनीति की स्थिरता अन्य के-लाइन रणनीतियों की तुलना में बेहतर है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि गतिज ऊर्जा की गणना ऐतिहासिक कीमतों पर आधारित होती है। यदि कंपनी के बुनियादी ढांचे और बाजार की स्थिति में कोई महत्वपूर्ण परिवर्तन होता है, तो ऐतिहासिक कीमतों का प्रतिनिधित्व कम हो जाता है, जिससे स्थिति और स्टॉप-लॉस निर्णय में विचलन होता है।
इसके अलावा, रणनीति का उपयोग मासिक और दैनिक चक्रों में किया जाता है। इसका मतलब है कि रणनीति वास्तविक समय में उच्च नहीं है और बाजार में तेजी से बदलाव के लिए तेजी से प्रतिक्रिया करने में असमर्थ है। इससे बाजार में उतार-चढ़ाव होने पर स्टॉप लॉस का जोखिम होता है।
इन जोखिमों को कम करने के लिए, उच्च आवृत्ति डेटा और कंपनी के मूल सिद्धांतों के बारे में वास्तविक समय की प्रतिक्रिया को शामिल करने पर विचार किया जा सकता है। या अन्य अधिक व्यक्तिपरक व्यापारिक संकेतों के साथ संयोजन में स्वीकृति और अनुकूलन के लिए।
इस रणनीति को निम्नलिखित तरीकों से बेहतर बनाया जा सकता हैः
K लाइन को और अधिक अनुकूलित किया जा सकता है, जैसे कि भार विन्यास को समायोजित करना।
अधिक विभिन्न चक्रों के डेटा को जोड़ना, एक सूचकांक-औसत गतिज ऊर्जा स्कोरिंग तंत्र का निर्माण करना, स्थिरता में सुधार करना।
रणनीति की वास्तविकता को बढ़ाने के लिए उच्च आवृत्तियों जैसे कि दिन-प्रति-मिनट डेटा को शामिल किया गया है।
कंपनी के बारे में मूलभूत जानकारी के लिए प्रतिक्रिया के लिए, कंपनी की घोषणाओं, पुनर्गठन की अफवाहों और अन्य सूचनाओं के साथ संयोजन की गणना करें।
मासिक भंडारण के आधार पर, दैनिक या साप्ताहिक स्टॉप और स्टॉकिंग तंत्र को बढ़ाया जा सकता है।
यह रणनीति समग्र रूप से बहुत स्थिर है और गतिशीलता ट्रैकिंग के माध्यम से जोखिम को प्रभावी ढंग से नियंत्रित करती है। इसका सबसे बड़ा लाभ यह है कि यह शेयर की कीमतों के पीछे की गतिशीलता का उपयोग करके वास्तविक स्थिति का निर्धारण करता है, न कि केवल शेयर की कीमतों का पालन करता है। अगले कदम में अधिक आवृत्ति और अधिक जानकारीपूर्ण डेटा की शुरूआत करके, इस रणनीति को और अधिक अनुकूलित करने की उम्मीद है, जिससे यह बाजार के अवसरों को बेहतर ढंग से पकड़ सके।
/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FrancoPassuello
//@version=5
strategy("Heiken Ashi ADM", overlay=true)
haClose = (open + high + low + close) / 4
// prevHaOpen = line.new(na, na, na, na, width = 1)
haOpen = (open[1] + close[1]) / 2
// line.set_xy1(prevHaOpen, bar_index[1], nz(haOpen[1]))
// line.set_xy2(prevHaOpen, bar_index, haClose[1])
[monopen, _1monopen, _2monopen, _3monopen, _4monopen, _5monopen, _6monopen] = request.security(syminfo.tickerid, "M", [haOpen, haOpen[1], haOpen[2], haOpen[3], haOpen[4], haOpen[5], haOpen[6]] , barmerge.gaps_off, barmerge.lookahead_on)
[monclose, _1monclose, _3monclose, _6monclose] = request.security(syminfo.tickerid, "M", [haClose, haClose[1], haClose[3], haClose[6]] , barmerge.gaps_off, barmerge.lookahead_on)
[dayclose1, _21dayclose, _63dayclose, _126dayclose, dayclose] = request.security(syminfo.tickerid, "1D", [haClose[1], haClose[21], haClose[63], haClose[126], haClose], barmerge.gaps_off, barmerge.lookahead_on)
[dayopen1, _21dayopen, _63dayopen, _126dayopen] = request.security(syminfo.tickerid, "1D", [haOpen[1], haOpen[21], haOpen[63], haOpen[126]], barmerge.gaps_off, barmerge.lookahead_on)
get_rate_of_return(price1, price2) =>
return_ = (price1/price2 -1)*100
return_
m0 = get_rate_of_return(monclose, monopen)
m1 = get_rate_of_return(_1monclose, _1monopen)
m2 = get_rate_of_return(monclose, _2monopen)
m3 = get_rate_of_return(_1monclose, _3monopen)
m4 = get_rate_of_return(monclose, _4monopen)
m5 = get_rate_of_return(monclose, _5monopen)
m6 = get_rate_of_return(_1monclose, _6monopen)
MS = (m1 + m3 + m6)/100
CS = (m0 + m2 + m5)/100
d1 = get_rate_of_return(dayclose1, _21dayopen)
d2 = get_rate_of_return(dayclose1, _63dayopen)
d3 = get_rate_of_return(dayclose1, _126dayopen)
DS = (d1 + d2 + d3)/100
//Last (DAILY)
lastd_s_avg1 = DS/3
lastd_Approximate1 = dayclose1*(1-lastd_s_avg1)
last_approx1_d21 = lastd_Approximate1 / _21dayopen-1
last_approx1_d63 = lastd_Approximate1 / _63dayopen-1
last_approx1_d126 = lastd_Approximate1 / _126dayopen-1
lastd_s_avg2 = (last_approx1_d21 + last_approx1_d63 + last_approx1_d126) / 3
lastd_approximate2 = (dayclose1)*(1-(lastd_s_avg1 + lastd_s_avg2))
lastd_price = lastd_approximate2
//plot(lastd_price,color = color.rgb(255, 255, 255, 14), title = "Last momentum threshold")
//Last
last_s_avg1 = MS/3
last_Approximate1 = _1monclose*(1-last_s_avg1)
last_approx1_m1 = last_Approximate1 / _1monopen-1
last_approx1_m3 = last_Approximate1 / _3monopen-1
last_approx1_m6 = last_Approximate1 / _6monopen-1
last_s_avg2 = (last_approx1_m1 + last_approx1_m3 + last_approx1_m6) / 3
last_approximate2 = (_1monclose)*(1-(last_s_avg1 + last_s_avg2))
last_price = last_approximate2
Scoring_price = _1monclose*(1-CS)
plot(last_price,color = color.rgb(255, 255, 255, 14), title = "Last momentum threshold")
//plot(Scoring_price,color = color.rgb(234, 0, 255, 14), title = "Last momentum threshold")
//Long based on month close and being the first trade of the month.
var int lastClosedMonth = -1
limit_longCondition = _1monclose > last_approximate2 and (lastClosedMonth == -1 or month(time) != lastClosedMonth)
// Long based on day close and being the first trade of the month.
limit_Dlongcondition = dayclose1 > lastd_approximate2 and (lastClosedMonth == -1 or month(time) != lastClosedMonth)
// Close trade based on day close
DCloseLongCondition = dayclose1<lastd_approximate2
//Old standard Trading rules
longCondition = _1monclose > Scoring_price
MCloseLongCondition = _1monclose<Scoring_price
shortCondition = CS < 0
if (longCondition)
strategy.entry("Long", strategy.long)
if (strategy.position_size > 0 and MCloseLongCondition)
strategy.close("Long")
lastClosedMonth := month(time)