
এই কৌশলটি মূল্যের গতিশীলতার সূচকগুলি গণনা করে, দীর্ঘ এবং স্বল্পতর দ্বি-মুখী ট্র্যাকিং স্টপগুলি সেট করে লাভের জন্য লক করে, যাতে ট্রেন্ড ট্র্যাকিং স্টপগুলি সম্ভব হয়। কৌশলটি একই সাথে সক্রিয়করণ স্তরের সাথে সংযুক্ত করে, নির্দিষ্ট লাভের পরে স্টপ ট্র্যাকিং শুরু করে, যা অকালীন স্টপগুলি কার্যকরভাবে প্রতিরোধ করতে পারে।
মূল্যের 12 টি চক্রের গতিশীলতা গণনা করুন, তারপরে গতিশীলতার 1 চক্রের গতিশীলতা গণনা করুন। যখন দ্রুত গতিশীলতা (মূল্য গতিশীলতার 1 চক্রের গতিশীলতা) 0 এর চেয়ে বেশি হয়, তখন এটি কম হয়। এইভাবে মূল্যের গতিশীলতার পরিবর্তনের দিকটি নির্ধারণ করা যায়, মূল্যের প্রবণতা নিয়ন্ত্রণ করা যায়।
ট্র্যাকিং স্টপ দূরত্ব এবং ট্র্যাকিং স্টপ অ্যাক্টিভেশন স্তর সেট করুন। ট্র্যাকিং স্টপ দূরত্ব হল যখন দাম নতুন উচ্চতা বা নিম্নের দিকে চলে যায় তখন স্টপকে নির্দিষ্ট দূরত্বের সাথে সামঞ্জস্য করা। ট্র্যাকিং স্টপ অ্যাক্টিভেশন হল ট্র্যাকিং স্টপটি অবশ্যই একটি নির্দিষ্ট লাভের অনুপাতের পরে শুরু করতে হবে।
কৌশলটি সর্বোচ্চ বা সর্বনিম্ন মূল্যের উপর নজর রেখে লাভের জন্য লক করে এবং যখন দামটি সেট করা স্টপ লস দূরত্বের উপরে ফিরে আসে তখন একটি প্লেইন সিগন্যাল দেয়।
ডাবল ডায়নামিক বিচার ব্যবহার করে, মূল্যের প্রবণতার দিকটি সঠিকভাবে নির্ধারণ করা যায়, লেনদেনের সংখ্যা হ্রাস করা যায় এবং জালিয়াতি এড়ানো যায়।
স্টপ লস ট্র্যাকিং, ঝুঁকি কমানো, মুনাফা লকিং এর জন্য নমনীয় সেটিং
স্টপ লস অ্যাক্টিভেশন লেভেলটি ট্র্যাক করতে পারেন, অল্প সময়ের জন্য স্টপ লস এড়াতে কেবলমাত্র নির্দিষ্ট মুনাফা অর্জনের পরে স্টপ লস প্রক্রিয়াটি চালু করুন।
একসাথে মাল্টি-হেড এবং খালি হেডের ক্ষতির স্তর সেট করতে পারেন, ঝুঁকি সম্পূর্ণরূপে নিয়ন্ত্রণ করতে পারেন।
গণনা প্রক্রিয়া সহজ, কার্যকর, সহজে বোঝা যায় এবং বাস্তবায়িত হয়।
ডাবল ডায়নামিক বিচার একটি বিপরীত সংকেত হতে পারে, যা প্রবণতা ফিল্টারিংয়ের সাথে মিলিত হওয়া দরকার।
স্টপডাউন সেট করা হলে, এটি উল্লেখযোগ্য ক্ষতির কারণ হতে পারে
অ্যাক্টিভেশন লেভেল খুব বেশি সেট করা হলে, আপনি স্টপ লস মিস করতে পারেন।
আরও পরামিতি পরীক্ষা এবং অপ্টিমাইজেশান প্রয়োজন যাতে সর্বোত্তম স্টপ লস পাওয়া যায়।
প্রবণতা বিচার এবং পরামিতি অপ্টিমাইজেশান দ্বারা ভুল সংকেত কমাতে পারে। বিভিন্ন জাতের চুক্তি এবং প্যারামিটার সেটিং পরীক্ষা করে, সর্বোত্তম কনফিগারেশন খুঁজুন।
মার্কেট স্ট্রাকচার আইডেন্টিফিকেশন ইন্ডিকেটরগুলির সাথে মিলিত হয়ে, ওভারহোল ট্রেন্ডগুলি সনাক্ত করুন এবং বিপরীত ট্রেডিং এড়িয়ে চলুন।
সিগন্যালের নির্ভুলতা বাড়ানোর জন্য আরও সময় নির্ধারণের শর্ত যুক্ত করা হয়েছে, যেমন লেনদেনের পরিমাণ পরিবর্তন, স্ক্র্যাপিং ব্রেকিং ইত্যাদি।
পরামিতি অপ্টিমাইজ করুন, বিভিন্ন স্টপ দূরত্ব এবং অ্যাক্টিভেশন স্তরের পারফরম্যান্স পরীক্ষা করুন।
গতিশীল ট্র্যাকিং স্টপ ডেলিভারি বিবেচনা করুন, বাজার অস্থিরতা অনুযায়ী স্বয়ংক্রিয়ভাবে সামঞ্জস্য করুন।
আংশিক ক্ষতি বা চলমান ক্ষতির ব্যবস্থা করা যেতে পারে, যা ঝুঁকি নিয়ন্ত্রণে আরও সহায়তা করে।
এই কৌশলটির সামগ্রিক কাঠামো পরিষ্কার, দামের প্রবণতা নির্ধারণের জন্য দ্বৈত গতিশীলতার সূচক ব্যবহার করে, লাভের জন্য লকিংয়ের জন্য নমনীয় ট্র্যাকিং স্টপ লস সেট করে, কার্যকরভাবে লেনদেনের ঝুঁকি নিয়ন্ত্রণ করতে পারে। কৌশলটি বোঝা এবং বাস্তবায়নের জন্য সহজ, তবে আরও প্রযুক্তিগত সূচক এবং প্যারামিটার পরীক্ষার সাথে যুক্ত করার জন্য আরও অপ্টিমাইজ করার জায়গা রয়েছে। কৌশলটি আরও কার্যকারিতা বাড়িয়ে তুলতে পারে।
/*backtest
start: 2023-01-01 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trailing Stop Snippet", overlay=true)
length = input(12)
price = close
momentum(seria, length) =>
mom = seria - seria[length]
mom
mom0 = momentum(price, length)
mom1 = momentum( mom0, 1)
tsact = input.float(0.0, "Trailing Stop Activation |", group="strategy", tooltip="Activates the Trailing Stop once this PnL is reached.") / 100
tsact := tsact ? tsact : na
ts = input.float(0.0, "Position Trailing Stop |", group="strategy", tooltip="Trails your position with a stop loss at this distance from the highest PnL") / 100
ts := ts ? ts : na
in_long = strategy.position_size > 0
in_short = strategy.position_size < 0
var ts_ = array.new_float()
ts_size = array.size(ts_)
ts_get = ts_size > 0 ? array.get(ts_, ts_size - 1) : 0
if in_long
if tsact and high > strategy.position_avg_price + strategy.position_avg_price * tsact
if ts_size > 0 and ts_get < high
array.push(ts_, high)
if ts_size < 1
array.push(ts_, high)
if not tsact
if ts_size > 0 and ts_get < high
array.push(ts_, high)
if ts_size < 1
array.push(ts_, high)
if in_short
if tsact and low < strategy.position_avg_price - strategy.position_avg_price * tsact
if ts_size > 0 and ts_get > low
array.push(ts_, low)
if ts_size < 1
array.push(ts_, low)
if not tsact
if ts_size > 0 and ts_get > low
array.push(ts_, low)
if ts_size < 1
array.push(ts_, low)
trail = in_long and ts_size > 0 ? low < ts_get - ts_get * ts : in_short and ts_size > 0 ? high > ts_get + ts_get * ts : na
if (mom0 > 0 and mom1 > 0)
strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
strategy.cancel("MomLE")
if (mom0 < 0 and mom1 < 0)
strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
strategy.cancel("MomSE")
tsClose = in_long ? ts_get - ts_get * ts : in_short ? ts_get + ts_get * ts : na
if trail
strategy.close_all()
if not strategy.opentrades
array.clear(ts_)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plotchar(ts_get, "GET", "")
plot(strategy.position_avg_price > 0 ? strategy.position_avg_price : na, "Average", color.rgb(251, 139, 64), 2, plot.style_cross)
plot(tsClose > 0 ? tsClose : na, "Trailing", color.rgb(251, 64, 64), 2, plot.style_cross)
plot(strategy.position_avg_price - strategy.position_avg_price * tsact > 0 ? strategy.position_avg_price - strategy.position_avg_price * tsact : na, "TS Activation", color.fuchsia, 2, plot.style_cross)