দীর্ঘ এবং সংক্ষিপ্ত দ্বৈত ট্র্যাকের উপর ভিত্তি করে ট্র্যাকিং এবং মুনাফা গ্রহণের কৌশল


সৃষ্টির তারিখ: 2024-01-15 14:56:03 অবশেষে সংশোধন করুন: 2024-01-15 14:56:03
অনুলিপি: 1 ক্লিকের সংখ্যা: 626
1
ফোকাস
1617
অনুসারী

দীর্ঘ এবং সংক্ষিপ্ত দ্বৈত ট্র্যাকের উপর ভিত্তি করে ট্র্যাকিং এবং মুনাফা গ্রহণের কৌশল

Myo_LS_D কোয়ান্টামেশন কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত প্রবণতা বিচার মডিউল, মাল্টি মডিউল, খালি মডিউল, ট্র্যাকিং স্টপ মডিউল ইত্যাদি নিয়ে গঠিত।

  1. প্রবণতা নির্ধারণ মডিউল ডনচেইন চ্যানেল ব্যবহার করে সামগ্রিক প্রবণতার দিক নির্ধারণ করে। অতিরিক্ত প্রবেশের জন্য একটি উত্থান প্রবণতা থাকা প্রয়োজন, এবং একটি কমানোর জন্য একটি পতনের প্রবণতা থাকা প্রয়োজন।

  2. মাল্টি-মডিউলগুলি নতুন উচ্চতা, নিম্নতা এবং দীর্ঘ-রেখা গড়ের অবস্থানের মতো বিষয়গুলি বিবেচনা করে। খালি মডিউলগুলি নতুন উচ্চতা, নিম্নতা এবং সংক্ষিপ্ত-রেখা গড়ের অবস্থানের মতো বিষয়গুলি বিবেচনা করে। এটি নিশ্চিত করে যে যখন কোনও গুরুত্বপূর্ণ মূল্যের পয়েন্টটি উপরে বা নীচে ভেঙে যায় তখন পজিশন স্থাপন করা হয়।

  3. স্টপ ট্র্যাকিং মডিউল দুটি ভিন্ন পিরিয়ডের এসএমএ গড়রেখা ব্যবহার করে রিয়েল-টাইমে মূল্য পরিবর্তনের উপর নজর রাখে। যখন দাম গড়রেখার নীচে পড়ে তখন পজিশন বন্ধ করে দেয়। এই রিয়েল-টাইম ট্র্যাকিংটি ট্রেন্ডিংয়ের মধ্যে লাভের পরিমাণ বাড়িয়ে তুলতে পারে।

  4. স্টপ-ড্যামেজ সেটিংঃ স্টপ-ড্যামেজকে প্রসারিত করুন, যাতে স্টপ-ড্যামেজ পয়েন্টটি সমর্থন থেকে দূরে থাকে এবং ঝাঁকুনি এড়ানো যায়।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সবচেয়ে বড় সুবিধা হল, এটির মধ্যে অনেকগুলো খালি জায়গা আলাদা করে রাখা হয়েছে, যা স্টপ-অফ কৌশল অনুসরণ করে।

  1. মাল্টি-স্পেস বিভাজন একতরফা প্রবণতা থেকে লাভের সুযোগকে সর্বাধিক করে তুলতে পারে।

  2. ট্র্যাকিং স্টপগুলি রিয়েল-টাইম অ্যাডজাস্টমেন্টের মাধ্যমে উচ্চতর মুনাফা অর্জন করতে পারে। প্রচলিত স্টপ পদ্ধতির তুলনায় উপার্জন উল্লেখযোগ্যভাবে বৃদ্ধি পায়।

  3. স্টপ লস বাড়ানো ঝড়ের সম্ভাবনা কমিয়ে দেয় এবং ক্ষতির ঝুঁকি হ্রাস করে।

ঝুঁকি ও সমাধান

