গতিশীল কৌশল

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

সারসংক্ষেপ

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

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

এই কৌশলটি N সময়কালের আগে বন্ধের মূল্যের তুলনায় বন্ধের মূল্যের পরিবর্তন পরিমাপ করে মূল্যের গতিবেগ গণনা করে।

প্রথম গতির সূচক MOM0 গণনা করা হয়ঃ

MOM0 = CLOSE - CLOSE[N]

যেখানে CLOSE হচ্ছে চলতি সময়ের স বন্ধের মূল্য এবং CLOSE[N] হচ্ছে N সময়কালের আগের বন্ধের মূল্য। MOM0 > 0 নির্দেশ করে যে বর্তমান বন্ধের মূল্য N সময়কালের আগের তুলনায় বেশি, যখন MOM0 < 0 নির্দেশ করে যে বর্তমান বন্ধের মূল্য N সময়কালের আগের তুলনায় কম।

দ্বিতীয় গতির সূচক MOM1 গণনা করা হয়ঃ

MOM1 = MOM0 - MOM0 [1]

এটি বর্তমান MOM0 এবং পূর্ববর্তী সময়ের MOM0 এর মধ্যে পার্থক্য গণনা করে। MOM1 > 0 নির্দেশ করে MOM0 বৃদ্ধি পাচ্ছে, যখন MOM1 < 0 নির্দেশ করে MOM0 হ্রাস পাচ্ছে।

তৃতীয় গতির সূচক MOM2 গণনা করা হয়ঃ

MOM2 = CLOSE - CLOSE [1]

এটি বর্তমান ক্লোজিং মূল্য এবং পূর্ববর্তী সময়ের ক্লোজিং মূল্যের মধ্যে পার্থক্য গণনা করে। MOM2 > 0 নির্দেশ করে যে ক্লোজিং মূল্য বাড়ছে, যখন MOM2 < 0 নির্দেশ করে যে ক্লোজিং মূল্য কমছে।

যখন MOM0 > 0 এবং MOM1 > 0, এটি ইঙ্গিত দেয় যে গতি ধারাবাহিকভাবে বাড়ছে এবং একটি ক্রয় সংকেত ট্রিগার করে। যখন MOM0 < 0 এবং MOM2 < 0, এটি ইঙ্গিত দেয় যে গতি ধারাবাহিকভাবে হ্রাস পাচ্ছে এবং একটি বিক্রয় সংকেত ট্রিগার করে।

কোডটিতে একটি সময় শর্ত time_cond অন্তর্ভুক্ত রয়েছে যা কেবলমাত্র নির্দিষ্ট ব্যাকটেস্টিং সময় পরিসরের মধ্যে সংকেত তৈরি করে। সংকেতটি অদৃশ্য হয়ে গেলে অবাঞ্ছিত আদেশগুলি এড়াতে অর্ডার দেওয়ার আগে এটি শর্তটি পুনরায় পরীক্ষা করে।

সুবিধা বিশ্লেষণ

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

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

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

ঝুঁকিগুলি গতির সময়কাল সংক্ষিপ্ত করে, প্রবণতা নির্ধারণ যুক্ত করে বা স্টপ লস কনফিগার করে হ্রাস করা যেতে পারে। অতিরিক্ত ফিল্টারিংয়ের জন্য ভলিউম সূচকগুলিও বিবেচনা করা যেতে পারে।

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

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

সংক্ষিপ্তসার

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


/*backtest
start: 2022-09-25 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Momentum Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true)

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-02T00:00:00"), title = "Start Date", type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), title = "End Date",type = input.time)
 
time_cond  = true

i_len           =       input(defval = 12,      title = "Length",       minval = 1)
i_src           =       input(defval = close,   title = "Source")
i_percent       =       input(defval = true,    title = "Percent?")
i_mom           =       input(defval = "MOM2",  title = "MOM Choice",   options = ["MOM1", "MOM2"])

momentum(seria, length, percent) =>
	_mom        =       percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
	_mom

mom0        =       momentum(i_src, i_len, i_percent)
mom1        =       momentum(mom0, 1, i_percent)
mom2        =       momentum(i_src, 1, i_percent)

momX        =       mom1

if i_mom == "MOM2"
    momX    :=     mom2

if (mom0 > 0 and momX > 0 and time_cond)
    strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE")
else
	strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
	strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE")
else
	strategy.cancel("MomSE")

plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")

আরো