बोलिंगर बैंड और कल्किन चैनल पर आधारित मोमेंटम स्क्वीज़ रणनीति


निर्माण तिथि: 2024-01-30 17:33:49 अंत में संशोधित करें: 2024-01-30 17:33:49
कॉपी: 0 क्लिक्स: 869
1
ध्यान केंद्रित करना
1617
समर्थक

बोलिंगर बैंड और कल्किन चैनल पर आधारित मोमेंटम स्क्वीज़ रणनीति

अवलोकन

यह एक मात्रात्मक ट्रेडिंग रणनीति है जो LazyBear पर आधारित गतिशीलता एक्सट्रूज़न सूचकांक पर विकसित की गई है। यह रणनीति ब्रिन बैंड, कैलकिन चैनल और गतिशीलता सूचकांक को एकीकृत करती है, जो कई तकनीकी संकेतकों के संयोजन के माध्यम से उच्च जीत दर के साथ गतिशीलता ब्रेकआउट ट्रेडिंग को प्राप्त करती है।

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

इस रणनीति का केंद्रीय संकेतक LazyBear की गतिशीलता है, जो यह बताता है कि क्या बुरीन बैंड को कल्किन चैनल द्वारा दबाया जा रहा है, और जब यह होता है, तो यह एक संभावित विस्फोट बिंदु में प्रवेश करने के लिए बाजार का प्रतिनिधित्व करता है। गतिशीलता संकेतक के साथ, यह निर्धारित करने के बाद कि यह किस दिशा में है, यह बाजार के विस्फोट को पकड़ सकता है जब यह रिलीज हो जाता है।

विशेष रूप से, यह रणनीति पहले 21 चक्रों के ब्लिंक बैंड की गणना करती है, जो मूल्य मानक अंतर के 2 गुना की चौड़ाई है। साथ ही, 20 चक्रों के कैल्शियम चैनल की गणना की जाती है, जो मूल्य वृद्धि के 1.5 गुना की चौड़ाई है। जब ब्लिंक बैंड को कैल्शियम चैनल के स्ट्रिप्स द्वारा दबाया जाता है, तो एक एक्सट्रूज़न सिग्नल जारी किया जाता है। इसके अलावा, यह रणनीति कुछ समय के लिए कीमतों की गतिशीलता की गणना करती है। जब एक्सट्रूज़न होता है, तो गतिशीलता सूचकांक की दिशा के साथ, खरीद या बेचने का निर्णय लें।

आउटफील्ड पर, जब गतिशीलता सूचक रंग ग्रे हो जाता है, तो स्थिति को समतल करना, जो कि निचोड़ की स्थिति के अंत का प्रतिनिधित्व करता है, प्रवृत्ति को उलट सकता है।

रणनीतिक लाभ

  1. व्यापारिक निर्णयों की सटीकता में सुधार के लिए कई तकनीकी संकेतकों को एकीकृत करना

इस रणनीति में ब्रिन बैंड, केल्विन चैनल और गतिशीलता के संकेतकों को शामिल किया गया है, जो इन संकेतकों के समग्र संबंधों को समझने से व्यापारिक निर्णयों की सटीकता को बढ़ा सकते हैं और गलत ट्रेडों की संभावना को कम कर सकते हैं।

  1. गतिज दबाव बिंदु सटीकता, संभावित लाभ के लिए बड़ा स्थान

गतिशीलता की रणनीति बाजार के विस्फोट के महत्वपूर्ण बिंदुओं को पकड़ सकती है, जो अक्सर महत्वपूर्ण दिशा निर्णय लेने के लिए महत्वपूर्ण बिंदु होते हैं, और यदि सही निर्णय लिया जाता है, तो बाद में लंबे समय तक चलती है, इसलिए रणनीति के लिए संभावित मुनाफे की जगह बहुत अधिक है।

  1. उच्च सफलता दर के साथ एक सफलता सौदा

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

