यह रणनीति व्यापार संकेतों के लिए दोहरे एमएसीडी संकेतकों और स्टॉकआरएसआई थरथरानवाला को जोड़ती है। दोहरे एमएसीडी में तेजी से और धीमे प्रभाव के लिए अलग-अलग मापदंडों का उपयोग किया जाता है, जबकि स्टॉकआरएसआई गति विचलन की पुष्टि करता है। जोखिम को नियंत्रित करने के लिए प्रवृत्ति फ़िल्टर और स्टॉप लॉस भी जोड़े जाते हैं।
व्यापार संकेत निम्नलिखित पर आधारित हैं:
दोहरी एमएसीडीः तेज एमएसीडी कम लुकबैक अवधि का उपयोग करता है, धीमी एमएसीडी चिकनाई प्रभावों के लिए लंबी लुकबैक अवधि का उपयोग करता है।
स्टॉकआरएसआईः ओवरबॉट/ओवरसोल्ड आरएसआई स्तरों की पहचान करने के लिए आरएसआई उच्च/निम्न सीमा की गणना करता है।
प्रवेश के नियम:
लंबीः तेजी से एमएसीडी शून्य रेखा से ऊपर और धीमी एमएसीडी शून्य रेखा से ऊपर पार करती है। स्टॉकआरएसआई ओवरसोल्ड है और के डी से ऊपर पार करता है। अपट्रेंड में।
संक्षिप्त: तेजी से एमएसीडी शून्य रेखा के नीचे और धीमी एमएसीडी शून्य रेखा के नीचे पार करता है। स्टॉकआरएसआई ओवरबॉट है और के डी के नीचे पार करता है। डाउनट्रेंड में।
डबल एमएसीडी उच्च संकेत गुणवत्ता के लिए झूठे ब्रेकआउट से बचाता है।
स्टॉकआरएसआई पीछा करने से बचने के लिए ओवरबॉट/ओवरसोल्ड स्तरों की पहचान करता है।
काउंटरट्रेंड हानि को कम करने के लिए समग्र रुझान की दिशा पर विचार करता है।
क्रॉस-टाइमफ्रेम वैलिडेशन सिग्नल की प्रभावशीलता में सुधार करता है।
स्टॉप लॉस जोखिम को नियंत्रित करता है।
MACD झूठे संकेतों के लिए प्रवण है, आगे सत्यापन की आवश्यकता है।
खराब स्टॉकआरएसआई पैरामीटर ट्रेडों को मिस कर सकते हैं।
स्टॉप लॉस स्तर बहुत रूढ़िवादी या आक्रामक हो सकते हैं।
गतिशील स्टॉप के लिए स्थिति प्रबंधन की कमी है।
सुधार:
वॉल्यूम या एमए ढलान जैसे फ़िल्टर जोड़ें.
अन्य ऑसिलेटरों को अनुकूलित या जोड़ें।
गतिशील स्टॉप लॉस ट्रैकिंग।
प्रदर्शन के आधार पर स्थिति आकार जोड़ें.
अनुकूलन के मुख्य क्षेत्र:
संकेतक मापदंडों का अनुकूलन करें।
झूठे संकेतों को दूर करने के लिए फ़िल्टर जोड़ें।
गतिशील अनुवर्ती के लिए स्टॉप का अनुकूलन करें.
रणनीति प्रदर्शन के आधार पर स्थिति आकार शामिल करें।
ऑटो अनुकूलन के लिए मशीन लर्निंग जोड़ें.
यह रणनीति मजबूत संकेतों के लिए कई संकेतकों को जोड़ती है, लेकिन अवांछित ट्रेडों को कम करने और लाभप्रदता में सुधार करने के लिए मापदंडों, फ़िल्टरिंग, गतिशील स्टॉप में अनुकूलन की आवश्यकता होती है। कुल मिलाकर तर्क अच्छी अनुकूलन क्षमता के साथ ध्वनि है।
/*backtest start: 2023-09-14 00:00:00 end: 2023-09-21 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //This strategy is an ongoing work in progress. Last updated 8/6/16. //Feel free to modify it as you see fit, if you do borrow code then send me a link so I //can see and maybe borrow some of your code to improve this. //Thanks to ChrisMoody who I stole the code for setting custom resolution from. // //more info in comments at end of script strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true) source = close useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator") resCustom = input(title="Resolution/interval to use for 2nd MACD:", defval="45") res = useCurrentRes ? timeframe.period : resCustom useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI") resCustom2 = input(title="Resolution to use for StochRSI indicator:", defval="45") res2 = useCurrentRes2 ? timeframe.period : resCustom2 //MACD1 fastLength = input(10, title="MACD fast length") slowlength = input(21, title="MACD slow length") sigLength = input(9, title="MACD signal length") MACD = ema(source, fastLength) - ema(source, slowlength) signal = sma(MACD, sigLength) delta = MACD - signal //MACD2 fastLength2 = input(31, title= "2nd MACD fast length") slowlength2 = input(63, title= "2nd MACD slow length") sigLength2 = input(30, title= "2nd MACD signal length") MACD2 = ema(source, fastLength2) - ema(source, slowlength2) signal2 = sma(MACD2, sigLength2) delta2 = MACD2 - signal2 MACDRes = security(syminfo.tickerid, res, MACD2) signalRes = security(syminfo.tickerid,res, signal2) deltaRes = security(syminfo.tickerid, res, delta2) uptrend = (close + high)/(close[1] + high[2]) downtrend = (close + low)/(close[1] + low[2]) smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(11, minval=1) lengthStoch = input(11, minval=1) src = close rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) RSI_buyTrig = input(90) RSI_sellTrig = input(20) kRes = security(syminfo.tickerid, res2, k) dRes = security(syminfo.tickerid, res2, d) if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and ( kRes and dRes < RSI_buyTrig) and (kRes > dRes) strategy.entry("buy", strategy.long, comment="buy") if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes) strategy.entry("sell", strategy.short, comment="sell") strategy.exit("sell", loss = 9000) // RELEASE NOTES, ETC // // The core starting idea for this backtesting script came from the desire to have two traditional //MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals //so that short term changes in price are ignored (ideally). // A brief version history // v0.1 - Basic two MACD indicators script // v0.2 - Added StochRSI indicator // v0.21- Added primitive uptrend/downtrend safety condition // v0.22- Added changable time resolution for MACDslow // v0.23- Added exit safeties conditional on loss threshold // v0.3 - Added changeable resolution for StochRSI // Future changes planned for next release: // -Fine tuning exit safeties // -Major overhaul of trade logic/triggers (may be forked as a different script) // //I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions. //I am not a coder and my background is actually in economics, so feel free to debug ;) //Feel free to tip me on the indcluded bitcoin address on TV as well // tradingview.com/u/RyanMartin // rjmarti2@millersville.edu