এটিআর ট্রেলিং স্টপ ব্যান্ড কৌশল

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

img

সারসংক্ষেপ

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

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

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

বিশেষ করে, কৌশলটি নিম্নলিখিত মূল যুক্তি ব্যবহার করেঃ

  1. এটিআর সময়ের এটিআর মান গণনা করুন (এনএটিআরপিরিয়ড) ।

  2. এটিআর মানকে একটি ফ্যাক্টর (এনএটিআর মাল্টিপ) দ্বারা গুণ করে বেস স্টপ লস দূরত্ব nLoss পাওয়া যায়।

  3. বর্তমান উচ্চ, নিম্ন এবং পূর্ববর্তী সময়ের স্টপ লস লাইনের উপর ভিত্তি করে স্টপ লস লাইন xATRTrailingStop আপডেট করুন।

  4. যদি বর্তমান নিম্ন পূর্ববর্তী সময়কালের স্টপ লস লাইন ট্রিগার করে, স্টপ লস লাইন nLoss দূরত্ব দ্বারা নিম্ন পর্যন্ত সরানো হয়।

  5. যদি বর্তমান উচ্চতা পূর্ববর্তী সময়ের স্টপ লস লাইন ট্রিগার করে, স্টপ লস লাইন nLoss দূরত্ব দ্বারা উচ্চতার উপরে নেমে যায়।

  6. যদি স্টপ লস ট্রিগার না হয়, তবে স্টপ লস লাইনটি বন্ধের মূল্যের দূরত্বের ভিত্তিতে সামঞ্জস্য করুন।

  7. স্টপ লস লাইনের আরও অপ্টিমাইজেশনের জন্য বিকল্প উইক সুরক্ষা দূরত্ব যুক্ত করুন।

  8. স্টপ লস লাইনের উপরের এবং নীচের সীমা দৃশ্যমান করার জন্য বোলিংজার ব্যান্ডগুলি গ্রাফ করুন।

  9. স্টপ লস লাইনের রঙের উপর ভিত্তি করে অবস্থান দিক নির্ধারণ করুন।

কৌশলটি নমনীয়ভাবে ATR সূচক ব্যবহার করে যাতে স্টপ লস লাইনটি বাজারের অস্থিরতার ভিত্তিতে অভিযোজিতভাবে সামঞ্জস্য করতে পারে, যুক্তিসঙ্গত স্টপ লস দূরত্ব নিশ্চিত করে এবং অপ্রয়োজনীয় স্টপ লস পজিশন হারাতে বাধা দেয়।

সুবিধা

এই কৌশলটির সুবিধাঃ

  1. বিভিন্ন বাজারের অবস্থার সাথে গতিশীলভাবে মানিয়ে নিতে স্টপ লস দূরত্ব সামঞ্জস্য করতে ATR সূচক ব্যবহার করুন।

  2. কাস্টমাইজযোগ্য গুণক স্টপ লস দূরত্বের নমনীয় সমন্বয় করতে দেয়।

  3. বোলিংজার ব্যান্ড যোগ করা স্টপ লস লাইনের উপরের এবং নীচের সীমা ভিজ্যুয়ালাইজেশন প্রদান করে।

  4. ঐচ্ছিক উইক সুরক্ষা বিভিন্ন বাজারে whipsaw এড়ায়।

  5. লাভজনক পজিশনের ড্রডাউন সর্বাধিক করার জন্য স্টপ লস হিসাবে ব্যবহার করা যেতে পারে।

  6. কৌশল যুক্তি স্পষ্ট এবং সহজেই বোঝা যায় কয়েকটি অপ্টিমাইজযোগ্য পরামিতি সহ।

  7. একাধিক পণ্য এবং সময়সীমার জন্য প্রযোজ্য।

ঝুঁকি