এই কৌশলটির প্রধান ঝুঁকিগুলো নিম্নে বর্ণিত বিষয়গুলোতে কেন্দ্রীভূতঃ

  1. প্রবণতা নির্ণয়ের ত্রুটি, যা বিপরীতমুখী পজিশন ক্ষতির কারণ হতে পারে। ডনচেইন প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা বা অন্যান্য নির্দেশক নির্ণয় যুক্ত করা যেতে পারে।

  2. ট্র্যাকিং স্টপগুলি অত্যধিক উদ্দীপক, এবং অগ্রিম স্টপগুলি অবিচ্ছিন্নভাবে লাভজনক হতে পারে না। স্টপ গড়ের ব্যবধানটি যথাযথভাবে প্রসারিত করে অপ্টিমাইজ করা যায়।

  3. ক্ষতির পরিসীমা খুব ছোট, যা ভূমিকম্পের সম্ভাবনা বাড়িয়ে তুলতে পারে। ঝুঁকি কমাতে ক্ষতির পরিসীমা যথাযথভাবে প্রসারিত করা যেতে পারে।

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে আরও উন্নত করা যেতে পারেঃ

  1. প্রবণতা বিচার মডিউল অপ্টিমাইজ করুন, বিচার সঠিকতা উন্নত করুন। আরও সূচক যেমন MACD এর সাথে একত্রিত করার কথা বিবেচনা করা যেতে পারে।

  2. স্টপ ট্র্যাকিং পদ্ধতিটি সামঞ্জস্য করুন, মুনাফার সুযোগ আরও বাড়ান। উদাহরণস্বরূপ, স্টপ লাইনটি আনুপাতিকভাবে স্থানান্তর করা যেতে পারে।

  3. স্টপ-আউট পরিসীমা প্রসারিত করুন অথবা স্টপ-আউট কমানোর কথা ভাবুন যাতে ধাক্কা লাগার সম্ভাবনা আরও কম হয়।

  4. বিভিন্ন জাতের প্যারামিটার আলাদা, এবং সর্বোত্তম প্যারামিটার সমন্বয় পেতে প্রশিক্ষণ দেওয়া যেতে পারে। কৌশলগত উপার্জন আরও উন্নত করুন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © agresiynin

//@version=5
// ©Myo_Pionex
strategy(
 title                  =   "Myo_simple strategy_LS_D",
 shorttitle             =   "Myo_LS_D",
 overlay                =   true )


// var
lowest_price = ta.lowest(low, 200)
highest_price = ta.highest(high, 200)
min_800 = ta.lowest(low, 800)
max_800 = ta.highest(high, 800)
tp_target_L = min_800 + (max_800 - min_800) * math.rphi
tp_target_S = max_800 - (max_800 - min_800) * math.rphi
sl_length_L = input.int(100, "做多的止損長度", minval = 50, maxval = 300, step = 50)
sl_length_S = input.int(100, "做空的止損長度", minval = 50, maxval = 300, step = 50)
sl_L = lowest_price * (1 - 0.005)
sl_S = highest_price * (1 + 0.005)
rrr_L = tp_target_L - sl_L / sl_L
rrr_S = ta.lowest(low, 800) + ta.highest(high, 800) - ta.lowest(low, 800) * math.rphi / ta.highest(high, 200) + 0.005 * ta.highest(high, 200) - ta.lowest(low, 200) - 0.005 * ta.lowest(low, 200)
smalen1 = input.int(10, "做多追蹤止盈SMA長度1", options = [5, 10, 20, 40, 60, 80])
smalen2 = input.int(20, "做多追蹤止盈SMA長度2", options = [5, 10, 20, 40, 60, 80])
smalen1_S = input.int(5, "做空追蹤止盈SMA長度1", options = [5, 10, 20, 40, 60, 80])
smalen2_S = input.int(10, "做空追蹤止盈SMA長度2", options = [5, 10, 20, 40, 60, 80])
TrendLength_L = input.int(400, "做多趨勢線", options = [100, 200, 300, 400, 500])
TrendLength_S = input.int(300, "做空趨勢線", options = [100, 200, 300, 400, 500])
SMA1 = ta.sma(close, smalen1)
SMA2 = ta.sma(close, smalen2)
SMA1_S = ta.sma(close, smalen1_S)
SMA2_S = ta.sma(close, smalen2_S)
shortlength = input.int(20, "短期均價K線數量")
midlength = input.int(60, "中期均價K線數量")
longlength = input.int(120, "長期均價K線數量")
ShortAvg = math.sum(close, shortlength)/shortlength
MidAvg = math.sum(close, midlength)/midlength
LongAvg = math.sum(close, longlength)/longlength

