संपीड़न गति संकेतक

लेखक:चाओझांग, दिनांकः 2022-05-06 17:19:10
टैगःएसएमए

यह जॉन कार्टर के TTM Squeeze अस्थिरता संकेतक का व्युत्पन्न है, जैसा कि उनकी पुस्तक Mastering the Trade (अध्याय 11) में चर्चा की गई है।

मध्य रेखा पर काले पारों से पता चलता है कि बाजार अभी-अभी एक निचोड़ में प्रवेश किया है (बोलिंगर बैंड केल्टनर चैनल में हैं). यह कम अस्थिरता का संकेत देता है, बाजार खुद को विस्फोटक चाल (ऊपर या नीचे) के लिए तैयार कर रहा है। ग्रे पारों का अर्थ है Squeeze release

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

पुनरीक्षण

img


/*backtest
start: 2021-05-05 00:00:00
end: 2022-05-04 23:59:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/

//
// @author LazyBear 
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
study(shorttitle = "SQZMOM_LB", title="Squeeze Momentum Indicator [LazyBear]", overlay=false)

length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(14, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)",defval=true)

// Calculate BB
source = close
basis = ta.sma(source, length)
dev = multKC * ta.stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = ta.sma(source, lengthKC)
range = useTrueRange ? ta.tr : (high - low)
rangema = ta.sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

val = ta.linreg(source  -  math.avg(math.avg(ta.highest(high, lengthKC), ta.lowest(low, lengthKC)),ta.sma(close,lengthKC)), 
            lengthKC,0)

bcolor = iff( val > 0, 
            iff( val > nz(val[1]), color.lime, color.green),
            iff( val < nz(val[1]), color.red, color.maroon))

scolor = noSqz ? color.blue : sqzOn ? color.black : color.gray 
plot(val, color=bcolor, style=plot.style_histogram, linewidth=4)
plot(0, color=scolor, style=plot.style_cross, linewidth=2)

if val >0 and val < nz(val[1])
    strategy.entry("entry short", strategy.short)
else if val <0 and val > nz(val[1]) 
    strategy.entry("entry long", strategy.long) 
       
    
    

संबंधित

अधिक