बुल मार्केट ट्रैकिंग सिस्टम ट्रेंड ट्रैकिंग पर आधारित एक मैकेनिकल ट्रेडिंग सिस्टम है। यह ट्रेडिंग सिग्नल को फ़िल्टर करने के लिए 4-घंटे के चार्ट पर ट्रेंड इंडिकेटर का उपयोग करता है, जबकि प्रवेश निर्णय 15-मिनट के चार्ट के संकेतकों के आधार पर किए जाते हैं। मुख्य संकेतकों में आरएसआई, स्टोकास्टिक्स और एमएसीडी शामिल हैं। इस प्रणाली का लाभ यह है कि कई समय सीमाओं का संयोजन प्रभावी रूप से झूठे संकेतों को फ़िल्टर कर सकता है, जबकि छोटी समय सीमा के संकेतक अधिक सटीक प्रवेश समय निर्धारित कर सकते हैं। हालांकि, इस प्रणाली के साथ कुछ जोखिम भी हैं, जैसे ओवरट्रेडिंग और झूठे ब्रेकआउट मुद्दे।
इस प्रणाली का मुख्य तर्क विभिन्न समय सीमाओं से संकेतकों को संयोजित करना है ताकि प्रवृत्ति की दिशा और प्रवेश समय की पहचान की जा सके। विशेष रूप से, 4 घंटे के चार्ट पर आरएसआई, स्टोकास्टिक्स और ईएमए को समग्र प्रवृत्ति दिशा निर्धारित करने के लिए संरेखित करने की आवश्यकता है। यह प्रभावी रूप से अधिकांश शोर को फ़िल्टर कर सकता है। उसी समय, 15 मिनट के चार्ट पर आरएसआई, स्टोकास्टिक्स, एमएसीडी और ईएमए को सटीक प्रवेश समय निर्धारित करने के लिए बुलिश या मंदी पूर्वाग्रह पर भी सहमत होने की आवश्यकता है। इससे हमें अच्छे प्रवेश और निकास बिंदुओं को खोजने की अनुमति मिलती है। केवल जब 4 घंटे और 15 मिनट के समय सीमा दोनों पर निर्णय मानदंडों को पूरा करते हैं तो सिस्टम ट्रेडिंग संकेत उत्पन्न करेगा।
तदनुसार, प्रणाली को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
कुल मिलाकर, बुल मार्केट ट्रैकिंग सिस्टम यांत्रिक ट्रेडिंग प्रणाली के बाद एक बहुत ही व्यावहारिक प्रवृत्ति है। यह बाजार के रुझानों और प्रमुख प्रवेश समय की पहचान करने के लिए बहु-समय-सीमा संकेतकों के संयोजन का उपयोग करता है। उचित पैरामीटर सेटिंग्स और निरंतर अनुकूलन परीक्षण के साथ, प्रणाली अधिकांश बाजार वातावरण के अनुकूल हो सकती है और स्थिर लाभ प्राप्त कर सकती है। हालांकि, हमें कुछ संभावित जोखिमों के बारे में भी पता होना चाहिए, और इन जोखिमों को रोकने और कम करने के लिए सक्रिय उपाय करने की आवश्यकता है।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Cowabunga System from babypips.com", overlay=true) // 4 Hour Stochastics length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD") k4 = sma(stoch(close, high, low, length4), smoothK4) d4 = sma(k4, smoothD4) //15 min Stoch length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD") k = sma(stoch(close, high, low, length), smoothK) d= sma(k, smoothD) //4 hour RSI src1 = close, len1 = input(240, minval=1, title="4H RSI Length") up1 = rma(max(change(src1), 0), len1) down1 = rma(-min(change(src1), 0), len1) rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1)) //15 min RSI src = close, len = input(9, minval=1, title="15M RSI Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //MACD Settings source = close fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow") signalLength=input(9,minval=1, title="MACD Signal") fastMA = ema(source, fastLength) slowMA = ema(source, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) // Stops and Profit inputs inpTakeProfit = input(defval = 1000, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 400, title = "Trailing Stop", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Offset", minval = 0) // Stops and Profit Targets useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na //Specific Time to Trade myspecifictradingtimes = input('0500-1600', title="My Defined Hours") longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0 longCondition2 = rsi4 <= 80 longCondition3 = k4 >= d4 and k4 <= 80 longCondition4 = ema(close, 80) >= ema(close, 162) allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4 longCondition5 = rsi15 <= 80 longCondition6 = k >= d and k <= 80 and fastMA >= slowMA longCondition7 = ema(close, 5) >= ema(close, 10) allLongLongs = longCondition5 and longCondition6 and longCondition7 if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs strategy.entry("Long", strategy.long, comment="LongEntry") shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0 shortCondition2 = rsi4 >= 20 shortCondition3 = k4 <= d4 and k4 >= 20 shortCondition4 = ema(close, 80) <= ema(close, 162) allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4 shortCondition5 = rsi15 >= 20 shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA shortCondition7 = ema(close, 5) <= ema(close, 10) allShortShorts = shortCondition5 and shortCondition6 and shortCondition7 if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts strategy.entry("Short", strategy.short, comment="ShortEntry") strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset) strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)