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

EMA MA HMA
সৃষ্টির তারিখ: 2025-02-20 09:49:23 অবশেষে সংশোধন করুন: 2025-02-27 17:51:58
অনুলিপি: 0 ক্লিকের সংখ্যা: 305
2
ফোকাস
319
অনুসারী

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

ওভারভিউ

এই কৌশলটি একটি ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচকের সাথে ট্রেডিং ট্রেডিং ট্র্যাকিং সিস্টেমকে সংযুক্ত করে। এটি প্রধানত সরল চলমান গড় (এসএমএ) এবং সূচকীয় চলমান গড় (ইএমএ) এর ক্রস সিগন্যালের উপর ভিত্তি করে তৈরি করা হয়েছে এবং হেরের চলমান গড় (এইচএমএ) ট্রেন্ড ব্যান্ড, উইলিয়ামস সূচক (%R) এবং ওভারলিং উচ্চ-নিম্ন বিশ্লেষণের মতো একাধিক উন্নত বৈশিষ্ট্যগুলিকে একত্রিত করেছে, যা গতিশীল ফিল্টারিং প্রক্রিয়াটির মাধ্যমে আরও নির্ভরযোগ্য ট্রেডিং সংকেত সরবরাহ করে।

কৌশল নীতি

এই কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে তৈরি করা হয়েছেঃ

  1. প্রবণতা মূল্যায়নের জন্য 100 পিরিয়ডের এসএমএ এবং 200 পিরিয়ডের ইএমএ ব্যবহার করা হয়
  2. 70 চক্রের সমন্বিত এইচএমএ প্রবণতা ব্যান্ডটি প্রবণতা গতিশীলতা নিশ্চিত করতে ব্যবহৃত হয়
  3. উইলিয়াম সূচক ((%R) ব্যবহার করে গতিশীল সমর্থন / প্রতিরোধের বিট গণনা করা হয়
  4. 20 চক্রের রিটার্ন উইন্ডো দ্বারা উচ্চ এবং নিম্ন পয়েন্টের স্লাইডিং সনাক্ত করা
  5. রিয়েল-টাইম মনিটরিং এবং আপডেট
  6. মিথ্যা সংকেত কমানোর জন্য ওপেনিং প্রাথমিক ফিল্টার এবং ওঠানামা থ্রেশহোল্ড (<0.5%) সেট করুন

প্রবেশের শর্তগুলি একই সাথে পূরণ করতে হবেঃ দাম স্টেশনে ডাবল গড় লাইন,% R সূচকটি ক্রমাগত 3 টি কে লাইনের উপরে উঠেছে এবং 20 এর চেয়ে বড়, কে লাইন বন্ধ হয়েছে এবং বন্ধের দাম আগেরটির চেয়ে বেশি, দামটি দিনের মধ্যে ওঠানামা ছাড়িয়ে যায়নি। প্রস্থান শর্তটি নিম্নলিখিতগুলির মধ্যে একটি পূরণ করেঃ দাম দ্বিগুণ গড়ের নীচে; %R সূচকটি -80 এর নীচে।

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

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

কৌশলগত ঝুঁকি

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

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

  1. স্বনির্ধারিত সমান্তরাল চক্র গণনা পদ্ধতির প্রবর্তন, যাতে সিস্টেমটি বাজারের অস্থিরতার সাথে আরও ভালভাবে মানিয়ে নিতে পারে
  2. প্রবণতা সনাক্তকরণের নির্ভরযোগ্যতা বাড়ানোর জন্য লেনদেনের পরিমাণ বিশ্লেষণের সূচক বৃদ্ধি করা
  3. তহবিল ব্যবস্থাপনার দক্ষতা বাড়ানোর জন্য গতিশীল স্টপ-অফ-ড্রপ সিস্টেম তৈরি করা
  4. বাজার ওঠানামা সূচক যোগ করুন, ফিল্টারিং অবস্থার অনুকূলিতকরণের জন্য থ্রেশহোল্ড সেট করুন
  5. বিভিন্ন সময়কালের মধ্যে সিগন্যালের সমন্বয় বিবেচনা করে সিস্টেমের স্থায়িত্ব বাড়ানো

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2025-01-01 00:00:00
end: 2025-01-31 23:59:59
period: 30m
basePeriod: 30m
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/

//@version=5
strategy(title="EMA & MA Crossover Strategy", shorttitle="EMA & MA Crossover Strategy", overlay=true)

// Inputs
LengthMA = input.int(100, minval=1, title="MA Length")
LengthEMA = input.int(200, minval=1, title="EMA Length")
swingLookback = input.int(20, title="Swing Lookback")
Lengthhmaribbon = input.int(70, minval=1, title="HMA Ribbon")
// Input for ignoring the first `n` candles of the day
ignore_n_candles = input.int(1, "Ignore First N Candles", minval=0)
// Input for percentage threshold to ignore high run-up candles
run_up_threshold = input.float(0.5, "Run-up Threshold (%)", minval=0.0)

//====================================================================
hmacondition = ta.hma(close,Lengthhmaribbon)> ta.hma(close,Lengthhmaribbon)[1]

//====================================================================
// Function to drop the first `n` candles
dropn(src, n) =>
    na(src[n]) ? na : src

// Request data with the first `n` candles dropped
valid_candle = not na(dropn(close, ignore_n_candles))
// Check for run-up condition on the previous candle
prev_run_up = (high[1] - low[1]) / low[1] * 100

// Combine conditions: exclude invalid candles and ignore high run-up candles
valid_entry_condition = valid_candle and prev_run_up <= run_up_threshold

//======================================================
// Define the start of a new day based on time
var is_first = false
var float day_high = na
var float day_low = na

// Use time() to detect the start of a new day
t = time("1440") // 1440 = 60 * 24 (one full day in minutes)
is_first := na(t[1]) and not na(t) or t[1] < t

if is_first and barstate.isnew
    day_high := high
    day_low := low
else
    day_high := nz(day_high[1], high)
    day_low := nz(day_low[1], low)

// Update daily high and low
if high > day_high
    day_high := high

if low < day_low
    day_low := low

//====================================================
previousdayclose = request.security(syminfo.tickerid, "D", close)

day_highrange = previousdayclose*.018
//======================================================
length = input(title="Length", defval=14)
src = input(close, "Source")
_pr(length) =>
	max = ta.highest(length)
	min = ta.lowest(length)
	100 * (src - max) / (max - min)
percentR = _pr(length)

//======================================================
higherline = close* 1+((100-(percentR*-1))/100)
lowerline = close* 1-((100-(percentR*-1))/100)
//======================================================
// Moving Averages
xMA = ta.sma(close, LengthMA)
xEMA = ta.sma(xMA, LengthEMA)

// Plot the MA and EMA lines
plot(xMA, color=color.red, title="MA")
plot(xEMA, color=color.blue, title="EMA")

// Find recent swing high and low
recentHigh = ta.highest(high, swingLookback)
recentLow = ta.lowest(low, swingLookback)
//===============================================
emacondition = ta.ema(close,20)>ta.ema(close,30) and ta.ema(close,30)>ta.ema(close,40) and ta.ema(close,40)>ta.ema(close,50) and close >ta.ema(close,20)
// Define Buy Condition
buyCondition1 = (percentR>percentR[1] and percentR[1]>percentR[2] and percentR[2]>percentR[3]) and percentR>-20 and percentR[1]>-20
buyCondition = (close> xMA and close> xEMA) and (close > open and close > close[1]) or xMA>xEMA and close<day_highrange and hmacondition and emacondition

// Define Sell Conditions
sellCondition = (close < xMA and close < xEMA) or xMA<xEMA or percentR<-80

// Strategy Execution
if (buyCondition and buyCondition1 and valid_entry_condition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.close("Buy")  // Close the long position

// Candle coloring for buy/sell indication
barcolor(buyCondition ? color.green : sellCondition ? color.red : na)
plot(higherline, color=color.olive, title="EMA")
plot(higherline, color=color.black, title="EMA")