বুগ্রা ট্রেডিং কৌশলটি এমন একটি কৌশল যা আমার প্রিয় শিক্ষক আনিল ওজেকসি দ্বারা বিকাশিত ওটিটি সূচক এবং লোনস্টার১০৮ এর ওয়েভট্রেন্ড অ্যাসিললেটর সূচককে একত্রিত করে। এটি দুটি সূচককে একীভূত করে একটি সফল ট্রেডিং সূচক গঠন করে। কৌশলটি দ্বি-মুখী বাজারে দীর্ঘ এবং সংক্ষিপ্ত বাণিজ্য করতে পারে।
বুগ্রা ট্রেডিং কৌশলটি প্রথমে বলিংজার ব্যান্ডের মধ্যরেখা গণনা করে, যা চলমান গড় রেখা এমএভিজি। তারপরে, ব্যবহারকারীর দ্বারা সেট করা শতাংশ পরিসীমা এবং সময়ের ভিত্তিতে, এটি দীর্ঘ স্টপ লস লংস্টপ এবং সংক্ষিপ্ত স্টপ লস শর্টস্টপ গণনা করে। যখন দাম উপরের রেলটি ভেঙে যায়, তখন দীর্ঘ যান। যখন এটি নিম্ন রেলটি ভেঙে যায়, তখন সংক্ষিপ্ত যান। বন্ধের সংকেতটি যখন দামটি চলমান গড়ের আশেপাশে ফিরে আসে।
বিশেষত, এই কৌশলটির মূল সূচকটি হল ওটিটি সূচক। ওটিটি সূচকটি একটি চলমান গড় এবং সীমানা রেখাগুলির সমন্বয়ে গঠিত। এটি নির্দিষ্ট অ্যালগরিদমের উপর ভিত্তি করে বাজারের অস্থিরতার ভিত্তিতে সীমানা রেখাগুলির অবস্থান সামঞ্জস্য করে। যখন দাম নিম্ন সীমানা রেখার ওটিটি অতিক্রম করে, তখন শর্ট যান। যখন এটি উপরের সীমানা রেখার ওটিটি অতিক্রম করে, তখন দীর্ঘ যান।
এই কৌশলটি দামের প্রবণতার দিক নির্ধারণের জন্য ওয়েভট্রেন্ড সূচকটিও ব্যবহার করে। যদি এটি নেমে যাওয়ার প্রবণতা হিসাবে বিবেচিত হয় তবে কেবল শর্ট যান, দীর্ঘ নয়। যদি এটি একটি আপগ্রেড প্রবণতা হিসাবে বিবেচিত হয় তবে কেবল দীর্ঘ যান, সংক্ষিপ্ত নয়।
বুগ্রা ট্রেডিং কৌশলটি চলমান গড়, বোলিংজার ব্যান্ড এবং ওটিটি সূচকগুলির সুবিধাগুলি একত্রিত করে। এটি স্বয়ংক্রিয়ভাবে স্টপ লস অবস্থানগুলি সামঞ্জস্য করতে পারে এবং স্টপ লস হওয়ার সম্ভাবনা হ্রাস করতে পারে। একই সাথে, প্রবণতা বিচার সূচকগুলি অন্তর্ভুক্ত করে, এটি দোলনশীল প্রবণতাগুলিতে আটকে পড়া এড়ায়।
বিশেষ করে এই কৌশলটির প্রধান সুবিধাগুলি হলঃ
বুগ্রা ট্রেডিং স্ট্র্যাটেজিতে কিছু ঝুঁকি রয়েছে, প্রধানত নিম্নলিখিত দিকগুলিতেঃ
এই প্রতিরোধ মূলত নিম্নরূপঃ
দ্বিগুণ গতিশীল চলমান গড় ট্রেডিং কৌশল আরও অপ্টিমাইজ করার জন্য এখনও জায়গা আছেঃ
দ্বৈত গতিশীল গড় ট্রেডিং কৌশল একাধিক সূচকগুলির সুবিধাগুলিকে একীভূত করে। এটি স্বয়ংক্রিয়ভাবে স্টপ লস অবস্থানগুলি সামঞ্জস্য করতে পারে, বিপরীত সংকেতগুলি বিচার করতে পারে এবং প্রবণতা দিকগুলি সনাক্ত করতে পারে। এটিতে শক্তিশালী ঝুঁকি নিয়ন্ত্রণ ক্ষমতা এবং বুঝতে এবং ব্যবহার করা সহজের মতো সুবিধাগুলি রয়েছে। তবে এতে ফাঁদে পড়া এবং ভুল সংকেতগুলির মতো ঝুঁকিও রয়েছে। এই কৌশলটি অন্যান্য সূচকগুলির সাথে একত্রিত করে, অভিযোজনশীল অ্যালগরিদম ইত্যাদি অধ্যয়ন করে আরও অনুকূলিত করা যেতে পারে। সাধারণভাবে, দ্বৈত গতিশীল গতিশীল গড় ট্রেডিং কৌশলটি একটি ব্যবহারিক ব্রেকআউট ট্রেডিং কৌশল।
/*backtest start: 2023-02-12 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true) // Kullanıcı Girdileri length = input(5, title="Period", minval=1) percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0) mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"]) wt_n1 = input(10, title="Kanal Periyodu") wt_n2 = input(21, title="Averaj Uzunluğu") src = close // Tarih Aralığı Girdileri startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)") endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)") // Tarih Filtresi Fonksiyonu isDateInRange() => true // Özel Fonksiyonlar Var_Func(src, length) => valpha = 2 / (length + 1) vud1 = src > src[1] ? src - src[1] : 0 vdd1 = src < src[1] ? src[1] - src : 0 vUD = sum(vud1, length) vDD = sum(vdd1, length) vCMO = (vUD - vDD) / (vUD + vDD) varResult = 0.0 varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1])) varResult Wwma_Func(src, length) => wwalpha = 1 / length wwma = 0.0 wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1]) wwma Zlema_Func(src, length) => zxLag = floor(length / 2) zxEMAData = src + (src - src[zxLag]) zlema = ema(zxEMAData, length) zlema Tsf_Func(src, length) => lrc = linreg(src, length, 0) lrs = lrc - linreg(src, length, 1) tsf = lrc + lrs tsf getMA(src, length) => ma = mav == "SMA" ? sma(src, length) : mav == "EMA" ? ema(src, length) : mav == "WMA" ? wma(src, length) : mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) : mav == "VAR" ? Var_Func(src, length) : mav == "WWMA" ? Wwma_Func(src, length) : mav == "ZLEMA" ? Zlema_Func(src, length) : mav == "TSF" ? Tsf_Func(src, length) : na // Strateji Hesaplamaları MAvg = getMA(src, length) fark = MAvg * percent * 0.01 longStop = MAvg - fark longStopPrev = nz(longStop[1], longStop) longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop shortStop = MAvg + fark shortStopPrev = nz(shortStop[1], shortStop) shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir MT = dir==1 ? longStop: shortStop OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200 plot(OTT, title="BugRA", color=color.rgb(251, 126, 9)) // Alım ve Satım Koşulları longCondition = crossover(src, OTT) and isDateInRange() shortCondition = crossunder(src, OTT) and isDateInRange() // Strateji Giriş ve Çıkış Emirleri if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.close("Long")