ATR সূচকের উপর ভিত্তি করে অভিযোজিত ট্রেইলিং স্টপ লস কৌশল


সৃষ্টির তারিখ: 2023-10-19 12:42:26 অবশেষে সংশোধন করুন: 2023-10-19 12:42:26
অনুলিপি: 0 ক্লিকের সংখ্যা: 843
1
ফোকাস
1617
অনুসারী

ATR সূচকের উপর ভিত্তি করে অভিযোজিত ট্রেইলিং স্টপ লস কৌশল

ওভারভিউ

এই কৌশলটির মূল ধারণাগুলি হ’ল গড় সত্যিকারের তরঙ্গদৈর্ঘ্য (এটিআর) সূচক ব্যবহার করে একটি স্ব-অনুকূলিত ট্র্যাকিং স্টপ লাইন সেট করা যাতে লাভজনক অবস্থানগুলি সর্বাধিক সুরক্ষিত হয় এবং অকাল ব্রেকডাউন এড়ানো যায়। এটিআর সূচকগুলি বাজারের ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির ওঠানামার সাথে সামঞ্জস্য রেখে বাজারটির প্রভাবকে প্রতিরোধ করার জন্য একটি ছায়া সুরক্ষার সাথে সামঞ্জস্য রেখে বা না তা বেছে নিতে পারে।

কৌশল নীতি

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

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

  1. এটিআর সময়ের জন্য এটিআর গণনা করুন।

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

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

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

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

  6. যদি কোন স্টপ-অফ ট্রিগার না করা হয়, তাহলে স্টপ-অফ লাইনটি ক্লোজ-আপ প্রাইস থেকে স্টপ-অফ লাইনের দূরত্ব অনুযায়ী সামঞ্জস্য করা হবে।

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

  8. স্টপ লিনের উপরের এবং নীচের সীমা দেখতে ব্রিনের কক্ষপথটি আঁকুন।

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

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

সামর্থ্য বিশ্লেষণ

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

  1. এটিআর সূচক ব্যবহার করে স্টপ-ডেস্কে গতিশীলভাবে সামঞ্জস্য করা যায়, যা বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্যপূর্ণ।

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

  3. বুলিনের কক্ষপথে যোগদান করে, স্টপ লিনের দৃশ্যমানতার উপরের এবং নীচের সীমা গঠন করে।

  4. ইলেকট্রনিক্স ও প্রযুক্তিগত প্রযুক্তির ব্যবহারের ক্ষেত্রে, এই প্রযুক্তির ব্যবহারের ফলে, আপনি আপনার কম্পিউটারে একটি নতুন ডিভাইস তৈরি করতে পারবেন।

  5. ট্রেকিং স্টপ লস হিসাবে ব্যবহার করা যেতে পারে, যাতে লাভজনক অবস্থানগুলি সর্বাধিক প্রত্যাহার করা যায়।

  6. “এটি একটি সহজ কৌশল, এবং প্যারামিটারগুলি সহজেই অপ্টিমাইজ করা যায় না”।

  7. এটি বিভিন্ন জাত এবং সময়কালে ব্যবহার করা যেতে পারে। এটি ব্যাপকভাবে প্রয়োগ করা যেতে পারে।

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

এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক হওয়া দরকারঃ

  1. এটিআর সূচকগুলি বাজারের অপ্রত্যাশিত ঘটনাগুলির প্রতিক্রিয়াতে বিলম্বিত হয়, যার ফলে স্টপড্র্যাপের দূরত্ব অত্যধিক হতে পারে।

  2. ফ্রিকোয়েন্সি সেট করা খুব বড় হলে, স্টপ ডেলিভারি খুব বড় হয়ে যায়, যা ক্ষতির ঝুঁকি বাড়ায়।

  3. শ্যাডো লাইন সুরক্ষা ফাংশনটি স্টপড্যাম্প লাইনকে খুব বেশি শিথিল করে যখন কম্পনটি বাড়তে থাকে।

  4. এন্ট্রি/এক্সিট নীতিমালা না মানলে এন্ট্রি/এক্সিট নীতিমালা কার্যকর হবে না।

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

  6. স্টপ লস অতিক্রম করলে ক্ষতির পরিমাণ বাড়তে পারে, যার জন্য কার্যকর তহবিল ব্যবস্থাপনা প্রয়োজন।

অপ্টিমাইজেশান দিক

এই নীতিটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ

  1. বিভিন্ন এটিআর চক্রের পরামিতি পরীক্ষা করুন এবং স্টপ-ড্যামেজ দূরত্ব অপ্টিমাইজ করুন।

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

  3. উইপসো রোধ করতে ছায়া সুরক্ষা চক্রের প্যারামিটারগুলি অনুকূলিত করুন।

  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")