অ্যাডাপ্টিভ স্টপ ট্রেইলিং কৌশল


সৃষ্টির তারিখ: 2023-10-08 15:06:28 অবশেষে সংশোধন করুন: 2023-10-08 15:06:28
অনুলিপি: 0 ক্লিকের সংখ্যা: 771
1
ফোকাস
1617
অনুসারী

ওভারভিউ

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

কৌশল নীতি

  1. এটিআর সূচকটি গণনা করুন, এটিআর মানটি স্টপ লস রেঞ্জের জন্য একটি প্যারামিটার a দ্বারা গুণিত করুন।
  2. EMA গড় রেখা গণনা করুন।
  3. যখন দাম EMA গড়রেখা অতিক্রম করে তখন বেশি করুন, যখন EMA গড়রেখা অতিক্রম করে তখন খালি করুন।
  4. স্বনির্ধারিত স্টপ অ্যালগরিদম ব্যবহার করে স্টপ বিট xATRTrailingStop স্বয়ংক্রিয়ভাবে সামঞ্জস্য করুন, নিয়মটি নিম্নরূপঃ
    • যখন দাম স্টপ লস অতিক্রম করে, তখন স্টপ লসকে মূল্যের স্টপ লস রেঞ্জের nLoss-এর বিয়োগের সাথে সামঞ্জস্য করা হয়।
    • যখন দাম নীচে স্টপ লস অতিক্রম করে, তখন স্টপ লসটি মূল্যের সাথে স্টপ লস রেঞ্জের nLoss যোগ করে।
    • অন্যথায়, স্টপ লস স্থির থাকবে।
  5. যখন দাম স্টপ লস ট্রিগার করে তখন পজিশন স্টপ।

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

  1. স্ব-অনুকূলিত ক্ষতি ব্যবস্থা বাস্তবায়িত হয়েছে, যা বাজারের অস্থিরতার পরিমাণ অনুযায়ী স্বয়ংক্রিয়ভাবে ক্ষতির মাত্রা সামঞ্জস্য করতে পারে, কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে।
  2. এটিআর সূচকের সাথে যুক্ত করে যুক্তিসঙ্গত স্টপ রেঞ্জের হিসাব করুন, খুব বড় বা খুব ছোট স্টপ এড়াতে।
  3. ইএমএ ব্যবহার করে ট্রেডিং সিগন্যাল তৈরি করা যায়, অর্থহীন লেনদেন কমাতে এবং বাজারের গোলমাল ফিল্টার করতে।
  4. কৌশলগুলি সহজ এবং স্পষ্ট, কোডটি সহজে বোঝা যায়, যাচাই করা এবং অপ্টিমাইজ করা সহজ।
  5. ইনপুট প্যারামিটারগুলি বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে পারে।

ঝুঁকি ও উন্নতি

  1. EMA গড় লাইন ট্রেডিং সিগন্যাল তৈরি করতে পারে যা দেরিতে প্রবেশের কারণ হতে পারে। অন্যান্য সূচক ব্যবহার করে সিদ্ধান্ত গ্রহণের জন্য দেরিতে প্রবেশের বিষয়টি বিবেচনা করা যেতে পারে।
  2. পজিশনের সময় অনিশ্চিত, একক স্টপ লস আকার নিয়ন্ত্রণ করা যায় না। লক্ষ্য লাভ বা সর্বাধিক পজিশনের সময়টি খুব বড় ক্ষতি এড়াতে পারে।
  3. প্রবণতা বাজারগুলিতে, স্টপ লস খুব ঘন ঘন ট্রিগার করা হতে পারে। আপনি প্রবণতা পরিস্থিতির উপর ভিত্তি করে প্যারামিটারগুলি সামঞ্জস্য করতে বা ফিল্টার শর্ত যুক্ত করতে বিবেচনা করতে পারেন।
  4. বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে প্যারামিটারগুলিকে সামঞ্জস্য করা উচিত, যেমন এটিআর চক্র, স্টপ লস গুণক ইত্যাদি। ডিফল্ট মানগুলি অন্ধভাবে ব্যবহার করা উচিত নয়।

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

  1. ট্রেডিংয়ে ট্রেডিংয়ের প্রবণতা নির্ধারণের জন্য একটি সূচক ব্যবহার করা যেতে পারে, ট্রেডিংয়ের প্রবণতা অনুসারে বিটকয়েন করা যেতে পারে এবং বিপরীতমুখী ট্রেডিং এড়ানো যায়।
  2. স্টপ লস মপলিফায়ারটি ওভারল্যাপের আকারের সাথে সামঞ্জস্য করা যেতে পারে এবং বড় ওভারল্যাপের ক্ষেত্রে স্টপ লসের পরিধি যথাযথভাবে শিথিল করা যেতে পারে।
  3. আপনি সর্বোচ্চ পজিশন সময় সেট করতে পারেন এবং নির্দিষ্ট সময়ের পরে সক্রিয়ভাবে ক্ষতি বন্ধ করতে পারেন।
  4. আপনি একটি চলমান স্টপ কৌশল যোগ করতে পারেন, যেখানে আপনি আপনার স্টপকে ধাপে ধাপে বাড়িয়ে দিতে পারেন।
  5. এটিআর চক্রের পরামিতিগুলি শেয়ারের বৈশিষ্ট্য অনুসারে কাস্টমাইজ করা যেতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2100, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////


xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy  and time_cond)
strategy.entry("short", false, when = sell and time_cond)