
এই কৌশলটি একটি দ্বৈত গতিশীল সূচক বিভাজন কৌশল। এটি দুটি ভিন্ন প্যারামিটার সেট গতিশীল সূচক ব্যবহার করে, যখন উভয় গতিশীল সূচক শূন্য অক্ষ অতিক্রম করে তখন একটি লেনদেনের সংকেত উত্পন্ন করে। এই কৌশলটি কেবলমাত্র একাধিক এন্ট্রি করে, খালি মাথাটি কেবল পজিশনের জন্য ব্যবহৃত হয়।
কোডটি প্রথমে নীতির বৈশিষ্ট্যগুলি সেট করে, যেমন কমিশন মোড, ফী মোড ইত্যাদি। তারপর এটি দুটি গতিশীলতা পরিমাপ করেঃ
// Momentum settings
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 code
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
mom0 হল মৌলিক গতিশীলতার সূচক, দৈর্ঘ্য হল i_len, ডাটা উৎস হল i_src, শতাংশ গণনা করা হয় কিনা তা i_percent দ্বারা নির্ধারিত।
mom1 হল mom0 এর সাথে গতির সূচক, যার দৈর্ঘ্য 1।
mom2 হল একটি গতির সূচক যার দৈর্ঘ্য ১।
অবশেষে, momX গতির সূচকটি ডিফল্টরূপে mom1 হিসাবে ব্যবহৃত হয়, বা mom2 হিসাবেও নির্বাচন করা যেতে পারে।
যখন mom0 এবং momX একই সাথে 0-অক্ষের উপরে থাকে, তখন বেশি করা হয়; যখন mom0 এবং momX একই সাথে 0-অক্ষের নিচে থাকে, তখন সমতল করা হয়।
ডাবল ডায়নামিক সূচক ব্যবহার করে বিভিন্ন প্যারামিটার সেটিংয়ের সাথে ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়ানো যায়। ডাবল নিশ্চিতকরণ মিথ্যা সংকেত হ্রাস করে।
শুধুমাত্র মাল্টি হেড এন্ট্রি করা, খালি মাথা শুধুমাত্র পজিশনের জন্য ব্যবহৃত হয়, যা ট্রেডিং ফ্রিকোয়েন্সি এবং ট্রেডিং খরচ হ্রাস করতে পারে।
বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্য রেখে গতির সূচক প্যারামিটারগুলি সামঞ্জস্য করা যায়।
কোডের কাঠামো পরিষ্কার, সহজে বোঝা যায় এবং পরিবর্তন করা যায়।
স্বয়ংক্রিয় ট্রেডিং সিস্টেমের সাথে ব্যবহারের জন্য একটি ট্রেডিং বার্তা সেটআপ যোগ করা হয়েছে।
যদিও ডাবল ডায়নামিক সূচকটি মিথ্যা সংকেত হ্রাস করতে পারে, এটি দুর্বল প্রবণতা সংকেতও মিস করতে পারে।
আপনি যদি কেবলমাত্র একাধিক লেনদেন করেন তবে আপনি খালি লেনদেনের সুযোগটি হারাতে পারেন।
ডায়নামিক্সের প্যারামিটারগুলি ভুলভাবে সেট করা হয়েছে যা খুব ঘন ঘন বা খুব ধীর গতির লেনদেনের কারণ হতে পারে।
রিটার্নিং ডেটা অপর্যাপ্ত হলে পরামিতিগুলি অতিরিক্ত মিলিত হতে পারে।
যদিও ডাবল কনফার্মেশন মিথ্যা সংকেত হ্রাস করে, তবে এটি সম্পূর্ণরূপে এড়ানো যায় না।
বিভিন্ন দৈর্ঘ্যের এবং শতাংশ গণনা করা হয় কিনা তা পরীক্ষা করে সেরা প্যারামিটারটি খুঁজে বের করা যায়।
ট্রেডিং সিগন্যালগুলিকে ট্রেডিংয়ের আরও সুযোগগুলি ধরার জন্য বিবেচনা করা যেতে পারে।
আরও ভাল ফলাফলের জন্য ROC, RSI ইত্যাদির মতো বিভিন্ন গতিশীলতার সূচক গণনা পদ্ধতি পরীক্ষা করা যেতে পারে।
ট্রেন্ড ফিল্টারিং এর সাথে ট্রেডিং এড়িয়ে চলুন।
আপনি আপনার স্টপ লস কৌশলকে অপ্টিমাইজ করতে পারেন এবং আপনার মুনাফা সর্বাধিক করার সময় আপনার ঝুঁকি নিয়ন্ত্রণ করতে পারেন।
এই কৌশলটি একটি আদর্শ ডাবল ডায়নামিক সূচক বিভাজক কৌশল। এটি ডাবল নিশ্চিতকরণ ব্যবহার করে মিথ্যা সংকেত হ্রাস করে এবং কেবলমাত্র একাধিক প্রবেশের মাধ্যমে ট্রেডিংয়ের ঘনত্ব হ্রাস করে। এই কৌশলটির সুবিধাটি সহজ, সহজেই বাস্তবায়িত হয় এবং প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের ক্ষেত্রে অনেক উন্নতির জায়গা রয়েছে। সামগ্রিকভাবে, এই কৌশলটি গতিশীল বিভাজক কৌশলটির প্রাথমিক কাঠামো হিসাবে কার্যকর, তবে নির্দিষ্ট বাজারের জন্য অনুকূলিতকরণ করা প্রয়োজন যাতে লভ্যাংশ স্থিতিশীল করা যায়।
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum Long 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)
// There will be no short entries, only exits from long.
strategy.risk.allow_entry_in(strategy.direction.long)
// 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
// Momentum settings
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"])
// Messages for buy and sell
message_buy = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")
// Momentum code
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
// Strategy Alerts
if (mom0 > 0 and momX > 0 and time_cond)
strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE", alert_message = message_buy)
else
strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
strategy.entry("MomExit", strategy.short, stop = low - syminfo.mintick, comment = "MomSE", alert_message = message_sell)
else
strategy.cancel("MomExit")
// Plotting
plot(0, color = #5d606b, title = "ZERO")
plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")