এই কৌশলটির কিছু ঝুঁকি উল্লেখ করা উচিতঃ

  1. এটিআর সূচক বাজারের ধাক্কা ধীরে ধীরে প্রতিক্রিয়া দেখায়, যা বড় স্টপ লস দূরত্বের দিকে পরিচালিত করে।

  2. অতিরিক্ত গুণক সেটিং স্টপ লস দূরত্ব বাড়িয়ে তোলে, ক্ষতির ঝুঁকি বাড়ায়।

  3. উইক সুরক্ষা স্টপ লস লাইন খুব আলগা করতে পারে যখন whipsaw বৃদ্ধি পায়।

  4. এন্ট্রি নিয়ম বিবেচনা করা হয় না, এন্ট্রি / আউটসাইট কৌশল হিসাবে ব্যবহার করা যাবে না।

  5. বিভিন্ন পণ্য এবং সময়সীমার জন্য প্রয়োজনীয় পরামিতিগুলির ব্যাপক পরীক্ষা এবং অপ্টিমাইজেশন।

  6. স্টপ লস ব্রেকআউট ক্ষতি বাড়িয়ে তুলতে পারে, যার জন্য কার্যকর মূলধন ব্যবস্থাপনা প্রয়োজন।

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

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. স্টপ লস দূরত্বের অপ্টিমাইজেশান করার জন্য বিভিন্ন ATR সময় পরীক্ষা করুন।

  2. স্টপ লস দূরত্ব এবং সম্ভাব্যতার মধ্যে ভারসাম্য বজায় রাখতে মাল্টিপ্লায়ার সামঞ্জস্য করুন।

  3. Whipsaw প্রতিরোধের জন্য উইক সুরক্ষা সময় অপ্টিমাইজ করুন।

  4. স্টপ লস এর উপরে এন্ট্রি শর্ত যোগ করে এটিকে এন্ট্রি/এক্সাইট কৌশল বানানোর চেষ্টা করুন।

  5. প্রবণতার ভিত্তিতে স্টপ লস দূরত্ব সামঞ্জস্য করতে প্রবণতা সূচক যোগ করুন।

  6. এলিয়ট ওয়েভস তত্ত্বের উপর ভিত্তি করে স্টপ লস সামঞ্জস্য করুন।

  7. একক ক্ষতির পরিমাণ সীমাবদ্ধ করার জন্য পজিশনের আকার যোগ করুন।

সংক্ষিপ্তসার

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


/*backtest
start: 2022-10-12 00:00:00
end: 2023-10-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 13/10/2014
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
// Modified by River to add Bands, and change color of Trailing Stop and add Wick Protection. Now turned into a Strategy for Backtesting Purposes.
// After backtesting, it seems clear that it functions well as a Trailing Stop, but not as an Entry/Exit strategy.
////////////////////////////////////////////////////////////
strategy(title="ATR Trailing Stop Bands Strategy[R] ", overlay = true)
nATRPeriod = input(5)
nATRMultip = input(4)
length = input(30, "#Periods of Wick Protection", minval=2)
bType = input(0, "Max [1] or Avg Wick Protection [0]", minval=0, maxval=1)
avgupperwick = sma(close[1] <= open[1] ? high[1] - open[1] : high[1] - close[1], length)
maxupperwick = highest(close[1] <= open[1] ? high[1] - open[1] : high[1] - close[1], length)
avglowerwick = sma(close[1] > open[1] ? open[1] - low[1] : close[1] - low[1], length)
maxlowerwick = highest(close[1] > open[1] ? open[1] - low[1] : close[1] - low[1], length)
upperwick = bType == 0 ? avgupperwick : maxupperwick
lowerwick = bType == 0 ? avglowerwick : maxlowerwick
xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR 
upperband = iff(high < nz(upperband[1], 0) and high[1] < nz(upperband[1], 0), min(nz(upperband[1]), high + nLoss + upperwick), high + nLoss + upperwick)
lowerband = iff(low > nz(lowerband[1], 0) and low[1] > nz(lowerband[1], 0), max(nz(lowerband[1]), low - nLoss - lowerwick), low - nLoss - lowerwick) 
xATRTrailingStop = iff(low > nz(xATRTrailingStop[1], 0) and low[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), low - nLoss - lowerwick),
 iff(high < nz(xATRTrailingStop[1], 0) and high[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), high + nLoss + upperwick), 
//                        iff(low <= nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), high + nLoss + upperwick, iff(high >= nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), low - nLoss - lowerwick,0))))
 iff(low <= nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), upperband[1], iff(high >= nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), lowerband[1],0))))

pos =	iff(close[1] > nz(xATRTrailingStop[1], 0) and low <= nz(xATRTrailingStop[1], 0), 1,
 iff(close[1] < nz(xATRTrailingStop[1], 0) and high >= nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == 1 ? red: pos == -1 ? green : blue 
plot(upperband, color=red, title="ATR Upper")
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop", linewidth=2)
plot(lowerband, color=green, title="ATR Lower")

longCondition = (color == green and color[1] == red)
if (longCondition)
    strategy.entry("Long", strategy.long)
longExitCondition = (color == red and color[1] == green)
if (longExitCondition)
    strategy.close("Long")

shortCondition = (color == red and color[1] == green)
if (shortCondition)
    strategy.entry("Short", strategy.short)
shortexitCondition = (color == green and color[1] == red)
if (shortexitCondition)
    strategy.close("Short")


আরো