ট্রেডিং কৌশল অনুসরণ করে ATR এবং RSI ভিত্তিক প্রবণতা

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

সারসংক্ষেপ

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

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

  1. এটিআর এবং আরএসআই গণনা করুন। এটিআর একটি সময়ের মধ্যে গড় মূল্যের অস্থিরতা প্রতিফলিত করে। আরএসআই ষাঁড় এবং ভালুকের মধ্যে শক্তি তুলনা প্রতিফলিত করে।

  2. যখন ATR এর চলমান গড়ের চেয়ে বেশি হয়, তখন এটি ট্রেডিংয়ের জন্য উপযুক্ত একটি উচ্চ অস্থিরতার সময় বলে মনে করা হয়।

  3. আরএসআই যখন ওভারকুপিং লাইনের উপরে থাকে, তখন লম্বা হয়ে যায়। আরএসআই যখন ওভারসোল্ড এলাকার নিচে থাকে, তখন শর্ট হয়ে যায়।

  4. লং পরে, উচ্চ পয়েন্টকে একটি নির্দিষ্ট অনুপাত দ্বারা গুণিত করে ট্রেলিং স্টপ লস মূল্য হিসাবে ব্যবহার করুন। সংক্ষিপ্ত পরে, নিম্ন পয়েন্টকে একটি নির্দিষ্ট অনুপাত দ্বারা গুণিত করে ট্রেলিং স্টপ লস মূল্য হিসাবে ব্যবহার করুন।

  5. লাভের অনুপাত অনুযায়ী মুনাফা নিন।

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

  1. স্টপ লস হ্রাস করার জন্য স্টপ লস অর্ডার সর্বাধিক করতে পারে।

  2. আরএসআই কার্যকরভাবে বল এবং ভালুকের শক্তি মূল্যায়ন করতে পারে যাতে রেঞ্জ-বান্ধব বাজারে বারবার পজিশন খোলা যায় না।

  3. এটিআর একটি অস্থিরতা সূচক হিসাবে, পরিসীমা-সীমাবদ্ধ বাজারগুলি ফিল্টার করতে পারে এবং কেবল ট্রেন্ডিং বাজারে বাণিজ্য করতে পারে।

  4. মুনাফার অনুপাত থেকে মুনাফা গ্রহণ কিছু মুনাফা লক করতে পারে।

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

  1. এটিআর এবং আরএসআই উভয়ই বিলম্বিত সূচক, যা দেরী প্রবেশের সময় হতে পারে। প্যারামিটারগুলি সিস্টেমকে আরও সংবেদনশীল করার জন্য অনুকূলিত করা যেতে পারে।

  2. স্টপ লস এবং টেক লাভের জন্য স্থির লাভ ও ক্ষতির অনুপাত অত্যধিক অপ্টিমাইজেশনের প্রবণতা রয়েছে, ব্যাকটেস্টের ফলাফলের ভিত্তিতে সতর্কতার সাথে সেট করা উচিত।

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

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

  1. সিস্টেমকে আরো সংবেদনশীল করার জন্য ATR এবং RSI এর পরামিতিগুলি অপ্টিমাইজ করুন।

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

  3. ডায়নামিক স্টপ লস ব্যবহার করে দেখুন এবং ফিক্সড সেটিংসের পরিবর্তে লাভের অনুপাত ব্যবহার করুন।

  4. ট্রেডিং আকার নিয়ন্ত্রণের ব্যবস্থা যোগ করার কথা বিবেচনা করুন।

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

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


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © liwei666
//@version=5
// # ========================================================================= #
// #                   |   Strategy  |
// # ========================================================================= #
strategy(
 title                = "ATR_RSI_Strategy v2[liwei666]",
 shorttitle           = "ATR_RSI_Strategy",
 overlay              =  true,
 max_lines_count                 =  500, 
 max_labels_count                =  500, 
 max_boxes_count                 =  500,
 max_bars_back = 5000,
 initial_capital = 10000,
 default_qty_type=strategy.percent_of_equity, 
 default_qty_value=50, commission_type=strategy.commission.percent, pyramiding=1, 
 commission_value=0.05
 )
// # ========================================================================= #
// #                   |   Strategy  |
// # ========================================================================= #

atr_length = input.int(26, "atr_length", minval = 6, maxval = 100, step=1)
atr_ma_length = input.int(45, "atr_ma_length", minval = 6, maxval = 100, step=1)
rsi_length = input.int(15, "rsi_length", minval = 6, maxval = 100, step=1)
rsi_entry = input.int(10, "rsi_entry", minval = 6, maxval = 100, step=1)
atr_ma_norm_min = input.float(0.3, "atr_ma_norm_min", minval = 0.1, maxval = 0.5, step=0.1)
atr_ma_norm_max = input.float(0.7, "atr_ma_norm_max", minval = 0.5, maxval = 1, step=0.1)
trailing_percent= input.float(1.5, "trailing_percent", minval = 0.1, maxval = 2, step=0.1)

var rsi_buy = 50 + rsi_entry
var rsi_sell = 50 - rsi_entry

sma_norm_h_45() => 
    source = high
    n = 45
    sma = ta.sma(source, n) 
    sma_norm = (sma - ta.lowest(sma, n)) / (ta.highest(sma,n) - ta.lowest(sma, n))
    sma_norm

atr_value = ta.atr(atr_length)
atr_ma = ta.sma(atr_value, atr_ma_length) 
rsi_value = ta.rsi(close, length = rsi_length) 
atr_ma_norm = atr_ma / close * 100
sma_norm = sma_norm_h_45()

var intra_trade_high = 0.0
var intra_trade_low = 0.0

if strategy.position_size == 0
    intra_trade_high := high
    intra_trade_low := low

    if atr_ma_norm >= atr_ma_norm_min and atr_ma_norm <= atr_ma_norm_max
        if atr_value > atr_ma
            if rsi_value > rsi_buy
                strategy.entry("B1", strategy.long, limit = close + 5 )
            else if rsi_value < rsi_sell
                strategy.entry("S1", strategy.short, limit = close - 5 )
else if strategy.position_size > 0
    intra_trade_high := math.max(intra_trade_high, high)
    intra_trade_low := low

    long_tp = intra_trade_high * (1 - trailing_percent / 100)
    strategy.exit("Exit B1", from_entry="B1", stop = long_tp, limit = strategy.position_avg_price * 1.03)

else if strategy.position_size < 0
    intra_trade_high := high
    intra_trade_low := math.min(intra_trade_low, low) 

    short_tp = intra_trade_low * (1 + trailing_percent / 100)
    strategy.exit("Exit S1", from_entry="S1", stop = short_tp, limit = strategy.position_avg_price * 0.94)

আরো