रणनीतिक जोखिम

  1. ब्रिन बेल्ट और कल्किन चैनल पैरामीटर जोखिम सेट करें

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

  1. असफलता का खतरा

किसी भी ब्रेकआउट ट्रेड में विफलता का जोखिम होता है, और जब कीमत रणनीति के चयनित बिंदु को तोड़ती है, तो फिर से वापस लेने की संभावना होती है, जिससे नुकसान होता है। इसे सख्ती से रोकने की आवश्यकता होती है।

  1. प्रवृत्ति उलट जोखिम

जब दबाव समाप्त हो जाता है, तो यह रणनीति सभी पदों को समाप्त कर देती है। हालांकि, कभी-कभी कीमत की प्रवृत्ति अभी भी जारी रह सकती है, जिससे रणनीति के जल्द से जल्द बाहर निकलने का जोखिम होता है।

रणनीति अनुकूलन दिशा

  1. अनुकूलित पैरामीटर सेटिंग

अधिक मात्रा में परीक्षण त्रुटि के साथ, ब्रीनिंग बैंड और कैलकिन चैनल के लिए बेहतर पैरामीटर चक्र और बैंडविड्थ सेटिंग्स की तलाश करें ताकि रणनीति की प्रभावशीलता में सुधार हो सके।

  1. स्टॉप लॉस को बढ़ाएं

एक गतिशील रोक या दोलन रोक सेट किया जा सकता है, जो रणनीति के अधिकतम निकासी को नियंत्रित करने के लिए कीमतों के पलटने पर तेजी से बंद हो जाता है।

  1. फिर से प्रवेश की शर्तें बढ़ाई गईं

जब रणनीति स्थिति से बाहर निकलती है, तो कुछ पुनः प्रवेश की शर्तें निर्धारित की जा सकती हैं और यदि प्रवृत्ति जारी रहती है, तो फिर से प्रवेश किया जा सकता है।

  1. और अधिक सूचकांकों के साथ

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//All credits to LazyBear. All I did was turn it into a strategy!

strategy(title = "SQZMOM STRAT", overlay=false)

// --- GENERAL INPUTS ---
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2020, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)
FromDay   = 1
ToDay     = 1
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

get_round(value, precision) => round(value * (pow(10, precision))) / pow(10, precision)
trade_leverage = input(1, title = "Trade - Leverage", step = 0.25)
trade_risk     = input(100, title = "Trade - Risk Percent", type = input.float, step = 0.1, minval = 0.1, maxval = 100)
tradeType   = input("LONG", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH"])

// --- SQZMOM CODE

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

useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)

// 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 = color.gray
if (val > 0 and val > nz(val[1]))
    bcolor := color.green
if (val < 0 and val < nz(val[1]))
    bcolor := color.red

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)

// --- VWMA CODE ---
useVWMA        = input(false, title = "Use VWMA to selectively long/short?", type = input.bool)
lengthVWMA=input(42, title = "VWMA Length", step = 1, minval = 1)
useCV=input(false, type=input.bool, title="Use Cumulative Volume for VWMA?")
nbfs = useCV ? cum(volume) : sum(volume, lengthVWMA)
medianSrc=close

calc_evwma(price, lengthVWMA, nb_floating_shares) => data = (nz(close[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)

m=calc_evwma(medianSrc, lengthVWMA, nbfs)


// ---STRATEGY---
if ((tradeType == "LONG" or tradeType == "BOTH") and (m>0 or useVWMA == false))
    longCondition = (val > 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
    if (longCondition)
        contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
        strategy.entry("LONG", strategy.long, qty = contracts, when = window())
        
if((tradeType == "SHORT" or tradeType == "BOTH") and (m<0 or useVWMA == false))
    shortCondition = (val < 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
    if (shortCondition)
        contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
        strategy.entry("SHORT", strategy.short, qty = contracts, when = window())

if (bcolor == color.gray)
    strategy.close("LONG")
    strategy.close("SHORT")