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


সৃষ্টির তারিখ: 2024-02-26 16:36:30 অবশেষে সংশোধন করুন: 2024-02-26 16:36:30
অনুলিপি: 0 ক্লিকের সংখ্যা: 666
1
ফোকাস
1617
অনুসারী

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

ওভারভিউ

এই কৌশলটি কাউফম্যান স্বনির্ধারিত চলমান গড় (KAMA) এর উপর ভিত্তি করে ডিজাইন করা হয়েছে, যা গতিশীলভাবে ট্রেডিং পজিশনগুলিকে সামঞ্জস্য করতে পারে, বাজার প্রবণতা স্বয়ংক্রিয়ভাবে অনুসরণ করে। কৌশলটির প্রধান বৈশিষ্ট্যগুলির মধ্যে রয়েছেঃ

  1. গতিশীল হিসাব লেনদেনের ধাপের দৈর্ঘ্য ((পয়েন্টের একক), বাজার ওঠানামার সাথে খাপ খাইয়ে নেওয়া
  2. KAMA দিকনির্দেশের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে
  3. সিগন্যালের পরে, একটি স্টপ ল্যাম্প সেট করুন এবং দাম চলার সাথে সাথে সামঞ্জস্য করুন
  4. অপশনাল অপেক্ষা করুন K লাইন বন্ধ নিশ্চিতকরণ সংকেত, ফিল্টার মিথ্যা সংকেত

এই বৈশিষ্ট্যগুলি ব্যবহার করে, কৌশলগুলি ঝুঁকি নিয়ন্ত্রণের সাথে সাথে প্রবণতার অতিরিক্ত লাভ অর্জনের চেষ্টা করে।

কৌশল নীতি

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

যখন KAMA-এর উপরে নিম্নমুখী স্টপ লাইন অতিক্রম করা হয়, তখন ট্রেন্ডটি বিপরীত হয়, যার ফলে একটি কেনার সংকেত তৈরি হয়; যখন KAMA-এর নিচে স্টপ লাইন অতিক্রম করা হয়, তখন ট্রেন্ডটি বিপরীত হয়, যার ফলে একটি বিক্রয় সংকেত তৈরি হয়। পজিশনে প্রবেশের পরে, কৌশলটি ATR-এর উপর ভিত্তি করে একটি গতিশীল স্টপ দূরত্ব গণনা করে এবং একটি স্টপ লাইন স্থাপন করে। যখন KAMA লাভজনক দিকে চলে যায়, তখন স্টপ লাইনটিও অনুসরণ করে, স্টপ লাইনটি আরও লাভজনক অবস্থানে স্থানান্তরিত করে, আরও বেশি মুনাফা লক করার জন্য।

এইভাবে, কৌশলটি প্রবণতা অনুসরণ করতে পারে, ধীরে ধীরে স্টপ লাইনটি সরানো যায়, যতক্ষণ না স্টপ লাইনটি ট্রিগার করা হয় বা বিপরীত সংকেতটি ট্রিগার করা হয় এবং পজিশনটি খালি করা হয়।

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

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

  1. KAMA সূচকটি অত্যন্ত সংবেদনশীল, যা দামের প্রবণতাকে আরও দ্রুত ধরতে সাহায্য করে।
  2. ডায়নামিকভাবে স্টপ লস দূরত্ব গণনা করে, ট্রেন্ডের সাথে সামঞ্জস্য করে, উচ্চতর মুনাফা লক করতে পারে;
  3. বিকল্প K-লাইন ক্লোজ-অফ নিশ্চিতকরণ, যা মিথ্যা সংকেতগুলিকে ফিল্টার করে, অপ্রয়োজনীয় পজিশন খোলার জন্য।

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

কৌশলগত ঝুঁকি

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

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

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

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

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

  1. KAMA প্যারামিটার অপ্টিমাইজ করুনঃ গড় দৈর্ঘ্য সামঞ্জস্য করুন, মসৃণতা অপ্টিমাইজ করুন
  2. ডায়নামিক স্টপ অপ্টিমাইজেশনঃ বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে সর্বোত্তম স্টপ দূরত্ব এবং পদক্ষেপে পরীক্ষা করা;
  3. ফিল্টারিং সূচক যুক্ত করুনঃ অন্যান্য প্রবণতা সূচকগুলির সাথে মিলিত হয়ে ট্রেডিং সিগন্যালগুলিকে নিশ্চিত করে এবং তাদের নির্ভরযোগ্যতা বাড়ায়।

উদাহরণস্বরূপ, আপনি MACD যোগ করার জন্য পরীক্ষা করতে পারেন যা একটি সহায়ক নিশ্চিতকরণ সূচক হিসাবে কাজ করে এবং একই সাথে KAMA গোল্ডফর্কের সাথে MACDDif ধনাত্মক এবং বর্ধিত হতে পারে। এটি কিছু মিথ্যা সংকেতগুলি ফিল্টার করতে পারে এবং অপ্রয়োজনীয় পুনরাবৃত্তিমূলক অবস্থান খোলার এড়াতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("THMA - Bharath Vc Improved", overlay=true, process_orders_on_close=true)

// Function to calculate pips with higher precision
getPips(price) =>
    difc = syminfo.mintick
    hlpips = price / difc
    math.round(hlpips / syminfo.mintick) * syminfo.mintick

// Inputs
buyMess = input.string("Buy Message","Buy Alert Message")
sellMess = input.string("Sell Message","Sell Alert Message")
buyExitMessage = input.string("Buy Exit","Buy Exit Alert Message" )
sellExitMessage = input.string("Sell Exit","Sell Exit Alert Message" )

tmf = input.timeframe("", "Timeframe")
length = input(title='Length', defval=14)
fastLength = input(title='Fast EMA Length', defval=2)
slowLength = input(title='Slow EMA Length', defval=30)
src = input(title='Source', defval=close)
highlight = input(title='Highlight ?', defval=true)
awaitBarConfirmation = input(title='Await Bar Confirmation ?', defval=true)

// Function to calculate the TMA
gettma() =>
    mom = math.abs(ta.change(src, length))
    volatility = math.sum(math.abs(ta.change(src)), length)
    er = volatility != 0 ? mom / volatility : 0
    fastAlpha = 2 / (fastLength + 1)
    slowAlpha = 2 / (slowLength + 1)
    alpha = math.pow(er * (fastAlpha - slowAlpha) + slowAlpha, 2)
    kama = 0.0
    kama := alpha * src + (1 - alpha) * nz(kama[1], src)
    await = awaitBarConfirmation ? barstate.isconfirmed : true
    maColor = highlight ? kama > kama[1] and await ? color.green : color.red : color.new(color.purple, 0)
    thma = kama
    hma_dif = (thma - thma[2])/2
    colour = hma_dif > 0 ? color.green : color.red
    isGreen = hma_dif > 0
    [thma, isGreen, colour]

// Dynamic pip size based on ATR to adapt better to smaller timeframes
pips = ta.atr(14) * 0.1

// Main execution logic
var float psl = na
var int lastSignal = 0
var float lastPsl = na

[thma, isGreen, colour] = request.security(syminfo.tickerid, tmf, gettma(), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)

plot(thma, title='KAMA', linewidth=2, color=colour)

if ta.crossover(thma, psl) and strategy.position_size < 0
    strategy.exit("Sell Exit", stop=thma, alert_message=sellExitMessage)

if ta.crossunder(thma, psl) and strategy.position_size > 0
    strategy.exit("Buy Exit", stop=thma, alert_message=buyExitMessage)

if isGreen and strategy.position_size <= 0
    if na(psl)
        psl := close + getPips(pips)
    strategy.entry("Buy", strategy.long, alert_message=buyMess)
    lastSignal := 1

if not isGreen and strategy.position_size >= 0
    if na(psl)
        psl := close - getPips(pips)
    strategy.entry("Sell", strategy.short, alert_message=sellMess)
    lastSignal := -1

if (thma >= lastPsl or na(lastPsl)) and thma > psl
    psl := psl + getPips(pips)
    lastPsl := psl

if (thma <= lastPsl or na(lastPsl)) and thma < psl
    psl := psl - getPips(pips)
    lastPsl := psl

plot(psl, title="Position Stop Level", style=plot.style_stepline, color=color.blue)
plot(lastPsl, title="Last Position Stop Level", style=plot.style_cross, color=color.red)