গতির কৌশল হল একটি ট্রেডিং কৌশল যা মূল্যের গতির উপর ভিত্তি করে মূল্যের প্রবণতা অনুসরণ করে। এটি একটি নির্দিষ্ট সময়ের মধ্যে মূল্যের পরিবর্তনগুলি গণনা করে ট্রেডিং সংকেত তৈরি করে। যখন দামের আপট্রেন্ড সনাক্ত করা হয়, এটি একটি ক্রয় সংকেত ট্রিগার করবে। যখন দামের ডাউনট্রেন্ড সনাক্ত করা হয়, এটি একটি বিক্রয় সংকেত ট্রিগার করবে। এই কৌশলটি ট্রেডিং সংকেত তৈরি করতে একটি ডাবল গতির সূচক ক্রসওভার ব্যবহার করে।
এই কৌশলটি N সময়কালের আগে বন্ধের মূল্যের তুলনায় বন্ধের মূল্যের পরিবর্তন পরিমাপ করে মূল্যের গতিবেগ গণনা করে।
প্রথম গতির সূচক MOM0 গণনা করা হয়ঃ
MOM0 = CLOSE - CLOSE[N]
যেখানে CLOSE হচ্ছে চলতি সময়ের
দ্বিতীয় গতির সূচক 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 অন্তর্ভুক্ত রয়েছে যা কেবলমাত্র নির্দিষ্ট ব্যাকটেস্টিং সময় পরিসরের মধ্যে সংকেত তৈরি করে। সংকেতটি অদৃশ্য হয়ে গেলে অবাঞ্ছিত আদেশগুলি এড়াতে অর্ডার দেওয়ার আগে এটি শর্তটি পুনরায় পরীক্ষা করে।
ঝুঁকিগুলি গতির সময়কাল সংক্ষিপ্ত করে, প্রবণতা নির্ধারণ যুক্ত করে বা স্টপ লস কনফিগার করে হ্রাস করা যেতে পারে। অতিরিক্ত ফিল্টারিংয়ের জন্য ভলিউম সূচকগুলিও বিবেচনা করা যেতে পারে।
গতি কৌশলটি মূল্যের স্তরের পরিবর্তে মূল্য পরিবর্তনের প্রবণতা অনুসরণ করে, কার্যকরভাবে বাজার গতির দিকনির্দেশগুলিকে বাউন্স এবং ডাউনসাইড মূল্য আন্দোলনের জন্য চিহ্নিত করে। তবে, গতির পিছনের বৈশিষ্ট্য রয়েছে এবং পরামিতি নির্বাচন এবং সমন্বয় অপ্টিমাইজেশন কৌশল কর্মক্ষমতার জন্য গুরুত্বপূর্ণ। এই কৌশলটি একটি বেস হিসাবে দ্বৈত গতির সূচক ক্রসওভার ব্যবহার করে, কিছু শব্দ ফিল্টার করে। পারফরম্যান্স আরও উন্নত করা যায় এবং পরামিতিগুলির ক্রমাগত অপ্টিমাইজেশান, নতুন প্রযুক্তিগত সূচকগুলি একীভূত করে এবং মেশিন লার্নিং কৌশলগুলিকে কাজে লাগিয়ে ঝুঁকিগুলি নিয়ন্ত্রণ করা যায়।
/*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")