ইউটি বট সূচক ভিত্তিক এটিআর ট্রেলিং স্টপ কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি কোয়ান্টনমড দ্বারা বিকাশিত ইউটি বট সূচকের উপর ভিত্তি করে এবং একটি ট্রেলিং স্টপ লস ধারণা অন্তর্ভুক্ত করে। মূল কোডটি @Yo_adriiiiaan লিখেছেন এবং @HPotter দ্বারা সংশোধন করা হয়েছে। কৌশলটি LuxAlgo এর স্মার্ট মানি ধারণাগুলির সাথে একত্রে ব্যবহার করা হবে। বর্তমানে, কৌশলটি পরীক্ষার পর্যায়ে রয়েছে।

কৌশল নীতি

এই কৌশলটির মূল নীতিগুলি নিম্নরূপঃ

  1. যখন বন্ধের মূল্য 50 পেরিওডের সাধারণ চলমান গড়ের চেয়ে বেশি হয়, তখন একটি দীর্ঘ বাণিজ্য প্রবেশ করা হয়।
  2. লং পজিশনের জন্য, একটি ট্রেইলিং স্টপ লস মূল্য সেট করা হয়। ট্রেইলিং স্টপ লস মূল্য বর্তমান ক্লোজিং মূল্যের 80% (1-20%) । ট্রেইলিং স্টপ লস মূল্য দাম বাড়ার সাথে সাথে উপরে চলে যায় তবে নেমে যায় না, এইভাবে মুনাফা রক্ষা করে।
  3. শর্ট পজিশনের জন্য, একটি ট্রেলিং স্টপ লস মূল্যও সেট করা হয়। ট্রেলিং স্টপ লস মূল্য বর্তমান ক্লোজিং মূল্যের 120% (1+20%) । ট্রেলিং স্টপ লস মূল্য দামের পতনের সাথে নেমে যায় তবে উপরে যায় না।
  4. ATR (Average True Range) ট্রেলিং স্টপের জন্য একটি রেফারেন্স হিসাবে ব্যবহৃত হয়। ATR ট্রেলিং স্টপের দামের জন্য গণনার পদ্ধতিটি হ'লঃ উপরে যাওয়ার সময়, পূর্ববর্তী ATR ট্রেলিং স্টপের দামের বৃহত্তরটি নিন এবং (বর্তমান বন্ধের মূল্য - ATR * কী মান); নেমে যাওয়ার সময়, পূর্ববর্তী ATR ট্রেলিং স্টপের দামের ছোটটি নিন এবং (বর্তমান বন্ধের মূল্য + ATR * কী মান) । কী মানটি একটি ব্যবহারকারী-সেট প্যারামিটার যা ট্রেলিং স্টপের সংবেদনশীলতা সামঞ্জস্য করতে ব্যবহৃত হয়।
  5. এটিআর ট্রেলিং স্টপ মূল্যের অগ্রগতির ভিত্তিতে বর্তমান অবস্থানের দিক নির্ধারণ করা হয়। যখন মূল্যটি এটিআর ট্রেলিং স্টপ মূল্যের উপরে ভেঙে যায়, তখন একটি দীর্ঘ অবস্থান রাখা হয়; যখন মূল্যটি এটিআর ট্রেলিং স্টপ মূল্যের নীচে ভেঙে যায়, তখন একটি শর্ট অবস্থান রাখা হয়; অন্যান্য ক্ষেত্রে, বর্তমান অবস্থানের অবস্থা অপরিবর্তিত থাকে।

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

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

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

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

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

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

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

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

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


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

//@version=4
strategy("Trailingstop", overlay=true)

if close > sma(close, 50)
    strategy.entry("long", strategy.long)

// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0

if (strategy.position_size > 0)
    stopValue = close * (1 - Trailperc)
    price_stop_long := max(stopValue, price_stop_long[1])
else
    price_stop_long := 0

if (strategy.position_size > 0)
    strategy.exit(id="stoploss_long", stop=price_stop_long)

// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0

if (strategy.position_size < 0)
    stopValue_short = close * (1 + Trailperc_short)
    price_stop_short := min(stopValue_short, price_stop_short[1])
else
    price_stop_short := 0

if (strategy.position_size < 0)
    strategy.exit(id="stoploss_short", stop=price_stop_short)

// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR

xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
   iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

pos = 0  
pos :=   iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
   iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))

xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue

plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")

আরো