ডায়নামিক ট্রেলিং স্টপ লস স্ট্র্যাটেজি

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

img

সারসংক্ষেপ

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

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

  1. প্রবণতা দিক নির্ধারণের জন্য দৈনিক মোমবাতিগুলির বন্ধের মূল্য পূর্ববর্তী দৈনিক মোমবাতির সর্বোচ্চ এবং সর্বনিম্ন মূল্যের সাথে তুলনা করুন। যদি বন্ধের মূল্য পূর্ববর্তী দিনের সর্বোচ্চ মূল্যের চেয়ে বেশি হয় তবে এটি একটি আপট্রেন্ড হিসাবে সংজ্ঞায়িত করা হয়। যদি বন্ধের মূল্য পূর্ববর্তী দিনের সর্বনিম্ন মূল্যের চেয়ে কম হয় তবে এটি একটি ডাউনট্রেন্ড হিসাবে সংজ্ঞায়িত করা হয়।

  2. যখন আপট্রেন্ড থাকে, তখন ১৫ মিনিটের মোমবাতি বন্ধের মূল্য পূর্ববর্তী ১৫ মিনিটের মোমবাতির সর্বোচ্চ মূল্যের চেয়ে বেশি হলে লং যান। যখন ডাউনট্রেন্ড থাকে, তখন ১৫ মিনিটের মোমবাতির বন্ধের মূল্য পূর্ববর্তী ১৫ মিনিটের মোমবাতির সর্বনিম্ন মূল্যের চেয়ে কম হলে শর্ট যান।

  3. লং যাওয়ার পর আগের ১৫ মিনিটের মোমবাতিটির সর্বনিম্ন মূল্য স্টপ লস মূল্য হিসেবে সেট করুন। শর্ট হওয়ার পর আগের ১৫ মিনিটের মোমবাতির সর্বোচ্চ মূল্য স্টপ লস মূল্য হিসেবে সেট করুন।

  4. যখন ১৫ মিনিটের মোমবাতি আবার নতুন উচ্চতা বা নিম্নতা তৈরি করে, তখন স্টপ লস মূল্য সংশোধন করুন। দীর্ঘ যাওয়ার পরে নতুন নিম্নতায় সামঞ্জস্য করুন। সংক্ষিপ্ত হওয়ার পরে নতুন উচ্চতায় সামঞ্জস্য করুন। এটি গতিশীল ট্রেলিং স্টপ লস উপলব্ধি করে।

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

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

বিশেষ করে সুবিধাগুলির মধ্যে রয়েছেঃ

  1. ট্রেন্ড অপারেশনের ভিত্তিতে বিচারগুলি বাজারের প্রবণতা সময়মতো নির্ধারণ করতে পারে এবং সঠিক ট্রেডিং দিক নির্বাচন করতে পারে।

  2. ১৫ মিনিটের টাইমফ্রেম ট্রেডিং আরও বেশি সুযোগের জন্য ঘন ঘন প্রবেশ এবং প্রস্থান করতে দেয়।

  3. নতুন উচ্চতা বা নিম্নতার উপর ভিত্তি করে গতিশীল স্টপ লস সমন্বয় স্টপ লসের ঝুঁকি হ্রাস করে।

  4. একটি যুক্তিসঙ্গত স্টপ লস পজিশনিং অপ্রয়োজনীয় ক্ষতি এড়ায়।

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

এই কৌশলটির মূল ঝুঁকিটি প্রবণতা মূল্যায়নের ভুল থেকে আসে। নির্দিষ্ট ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. ভুল দৈনিক প্রবণতা বিচার ভুল ট্রেডিং দিক হতে পারে।

  2. স্বল্পমেয়াদে দামগুলি মারাত্মকভাবে পরিবর্তিত হতে পারে, যার ফলে ১৫ মিনিটের স্টপ লস হওয়ার সম্ভাবনা বৃদ্ধি পায়।

  3. প্রবণতা বিপরীত পয়েন্টগুলির ভুল সনাক্তকরণ ক্ষতির কারণ হতে পারে।