// Trend
basePeriods = input.int(8, minval=1, title="趨勢基準線")
basePeriods_Short = input.int(26, "做空基準線")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
baseLine = donchian(basePeriods)
baseLine_Short = donchian(basePeriods_Short)
trend = request.security(syminfo.tickerid, "D", baseLine)
isUptrend = false
isDowntrend = false
baseLine_D = request.security(syminfo.tickerid, "D", baseLine)
plot(baseLine_D, color=#B71C1C, title="趨勢基準線")
if close[0] > baseLine_D
    isUptrend := true
if close[0] < baseLine_Short
    isDowntrend := true
// Long
// Condition
// entry
con_a = low > lowest_price ? 1 : 0
con_b = high > highest_price ? 1 : 0
con_c = close[0] > ta.sma(close, TrendLength_L) ? 1 : 0
con_d = isUptrend ? 1 : 0
con_e = rrr_L > 3 ? 1 : 0
con_a1 = close[0] > ShortAvg[shortlength] ? 1 : 0
con_b1 = close[0] > MidAvg[midlength] ? 1 : 0

// close
con_f = ta.crossunder(close, SMA1) and ta.crossunder(close, SMA2) ? 1 : 0
con_g = close < ta.lowest(low, sl_length_L)[1] * (1 - 0.005) ? 1 : 0

// exit
con_h = tp_target_L

// Main calculation
LongOpen = false
AddPosition_L = false

if con_a + con_b + con_c + con_e + con_a1 + con_b1 >= 4 and con_d >= 1
    LongOpen := true
// Short
// Condition
// entry
con_1 = high < highest_price ? 1 : 0
con_2 = low < lowest_price ? 1 : 0
con_3 = close[0] < ta.sma(close, TrendLength_S) ? 1 : 0
con_4 = isDowntrend ? 1 : 0
con_5 = rrr_S > 3 ? 1 : 0
con_11 = close[0] < ShortAvg[shortlength] ? 1 : 0
con_12 = close[0] < MidAvg[midlength] ? 1 : 0

// close
con_6 = ta.crossover(close, SMA1_S) and ta.crossover(close, SMA2_S) ? 1 : 0
con_7 = close > ta.highest(high, sl_length_S)[1] * (1 + 0.005) ? 1 : 0

// exit
con_8 = tp_target_S

// Main calculation
ShortOpen = false
AddPosition_S = false

if con_1 + con_2 + con_3 + con_4 + con_5 + con_11 + con_12 >= 5
    ShortOpen := true

//
// execute
//
strategy.initial_capital = 50000
if strategy.position_size == 0
    if LongOpen
        strategy.entry("Long Open" , strategy.long , comment= "Long Open " + str.tostring(close[0]), qty=strategy.initial_capital/close[0])

if strategy.position_size > 0
    if (con_f > 0 or con_g > 0 or ShortOpen) and close <= baseLine_D
        strategy.close_all(comment="Close Long " + str.tostring(close[0]))

if strategy.position_size == 0
    if ShortOpen
        strategy.entry("Short Open" , strategy.short , comment= "Short Open " + str.tostring(close[0]), qty=strategy.initial_capital/close[0])

if strategy.position_size < 0
    if (con_6 > 0 or con_7 > 0 or LongOpen) and close >= baseLine_D
        strategy.close_all(comment="Close Short " + str.tostring(close[0]))


plot(ta.sma(close, TrendLength_L), color=#e5c212, title="LTradeTrend")
plot(ta.sma(close, TrendLength_S), color=#1275e5, title="STradeTrend")
plot(SMA1, "SMA1", color = color.lime, linewidth = 2)
plot(SMA2, "SMA2", color = color.rgb(255, 0, 255), linewidth = 2)