एटीआर और अस्थिरता सूचकांक पर आधारित रुझान ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-04 15:31:34
टैगः

img

अवलोकन

यह रणनीति ट्रेंड की पहचान करने और ट्रैक करने के लिए मुख्य तकनीकी संकेतक के रूप में औसत सच्ची रेंज (एटीआर) और सीएचओपी सूचकांक का उपयोग करती है। यह तब प्रवेश करती है जब सूचकांक ऊपरी और निचले रेल के माध्यम से टूट जाता है, प्रवेश संकेतों के रूप में प्रवृत्ति दिशा के साथ संयुक्त होता है; और स्टॉप लॉस के साथ बाहर निकलता है या लाभ लेता है जब सूचकांक बेल्ट क्षेत्र में फिर से प्रवेश करता है।

रणनीतिक सिद्धांत

  1. बॉक्स आकार की गणना करने के लिए एटीआर का उपयोग करें और मूल्य प्रवृत्ति दिशा निर्धारित करने के लिए रेंको चैनल का निर्माण करें।

  2. बाजार के व्यापार के लिए उपयुक्त है या नहीं, यह आंकलन करने के लिए CHOP सूचकांक लागू करें। यह सूचकांक उच्चतम मूल्य, निम्नतम मूल्य और ATR को शामिल करता है। जब यह 38.2-61.8 के बीच होता है, तो यह कम बाजार अस्थिरता का संकेत देता है; अन्यथा, यह उच्च अस्थिरता और अनुपयुक्त व्यापार बाजार का संकेत देता है।

  3. जब CHOP सूचकांक 61.8 की ऊपरी रेल को तोड़ता है, तो कीमत नीचे की ओर प्रवृत्ति में प्रवेश करती है। यदि अल्पकालिक तेजी से ईएमए भी दिखाता है कि कीमत अग्रणी है, तो शॉर्ट जाएं। इसके विपरीत, जब CHOP 38.2 की निचली रेल को तोड़ता है और अल्पकालिक ईएमए बढ़ता है, तो लंबे समय तक जाएं।

  4. स्टॉप लॉस/टेक प्रॉफिट रणनीति का प्रयोग करें. जब कीमत CHOP के 38.2-61.8 बेल्ट क्षेत्र में फिर से प्रवेश करती है, तो स्टॉप लॉस या टेक प्रॉफिट के साथ स्थिति को बंद करें.

लाभ विश्लेषण

यह रणनीति प्रवृत्ति निर्णय और अस्थिरता नियंत्रण को जोड़ती है, जो मूल्य प्रवृत्तियों को पकड़ सकती है और जोखिमों को नियंत्रित कर सकती है। यह अपेक्षाकृत स्थिर प्रवृत्ति ट्रैकिंग रणनीति है।

  1. एटीआर द्वारा निर्मित रेंको चैनल प्रभावी रूप से मूल्य रुझानों को ट्रैक कर सकता है।

  2. सीएचओपी सूचकांक बाजार में अस्थिरता दर का आकलन करता है ताकि भारी उतार-चढ़ाव में गलत व्यापार से बचा जा सके।

  3. अल्पकालिक रुझान की दिशा निर्धारित करने के लिए तेजी से ईएमए का संयोजन करने से उलटा संचालन से बचा जाता है।

  4. स्टॉप लॉस/टेक प्रॉफिट रणनीति एकल हानि को नियंत्रित करती है।

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

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

  1. पक्षीय बाजार में, एटीआर चैनल और सीएचओपी संकेत गलत संकेत उत्पन्न कर सकते हैं। गलत संकेतों को उचित रूप से फ़िल्टर करने के लिए ठीक ट्यून पैरामीटर।

  2. एकल तकनीकी संकेतकों का संयोजन नुकसान से पूरी तरह से बच नहीं सकता है। प्रमुख रुझानों को निर्धारित करने के लिए मैन्युअल हस्तक्षेप की आवश्यकता होती है।

  3. स्टॉप लॉस की स्थिति बहुत ढीली सेट होने से ओवरसाइजिंग सिंगल लॉस हो सकता है। स्टॉप लॉस की परिमाण को ठीक से कम करना चाहिए।

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः

  1. सिग्नल की सटीकता बढ़ाने के लिए अन्य सहायक संकेतकों को बढ़ाएं, जैसे मोमबत्ती के पैटर्न, मात्रा आदि।

  2. मूल्य उतार-चढ़ाव को बेहतर ढंग से पकड़ने के लिए एटीआर और सीएचओपी के मापदंडों का अनुकूलन करना।

  3. अधिक लाभ मार्जिन और तेज़ स्टॉप लॉस के लिए गतिशील स्टॉप लॉस/टेक प्रॉफिट पोजीशन सेट करें।

  4. प्रवृत्ति में अधिक लाभ प्राप्त करने के लिए प्रमुख प्रवृत्ति निर्धारित करने के बाद स्टॉप लॉस रेंज को ठीक से ढीला करें।

निष्कर्ष

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


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
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/
// © sharatgbhat

//@version=4
strategy("Weis Chop Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 10,max_lines_count = 500, max_labels_count = 500)
maxIdLossPcnt = input(1, "Max Intraday Loss(%)", type=input.float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=input.float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating = input(defval=false, type=input.bool, title="Oscillating")
normalize = input(defval=false, type=input.bool, title="Normalize")
vol = useTrueRange == "Always" or useTrueRange == "Auto" and na(volume) ? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low

if method == "ATR"
    methodvalue := atr(round(methodvalue))
if method == "Part of Price"
    methodvalue := close / methodvalue

currclose = float(na)
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose

direction = int(na)
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0

barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol / barcount : vol

plot(isOscillating and directionIsDown ? -res : res, style=plot.style_columns, color=directionIsUp ? color.green : color.red, transp=75, linewidth=3, title="Wave Volume")

length = input(14, minval=1)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")

MomentumBull = close>ema(close,8)
MomentumBear = close<ema(close,8)
Tradecon = crossunder(ci,61.8)

if (MomentumBull and directionIsUp and Tradecon)
	strategy.entry("Buy", strategy.long)
if (MomentumBear and directionIsDown and Tradecon )
    strategy.entry("Sell", strategy.short)
    strategy.exit("exit","Buy",when=directionIsDown,qty_percent=100,profit=20,loss=10)
    strategy.exit("exit","Sell",when=directionIsUp,qty_percent=100,profit=20,loss=10)
    

अधिक