
ডায়নামিক স্টপ-অফ-ট্রেন্ড কৌশলটি দীর্ঘমেয়াদী প্রবণতা এবং স্বল্পমেয়াদী রিবাউন্ডগুলি সনাক্ত করে, নিম্ন-বিক্রয়-উচ্চ-বিক্রয় অর্জন করে এবং উচ্চ-উচ্চ প্রবণতা অনুসরণ করে। এই কৌশলটি একই সাথে মুদ্রার ক্ষতির আকার সনাক্ত করার জন্য উদ্বায়ী ইউনিট ব্যবহার করে, যা সমস্ত মুদ্রার জন্য প্রযোজ্য এবং শতাংশ পরিবর্তন সম্পর্কে উদ্বিগ্ন নয়।
এই কৌশলটি ক্রয়ের যুক্তিটি হলঃ দীর্ঘমেয়াদী উত্থানের প্রবণতা ((২০০ দিনের ইএমএ বৃদ্ধি, ২০০ দিনের আরএসআই ৫১ এর চেয়ে বড়) এবং স্বল্পমেয়াদী পতনের প্রত্যাবর্তন ((শেষ ২ টি কে লাইনের সমাপ্তির দাম কমে) দেখা দিলে পজিশন কেনা এবং খোলা।
Selling এর লজিক হল: যখন দাম বেড়ে যায় তখন 1 ইউনিট ওলট-পালট হলে স্টপ; যখন দাম কমে যায় তখন 2 ইউনিট ওলট-পালট হলে স্টপ।
50 দিনের মধ্যে বন্ধের মূল্যের স্ট্যান্ডার্ড পার্থক্যের 2 গুণ বেস ওভারল্যাপ ইউনিট হিসাবে। এইভাবে বিভিন্ন মুদ্রার নিজস্ব ওভারল্যাপ সনাক্ত করা যায়, শতাংশ সেট করার প্রয়োজন নেই।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল এটি বিভিন্ন মুদ্রার ওঠানামার আকারকে গতিশীলভাবে সনাক্ত করতে পারে, মুদ্রার নিজস্ব ওঠানামার উপর ভিত্তি করে স্টপ লস ইউনিট সেট করে। এটি শতাংশ স্টপ ফিক্সড সেটিংয়ের সমস্যা এড়ায় এবং স্বয়ংক্রিয়ভাবে আরও মুদ্রার সাথে মানিয়ে নিতে পারে।
আরেকটি সুবিধা হল দীর্ঘ এবং স্বল্পমেয়াদী সিদ্ধান্তের সমন্বয়, যা মিথ্যা ব্রেকআউটকে কার্যকরভাবে ফিল্টার করতে পারে। দীর্ঘমেয়াদী প্রবণতা ব্যবহার করে ভবিষ্যতে যে মুদ্রা বাড়তে পারে তা নির্ধারণ করা, এবং স্বল্পমেয়াদী রিডাউন সংকেতের সমন্বয়, যা বুলিন ব্যান্ডের সঙ্কোচের মতো মিথ্যা সংকেতকে কার্যকরভাবে এড়াতে পারে।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হল স্টপ স্টপ লস ইউনিট সেট করা। যদি ওভারল্যাপ খুব বড় হয়, স্টপ দূরত্বটি খুব কাছাকাছি হতে পারে এবং ক্রমাগত অনুসরণ করা যায় না; যদি ওভারল্যাপ খুব ছোট হয়, তবে ক্ষতি খুব দ্রুত বন্ধ হয়ে যেতে পারে। এটি দীর্ঘতর পিরিয়ডের ইএমএ দ্বারা সহায়ক হিসাবে প্রয়োজন, যাতে ওভারল্যাপ ইউনিট ভুল বিচার করা যায় না।
আরেকটি ঝুঁকি হ’ল কৌশলটি স্বল্পমেয়াদী প্রবণতা বিচার করার উপর নির্ভরশীল। যদি দীর্ঘমেয়াদী উত্থান ঘটে তবে স্বল্পমেয়াদী কোনও সংশোধন না হয় তবে প্রবেশের সময়টি মিস করা হবে। এটি অন্যান্য সহায়ক বিচার সূচক যুক্ত করার প্রয়োজন হতে পারে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
দীর্ঘমেয়াদী ইএমএ বিচারক যুক্ত করুন, ভোল্টেবল ইউনিট ত্রুটি এড়াতে
ট্রেডিং ভলিউমের মতো সূচকগুলি বৃদ্ধি করুন এবং প্রবণতা নির্ধারণ করুন এবং স্বল্পমেয়াদী k-লাইনগুলির উপর নির্ভরতা হ্রাস করুন
পজিশন খোলার এবং পজিশন শর্তাদি অপ্টিমাইজ করা, আরও কঠোর প্রবেশের নিয়ম সেট করা
মেশিন লার্নিং অ্যালগরিদমের সাহায্যে ট্রেন্ডের দিকনির্দেশনা, উচ্চতর বিজয় হার
ডায়নামিক স্টপ-স্টপ ট্রেন্ড ট্র্যাকিং কৌশলটির সামগ্রিক চিন্তাভাবনা পরিষ্কার, এর কেন্দ্রস্থল হল গতিশীল ওঠানামা ইউনিট সেট করা। এই কৌশলটি স্বয়ংক্রিয়ভাবে বিভিন্ন মুদ্রার জন্য লাভ-ক্ষতি ইউনিট সেট করতে পারে, কোনও শতাংশ ম্যানুয়ালি সেট করার প্রয়োজন নেই। দীর্ঘ এবং স্বল্পমেয়াদী দ্বৈত বিচারের সাথে মিলিত হয়ে, মিথ্যা সংকেতগুলি কার্যকরভাবে নির্মূল করা যায়। আরও অপ্টিমাইজেশনের মাধ্যমে, কৌশলটি একটি উচ্চ দক্ষতার ট্রেন্ড ট্র্যাকিং কৌশল হতে পারে।
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// 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
strategy(shorttitle='Take Profit On Trend',
title='Take Profit On Trend (by BHD_Trade_Bot)',
overlay=true,
initial_capital = 15,
default_qty_type = strategy.cash,
default_qty_value = 15,
commission_type=strategy.commission.percent,
commission_value=0.1)
//Backtest Time
start_day = 1
start_month = 1
start_year = 2021
end_day = 1
end_month = 1
end_year = 2050
start_time = timestamp(start_year, start_month, start_day, 00, 00)
end_time = timestamp(end_year, end_month, end_day, 23, 59)
is_back_test_time() =>
time >= start_time and time <= end_time ? true : false
// Last bar
h1_last_bar = (timenow - time)/1000/60/60 < 2
// EMA
ema50 = ema(close, 50)
ema200 = ema(close, 200)
// RSI length 200
rsi200 = rsi(close, 200)
// Bollinger Bands length 50
bb50 = 2 * stdev(close, 50)
// BHD Unit
bhd_unit = sma(bb50, 100)
bb50_upper = ema50 + bhd_unit
bb50_lower = ema50 - 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
// Long-term uptrend
entry_condition1 = rsi200 > 51
// Short-term downtrend
entry_condition2 = all_body_decrease(2)
ENTRY_CONDITION = entry_condition1 and entry_condition2
if (ENTRY_CONDITION and is_back_test_time())
strategy.entry("entry", strategy.long)
// CLOSE CONDITIONS
// Price increase 1 BHD unit
TAKE_PROFIT = close > strategy.position_avg_price + bhd_unit
// Price decrease 2 BHD unit
STOP_LOSS = close < strategy.position_avg_price - bhd_unit * 2
CLOSE_CONDITION = TAKE_PROFIT or STOP_LOSS
if (CLOSE_CONDITION or h1_last_bar)
strategy.close("entry")
// Draw
plot(ema50)
plot(ema200, color=color.yellow)
plot(bb50_upper)
plot(bb50_lower)