মূল্য গতি ট্র্যাকিং স্টপ লস কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি প্রবণতা দিক নির্ধারণের জন্য মূল্যের গতিবেগ গণনা করে এবং লাভকে লক করার জন্য দ্বিপাক্ষিক ট্র্যাকিং স্টপ সেট করে, প্রবণতা অনুসরণ করে স্টপ লস উপলব্ধি করে। কৌশলটি নির্দিষ্ট মুনাফা লক্ষ্যমাত্রা অর্জনের পরেই ট্র্যাকিং শুরু করার জন্য অ্যাক্টিভেশন স্তরগুলিও একত্রিত করে, কার্যকরভাবে অকাল স্টপ লস প্রতিরোধ করে।

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

এটি মূল্যের 12-পরিয়ড গতিবেগ গণনা করে এবং আরও গতির 1-পরিয়ড গতিবেগ গণনা করে। যখন দ্রুত গতিবেগ (1-পরিয়ড গতিবেগ) 0 এর চেয়ে বড় হয়, তখন এটি দীর্ঘ যায়। যখন 0 এর চেয়ে কম হয়, তখন এটি সংক্ষিপ্ত হয়। এটি মূল্যের প্রবণতা নির্ধারণের জন্য মূল্যের গতির দিক পরিবর্তনকে বিচার করে।

এটি ট্রেলিং স্টপ দূরত্ব এবং অ্যাক্টিভেশন স্তর সেট করে। ট্রেলিং স্টপ দূরত্ব নতুন উচ্চ বা নিম্ন যখন দাম নতুন উচ্চ বা নিম্ন পৌঁছেছে থেকে একটি নির্দিষ্ট দূরত্ব স্টপ সমন্বয় বোঝায়। অ্যাক্টিভেশন স্তর মানে একটি নির্দিষ্ট মুনাফা অনুপাত পৌঁছানোর পরে ট্রেলিং স্টপ শুরু হয়।

কৌশলটি সর্বোচ্চ মূল্য বা সর্বনিম্ন মূল্য ট্র্যাক করে মুনাফা লক করে, যখন দাম সেট স্টপ দূরত্বের বাইরে ফিরে আসে তখন বন্ধ অর্ডার প্রেরণ করে।

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

  1. দ্বৈত গতি নির্ধারণ সঠিকভাবে প্রবণতা দিক বিচার করে, ট্রেড হ্রাস করে, এবং ফাঁদে পড়া এড়ায়।

  2. নমনীয় ট্রেইলিং স্টপ দূরত্ব ঝুঁকি এবং লাভের লক হ্রাস করে।

  3. সক্রিয়করণ স্তরটি অকাল স্টপ লসকে প্রতিরোধ করে, কিছু লাভের লক্ষ্যমাত্রা অর্জনের পরেই ট্রেলিং সক্ষম করে।

  4. দুই দিকের স্টপগুলি লং এবং শর্ট উভয় ক্ষেত্রেই ঝুঁকি নিয়ন্ত্রণ করে।

  5. সহজ এবং কার্যকর গণনা, সহজেই বোঝা এবং বাস্তবায়ন।

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

  1. দ্বৈত গতির ফলে বিপরীত সংকেত উৎপন্ন হতে পারে, যা প্রবণতা ফিল্টার প্রয়োজন।

  2. অত্যধিক স্টপ দূরত্ব উল্লেখযোগ্য ক্ষতি হতে পারে।

  3. উচ্চ সক্রিয়করণ স্তর স্টপ সুযোগ মিস করতে পারে।

  4. সর্বোত্তম স্টপ খুঁজে পেতে আরো পরামিতি পরীক্ষা এবং অপ্টিমাইজেশান প্রয়োজন।

প্রবণতা বিচার এবং পরামিতি অপ্টিমাইজেশান মাধ্যমে মিথ্যা সংকেত কমাতে পারেন। সেরা কনফিগারেশন খুঁজে পেতে বিভিন্ন পণ্য এবং পরামিতি সেট উপর পরীক্ষা।

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

  1. ট্রেন্ডের জন্য বাজার কাঠামো স্বীকৃতি একত্রিত করা, বিপরীত ট্রেডিং এড়ানো।

  2. সিগন্যালের নির্ভুলতা বাড়াতে ভলিউম পরিবর্তন, ব্রেকআউট সংক্ষেপের মতো আরও সময় নির্ধারণের শর্ত যুক্ত করুন।

  3. বিভিন্ন স্টপ দূরত্ব এবং অ্যাক্টিভেশন স্তর পরীক্ষা করে প্যারামিটার অপ্টিমাইজ করুন।

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

  5. ঝুঁকি নিয়ন্ত্রণের জন্য আংশিক বা চলমান স্টপ সেট করুন।

সিদ্ধান্ত

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


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

আরো