
यह रणनीति तीन अलग-अलग तकनीकी संकेतकों के संयोजन का उपयोग करती है, जो एक बहु-समय-फ्रेम की सट्टा रणनीति का निर्माण करती है, जो विभिन्न समय अवधि में मूल्य रुझानों को पकड़कर कम जोखिम वाले अतिरिक्त लाभ प्राप्त करती है।
इस रणनीति में तीन तकनीकी संकेतकों का उपयोग किया जाता है, क्रमशः केल्ट चैनल ((केसी), अस्थिरता रोकना ((वीस्टॉप) और विलियम्स बैठक बैठक सूचक ((डब्ल्यूएई) । केल्ट चैनल का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या कीमतें चैनल की सीमा से बाहर हैं और इसलिए एक व्यापारिक संकेत भेजती हैं। अस्थिरता रोकना गतिशील रूप से स्टॉप पोजीशन को समायोजित करने के लिए उपयोग किया जाता है, जबकि स्टॉप की गारंटी दी जाती है। विलियम सूचक का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या कीमतें मजबूत दिशा में हैं। विशेष रूप सेः
जब कीमत केल्ट चैनल से ऊपर होती है, तो यह एक bullish संकेत है। जब कीमत केल्ट चैनल से नीचे होती है, तो यह एक bearish संकेत है।
उतार-चढ़ाव की दर को रोकने के लिए कीमतों में उतार-चढ़ाव और चैनल की चौड़ाई के आधार पर स्टॉप पोजीशन सेट करें। यह गतिशील रूप से समायोजित करने में सक्षम है, जबकि स्टॉप की गारंटी देता है, बहुत अधिक रूढ़िवादी स्टॉप पोजीशन से बचा जाता है।
विलियम सूचकांक MACD और ब्रीनिंग बैंडवे की चौड़ाई की गणना करके यह निर्धारित करता है कि क्या कीमतें एक मजबूत ऊपर या नीचे की प्रवृत्ति में हैं।
इन तीनों मापदंडों के संयोजन से, विभिन्न समय अवधि के संकेतों को एक-दूसरे को सत्यापित करने में सक्षम बनाया गया है। इससे गलतफहमी की संभावना कम हो जाती है और एक स्थिर अनुकूलित रणनीति तर्क का निर्माण होता है।
इस रणनीति का सबसे बड़ा लाभ बहु-सूचक संयोजन से आने वाले सटीक व्यापारिक संकेतों में है। तीनों संकेतक अलग-अलग समय अवधि पर काम करते हैं, एक-दूसरे को सत्यापित करते हैं, जो गलतफहमी की संभावना को कम करने और संकेतों की सटीकता को बढ़ाने के लिए प्रभावी है। इसके अलावा, अस्थिरता दर रोकथाम सेटिंग गतिशील है, जो वास्तविक समय में उतार-चढ़ाव के आधार पर रोकथाम की स्थिति को समायोजित करने में सक्षम है, और जोखिम को नियंत्रित करता है।
एकल सूचक रणनीति की तुलना में, यह संयोजन रणनीति अधिक सटीक और कुशल व्यापारिक संकेत प्रदान कर सकती है। साथ ही, तीन सूचकांक एक दूसरे के साथ मिलकर व्यापारिक निर्णयों को कई समय सीमा के भीतर बनाते हैं, यह तर्कसंगत डिजाइन बहुत वैज्ञानिक और उचित है।
इस रणनीति का मुख्य जोखिम यह है कि पैरामीटर की गलत सेटिंग से ओवरफिट हो सकता है। तीनों सूचकांकों में कुल 8 पैरामीटर हैं, और गलत सेटिंग से रणनीति पर प्रतिकूल प्रभाव पड़ सकता है। इसके अलावा, सूचकांकों के बीच भार संबंधों को उचित रूप से कॉन्फ़िगर करने की आवश्यकता है, अन्यथा सिग्नल एक दूसरे को ऑफसेट कर सकते हैं, जिसके परिणामस्वरूप अमान्य हो सकता है।
इन जोखिमों को कम करने के लिए, पैरामीटर सेट करने की प्रक्रिया में विभिन्न बाजार स्थितियों की अनुकूलता को ध्यान में रखते हुए, रिवर्स विश्लेषण के माध्यम से अनुकूलित पैरामीटर के इष्टतम संयोजन को समायोजित करने की आवश्यकता है। इसके अलावा, संकेतक के बीच वजन को उचित रूप से समायोजित किया जाना चाहिए ताकि यह सुनिश्चित किया जा सके कि व्यापारिक संकेत प्रभावी रूप से ट्रिगर हो सकें। लगातार नुकसान होने पर, स्थिति के आकार को कम करने और नुकसान को नियंत्रित करने के लिए विचार करने की भी आवश्यकता है।
इस रणनीति के अनुकूलन के लिए जगह मुख्य रूप से दो पहलुओं पर केंद्रित हैः पैरामीटर समायोजन और रोकथाम रणनीति में सुधार। विशेष रूप से निम्नलिखित पहलुओं से शुरू किया जा सकता हैः
अधिक वैज्ञानिक और तर्कसंगत रूप से सूचकांक मापदंडों का चयन करें, मापदंडों के संयोजन को अनुकूलित करें। एल्गोरिदम के माध्यम से रिटर्न को अधिकतम करने, जोखिम को कम करने जैसे उद्देश्यों के अनुसार इष्टतम मापदंडों की तलाश की जा सकती है।
स्टॉप-लॉस रणनीति में सुधार, अनावश्यक स्टॉप को और कम करने के लिए, जीत की दर में सुधार, जबकि स्टॉप-लॉस की गारंटी दी जाती है। जैसे कि स्टॉप सिग्नल के रूप में अधिक संकेतकों को जोड़ना, या स्टॉप-लॉस पोजीशन के लिए एक क्रमिक रिड्यूस सेट करना।
संकेतक के भार संबंधों और व्यापार संकेतों के निर्णय तर्क का अनुकूलन, गलत निर्णय की दर को कम करना। अधिक मूल्य व्यवहार विशेषताएं पेश की जा सकती हैं, और अधिक स्थिर और विश्वसनीय निर्णय नियम बनाए जा सकते हैं।
मशीन लर्निंग मॉडल को लागू करने का प्रयास करें, पैरामीटर को स्वचालित रूप से अनुकूलित करने के लिए। या गहरी सुदृढीकरण प्रोग्रामिंग का उपयोग करें रणनीति मूल्यांकन और सुधार के लिए।
इस रणनीति केल्ट चैनल, अस्थिरता रोक और विलियम सूचक के संयोजन के उपयोग के माध्यम से, एक समय सीमा के साथ सरलीकरण प्रणाली का निर्माण। बहु-सूचक संयोजन ट्रेडिंग सिग्नल की सटीकता में सुधार करता है, गतिशील रोक जोखिम को नियंत्रित करता है। हालांकि, पैरामीटर सेट करने और अनुकूलन के लिए अभी भी सुधार की जगह है। कुल मिलाकर, यह रणनीति वैज्ञानिक रूप से मजबूत है और आगे की जांच और आवेदन के लायक है।
/*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
strategy("QuarryLake", overlay=true) ///Ultilized modified full kelly for this strategy = 36%
///Keltner channel///
nPeriod = input(title="Keltner Period", type=input.integer, defval=200, minval=1)
Mult = input(title="Keltner Mult", type=input.integer, defval=5, minval=1)
xPrice = ema(hlc3, nPeriod)
xMove = ema(high - low, nPeriod)
xMoveMult = xMove * Mult
xUpper = xPrice + xMoveMult
xLower = xPrice - xMoveMult
// plot(xPrice, color=red, title="KSmid")
p1 = plot(xUpper, color=color.white, title="KSup")
p2 = plot(xLower, color=color.white, title="KSdn")
fill(p1, p2, color=close > xUpper ? color.green : close < xLower ? color.red : color.white)
kclongcondition = close > xUpper
kcshortcondition = close < xLower
kccloselongcondition = crossunder(close, xUpper)
kccloseshortcondition = crossover(close, xLower)
///Volatility Stop///
length = input(title="Vstop length", type=input.integer, defval=3, minval=1)
mult1 = 1.5
atr_ = atr(length)
max1 = 0.0
min1 = 0.0
is_uptrend_prev = false
stop = 0.0
vstop_prev = 0.0
vstop1 = 0.0
is_uptrend = false
is_trend_changed = false
max_ = 0.0
min_ = 0.0
vstop = 0.0
max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)
is_uptrend_prev := nz(is_uptrend[1], true)
stop := is_uptrend_prev ? max1 - mult1 * atr_ : min1 + mult1 * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult1 * atr_ : min_ + mult1 * atr_ :
vstop1
plot(vstop, color=is_uptrend ? color.green : color.red, style=plot.style_line, linewidth=1)
vstoplongcondition = close > vstop
vstoplongclosecondition = crossunder(close, vstop)
vstopshortcondition = close < vstop
vstopshortclosecondition = crossover(close, vstop)
///Waddah Attar Explosion///
sensitivity = input(150, title="Sensitivity")
fastLength = input(20, title="FastEMA Length")
slowLength = input(40, title="SlowEMA Length")
channelLength = input(20, title="BB Channel Length")
mult = input(2.0, title="BB Stdev Multiplier")
DEAD_ZONE = nz(rma(tr(true), 100)) * 3.7
calc_macd(source, fastLength, slowLength) =>
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
fastMA - slowMA
calc_BBUpper(source, length, mult) =>
basis = sma(source, length)
dev = mult * stdev(source, length)
basis + dev
calc_BBLower(source, length, mult) =>
basis = sma(source, length)
dev = mult * stdev(source, length)
basis - dev
t1 = (calc_macd(close, fastLength, slowLength) -
calc_macd(close[1], fastLength, slowLength)) * sensitivity
t2 = (calc_macd(close[2], fastLength, slowLength) -
calc_macd(close[3], fastLength, slowLength)) * sensitivity
e1 = calc_BBUpper(close, channelLength, mult) -
calc_BBLower(close, channelLength, mult)
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0
waelongcondition = trendUp and trendUp > DEAD_ZONE and trendUp > e1
waeshortcondition = trendDown and trendDown > DEAD_ZONE and trendDown > e1
///Long Entry///
longcondition = kclongcondition and vstoplongcondition and waelongcondition
if longcondition
strategy.entry("Long", strategy.long)
///Long exit///
closeconditionlong = kccloselongcondition or vstoplongclosecondition
if closeconditionlong
strategy.close("Long")
///Short Entry///
shortcondition = kcshortcondition and vstopshortcondition and waeshortcondition
if shortcondition
strategy.entry("Short", strategy.short)
///Short exit///
closeconditionshort = kccloseshortcondition or vstopshortclosecondition
if closeconditionshort
strategy.close("Short")
///Free Hong Kong, the revolution of our time///