
यह रणनीति तीन अलग-अलग तकनीकी संकेतकों को जोड़ती है, एक द्वि-समान-लाइन प्रणाली का उपयोग करके ट्रेडिंग सिग्नल उत्पन्न करती है, और एक अपेक्षाकृत स्थिर और प्रभावी शॉर्ट-लाइन ट्रेडिंग रणनीति बनाने के लिए अतिरिक्त फ़िल्टरिंग शर्तों के रूप में के-लाइन के रंग और इकाई का उपयोग करती है।
पूरी रणनीति में, बुरिन बैंड और केसी चैनल के संयोजन का उपयोग बाजार के संपीड़न और विस्तार के चरणों की पहचान करने के लिए किया जाता है। विशेष रूप से, बुरिन बैंड को संपीड़न के रूप में माना जाता है जब यह केसी चैनल के भीतर होता है और जब बुरिन बैंड केसी चैनल को तोड़ता है तो इसे विस्तार के रूप में माना जाता है। संपीड़न उतार-चढ़ाव को बढ़ाने और रुझान में बदलाव की संभावना को दर्शाता है, जब एक मुख्य व्यापारिक संकेत के रूप में रैखिक वापसी का उपयोग किया जाता है।
यदि रैखिक रिवर्सन हिस्टोग्राम सकारात्मक है (उच्च प्रवृत्ति का प्रतिनिधित्व करता है) और बार लाल K लाइन है (ऋण का प्रतिनिधित्व करता है) और K लाइन की इकाई पिछले 30 K लाइनों की औसत इकाई से 1⁄3 बड़ी है, तो इस तरह के संयोजन संकेत अधिक हैं; इसके विपरीत यदि रैखिक रिवर्सन हिस्टोग्राम नकारात्मक है, तो बार हरे रंग की K लाइन है, और इकाई भी बड़ी है, तो शून्य है।
यह रणनीति बाजार के चरणों को समझने में मदद करने के लिए संपीड़न और विस्तार की पृष्ठभूमि को एक साथ दृश्य प्रदान करती है।
जोखिम को कम करने के लिए, संकेतकों को समायोजित करें और फ़िल्टरिंग स्थितियों को अनुकूलित करें।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
इस रणनीति में संपीड़न के अवसरों की पहचान करते हुए फ़िल्टर शर्तों को जोड़ने के लिए कई संकेतकों को समेकित किया गया है, जिससे एक अधिक मजबूत और कुशल शॉर्ट-लाइन रणनीति बनाई गई है। पैरामीटर और फ़िल्टर शर्तों के अनुकूलन के माध्यम से बेहतर प्रभाव प्राप्त किया जा सकता है। और यह रणनीति ढांचा लचीला है, इसे विभिन्न किस्मों में उपयोग करने के लिए आसान है, और आगे परीक्षण और अनुकूलन के लायक है।
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2017
//@version=2
strategy(shorttitle = "Squeeze str 1.0", title="Noro's Squeeze Momentum Strategy v1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = true
usecolor = input(true, defval = true, title = "Use color of candle")
usebody = input(true, defval = true, title = "Use EMA Body")
needbg = input(false, defval = false, title = "Show trend background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = 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 = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)
bcolor = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
trend = val > 0 ? 1 : val < 0 ? -1 : 0
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//EMA Body
body = abs(close - open)
emabody = ema(body, 30) / 3
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = trend == 1 and (bar == -1 or usecolor == false) and (body > emabody or usebody == false)
dn = trend == -1 and (bar == 1 or usecolor == false) and (body > emabody or usebody == false)
if up
strategy.entry("Long", strategy.long)
if dn
strategy.entry("Short", strategy.short)