ডুয়াল কিনেটিক মুভিং এভারেজ ভিত্তিক বুগরা ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-19 14:36:37
ট্যাগঃ

img

সারসংক্ষেপ

বুগ্রা ট্রেডিং কৌশলটি এমন একটি কৌশল যা আমার প্রিয় শিক্ষক আনিল ওজেকসি দ্বারা বিকাশিত ওটিটি সূচক এবং লোনস্টার১০৮ এর ওয়েভট্রেন্ড অ্যাসিললেটর সূচককে একত্রিত করে। এটি দুটি সূচককে একীভূত করে একটি সফল ট্রেডিং সূচক গঠন করে। কৌশলটি দ্বি-মুখী বাজারে দীর্ঘ এবং সংক্ষিপ্ত বাণিজ্য করতে পারে।

কৌশল নীতি

বুগ্রা ট্রেডিং কৌশলটি প্রথমে বলিংজার ব্যান্ডের মধ্যরেখা গণনা করে, যা চলমান গড় রেখা এমএভিজি। তারপরে, ব্যবহারকারীর দ্বারা সেট করা শতাংশ পরিসীমা এবং সময়ের ভিত্তিতে, এটি দীর্ঘ স্টপ লস লংস্টপ এবং সংক্ষিপ্ত স্টপ লস শর্টস্টপ গণনা করে। যখন দাম উপরের রেলটি ভেঙে যায়, তখন দীর্ঘ যান। যখন এটি নিম্ন রেলটি ভেঙে যায়, তখন সংক্ষিপ্ত যান। বন্ধের সংকেতটি যখন দামটি চলমান গড়ের আশেপাশে ফিরে আসে।

বিশেষত, এই কৌশলটির মূল সূচকটি হল ওটিটি সূচক। ওটিটি সূচকটি একটি চলমান গড় এবং সীমানা রেখাগুলির সমন্বয়ে গঠিত। এটি নির্দিষ্ট অ্যালগরিদমের উপর ভিত্তি করে বাজারের অস্থিরতার ভিত্তিতে সীমানা রেখাগুলির অবস্থান সামঞ্জস্য করে। যখন দাম নিম্ন সীমানা রেখার ওটিটি অতিক্রম করে, তখন শর্ট যান। যখন এটি উপরের সীমানা রেখার ওটিটি অতিক্রম করে, তখন দীর্ঘ যান।

এই কৌশলটি দামের প্রবণতার দিক নির্ধারণের জন্য ওয়েভট্রেন্ড সূচকটিও ব্যবহার করে। যদি এটি নেমে যাওয়ার প্রবণতা হিসাবে বিবেচিত হয় তবে কেবল শর্ট যান, দীর্ঘ নয়। যদি এটি একটি আপগ্রেড প্রবণতা হিসাবে বিবেচিত হয় তবে কেবল দীর্ঘ যান, সংক্ষিপ্ত নয়।

সুবিধা বিশ্লেষণ

বুগ্রা ট্রেডিং কৌশলটি চলমান গড়, বোলিংজার ব্যান্ড এবং ওটিটি সূচকগুলির সুবিধাগুলি একত্রিত করে। এটি স্বয়ংক্রিয়ভাবে স্টপ লস অবস্থানগুলি সামঞ্জস্য করতে পারে এবং স্টপ লস হওয়ার সম্ভাবনা হ্রাস করতে পারে। একই সাথে, প্রবণতা বিচার সূচকগুলি অন্তর্ভুক্ত করে, এটি দোলনশীল প্রবণতাগুলিতে আটকে পড়া এড়ায়।

বিশেষ করে এই কৌশলটির প্রধান সুবিধাগুলি হলঃ

  1. এটি ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে স্বয়ংক্রিয়ভাবে স্টপ লস পজিশন সামঞ্জস্য করতে পারে।
  2. ওটিটি সূচকটি তুলনামূলকভাবে সঠিকভাবে বিপরীতমুখী পয়েন্টগুলি নির্ধারণ করতে পারে।
  3. প্রবণতা মূল্যায়নের সূচকগুলি অন্তর্ভুক্ত করে, এটি দোলনশীল বাজারে আটকা পড়া এড়ায়।
  4. এর নিয়মগুলি তুলনামূলকভাবে সহজ এবং স্পষ্ট, সহজেই বোঝা যায় এবং প্রয়োগ করা যায়।

