यह एक क्लासिक ट्रेंड फॉलोइंग सिस्टम है। यह ट्रेंड की दिशा निर्धारित करने के लिए मूविंग एवरेज क्रॉसओवर का उपयोग करता है और जब कीमत डॉनचियन चैनलों से बाहर निकलती है तो प्रवेश करता है। डॉनचियन चैनल पैरामीटर को अल्पकालिक बाजार शोर को फ़िल्टर करने के लिए 50 दिनों पर सेट किया गया है। मूविंग एवरेज 40 दिन और 120 दिन के घातीय मूविंग एवरेज हैं, जो मध्यम से दीर्घकालिक रुझानों को बेहतर ढंग से पकड़ सकते हैं। स्टॉप लॉस को व्यक्तिगत ट्रेडों पर नुकसान को प्रभावी ढंग से नियंत्रित करने के लिए कीमत के नीचे 4x एटीआर पर सेट किया गया है।
यह रणनीति मुख्य रूप से निम्नलिखित बिंदुओं पर आधारित हैः
40 दिन और 120 दिन के घातीय चलती औसत का उपयोग एक प्रवृत्ति निर्धारण संकेतक के निर्माण के लिए किया जाता है। जब तेज रेखा नीचे से धीमी रेखा के ऊपर से गुजरती है, तो यह एक गोल्डन क्रॉस सिग्नल है, जो एक अपट्रेंड को इंगित करता है। जब तेज रेखा ऊपर से धीमी रेखा के नीचे से गुजरती है, तो यह एक मौत क्रॉस सिग्नल है, जो एक डाउनट्रेंड को इंगित करता है।
बाजार शोर को फ़िल्टर करने के लिए डोंचियन चैनल पैरामीटर को 50 दिनों पर सेट किया गया है। जब कीमत ऊपरी बैंड से ऊपर टूटती है, तब ही लंबी जाएं, और जब कीमत निचले बैंड से नीचे टूटती है तो फंसने से बचने के लिए छोटी जाएं।
स्टॉप लॉस को कीमत से 4 गुना कम एटीआर पर सेट किया जाता है। एटीआर प्रभावी रूप से बाजार की अस्थिरता और जोखिम को माप सकता है। स्टॉप लॉस को इसके गुणक पर सेट करने से व्यक्तिगत ट्रेडों पर नुकसान को नियंत्रित किया जा सकता है।
घातीय चलती औसत वर्तमान मूल्य रुझानों के लिए बेहतर फिट बैठते हैं, जबकि सरल चलती औसत बहुत चिकनी होती हैं।
50 दिन की चैनल अवधि 40 दिन और 120 दिन के चलती औसत के साथ अच्छी तरह से काम करती है ताकि झूठे ब्रेकआउट को प्रभावी ढंग से फ़िल्टर किया जा सके।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
चलती औसत संयोजन प्रभावी रूप से बाजार की प्रवृत्ति की दिशा निर्धारित कर सकता है। 40-दिवसीय एमए अल्पकालिक प्रवृत्तियों को पकड़ता है जबकि 120-दिवसीय एमए दीर्घकालिक प्रवृत्तियों का न्याय करता है।
डोंचियन चैनल शोर को फ़िल्टर करता है और शीर्ष और नीचे का पीछा करने से बचता है। केवल चैनल ब्रेकआउट पर प्रवेश करने से प्रभावी रूप से मध्य में समेकन क्षेत्रों का व्यापार करने से बचा जाता है।
स्टॉप लॉस सेटिंग व्यक्तिगत ट्रेडों पर नुकसान को नियंत्रित करने और खाता ब्लोअप से बचने के लिए उचित है। एकल व्यापार हानि को नियंत्रित करने से लाभ स्थिरता सुनिश्चित होती है।
घातीय चलती औसत मूल्य परिवर्तन की प्रवृत्तियों के अनुकूल होते हैं, जिससे प्रवृत्ति व्यापार के विचार के अनुरूप लंबी अवधि की अवधि की अनुमति मिलती है।
चलती औसत पैरामीटर प्रवृत्ति कैप्चर संवेदनशीलता और शोर फिल्टर स्थिरता के बीच एक संतुलन प्राप्त करते हैं।
इस रणनीति के जोखिमों में निम्नलिखित शामिल हैंः
लंबी अवधि के लिए जोखिमः एक प्रवृत्ति के अनुसार रणनीति के रूप में, लंबे समय तक पक्षीय सीमाओं या प्रवृत्ति उलट के दौरान बड़े नुकसान हो सकते हैं।
झूठे ब्रेकआउट का जोखिमः जब कीमत चैनल बैंड के पास पहुंचती है, तो कुछ प्रतिशत झूठे ब्रेकआउट हो सकते हैं, जिससे अनावश्यक ट्रेड होते हैं।
जोखिम निर्धारित करने वाले पैरामीटरः चलती औसत और चैनलों के लिए सेटिंग्स व्यक्तिपरक हैं। विभिन्न बाजारों को समायोजित संयोजनों की आवश्यकता होती है, अन्यथा सिस्टम स्थिरता प्रभावित होती है।
स्टॉप लॉस बहुत सख्त जोखिमः स्टॉप लॉस को बहुत सख्त सेट करने से बहुत सारे स्टॉप आउट हो सकते हैं, जिससे लाभप्रदता प्रभावित हो सकती है।
समाधान:
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
इष्टतम मापदंडों को खोजने के लिए विभिन्न चलती औसत संयोजनों का परीक्षण करें। विभिन्न सरल, घातीय, हुल चलती औसत का परीक्षण किया जा सकता है।
ब्रेकआउट सिग्नल को अधिक प्रभावी बनाने के लिए चैनल अवधि और सेटिंग्स को अनुकूलित करें। बाजार में उतार-चढ़ाव की आवृत्ति के आधार पर अनुकूलित करें।
स्टॉप लॉस रणनीति का अनुकूलन करें। ट्रेंडिंग अवधि के दौरान ट्रेलिंग स्टॉप और ट्रेंड समाप्त होने के बाद फिक्स्ड स्टॉप को अपनाएं।
सिग्नल की सटीकता में सुधार के लिए एमएसीडी, केडी जैसे पुष्टिकरण संकेतक जोड़ें।
मुनाफे को अनुकूलित करने के लिए रुझान अवधि के दौरान पिरामिड।
प्रणाली को अधिक मजबूत बनाने के लिए विभिन्न उत्पाद विशेषताओं के अनुसार पैरामीटर संयोजनों का चयन करें।
कुल मिलाकर यह एक विशिष्ट और सरल प्रवृत्ति निम्नलिखित प्रणाली है। मूल गतिशील औसत और चैनल ब्रेकआउट का उपयोग करने में निहित है। स्टॉप लॉस रणनीति भी क्लासिक और व्यावहारिक है। रणनीति क्वांट सिस्टम विकास के लिए एक बुनियादी ढांचे के रूप में काम कर सकती है, और अपेक्षाकृत स्थिर मुनाफे के लिए सीधे तैनात भी की जा सकती है। परीक्षण के माध्यम से आगे अनुकूलन सिस्टम स्थिरता और लाभप्रदता में सुधार कर सकता है। सारांश में, रणनीति में उपयोग में आसानी और बहुमुखी प्रतिभा है, जिससे यह एक मौलिक मात्रात्मक ट्रेडिंग रणनीति के रूप में उपयुक्त है।
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Robrecht99 //@version=5 strategy("Long Term Trend Following System", overlay=true, margin_long=0, margin_short=0, pyramiding=4) // Backtest Range // Start = input(defval = timestamp("01 Jan 2017 00:00 +0000"), title = "Backtest Start Date", group = "backtest window") Finish = input(defval = timestamp("01 Jan 2100 00:00 +0000"), title = "Backtest End Date", group = "backtest window") //Moving Averages // len1 = input.int(40, minval=1, title="Length Fast EMA", group="Moving Average Inputs") len2 = input.int(120, minval=1, title="Length Slow EMA", group="Moving Average Inputs") src1 = input(close, title="Source Fast MA") src2 = input(close, title="Source Slow MA") maFast = input.color(color.new(color.red, 0), title = "Color Fast EMA", group = "Moving Average Inputs", inline = "maFast") maSlow = input.color(color.new(color.blue, 0), title = "Color Slow EMA", group = "Moving Average Inputs", inline = "maSlow") fast = ta.ema(src1, len1) slow = ta.ema(src2, len2) plot(fast, color=maFast, title="Fast EMA") plot(slow, color=maSlow, title="Slow EMA") // Donchian Channels // Length1 = input.int(title="Length Upper Channel", defval=50, minval=1, group="Donchian Channels Inputs") Length2 = input.int(title="Length Lower Channel", defval=50, minval=1, group="Donchian Channels Inputs") h1 = ta.highest(high[1], Length1) l1 = ta.lowest(low[1], Length2) fillColor = input.color(color.new(color.purple, 95), title = "Fill Color", group = "Donchian Channels Inputs") upperColor = input.color(color.new(color.orange, 0), title = " Color Upper Channel", group = "Donchian Channels Inputs", inline = "upper") lowerColor = input.color(color.new(color.orange, 0), title = " Color Lower Channel", group = "Donchian Channels Inputs", inline = "lower") u = plot(h1, "Upper", color=upperColor) l = plot(l1, "Lower", color=upperColor) fill(u, l, color=fillColor) strategy.initial_capital = 50000 //ATR and Position Size // length = input.int(title="ATR Period", defval=14, minval=1, group="ATR Inputs") risk = input(title="Risk Per Trade", defval=0.01, group="ATR Inputs") multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs") atr = ta.atr(length) amount = (risk * strategy.initial_capital / (multiplier * atr)) // Buy and Sell Conditions // entrycondition1 = ta.crossover(fast, slow) entrycondition2 = fast > slow sellcondition1 = ta.crossunder(fast, slow) sellcondition2 = slow > fast // Buy and Sell Signals // if (close > h1 and entrycondition2) strategy.entry("long", strategy.long, qty=amount) stoploss = close - atr * 4 strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss) if (sellcondition1 and sellcondition2) strategy.close(id="long") if (close < l1 and sellcondition2) strategy.entry("short", strategy.short, qty=amount) stoploss = close + atr * 4 strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss) if (entrycondition1 and entrycondition2) strategy.close(id="short")