এই কৌশলটি হল ষাঁড়ের বাজার সাপোর্ট ব্যান্ডের উপর ভিত্তি করে একটি ট্রেডিং সিস্টেম। এটি মূলত ২০ সপ্তাহের সহজ চলমান গড় (এসএমএ) এবং ২১ সপ্তাহের এক্সপোনেনশিয়াল চলমান গড় (ইএমএ) এর মধ্যে ক্রসওভার সংকেত ব্যবহার করে বাজারের প্রবণতার দিকনির্দেশ নির্ধারণ এবং ট্রেডিং সিদ্ধান্ত গ্রহণ করে। কৌশলটি দীর্ঘ সংকেত তৈরি করে যখন চলমান গড়গুলি উপরে ক্রস করে এবং যখন তারা নীচে ক্রস করে, তখন মধ্যম থেকে দীর্ঘমেয়াদী প্রবণতার সুযোগগুলি ক্যাপচার করার লক্ষ্যে।
কৌশলটির মূল যুক্তি হ'ল বাজারের প্রবণতা বিচার করার জন্য 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')