ঝুঁকি বিশ্লেষণ

বুগ্রা ট্রেডিং স্ট্র্যাটেজিতে কিছু ঝুঁকি রয়েছে, প্রধানত নিম্নলিখিত দিকগুলিতেঃ

  1. বিপজ্জনক বাজারের পরিস্থিতিতে, স্টপ লস ভেঙে যেতে পারে, যা আরও বেশি ক্ষতির কারণ হতে পারে।
  2. ওটিটি সূচক দ্বারা মূল্যায়িত বিপরীত সংকেতগুলি সঠিক নাও হতে পারে এবং ত্রুটিযুক্ত সংকেত দেখা দিতে পারে।
  3. প্রবণতা বিচারগুলিও ভুল হতে পারে। একটি নিম্নমুখী দোলনায় দীর্ঘ যেতে ক্ষতির কারণ হবে।
  4. অনুপযুক্ত প্যারামিটার সেটিং কৌশল কর্মক্ষমতা প্রভাবিত করবে।

এই প্রতিরোধ মূলত নিম্নরূপঃ

  1. স্টপ লস রেঞ্জকে যথাযথভাবে শিথিল করুন যাতে স্টপ লস লাইনগুলি সহজেই সক্রিয় না হয়।
  2. মিথ্যা সংকেত এড়াতে ওটিটি সংকেতগুলির নির্ভরযোগ্যতা মূল্যায়নের জন্য অন্যান্য সূচকগুলির সাথে একত্রিত করুন।
  3. প্রবণতা বিচারকে আরো নির্ভরযোগ্য করার জন্য উপযুক্তভাবে পরামিতিগুলি সামঞ্জস্য করুন।
  4. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে প্যারামিটার অপ্টিমাইজ করুন।

অপ্টিমাইজেশান নির্দেশাবলী

দ্বিগুণ গতিশীল চলমান গড় ট্রেডিং কৌশল আরও অপ্টিমাইজ করার জন্য এখনও জায়গা আছেঃ

  1. সিগন্যাল বিচার সঠিকতা উন্নত করার জন্য অন্যান্য সূচকগুলির সাথে একত্রিত বিবেচনা করুন।
  2. এডাপ্টিভ স্টপ লস অ্যালগরিদম অধ্যয়ন করুন যাতে স্টপ লস লাইনগুলি বাজারের অস্থিরতার সাথে সামঞ্জস্য করা যায়।
  3. কম ভলিউমের সাথে মিথ্যা ব্রেকআউট এড়াতে ট্রেডিং ভলিউম সূচক যুক্ত করুন।
  4. সবচেয়ে উপযুক্ত চলমান গড় খুঁজে পেতে বিভিন্ন ধরণের চলমান গড় পরীক্ষা করুন।
  5. মেশিন লার্নিং এবং স্বয়ংক্রিয়ভাবে প্যারামিটার অপ্টিমাইজ করার জন্য অন্যান্য পদ্ধতি চেষ্টা করুন।

সংক্ষিপ্তসার

দ্বৈত গতিশীল গড় ট্রেডিং কৌশল একাধিক সূচকগুলির সুবিধাগুলিকে একীভূত করে। এটি স্বয়ংক্রিয়ভাবে স্টপ লস অবস্থানগুলি সামঞ্জস্য করতে পারে, বিপরীত সংকেতগুলি বিচার করতে পারে এবং প্রবণতা দিকগুলি সনাক্ত করতে পারে। এটিতে শক্তিশালী ঝুঁকি নিয়ন্ত্রণ ক্ষমতা এবং বুঝতে এবং ব্যবহার করা সহজের মতো সুবিধাগুলি রয়েছে। তবে এতে ফাঁদে পড়া এবং ভুল সংকেতগুলির মতো ঝুঁকিও রয়েছে। এই কৌশলটি অন্যান্য সূচকগুলির সাথে একত্রিত করে, অভিযোজনশীল অ্যালগরিদম ইত্যাদি অধ্যয়ন করে আরও অনুকূলিত করা যেতে পারে। সাধারণভাবে, দ্বৈত গতিশীল গতিশীল গড় ট্রেডিং কৌশলটি একটি ব্যবহারিক ব্রেকআউট ট্রেডিং কৌশল।


/*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")


আরো