यह रणनीति बुल मार्केट सपोर्ट बैंड पर आधारित एक ट्रेंड-फॉलोइंग ट्रेडिंग सिस्टम है। यह मुख्य रूप से 20-सप्ताह के सरल चलती औसत (एसएमए) और 21-सप्ताह के घातीय चलती औसत (ईएमए) के बीच क्रॉसओवर सिग्नल का उपयोग बाजार की प्रवृत्ति दिशा निर्धारित करने और व्यापारिक निर्णय लेने के लिए करता है। यह रणनीति लंबी संकेत उत्पन्न करती है जब चलती औसत ऊपर की ओर जाते हैं और बाहर निकलते हैं जब वे नीचे की ओर जाते हैं, जिसका उद्देश्य मध्यम से दीर्घकालिक प्रवृत्ति अवसरों को पकड़ना है।
रणनीति का मूल तर्क बाजार के रुझानों का न्याय करने के लिए 20-सप्ताह के एसएमए और 21-सप्ताह के ईएमए की सापेक्ष स्थिति की निगरानी करना है। जब अल्पकालिक औसत (20-सप्ताह के एसएमए) दीर्घकालिक औसत (21 सप्ताह के ईएमए) से ऊपर टूट जाता है, तो यह एक संभावित अपट्रेंड का संकेत देता है, जिससे लंबी स्थिति प्रवेश होता है। जब अल्पकालिक औसत लंबी अवधि के औसत से नीचे गिरता है, तो यह अपट्रेंड के संभावित अंत का संकेत देता है, जिससे स्थिति बंद हो जाती है। रणनीति 0.1% के ट्रेडिंग कमीशन और 3 आधार बिंदुओं के फिसलन के साथ प्रतिशत_ऑफ_इक्विटी स्थिति प्रबंधन का उपयोग करती है।
बुल मार्केट सपोर्ट बैंड ट्रेडिंग रणनीति क्लासिक तकनीकी विश्लेषण सिद्धांत के आधार पर एक प्रवृत्ति-अनुसरण प्रणाली है। यह साप्ताहिक समय सीमा चलती औसत क्रॉसओवर के माध्यम से मध्यम से दीर्घकालिक प्रवृत्ति अवसरों को पकड़ती है, जिसमें स्पष्ट तर्क और नियंत्रित जोखिम है। हालांकि, रणनीति रेंजिंग बाजारों में खराब प्रदर्शन करती है और कुछ विलंब का प्रदर्शन करती है। सहायक संकेतकों, स्टॉप-लॉस अनुकूलन और बेहतर पूंजी प्रबंधन के अलावा, रणनीति में अनुकूलन के लिए महत्वपूर्ण जगह है। यह पर्याप्त पूंजी और जोखिम सहिष्णुता वाले निवेशकों के लिए उपयुक्त है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 // © zkdev //@version=6 strategy(title='Demo GPT - Bull Market Support Band', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // ------------------------------------------------------------------------- // Compile-time timestamp constants for default date range // (2018-01-01 00:00:00 UTC -> 1514764800000 // 2069-12-31 23:59:59 UTC -> 3155759999000) // ------------------------------------------------------------------------- const int defaultFromDate = 1514764800000 const int defaultToDate = 3155759999000 // ------------------------------------------------------------------------- // Inputs: date range // ------------------------------------------------------------------------- fromDate = input(title='Start Date', defval=defaultFromDate) toDate = input(title='End Date', defval=defaultToDate) // ------------------------------------------------------------------------- // Indicator settings & calculations // ------------------------------------------------------------------------- smaLength = 20 emaLength = 21 source = close sma = ta.sma(source, smaLength) ema = ta.ema(source, emaLength) // ------------------------------------------------------------------------- // Fetch weekly SMA & EMA // ------------------------------------------------------------------------- outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off) outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off) // ------------------------------------------------------------------------- // Plot visuals (20w SMA, 21w EMA, fill in between) // ------------------------------------------------------------------------- smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA') emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA') fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true) // ------------------------------------------------------------------------- // We evaluate crossover/crossunder on *every bar* and store the result // ------------------------------------------------------------------------- crossUp = ta.crossover(outSma, outEma) crossDown = ta.crossunder(outSma, outEma) // ------------------------------------------------------------------------- // Trade logic: only operate within chosen date range // Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma // ------------------------------------------------------------------------- inDateRange = true if inDateRange // If we have a crossUp event on this bar, buy (go Long) if crossUp strategy.entry('Long', strategy.long) // If we have a crossDown event on this bar, sell (close Long) if crossDown strategy.close('Long')