सुचारू अस्थिरता बैंड रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-29 16:22:14
टैगः

img

अवलोकन

यह रणनीति कीमतों की अस्थिरता के आधार पर मूल्य बैंड उत्पन्न करती है, और जब कीमत बैंडों को तोड़ती है तो ट्रेडिंग सिग्नल उत्पन्न करती है।

रणनीति तर्क

रणनीति पहले एक निश्चित अवधि में कीमत की औसत अस्थिरता सीमा की गणना करती है, फिर एक घातीय चलती औसत का उपयोग करके अस्थिरता सीमा को चिकनी अस्थिरता उत्पन्न करने के लिए चिकनी करती है। एक गुणांक से गुणा की गई चिकनी अस्थिरता बैंड की सीमा देती है। जब कीमत ऊपरी बैंड से ऊपर टूटती है, तो एक खरीद संकेत उत्पन्न होता है। जब कीमत निचले बैंड से नीचे टूटती है, तो एक बिक्री संकेत उत्पन्न होता है।

विशेष रूप से, चिकनी अस्थिरता smrng smoothhrng फ़ंक्शन द्वारा गणना की जाती है। मूल्य बैंड के ऊपरी बैंड hband और निचले बैंड lband की गणना तब smrng के आधार पर की जाती है। उस पर आधारित लंबी स्थिति longCondition और छोटी स्थिति shortCondition सेट की जाती है। जब longCondition पूरा होता है, तो एक खरीद संकेत उत्पन्न होता है। जब shortCondition पूरा होता है, तो एक बिक्री संकेत उत्पन्न होता है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

  1. ट्रेडिंग सिग्नल बनाने के लिए कीमतों की अस्थिरता का उपयोग करके बाजार परिवर्तनों को प्रभावी ढंग से ट्रैक किया जा सकता है।

  2. घातीय चलती औसत के साथ अस्थिरता को समतल करना शोर को फ़िल्टर कर सकता है और अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न कर सकता है।

  3. अस्थिरता गुणांक के माध्यम से बैंड की सीमा को समायोजित किया जा सकता है, जिससे रणनीति अधिक लचीली हो जाती है।

  4. ब्रेकआउट जजमेंट के साथ मिलकर यह ट्रेडिंग के अवसरों को समय पर पकड़ सकता है जब रुझान उलट जाता है।

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

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

  1. असामान्य बाजार अस्थिरता में, समतल अस्थिरता वास्तविक अस्थिरता को सटीक रूप से प्रतिबिंबित करने में विफल हो सकती है, जिससे गलत संकेत मिलते हैं। मॉडल को बेहतर बनाने के लिए मापदंडों को अनुकूलित किया जा सकता है।

  2. गलत बैंड रेंज सेटिंग से ओवरट्रेडिंग या अपर्याप्त संकेत हो सकते हैं। इष्टतम रेंज खोजने के लिए विभिन्न मापदंडों का परीक्षण किया जा सकता है।

  3. ब्रेकआउट सिग्नल में समय का विलंब होता है, जिसके कारण समय से पहले प्रवेश या देर से प्रवेश हो सकता है। पुष्टि के लिए अन्य संकेतक पेश किए जा सकते हैं।

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

रणनीति को निम्न के माध्यम से अनुकूलित किया जा सकता हैः

  1. अस्थिरता की गणना के लिए सबसे उपयुक्त अवधि खोजने के लिए विभिन्न मूल्य डेटा चक्रों का परीक्षण करना।

  2. विभिन्न चलती औसत एल्गोरिदम की कोशिश कर रहा है जैसे भारित चलती औसत।

  3. ब्रेकआउट संकेतों की पुष्टि के लिए ट्रेडिंग वॉल्यूम या अन्य संकेतकों का परिचय।

  4. ट्रेड प्रति घाटे को नियंत्रित करने के लिए स्टॉप लॉस या ट्रेलिंग स्टॉप सेट करना।

  5. इष्टतम बैंड रेंज निर्धारित करने के लिए अस्थिरता गुणांक मल्टी का अनुकूलन करना।

सारांश

इस रणनीति का समग्र तर्क स्पष्ट है, मूल्य अस्थिरता का उपयोग बैंड बनाने और मूल्य ब्रेकआउट को ट्रेडिंग सिग्नल उत्पन्न करने के लिए किया जाता है, जो प्रभावी रूप से बाजार की प्रवृत्ति परिवर्तनों को ट्रैक कर सकते हैं। लेकिन रणनीति को अधिक मजबूत बनाने के लिए पैरामीटर अनुकूलन, सिग्नल पुष्टि आदि के माध्यम से सुधार के लिए जगह है।


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("1SmSm1 Strategy", shorttitle="1SmSm1", overlay=true)

// Source
src = input(defval=close, title="Source")

// Sampling Period
per = input(defval=100, minval=1, title="Sampling Period")

// Range Multiplier
mult = input(defval=3.0, minval=0.1, title="Range Multiplier")

// Smooth Average Range
smoothrng(x, t, m) =>
    wper = (t * 2) - 1
    avrng = ema(abs(x - x[1]), t)
    smoothrng = ema(avrng, wper) * m
    smoothrng

smrng = smoothrng(src, per, mult)

// Range Filter
rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? ((x - r) < nz(rngfilt[1]) ? nz(rngfilt[1]) : (x - r)) : ((x + r) > nz(rngfilt[1]) ? nz(rngfilt[1]) : (x + r))
    rngfilt

filt = rngfilt(src, smrng)

// Filter Direction
upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])

downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

// Target Bands
hband = filt + smrng
lband = filt - smrng

// Breakouts
longCondition = (src > filt) and (src > src[1]) and (upward > 0)
shortCondition = (src < filt) and (src < src[1]) and (downward > 0)

strategy.entry("Buy", strategy.long, when = longCondition)
strategy.entry("Sell", strategy.short, when = shortCondition)

// Plotting
plot(filt, color=upward > 0 ? color.lime : downward > 0 ? color.red : color.orange, linewidth=3, title="Range Filter")
hbandplot = plot(hband, color=color.aqua, transp=100, title="High Target")
lbandplot = plot(lband, color=color.fuchsia, transp=100, title="Low Target")

// Fills
fill(hbandplot, lbandplot, color=color.aqua, title="Target Range")

// Bar Color
barcolor(longCondition ? color.green : shortCondition ? color.red : na)

// Alerts
alertcondition(longCondition, title="Buy Alert", message="BUY")
alertcondition(shortCondition, title="Sell Alert", message="SELL")

अधिक