ডাবল মুভিং এভারেজের উপর ভিত্তি করে বুদ্ধিমান ট্র্যাকিং ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2024-02-18 15:58:08 অবশেষে সংশোধন করুন: 2024-02-18 15:58:08
অনুলিপি: 2 ক্লিকের সংখ্যা: 505
1
ফোকাস
1617
অনুসারী

ডাবল মুভিং এভারেজের উপর ভিত্তি করে বুদ্ধিমান ট্র্যাকিং ট্রেডিং কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত দুটি চলমান গড় এবং ওটিটি সূচক ব্যবহার করে একটি অভিযোজন চ্যানেল তৈরি করে।

  1. ফাস্টলাইন MAvg গণনা করুন, CLOSE ক্লোজ-আপ মূল্য এবং কাস্টম গড় হিসাবে ইনপুট করুন, দৈর্ঘ্য 5

  2. MAvg এবং সেটিং শতাংশের উপর ভিত্তি করে, লম্বা স্টপ এবং সংক্ষিপ্ত স্টপ অবস্থানগুলির জন্য চ্যানেলের নিম্ন সীমা গণনা করা হয়;

  3. ওটিটি সূচকের চ্যানেলের মোবাইল স্টপ লস এমটি গণনা করুন, ওটিটি চ্যানেলের দামটি খালি অবস্থার উপর ভিত্তি করে গণনা করুন;

  4. যখন OTT-এর মাধ্যমে দাম অতিক্রম করে, তখন ট্রেডিং সিগন্যাল তৈরি হয়।

উপরোক্ত প্রক্রিয়াটি একটি স্বনির্ধারিত চ্যানেল তৈরি করে, যা কৌশলটিকে রিয়েল-টাইমে মূল্য পরিবর্তনের প্রবণতা অনুসরণ করতে দেয়, যার ফলে ট্রেডিং সংকেত তৈরি হয়।

কৌশলগত সুবিধা

এই কৌশলটির সুবিধাগুলো হলঃ

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

কৌশলগত ঝুঁকি

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. ডাবল ইভ্যালিউশন লাইনে বিভ্রান্তি সৃষ্টি হতে পারে এবং ভুল সংকেত তৈরি হতে পারে।
  2. ভুল ওটিটি প্যারামিটার সেট করা হতে পারে অত্যধিক র্যাডিক্যাল বা রক্ষণশীল, যা কৌশলগত পারফরম্যান্সকে প্রভাবিত করতে পারে;
  3. এই কৌশলটি কেবলমাত্র প্রযুক্তিগত সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়েছে, মৌলিক বিষয়গুলির সাথে সংযুক্ত নয়।

উপরোক্ত ঝুঁকির জন্য, অন্যান্য সূচক বা মৌলিক ফিল্টারিং সিগন্যালের সাথে মিলিত প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে উন্নতি ও অপ্টিমাইজেশন করা যেতে পারে।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*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")