यह रणनीति बिटकॉइन के लिए दैनिक समय सीमा के भीतर व्यापार के अवसरों की पहचान करने के लिए कई संकेतकों को जोड़ती है। यह मुख्य रूप से एमएसीडी, आरएसआई, स्टॉक आरएसआई जैसे संकेतकों का उपयोग करता है, साथ ही खरीद और बिक्री संकेत उत्पन्न करने के लिए चलती औसत की दिशा निर्धारित करने के लिए।
इस रणनीति में निम्नलिखित प्रमुख संकेतकों का उपयोग किया गया हैः
एमएसीडी (फास्ट एमए - स्लो एमए) और इसकी सिग्नल लाइन। एमएसीडी सिग्नल लाइन के ऊपर पार करना खरीद संकेत देता है, और 0 से नीचे पार करना बिक्री संकेत देता है।
आरएसआई (रिलेटिव स्ट्रेंथ इंडेक्स) आरएसआई एक सीमा से ऊपर का क्रॉसिंग खरीद संकेत देता है।
स्टॉक आरएसआई. स्टॉक आरएसआई आरएसआई के ओवरबॉट/ओवरसोल्ड स्तर दिखाता है. स्टॉक आरएसआई सीमा से नीचे खरीद संकेत देता है, जबकि सीमा से ऊपर बिक्री संकेत देता है.
चलती औसत दिशा. एमए के नीचे बंद मूल्य क्रॉसिंग बिक्री संकेत देता है.
इन संकेतकों के अनुसार, ट्रेडिंग सिग्नल हैंः
सिग्नल खरीदेंकब(Stoch RSI < Threshold) AND (MACD crossing above threshold OR RSI crossing above threshold)
सिग्नल बेचेंकब(MACD crossing below 0) AND (Close below MA OR Stoch RSI > Threshold)
एक साथ कई संकेतकों का प्रयोग वर्तमान प्रवृत्ति दिशा को बेहतर ढंग से निर्धारित कर सकता है और ट्रेडों में प्रवेश करने के लिए प्रवृत्ति उलट बिंदुओं की पहचान कर सकता है।
कई संकेतकों का संयोजन सटीकता में सुधार करता है और एक ही संकेतकों से झूठे संकेतों से बचा जाता है।
एमएसीडी रुझान की दिशा और ताकत दिखाता है। आरएसआई ओवरबॉट / ओवरसोल्ड स्तरों को दर्शाता है। स्टॉक आरएसआई आरएसआई के ओवरबॉट / ओवरसोल्ड को निर्धारित करता है। एमए रुझान की दिशा दिखाता है। ये संकेतक एक दूसरे को सत्यापित करते हैं।
खरीद/बिक्री संकेतों के लिए कई संकेतकों का संयोजन आवश्यक होता है, जिससे कुछ झूठे संकेतों को फ़िल्टर किया जाता है और अनावश्यक ट्रेडों से बचा जाता है।
बैकटेस्ट 2017/1/1 से शुरू होता है, जो 2017 के अंत में बिटकॉइन के विशाल बुल रन को कवर करता है। एक वास्तविक बुल बाजार में रणनीति प्रदर्शन का परीक्षण करता है।
स्टॉप लॉस को एकल ट्रेडों में हानि को नियंत्रित करने के लिए सेट किया गया है।
यद्यपि कई संकेतकों का प्रयोग सटीकता में सुधार करता है, लेकिन उनके बीच विसंगति अभी भी कुछ गलत संकेतों का कारण बन सकती है।
अनुकूलित स्टॉप लॉस स्तर को विभिन्न बाजार स्थितियों के लिए समायोजन की आवश्यकता हो सकती है। बहुत व्यापक स्टॉप लॉस एकल ट्रेडों में नुकसान को बढ़ाता है, जबकि बहुत तंग समय से पहले बंद हो सकता है।
दैनिक समय सीमा कम समय सीमा में विस्तृत संचालन को रोकती है। अचानक अल्पकालिक बड़े कदमों का जवाब देने में असमर्थ।
रणनीति केवल सीमित ऐतिहासिक डेटा पर बैकटेस्ट की जाती है। ओवरफिट जोखिम मौजूद है। अधिक समय सीमा और अधिक बाजारों में आगे परीक्षण की आवश्यकता होती है।
इष्टतम बहु-सूचक रणनीतियों को खोजने के लिए अधिक संकेतक संयोजनों का परीक्षण करें।
बेहतर मानों के लिए संकेतकों के मापदंडों का अनुकूलन करें।
इष्टतम जोखिम/लाभ अनुपात खोजने के लिए विभिन्न स्टॉप लॉस स्तरों का परीक्षण करें।
अति अनुकूलन से बचने के लिए लंबे ऐतिहासिक डेटा पर बैकटेस्ट करें।
अधिक आवृत्ति वाले व्यापार के लिए उच्च आवृत्ति समय सीमा में रणनीति तर्क को लागू करने का अन्वेषण करें।
यह रणनीति बिटकॉइन दैनिक प्रवृत्ति दिशा निर्धारित करने और व्यापार प्रवेश के लिए प्रवृत्ति उलट को पहचानने के लिए एमएसीडी, आरएसआई, स्टॉक आरएसआई और अन्य संकेतकों को जोड़ती है। व्यापार जोखिम को नियंत्रित करने के लिए स्टॉप लॉस सेट किया गया है। बैकटेस्ट सकारात्मक परिणाम दिखाता है लेकिन अभी भी अधिक समय सीमा और अधिक बाजारों में अधिक सत्यापन की आवश्यकता होती है ताकि ओवरफिट जोखिमों से बचा जा सके। संकेतक मापदंडों और स्टॉप लॉस / टेक लाभ स्तरों पर आगे के अनुकूलन परिणामों में सुधार कर सकते हैं। रणनीति बहु-संकेतक संयोजन दृष्टिकोण का एक प्रारंभिक विचार प्रदान करती है जो गहन अन्वेषण और सुधार के लायक है।
/*backtest start: 2022-10-23 00:00:00 end: 2023-10-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Original code is from CredibleHulk and modified by bennef strategy("BTC Daily Strategy BF", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075) /////////////// Time Frame /////////////// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true /////////////// Input Params /////////////// rsi_threshold = input(30) rsi_length = input(4) srsi_length = input(8) srsi_smooth = input(4) srsi_sell_threshold = input(57) length = input(14) dma_signal_threshold = input(-1) fastLength = input(11) slowlength = input(18) MACDLength = input(6) MACD_signal_threshold = input(-2) short_loss_tol = input(5) long_loss_tol = input(5) stop_level_long = strategy.position_avg_price * (1 - long_loss_tol / 100.0) stop_level_short = strategy.position_avg_price * (1 + short_loss_tol / 100.0) /////////////// Signal generation /////////////// // MACD MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // RSI and Stochastic RSI rs = rsi(close, rsi_length) k = sma(stoch(rs, rs, rs, srsi_length), srsi_smooth) // SMA norm = sma(ohlc4, length) threshold = close - norm /////////////// Strategy /////////////// long = ((crossover(delta, MACD_signal_threshold) or crossover(rs, rsi_threshold)) and k < srsi_sell_threshold) short = (crossunder(delta, 0) or (crossunder(threshold, dma_signal_threshold) and k > srsi_sell_threshold)) if testPeriod() strategy.entry("L", strategy.long, when = long) strategy.entry("S", strategy.short, when = short) strategy.exit("stop loss L", from_entry = "L", stop = stop_level_long) strategy.exit("stop loss S", from_entry = "S", stop = stop_level_short) /////////////// Plotting /////////////// // MACD plot(delta, color = delta > MACD_signal_threshold ? color.lime : delta < 0 ? color.red : color.yellow) MACD_signal_threshold_line = hline(MACD_signal_threshold, color = color.yellow, title = "MACD Signal Threshold") // RSI plot(rs, color = rs > rsi_threshold ? color.lime : color.fuchsia) rsi_threshold_line = hline(rsi_threshold, color = color.fuchsia, title = "RSI Threshold") // Stochastic RSI plot(k, color = k > srsi_sell_threshold ? color.lime : color.red) srsi_sell_threshold_line = hline(srsi_sell_threshold, color = color.white, title = "Stoch RSI Threshold") // SMA plot(threshold / 100, color = threshold < dma_signal_threshold ? color.red : color.blue) dma_signal_threshold_line = hline (dma_signal_threshold, color = color.blue, title = "DMA Signal Threshold") bgcolor(long ? color.lime : short ? color.red : na, transp=50)