সংশ্লিষ্ট সমাধানঃ

  1. শুধুমাত্র একটি সময়সীমার উপর নির্ভর করা এড়াতে ব্যাপক রায়ের জন্য অন্যান্য সময়সীমার সূচক যোগ করুন।

  2. বাজারের অস্থিরতা মূল্যায়ন করুন এবং উচ্চ অস্থিরতার সময় যথাযথভাবে স্টপ লস পরিসীমা শিথিল করুন।

  3. ট্রেন্ড রিভার্স পয়েন্ট সনাক্তকরণ প্রক্রিয়া যোগ করুন ট্রেন্ড রিভার্স আগে সময়মত পজিশন বন্ধ করতে।

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

আরও অপ্টিমাইজেশনের সুযোগ রয়েছে:

  1. ট্রেন্ড ক্যাপচার অপ্টিমাইজ করার জন্য অন্যান্য টাইমফ্রেম সূচক যোগ করুন।

  2. সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন স্টপ লস অনুপাত সেটিং পরীক্ষা করুন।

  3. ভলিউম ডিভার্জেন্স থেকে ভুল এড়াতে ভলিউম সূচক যোগ করুন।

  4. প্রবণতা বিপরীত প্রক্রিয়া যোগ করুন প্রস্থান পয়েন্ট অপ্টিমাইজ করার জন্য।

  5. স্টপ লস হ্রাসের ঝুঁকি আরও হ্রাস করার জন্য ট্রেলিং স্টপ মূল্যের ব্যবধান বাড়ানোর মূল্যায়ন করুন।

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

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


/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-15 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Anand's Strategy", overlay=true)

// Get the high and low of the previous day's candle
prev_high = request.security(syminfo.tickerid, "D", high[2])
prev_low = request.security(syminfo.tickerid, "D", low[2])

// var float prev_high = na
// var float prev_low = na

prev_close = request.security(syminfo.tickerid, "D", close[1])


getDayIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "D", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "D", low[_bar])
    [_indexed_high, _indexed_low]

var index = 2

while index >= 0
    [indexed_high_D, indexed_low_D] =  getDayIndexedHighLow(index)
  
    if prev_close > indexed_high_D or prev_close < indexed_low_D
        prev_high := indexed_high_D
        prev_low := indexed_low_D
        break
    // Decrease the index to move to the previous 15-minute candle
    index := index - 1


// Determine the trade direction based on the candle criterion
trade_direction = prev_close > prev_high ? 1 : (prev_close < prev_low ? -1 : 0)

// Get the current close from 15-minute timeframe
current_close = request.security(syminfo.tickerid, "15", close[1])
prev_high_15m = request.security(syminfo.tickerid, "15", high[2])
prev_low_15m = request.security(syminfo.tickerid, "15", low[2])

// var float prev_high_15m = na
// var float prev_low_15m = na

getIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "15", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "15", low[_bar])
    [_indexed_high, _indexed_low]


// Loop through previous 15-minute candles until the condition is met
var  i = 2

while i >= 2
    [indexed_high_15m, indexed_low_15m] =  getIndexedHighLow(i)
  
    if current_close > indexed_high_15m or current_close < indexed_low_15m
        prev_high_15m := indexed_high_15m
        prev_low_15m := indexed_low_15m
        break
    // Decrease the index to move to the previous 15-minute candle
    i := i - 1



buy_condition = trade_direction == 1 and current_close > prev_high_15m
stop_loss_buy = prev_low_15m

// Sell Trade Criteria in Negative Trend
sell_condition = trade_direction == -1 and current_close < prev_low_15m
stop_loss_sell = prev_high_15m


// Trailing Stop Loss for Buy Trade
// Custom Trailing Stop Function for Buy Trade
var float trail_stop_buy = na
trailing_buy_condition = buy_condition and current_close > trail_stop_buy
if trailing_buy_condition
    trail_stop_buy := current_close

// Custom Trailing Stop Function for Sell Trade
var float trail_stop_sell = na
trailing_sell_condition = sell_condition and current_close < trail_stop_sell
if trailing_sell_condition
    trail_stop_sell := current_close

// Take Buy Trade with Stop Loss
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy Stop Loss", "Buy", stop=stop_loss_buy)

// Take Sell Trade with Stop Loss
if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell Stop Loss", "Sell", stop=stop_loss_sell)

// Set the background color based on the trade direction
bgcolor(trade_direction == 1 ? color.new(color.green, 90) : trade_direction == -1 ? color.new(color.red, 90) : na)

আরো