ডায়নামিক স্ব-নিয়মিত কাফম্যান চলমান গড় প্রবণতা ট্র্যাকিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০২-২৬ ১৬ঃ৩৬ঃ৩০
ট্যাগঃ

img

সারসংক্ষেপ

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

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

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

কৌশলগত যুক্তি

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

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

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

সুবিধা

ঐতিহ্যগত চলমান গড় কৌশল তুলনায়, এই কৌশল নিম্নলিখিত সুবিধা আছেঃ

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

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

ঝুঁকি

এই কৌশলটি কিছু ঝুঁকিও বহন করেঃ

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

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

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

কৌশলটি অপ্টিমাইজ করার সম্ভাব্য দিকগুলির মধ্যে রয়েছেঃ

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

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

সিদ্ধান্ত

এই কৌশলটির সামগ্রিক অপারেশন মসৃণ। প্রবণতা ট্র্যাক এবং প্রবণতা মুনাফা সর্বাধিকীকরণের জন্য একটি গতিশীল স্টপ লস ব্যবহার করে, দ্রুত বাজারের পরিবর্তনগুলিতে দ্রুত প্রতিক্রিয়া জানাতে 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)


আরো