ট্রেন্ড স্ট্র্যাটেজি থেকে লাভ নিন

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

সারসংক্ষেপ

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

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

কৌশলটি মূলত দীর্ঘমেয়াদী এবং স্বল্পমেয়াদী প্রবণতা নির্ধারণের জন্য ইএমএ এবং আরএসআই ব্যবহার করে। বিশেষত, এটি দীর্ঘমেয়াদী প্রবণতা বিচার করতে 50-দিনের ইএমএ এবং 200 দিনের ইএমএ এবং প্রবণতার শক্তি পরিমাপ করতে আরএসআই ব্যবহার করে। যখন দীর্ঘমেয়াদী একটি আপট্রেন্ডে থাকে (200 দিনের ইএমএ বৃদ্ধি) এবং শক্তিশালী (আরএসআই 50 এর উপরে), এবং স্বল্পমেয়াদী একটি pullback দেখায় (শেষ 2 মোমবাতি কম বন্ধ), একটি দীর্ঘ অবস্থান নেওয়া হয়।

একটি পজিশনে প্রবেশ করার পরে, কৌশলটি স্টপ লস এবং লাভের শর্তাবলী সেট করে। যখন দাম প্রবেশের দামের চেয়ে 2x বিএইচডি ইউনিটের বেশি বৃদ্ধি পায়, তখন লাভ নেওয়া হয়। যখন দাম প্রবেশের দামের চেয়ে 3x বিএইচডি ইউনিটের বেশি কমে যায়, তখন অবস্থানটি বন্ধ হয়ে যায়। বিএইচডি ইউনিটটি শেষ 200 মোমবাতিগুলির ব্যাপ্তির উপর ভিত্তি করে গণনা করা হয়।

এইভাবে, কৌশলটি দীর্ঘ ও স্বল্পমেয়াদী প্রবণতা বৈশিষ্ট্যগুলি পুরোপুরি বিবেচনা করে, ঝুঁকি নিয়ন্ত্রণের সাথে লাভ বাড়ায়, প্রবণতা অনুসরণ করে সময়মতো লাভ করে।

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

এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:

  1. দীর্ঘ এবং স্বল্পমেয়াদী প্রবণতা বিবেচনা করে, শক্তির সূচকগুলির সাথে মিলিত, বিভিন্ন বাজারে অন্ধ প্রবেশ এড়ায়।

  2. এন্ট্রিগুলি প্রবণতার দিক অনুসরণ করে, উচ্চতর জয় হার।

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

  4. টিপি এবং এসএল গতিশীলতা ভিত্তিক, অপেক্ষাকৃত যুক্তিসঙ্গত।

  5. ব্যাকটেস্টগুলি ভাল রিটার্ন এবং চিহ্ন এবং সময়সীমার মধ্যে স্থিতিশীলতা দেখায়।

  6. সহজ এবং পরিষ্কার যুক্তি, সব দক্ষতা স্তরের জন্য সহজেই বোঝা এবং বাস্তবায়ন।

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

এই কৌশলের কিছু ঝুঁকিও রয়েছে:

  1. দীর্ঘ/স্বল্পমেয়াদী ভুল মূল্যায়ন যা ভুল প্রবেশের দিক নির্দেশনা দেয়।

  2. বাজার ক্র্যাশের মতো ক্র্যাশগুলি স্টপগুলিতে প্রবেশ করতে পারে।

  3. খারাপ প্যারামিটার সেটিং কর্মক্ষমতা নেতিবাচক প্রভাবিত করে।

  4. টিপি খুব টাইট সেট, অকাল প্রস্থান হতে পারে.

  5. ব্যাকটেস্ট ≠ লাইভ পারফরম্যান্স, ক্রমাগত অপ্টিমাইজেশান প্রয়োজন।

সমাধান:

  1. প্যারামিটার অপ্টিমাইজ করা, এমএ সময়কাল সামঞ্জস্য করা, ক্রস-ভ্যালিডেশন সূচক যোগ করা।

  2. আরও বিস্তৃত স্টপ, অবস্থান আকার, অন্যান্য ঝুঁকি নিয়ন্ত্রণ।

  3. প্যারামিটারগুলি মূল্যায়ন করার জন্য ব্যাপক ব্যাকটেস্টিং।

  4. বাজারের অবস্থার উপর ভিত্তি করে গতিশীল টিপি অপ্টিমাইজেশান।

  5. চলমান ব্যাকটেস্টিং, অপ্টিমাইজেশন, লাইভ সমন্বয়.

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

কৌশলটি নিম্নলিখিতগুলির মাধ্যমে আরও অনুকূলিত করা যেতে পারেঃ

  1. প্যারামিটার টিউনিং, এমএ সময়কাল, বিএইচডি ইউনিট সময়কাল ইত্যাদি

  2. স্বল্পমেয়াদী নির্ভুলতার জন্য সূচক, এমএসিডি, কেডি ইত্যাদি যোগ করা।

  3. TP/SL অপ্টিমাইজ করা, পরিবর্তনশীলতার ভিত্তিতে গতিশীল আকার ইত্যাদি

  4. প্রবণতা শক্তি উপর ভিত্তি করে অবস্থান আকার যোগ করা।

  5. আরো অনেক চিহ্ন এবং সময়সীমার মধ্যে স্থিতিশীলতা পরীক্ষা করা হচ্ছে।

  6. ফাঁদ এড়ানোর জন্য ক্লোজিং মূল্য > ওপেন এর মত ফিল্টার যোগ করা।

  7. আরও বেশি অটোমেশন এবং বুদ্ধিমত্তার জন্য মেশিন লার্নিং অন্তর্ভুক্ত করা।

এগুলি বিজয় হার, আয়, স্থিতিশীলতা, অভিযোজনযোগ্যতা ইত্যাদি উন্নত করতে পারে।

সিদ্ধান্ত

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


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
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/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))


আরো