ডাবল ইমপুটাম ব্রেকআউট কৌশল

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

img

সারসংক্ষেপ

এটি একটি দ্বৈত গতির ব্রেকআউট কৌশল। এটি বিভিন্ন প্যারামিটার সেটিংসের সাথে দুটি গতির সূচক ব্যবহার করে এবং উভয় গতির সূচক শূন্য রেখাটি ভেঙে গেলে ট্রেডিং সংকেত তৈরি করে। কৌশলটি কেবল দীর্ঘ এন্ট্রি নেয় এবং শর্টগুলি কেবল পজিশন থেকে বেরিয়ে আসার জন্য ব্যবহৃত হয়।

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

কোডটি প্রথমে অর্ডারের ধরন, কমিশন স্কিম ইত্যাদির মতো কৌশলগত বৈশিষ্ট্য নির্ধারণ করে। তারপর এটি দুটি গতির সূচক গণনা করেঃ

// 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 হল মূল তথ্য i_src এর উৎস এবং দৈর্ঘ্য 1 সহ গতি নির্দেশক।

চূড়ান্ত গতির সূচক momX ডিফল্ট mom1, এছাড়াও mom2 নির্বাচন করতে পারেন।

যখন mom0 এবং momX উভয়ই 0 রেখার উপরে ভেঙে যায়, তখন লম্বা হয়। যখন mom0 এবং momX উভয়ই 0 রেখার নিচে ভেঙে যায়, তখন অবস্থান বন্ধ হয়।

কৌশলটির সুবিধা

  1. বিভিন্ন সেটিংসের সাথে দ্বৈত গতির সূচক ব্যবহার করে ডাবল নিশ্চিতকরণ এবং কম মিথ্যা সংকেতের সাথে সংকেতের নির্ভরযোগ্যতা উন্নত করে।

  2. শুধুমাত্র লম্বা এন্ট্রি এবং শর্টস ব্যবহার করে ট্রেডিং ফ্রিকোয়েন্সি কমিয়ে দেয় এবং লেনদেনের খরচ কমিয়ে দেয়।

  3. নমনীয় গতির পরামিতি সমন্বয় বিভিন্ন বাজারের পরিবেশে উপযুক্ত।

  4. পরিষ্কার কোড কাঠামো, সহজেই বোঝা যায় এবং পরিবর্তন করা যায়।

  5. ট্রেড মেসেজ সক্রিয়, অটো ট্রেডিং সিস্টেমের সাথে ভালভাবে সংহত।

কৌশলটির ঝুঁকি

  1. ডাবল ইম্পোমেন্টে দুর্বল প্রবণতা সংকেতগুলি মিস করতে পারে যখন মিথ্যা সংকেতগুলি হ্রাস করতে পারে।

  2. শুধুমাত্র দীর্ঘ এন্ট্রি দিয়ে সংক্ষিপ্ত বাণিজ্য সুযোগ মিস।

  3. ভুল গতির পরামিতি সেটিং অতিরিক্ত ট্রেডিং বা বিলম্বিত সংকেত হতে পারে।

  4. অপর্যাপ্ত ব্যাকটেস্ট ডেটা প্যারামিটার ওভারফিটিং এর কারণ হয়।

  5. ডাবল কনফার্মেশন মিথ্যা সংকেত হ্রাস করে কিন্তু দূর করে না, লাইভ ট্রেডিংয়ে বৈধতার জন্য নজর রাখতে হবে।

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

  1. সর্বোত্তম খুঁজে পেতে দৈর্ঘ্য এবং শতাংশ পরামিতিগুলির সমন্বয় পরীক্ষা করুন।

  2. ট্রেন্ড নিশ্চিত হওয়ার পর শর্ট ট্রেড সিগন্যাল যোগ করার কথা বিবেচনা করুন।

  3. আরও ভাল ফলাফলের জন্য ROC, RSI ইত্যাদির মতো বিভিন্ন গতির গণনা পরীক্ষা করুন।

  4. ট্রেন্ড ফিল্টারিং যোগ করুন যাতে উইপসা মার্কেট এড়ানো যায়।

  5. ঝুঁকির সীমার মধ্যে সর্বোচ্চ লাভের জন্য স্টপ লস অপ্টিমাইজ করুন।

সিদ্ধান্ত

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


/*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")

আরো