यह रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए प्रवृत्ति दिशा और ओवरबॉट ओवरसोल्ड क्षेत्रों की पहचान करने के लिए कई तकनीकी संकेतकों का उपयोग करती है।
प्रमुख संकेतकों में शामिल हैंः
औसत दिशा सूचकांक ((ADX): प्रवृत्ति की ताकत का आकलन करें
आरएसआईः ओवरबॉट और ओवरसोल्ड
सिनैपेट औसत (एसएमए): अल्पकालिक रुझानों का आकलन
एक्सट्रीम एसएआर सूचकांकः दीर्घकालिक रुझानों का आकलन
ट्रेंड ब्रेकिंग प्रवेश
लेन-देन का तर्क:
ADX ने कहा कि रुझान मौजूद है और पर्याप्त मजबूत है
एसएआर ने कहा कि दीर्घकालिक रुझान एकजुट हैं
आरएसआई ने ओवरबॉट और ओवरसोल्ड की पहचान की
कीमतें SMA औसत रेखा को तोड़ने पर प्रवेश करें
जब कीमतें प्रवेश द्वार को तोड़ती हैं
विभिन्न सूचकांकों का परस्पर सत्यापन निर्णय की सटीकता को बढ़ाता है, विभिन्न रणनीतियों का संयोजन एक प्रणालीगत व्यापार प्रणाली बनाता है।
सिग्नल गुणवत्ता में सुधार के लिए बहु-सूचक संयोजन
विभिन्न रणनीतियों का संयोजन, व्यवस्थित प्रवेश
ADX ने ट्रेंड की पहचान की, RSI ने ओवरबॉय और ओवरसोल का फैसला किया
SAR ने रुझानों को पकड़ लिया, SMA और चैनल ने प्रवेश किया
बहु-पैरामीटर सेट करें, बार-बार परीक्षण और अनुकूलन की आवश्यकता है
संयोजन की कम आवृत्ति
संकेतक संघर्ष संकेतों को संभालने में मुश्किल
इस रणनीति में विभिन्न प्रकार के संकेतक का पूरा लाभ उठाया गया है ताकि एक मजबूत व्यापार प्रणाली का निर्माण किया जा सके। हालांकि, यह सुनिश्चित करने के लिए कि व्यापार की आवृत्ति उचित है, पैरामीटर को अनुकूलित करने की आवश्यकता है। कुल मिलाकर, इस रणनीति में मजबूत प्रवृत्ति की पहचान और कुशल प्रवेश शामिल हैं।
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-13 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// strategy("Combined Strategy", overlay=true, default_qty_value=100, initial_capital=1000, margin_long=0.1)
adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
src = hl2
atr = ta.atr(atrPeriod)
upperBand = src + factor * atr
lowerBand = src - factor * atr
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
int direction = na
float superTrend = na
prevSuperTrend = superTrend[1]
if na(atr[1]) and ta.rsi(close, 21) < 66 and ta.rsi(close,3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
direction := 1
else if prevSuperTrend == prevUpperBand
direction := close > upperBand ? -1 : 1
else
direction := close < lowerBand ? 1 : -1
superTrend := direction == -1 ? lowerBand : upperBand
[superTrend, direction]
[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
upTrend = pineDirection < 0
downTrend = pineDirection > 0
// Define the 20-period SMA
sma20 = ta.sma(close, 20)
a = ta.rsi(close,14)
OB = input(70)
OS = input(30)
os = a > OB
ob = a < OS
if upTrend and close > pineSupertrend and close > sma20 and os
strategy.entry("Buy", strategy.long)
if ta.crossunder(close, sma20) or ob
strategy.close_all()
//define when to breakout of channel
//("ChannelBreakOutStrategy", overlay=true)
length = input.int(title="Length", minval=1, maxval=1000, defval=5)
upBound = ta.highest(high, length)
downBound = ta.lowest(low, length)
if (not na(close[length]))
strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")