দ্বৈত চলমান গড় বুদ্ধিমান ট্র্যাকিং ট্রেডিং কৌশল হল চলমান গড় এবং নির্দিষ্ট সূচকগুলির উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী কৌশল। কৌশলটি একটি চ্যানেল তৈরির জন্য বিভিন্ন পরামিতি সেটিং সহ দুটি চলমান গড় ব্যবহার করে এবং চ্যানেলের উপরের এবং নীচের সীমা সেট করতে ওটিটি সূচককে সংযুক্ত করে বুদ্ধিমানভাবে মূল্যের প্রবণতা ট্র্যাক করতে। যখন দাম চ্যানেলটি ভেঙে যায়, তখন ক্রয় বা বিক্রয় অপারেশনগুলি কার্যকর করা হয়।
এই কৌশলটির মূল পদ্ধতিটি হ'ল দুটি চলমান গড় এবং ওটিটি সূচক ব্যবহার করে একটি অভিযোজিত চ্যানেল তৈরি করা, বিশেষতঃ
ইনপুট হিসাবে CLOSE এবং কাস্টম চলমান গড় ব্যবহার করে দ্রুত লাইন MAvg গণনা করুন, যার দৈর্ঘ্য 5 পিরিয়ড;
MAvg এবং পূর্বনির্ধারিত শতাংশের উপর ভিত্তি করে চ্যানেলের জন্য দীর্ঘ লাইন অবস্থান LongStop এবং সংক্ষিপ্ত লাইন অবস্থান ShortStop গণনা করুন;
ওটিটি সূচকে চ্যানেল স্টপ লস এমটি এবং লং/শর্ট দিকের উপর ভিত্তি করে চ্যানেলের দাম ওটিটি গণনা করুন।
যখন দাম ওটিটি-র মাধ্যমে ভেঙে যায় তখন ট্রেডিং সিগন্যাল তৈরি করুন।
উপরের প্রক্রিয়াটি রিয়েল টাইমে মূল্য প্রবণতা পরিবর্তনের ট্র্যাকিং সক্ষম করে, ট্রেডিং সংকেত তৈরি করে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
এছাড়াও কিছু ঝুঁকি আছেঃ
অন্যান্য সূচক এবং মৌলিক ফিল্টারকে একত্রিত করে প্যারামিটার অপ্টিমাইজেশান করে ঝুঁকি মোকাবেলা করা যেতে পারে।
কৌশলটি বেশ কয়েকটি দিক থেকে অপ্টিমাইজ করা যেতে পারেঃ
সংক্ষেপে, এটি একটি দ্বৈত চলমান গড় চ্যানেল এবং ওটিটি সূচকের উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী কৌশল। মূল ধারণাটি একটি অভিযোজিত চ্যানেল তৈরি করা এবং দামের ভাঙ্গনের সময় সংকেত উত্পাদন করা। কৌশলটির যোগ্যতা রয়েছে তবে উন্নতির জন্যও জায়গা রয়েছে। প্যারামিটার টিউনিং এবং লজিক অপ্টিমাইজেশনের সাথে এটি একটি দক্ষ পরিমাণ ট্রেডিং কৌশল হওয়ার সম্ভাবনা রয়েছে।
/*backtest start: 2023-02-11 00:00:00 end: 2024-02-17 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")