इस रणनीति को बहु-सूचक एकीकरण पर आधारित प्रवृत्ति ट्रैकिंग रणनीति कहा जाता है। यह रणनीति आरएसआई, एडीएक्स और एमएसीडी के तीन संकेतकों को एकीकृत करती है, जो एक उछाल की पुष्टि के बाद अधिक होती है, और एक गिरावट की पुष्टि के बाद एक स्थिति को कम करती है।
आरएसआई सूचकांक ओवरबॉय ओवरसोल स्थिति का आकलन करता है। आरएसआई पर 30 का पार करना ओवरसोल का अंत है, अधिक करने पर विचार करें; आरएसआई के नीचे 70 का पार करना ओवरबॉय का अंत है, बराबरी पर विचार करें।
ADX सूचक प्रवृत्ति की ताकत का आकलन करता है. ADX मूल्य पर 25 का पार करना एक प्रवृत्ति की स्थिति में प्रवेश का मतलब है, और नीचे 25 का पार करना प्रवृत्ति का अंत है।
एमएसीडी संकेतक अल्पकालिक रुझानों को निर्धारित करता है। डीआईएफएफ के ऊपर डीईए के माध्यम से शॉर्ट लाइन ऊपर की ओर बढ़ जाती है, अधिक करने पर विचार करती है। डीआईएफएफ के नीचे डीईए के माध्यम से शॉर्ट लाइन नीचे की ओर गिरती है, समतल स्थिति पर विचार करती है।
जब आरएसआई, एडीएक्स और एमएसीडी तीनों सूचकांक एक साथ मल्टीहेड सिग्नल दिखाते हैं, तो ओवरहेड करें। जब तीन सूचकांक मल्टीहेड ट्रेंड के अंत को दिखाते हैं, तो पोजीशन करें।
इस रणनीति का लाभ यह है कि कई संकेतकों की पुष्टि की जा सकती है, जिससे झूठे संकेतों को प्रभावी ढंग से रोका जा सकता है। लेकिन संकेतक मापदंडों को व्यक्तिगत रूप से अनुकूलित करने की आवश्यकता है, और हानिकारक रणनीति अपरिहार्य है।
कुल मिलाकर, सूचक एकीकरण के अनुप्रयोग ने निर्णय की प्रभावशीलता में सुधार किया है, लेकिन व्यापारियों को अभी भी विवेक की आवश्यकता है, वास्तविक परिस्थितियों के अनुसार रणनीति पैरामीटर को समायोजित और सत्यापित करना।
/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-08 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// RSI
//@version=3
// strategy("Femi Strategy", overlay=true)
strategy("Femi Strategy", overlay=false)
RSIlength = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, RSIlength)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
// ADX
//@version=3
adxlen = input(14)
dilen = input(14)
adxThreshold = input( 25 )
dirmov(len) =>
up = change(high)
down = -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 = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
// MACD
//@version=3
MACDZero = input(0)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
if (not na(vrsi))
if (crossover(delta, MACDZero))
strategy.entry("FEMIMACDLE", strategy.long, comment="FEMIMACDLE")
else
strategy.cancel(id="FEMIMACDLE")
if (crossunder(vrsi, overSold))
strategy.entry("FEMIRSILE", strategy.long, comment="FEMIRSILE")
else
strategy.cancel(id="FEMIRSILE")
// if(crossover(sig, adxThreshold)) // crossover(sig, adxThreshold) crossover(delta, MACDZero) crossunder(vrsi, overSold)
// strategy.entry("FEMIADXLE", strategy.long, comment="FEMIADXLE")
// else
// strategy.cancel(id="FEMIADXLE")
// if (crossover(source, lower))
// strategy.entry("FEMIBBLE", strategy.long, comment="FEMIBBLE")
// else
// strategy.cancel(id="FEMIBBLE")
// if(crossunder(sig, adxThreshold))
// strategy.cancel(id="FEMILE")
// strategy.exit(id="FEMILE")
// if (crossunder(delta, MACDZero))
// strategy.entry("FEMIMACDSE", strategy.short, comment="FEMIMACDSE")
if (crossover(vrsi, overBought))
// strategy.entry("FEMIRSISE", strategy.short, comment="FEMIRSISE")
strategy.close("FEMIRSILE")
strategy.close("FEMIMACDLE")
strategy.close("FEMIADXLE")
strategy.close("FEMIBBLE")
if (crossunder(sig, adxThreshold) and crossunder(delta, MACDZero) and crossunder(source, upper)) // crossover(delta, MACDZero) crossover(vrsi, overSold) crossover(sig, adxThreshold)
strategy.close("FEMIRSILE")
strategy.close("FEMIMACDLE")
strategy.close("FEMIADXLE")
strategy.close("FEMIBBLE")
// if(crossunder(source, upper))
// strategy.close("FEMIRSILE")
// strategy.close("FEMIMACDLE")
// strategy.close("FEMIADXLE")
// strategy.close("FEMIBBLE")
// strategy.entry("FEMIADXSE", strategy.short, comment="FEMIADXSE")
// else
// strategy.cancel(id="FEMISE")
// plot(sig, color=red, title="ADX", linewidth=2, style=areabr)
// plot(adxThreshold, color=blue, title="ADX")
// plot(vrsi, color=green, title="RSI", linewidth=2, style=areabr)
// plot(overSold, color=blue, title="RSI")
// plot(overBought, color=red, title="RSI")
// plot(delta, color=green, title="MACD", linewidth=2, style=areabr)
// plot(MACDZero, color=blue, title="MACD")
// plot(overBought, color=red, title="MACD")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)