
यह रणनीति औसत वास्तविक सीमा (ATR) और औसत दिशा सूचकांक (ADX) के आधार पर एक अनुकूलित मूल्य चैनल रणनीति है। इसका उद्देश्य मूल्य आंदोलन में बाजार और रुझानों की पहचान करना और तदनुसार व्यापार करना है।
हाल ही में लंबाई रूट K लाइन पर उच्चतम मूल्य ((HH) और निम्नतम मूल्य ((LL) की गणना करें। साथ ही लंबाई रूट K लाइन पर एटीआर की गणना करें।
मूल्य वृद्धि और गिरावट के आधार पर + डीआई और -डीआई की गणना करें, फिर एडीएक्स की गणना करें।
यदि ADX <25 है, तो इसे एक संचयी बाजार के रूप में माना जाता है। यदि समापन मूल्य मूल्य चैनल की ऊपरी सीमा से अधिक है, तो HH-ATR गुणा करें*एटीआर), अधिक करें; यदि समापन मूल्य मूल्य चैनल की निचली सीमा से नीचे है*एटीआर), रिक्तियों।
यदि ADX> = 25 और + DI> -DI है, तो इसे बैल बाजार माना जाता है। इस समय, यदि समापन मूल्य मूल्य चैनल की ऊपरी सीमा से अधिक है, तो अधिक करें।
यदि ADX> = 25 और + DI <-DI है, तो इसे एक खाली बाजार माना जाता है। इस समय, यदि समापन मूल्य मूल्य चैनल की निचली सीमा से नीचे है, तो यह खाली है।
स्थिति में प्रवेश करने के बाद, यदि exit_length रूट K लाइन से अधिक का नुकसान नहीं हुआ है, तो स्थिति को बंद करने के लिए मजबूर किया जाता है।
यह रणनीति स्वचालित रूप से बाजार की स्थिति के लिए अनुकूल है। बाजार को संकलित करने के लिए मूल्य चैनल रणनीति का उपयोग करें, और ट्रेंडिंग बाजार में ट्रेंड की दिशा का पालन करें।
एटीआर और एडीएक्स संकेतकों का उपयोग रणनीति के अनुकूलनशीलता को सुनिश्चित करता है। एटीआर का उपयोग मूल्य चैनल की चौड़ाई को समायोजित करने के लिए किया जाता है, जबकि एडीएक्स का उपयोग बाजार की प्रवृत्ति को समझने के लिए किया जाता है।
जबरदस्ती रोक-टोक तंत्र रणनीति की स्थिरता में मदद करता है।
एडीएक्स निर्णयों में गलत संकेतों की अधिक संभावना होती है।
एटीआर और एडीएक्स सूचकांक को गलत तरीके से सेट करने से रणनीति खराब हो सकती है।
इस तरह के परिवर्तनों से बचने में असमर्थता।
एटीआर और एडीएक्स मापदंडों को अनुकूलित करें ताकि अनुकूलन बेहतर हो सके।
घाटे के जोखिम को कम करने के लिए स्टॉप लॉस लाइन बढ़ाएं
फ़िल्टर शर्तें जोड़ें फ़िल्टर त्रुटि संकेत
स्व-अनुकूली मूल्य चैनल रणनीति कई संकेतकों और तंत्रों का व्यापक उपयोग करती है, विभिन्न परिस्थितियों में अलग-अलग रणनीतियों को अपनाती है, जिसमें कुछ अनुकूलनशीलता और स्थिरता होती है। लेकिन संकेतक सेटिंग और पैरामीटर चयन की सीमाओं के कारण, यह रणनीति कुछ गलतफहमी के जोखिम का भी सामना करती है। भविष्य में अनुकूलन दिशा पैरामीटर अनुकूलन, जोखिम नियंत्रण आदि के क्षेत्र में है।
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Adaptive Price Channel Strategy", overlay=true)
length = input(20, title="Length")
exit_length = input(10, title="Exit After X Periods")
atr_multiplier = input(3.2, title="ATR Multiplier")
startDate = input(defval = timestamp("2019-01-15T08:15:15+00:00"), title = "Start Date")
endDate = input(defval = timestamp("2033-04-01T08:15:00+00:00"), title = "End Date")
hh = ta.highest(high, length)
ll = ta.lowest(low, length)
atr = ta.atr(length)
// calculate +DI and -DI
upMove = high - high[1]
downMove = low[1] - low
plusDM = na(upMove[1]) ? na : (upMove > downMove and upMove > 0 ? upMove : 0)
minusDM = na(downMove[1]) ? na : (downMove > upMove and downMove > 0 ? downMove : 0)
plusDI = ta.rma(plusDM, length) / atr * 100
minusDI = ta.rma(minusDM, length) / atr * 100
// calculate ADX
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, length)
var int barSinceEntry = na
if (not na(close[length]) )
if (adx < 25) // Sideways market
if (close > hh - atr_multiplier * atr)
strategy.entry("PChLE", strategy.long, comment="PChLE")
barSinceEntry := 0
else if (close < ll + atr_multiplier * atr)
strategy.entry("PChSE", strategy.short, comment="PChSE")
barSinceEntry := 0
else if (adx >= 25 and plusDI > minusDI) // Bullish market
if (close > hh - atr_multiplier * atr)
strategy.entry("PChLE", strategy.long, comment="PChLE")
barSinceEntry := 0
else if (adx >= 25 and plusDI < minusDI) // Bearish market
if (close < ll + atr_multiplier * atr)
strategy.entry("PChSE", strategy.short, comment="PChSE")
barSinceEntry := 0
if (na(barSinceEntry))
barSinceEntry := barSinceEntry[1] + 1
else if (barSinceEntry >= exit_length)
strategy.close("PChLE")
strategy.close("PChSE")
barSinceEntry := na
plot(hh, title="Highest High", color=color.green, linewidth=2)
plot(ll, title="Lowest Low", color=color.red, linewidth=2)