ট্রেইলিং স্টপ লস সহ আলফা ট্রেন্ড কৌশল

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

img

সারসংক্ষেপ

ট্রেলিং স্টপ লস সহ আলফা ট্রেন্ড কৌশলটি একটি ট্রেলিং স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করে আলফা ট্রেন্ড কৌশলটির একটি উন্নত সংস্করণ, যা ঝুঁকিগুলিকে আরও কার্যকরভাবে নিয়ন্ত্রণ করতে এবং সামগ্রিক রিটার্নগুলি উন্নত করতে পারে।

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

কৌশলটি প্রথমে আলফা সূচকটি ব্যবহার করে দামের প্রবণতা নির্ধারণ করতে। যখন আলফা সূচকটি উপরে যায়, এটি একটি বুলিশ সংকেত। যখন আলফা সূচকটি নীচে যায়, এটি একটি হ্রাস সংকেত। কৌশলটি আলফা সূচকের সোনার ক্রস এবং মৃত ক্রসের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত তৈরি করে।

এদিকে, একটি ট্রেইলিং স্টপ লস প্রক্রিয়া সক্ষম করা হয়। ট্রেইলিং স্টপ লস স্তরটি দিনের বন্ধের দামের 10% এ ডিফল্ট হয়। দীর্ঘ পজিশন ধরে রাখার সময়, যদি দাম স্টপ লসের স্তরের নীচে পড়ে, কৌশলটি স্টপ লসের জন্য অবস্থান থেকে বেরিয়ে আসবে। একইভাবে শর্ট পজিশনের জন্য। এটি লাভের আরও ভাল লক করতে এবং ঝুঁকি হ্রাস করতে সহায়তা করে।

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

  1. আলফা প্রবণতা সহজ চলমান গড় এবং অন্যান্য সূচকগুলির তুলনায় মূল্যের প্রবণতা নির্ধারণের জন্য শক্তিশালী ক্ষমতা রাখে।

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

  3. এই কৌশলটি শক্তিশালী ঝুঁকি নিয়ন্ত্রণ ক্ষমতা আছে। এমনকি অনুপযুক্ত বাজার অবস্থার মধ্যে, ক্ষতি এখনও ন্যূনতম করা যেতে পারে।

  4. কম রেফারেন্স ইনপুট সহ, এই কৌশলটি উচ্চ ফ্রিকোয়েন্সি ট্রেডিংয়ের জন্য উপযুক্ত।

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

  1. পার্শ্ববর্তী পরিসরের বাজারে, কৌশলটি অনেক অপ্রয়োজনীয় ট্রেডিং সংকেত তৈরি করতে পারে, ট্রেডিং খরচ এবং স্লিপিং ক্ষতি বৃদ্ধি করে।

  2. ট্রেলিং স্টপ লস সক্ষম করার সময়, স্টপ লস শতাংশ যথাযথভাবে সেট করা দরকার। অত্যধিক উচ্চ বা কম শতাংশ উভয়ই কৌশলটির লাভজনকতার জন্য অনুকূল হবে না।

  3. দামের তীব্র ওঠানামা হওয়ায় স্টপ লস হওয়ার সম্ভাবনা উল্লেখযোগ্যভাবে বৃদ্ধি পাবে, যার ফলে পজিশনে আটকে থাকার ঝুঁকি বাড়বে।

  4. স্টপ লস প্যারামিটারগুলি অপ্টিমাইজ করার সময়, কেবলমাত্র সর্বোচ্চ রিটার্নের জন্য নয়, অন্তর্নিহিত বৈশিষ্ট্য এবং ট্রেডিং ফ্রিকোয়েন্সি সহ বিভিন্ন কারণ বিবেচনা করা উচিত।

উপরের ঝুঁকিগুলি আলফা সূচকের পরামিতিগুলি সামঞ্জস্য করে, ডায়নামিক স্টপ লস সেট করে, ট্রেডিং চক্রের দৈর্ঘ্য সংক্ষিপ্ত করে ইত্যাদি হ্রাস করা যেতে পারে।

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

  1. আরও উপযুক্ত আলফা সূচক প্যারামিটার সংমিশ্রণ খুঁজে পেতে বিভিন্ন সূচক পরামিতি পরীক্ষা করা যেতে পারে।

  2. এটিআর-এর উপর ভিত্তি করে গতিশীলভাবে স্টপ লস শতাংশ নির্ধারণের চেষ্টা করুন যাতে বাজারের ওঠানামা আরও ভালভাবে মানিয়ে নেওয়া যায়।

  3. অন্য সূচক যেমন MACD, KD এর সাথে মিশ্রিত করে কিছু মিথ্যা সংকেত ফিল্টার করুন।

  4. মেশিন লার্নিং কৌশল ব্যবহার করে প্যারামিটার নির্বাচনের বুদ্ধিমানতা উন্নত করার জন্য লাইভ ট্রেডিং এবং ব্যাকটেস্টিং ফলাফলের ভিত্তিতে প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অনুকূলিত করা যেতে পারে।

সিদ্ধান্ত

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


/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5

strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))


// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
//     strategy.entry('My Long Entry Id', strategy.long)

// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
//     strategy.entry('My Short Entry Id', strategy.short)



longCondition = buySignalk
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = sellSignalk
if (shortCondition)
    strategy.entry("Short", strategy.short)
    

enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01



longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    math.min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')

    
if enableTrailing
    //EXIT TRADE @ TSL
    if strategy.position_size > 0
        strategy.exit(id='Close Long', stop=longStopPrice)
    if strategy.position_size < 0
        strategy.exit(id='Close Short', stop=shortStopPrice)


 

আরো