ডাবল মুভিং এভারেজ ট্রেন্ড অনুসরণ কৌশল


সৃষ্টির তারিখ: 2024-01-24 11:28:57 অবশেষে সংশোধন করুন: 2024-01-24 11:28:57
অনুলিপি: 1 ক্লিকের সংখ্যা: 559
1
ফোকাস
1617
অনুসারী

ডাবল মুভিং এভারেজ ট্রেন্ড অনুসরণ কৌশল

ওভারভিউ

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

কৌশল নীতি

ডাবল ইয়ারলাইন ট্রেন্ড ট্র্যাকিং কৌশল দুটি চলমান গড় সূচক ব্যবহার করে যা একটি দ্রুত চলমান গড় (৫-চক্র) এবং একটি ধীর চলমান গড় (২১-চক্র) । দ্রুত ইয়ারলাইন একটি ট্রেডিং সংকেত উত্পন্ন করতে ব্যবহৃত হয় এবং ধীর ইয়ারলাইন একটি বাজার প্রবণতা দিক নির্ধারণ করতে ব্যবহৃত হয়। যখন দ্রুত ইয়ারলাইন নীচে থেকে উপরে ধীর ইয়ারলাইন অতিক্রম করে, তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন দ্রুত ইয়ারলাইন উপরে থেকে নীচে ধীর ইয়ারলাইন অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

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

ক্রয় এবং বিক্রয় সংকেত বিচার করার সময়, এই কৌশলটি অতিরিক্ত ফিল্টারিংয়ের শর্ত হিসাবে ক্রমাগত লাল কলামের প্রয়োজন ((ব্যবহারকারী সেট করতে পারেন কলামের সংখ্যা)) । এটি সমন্বয় অঞ্চলে ভুল সংকেত এড়াতে পারে।

সাধারণভাবে বলতে গেলে, ট্রেন্ড ট্র্যাকিং কৌশলগুলিকে মূল্যায়ন করার জন্য নিম্নলিখিত ধারণাগুলি অনুসরণ করা উচিতঃ

  1. মূল্য চ্যানেল ব্যবহার করে বৃহত্তর স্তরের প্রবণতার দিক নির্ণয় করা
  2. স্বল্পমেয়াদী প্রবণতা নির্ণয় করতে এবং ট্রেডিং সিগন্যাল দেওয়ার জন্য দ্রুত গড় ব্যবহার করুন
  3. অতিরিক্ত কলামযুক্ত ফিল্টারগুলির সাথে মিলিত, সমন্বয়কালে ভুল সংকেত এড়াতে

ট্রেন্ডিংয়ের বিভিন্ন স্তরের মাধ্যমে, আপনি কার্যকরভাবে শব্দটি ফিল্টার করতে পারেন এবং ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করতে পারেন।

সামর্থ্য বিশ্লেষণ

ডাবল ইভ্যালিউড ট্রেন্ড ট্র্যাকিং কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ

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

সামগ্রিকভাবে, এই কৌশলটি সামগ্রিকভাবে স্থিতিশীল এবং ব্যাপক প্রবণতার বাজারে ভাল কাজ করে।

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

ডাবল-ইউভেন-লাইন ট্রেন্ড ট্র্যাকিং কৌশলগুলির কিছু ঝুঁকি রয়েছে, যার মধ্যে রয়েছেঃ

  1. যখন বাজার দীর্ঘমেয়াদী সংকলন হয়, তখন ভুল সংকেত তৈরি করা সহজ, যার ফলে ধারাবাহিক ক্ষুদ্র ক্ষতি হতে পারে
  2. কৌশলগত প্যারামিটারগুলি সময়মতো সেট করা হয়নি, ট্রেডিং সিগন্যালগুলি বিলম্বিত হতে পারে এবং সেরা প্রবেশের সময়টি মিস করতে পারে
  3. একটি কার্যকর স্টপ লস কৌশল না থাকলে, একক লেনদেনের ঝুঁকি নিয়ন্ত্রণ করা কঠিন

এই ক্ষেত্রে, কৌশলগত ঝুঁকি কমানোর জন্য নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করা যেতে পারেঃ

  1. লাল/সবুজ কলামের ফিল্টার শর্তগুলিকে সামঞ্জস্য করে, যা সমন্বয় বাজারে লেনদেনের ঘনত্ব হ্রাস করে
  2. ট্রেডিং সিগন্যাল সময়মত নিশ্চিত করার জন্য দ্রুত গড় লাইন প্যারামিটার অপ্টিমাইজ করুন
  3. একটি চলমান স্টপ বা শতাংশ স্টপ কৌশল যোগ করুন এবং একক ক্ষতির উপর কঠোর নিয়ন্ত্রণ রাখুন

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

ডাবল-ভ্যালু ট্রেন্ড ট্র্যাকিং কৌশলটি আরও উন্নত করার সুযোগ রয়েছে, যার প্রধান দিকগুলি হলঃ

  1. স্টপ লস স্বয়ংক্রিয়ভাবে স্টপ লস পরিমাপের সাথে মিলিত হয় যেমন ATR
  2. মেশিন লার্নিং পদ্ধতি ব্যবহার করে স্বয়ংক্রিয়ভাবে কৌশল পরামিতি অপ্টিমাইজ করুন
  3. একটি মডিউল যুক্ত করুন যা নিউরোনাল নেটওয়ার্কগুলিকে প্রবণতার দিকনির্দেশনা দেয়
  4. একাধিক সূচক এবং ফিল্টারিংয়ের শর্তগুলিকে একত্রিত করে একটি কৌশলগত পোর্টফোলিও তৈরি করা

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-24 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v1.8", shorttitle = "Trend MAs str 1.8", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
useohlc4 = input(false, defval = false, title = "Use OHLC4")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needarr = input(false, defval = false, title = "Need entry arrows?")

src = useohlc4 == true ? ohlc4 : close
fastsma = ema(src, 5)

//PriceChannel 1
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2

//Trend
//ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
//trend = low > ma and low[1] > ma[1] and low[2] > ma[2] ? 1 : high < ma and high[1] < ma[1] ? -1 : trend[1]

trend1 = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend1[1]
trend2 = low > center2 and low[1] > center2[1] ? 1 : high < center2 and high[1] < center2[1] ? -1 : trend1[1]
trend = trend1 == 1 and trend2 == 1 ? 1 : trend2 == -1 and trend2 == -1 ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Signals
up = trend == 1 and (low < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0
dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0

//Lines
colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast MA")
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2")

//Arrows
plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0)
plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0)

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//Alerts
alertcondition(up == 1, title='buy', message='Uptrend')
alertcondition(dn == 1, title='sell', message='Downtrend')

//Trading
stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
    strategy.exit("Stop Long", "Long", stop = stoplong)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    strategy.exit("Stop Short", "Short", stop = stopshort)