RSI অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় পরিসরের গতিবেগের অগ্রগতি পরিমাণগত কৌশল

RSI SMA EMA TP/SL 风险管理 动量突破 超买超卖 趋势过滤器
সৃষ্টির তারিখ: 2025-04-29 09:10:11 অবশেষে সংশোধন করুন: 2025-04-29 09:10:11
অনুলিপি: 0 ক্লিকের সংখ্যা: 413
2
ফোকাস
319
অনুসারী

RSI অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় পরিসরের গতিবেগের অগ্রগতি পরিমাণগত কৌশল RSI অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় পরিসরের গতিবেগের অগ্রগতি পরিমাণগত কৌশল

ওভারভিউ

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

কৌশল নীতি

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

  1. সংশোধিত RSI গণনা: স্ট্যান্ডার্ড 14 পিরিয়ড RSI এর মান থেকে 50 কে বাদ দিয়ে, সূচকটি 50 থেকে +50 এর মধ্যে ওঠানামা করে, শূন্য রেখাটি একটি নিরপেক্ষ রেফারেন্স পয়েন্ট।

  2. ডায়নামিক থ্রেশহোল্ড সেট করুন: বাজার প্রবণতা অনুযায়ী বিভিন্ন কেন্দ্রীয় মান এবং ওঠানামা পরিসীমা সেট করুন, স্বয়ংক্রিয়ভাবে একটি ষাঁড় বা ভালুকের পরিবেশে সংকেত ট্রিগার থ্রেশহোল্ড সমন্বয় করুন।

    • বুল মার্কেটের কেন্দ্রীয় মানঃ +5 (যখন দাম এসএমএ 200 এর উপরে থাকে)
    • বিয়ার মার্কেটের কেন্দ্রীয় মানঃ -৫ (যখন দাম এসএমএ ২০০ এর নিচে থাকে)
    • অস্থিরতা পরিসীমা ± 2 সেট করুন
  3. সিগন্যাল জেনারেশন লজিক

    • মাল্টি-হেড সিগন্যালঃ যখন RSI আপট্রেন্ডের পরে বিপর্যয় অতিক্রম করে (কেন্দ্রীয় মান + অস্থিরতা পরিসীমা) এবং দাম EMA এর উপরে থাকে (যদি চালু থাকে)
    • খালি মাথা সংকেতঃ যখন RSI-এর পরে সংশোধন করা হয় তখন এটি নিম্ন প্রান্তটি অতিক্রম করে (কেন্দ্রীয় মান - অস্থিরতার পরিধি) এবং দাম EMA-এর নীচে থাকে (যদি চালু থাকে)
  4. লেনদেন ব্যবস্থাপনা: কৌশলটি শুধুমাত্র নির্দিষ্ট ট্রেডিং সময়ের মধ্যে (ডিফল্ট ৯ঃ৩০ থেকে ১৬ঃ০০ ইএসটি) কার্যকর করা হয় এবং প্রতিদিন সর্বোচ্চ ট্রেডিং সংখ্যা (ডিফল্ট ৫ বার) সেট করা যায়।

  5. ঝুঁকি নিয়ন্ত্রণ: সর্বনিম্ন ওঠানামার উপর ভিত্তি করে একটি নির্দিষ্ট স্টপ পয়েন্ট (ডিফল্ট 50 টি টিক) এবং একটি বিকল্প স্টপ পয়েন্ট (ডিফল্ট 30 টি টিক) ।

কৌশলগত সুবিধা

  1. বাজারের সাথে খাপ খাইয়ে নেওয়া: এসএমএ ২০০ এর মাধ্যমে বোর বায়ার মার্কেটকে ভাগ করে, আরএসআই হ্রাসের কেন্দ্রীয় পয়েন্টকে গতিশীলভাবে সামঞ্জস্য করে, যাতে কৌশলটি বিভিন্ন বাজারের পরিস্থিতিতে খাপ খায়।

  2. মাল্টি-ফিল্টার: EMA ডায়নামিক ফিল্টারিং এবং SMA200 ট্রেন্ড ফিল্টারিং এর সাথে মিলিত, সিগন্যালের গুণমান উল্লেখযোগ্যভাবে উন্নত করা হয়েছে এবং ভুয়া ব্রেকআউট হ্রাস করা হয়েছে।

  3. সময় ব্যবস্থাপনা

  4. ঝুঁকি প্রকাশ নিয়ন্ত্রণ দৈনিক লেনদেনের সীমাবদ্ধতা এবং স্বয়ংক্রিয় সমাপ্তি প্যাকেজিং ব্যবস্থাপনার মাধ্যমে অতিরিক্ত লেনদেন এবং রাতারাতি ঝুঁকি রোধ করা।

  5. ভিজ্যুয়াল প্রতিক্রিয়া সিস্টেম: রঙিন কোডেড মূল্য স্তম্ভ এবং ভিজ্যুয়াল ট্রেডিং প্যানেলের মাধ্যমে, বাজারের অবস্থা এবং পারফরম্যান্সের স্বজ্ঞাত পর্যবেক্ষণ সরবরাহ করে।

  6. নমনীয় প্যারামিটার কনফিগারেশন: সমস্ত মূল প্যারামিটারগুলি ইনপুট বিকল্পের মাধ্যমে সামঞ্জস্য করা যায়, যাতে কৌশলটি বিভিন্ন ধরণের লেনদেন এবং সময়কালের সাথে সামঞ্জস্যপূর্ণ হয়।

কৌশলগত ঝুঁকি

  1. ভুয়া আক্রমণের ঝুঁকি:আরএসআই বিভাজন একটি মিথ্যা সংকেত হতে পারে, বিশেষত যখন বাজারটি তির্যকভাবে সংকলিত হয়। সমাধান হল নিশ্চিতকরণ শর্ত যুক্ত করা, যেমন দামের আকৃতি বা লেনদেনের পরিমাণ নিশ্চিতকরণ।

  2. ওভার-অপ্টিমাইজেশন ঝুঁকি: একাধিক প্যারামিটার সেটআপের ফলে ঐতিহাসিক ডেটা ওভারফিট হতে পারে। বিভিন্ন বাজার অবস্থার মধ্যে ব্যাক-টেস্টিং করার পরামর্শ দেওয়া হয়, যাতে একটি শক্তসমর্থ প্যারামিটার সেটআপ পাওয়া যায়।

  3. বাজার পরিবেশ নির্ভরতা: কৌশলটি শক্তিশালী প্রবণতা বাজারে ঝড়ের বাজারের চেয়ে ভাল পারফরম্যান্স করতে পারে। ব্যবহারের আগে, বর্তমান বাজার পরিবেশের মূল্যায়ন করা উচিত, প্রয়োজনে প্যারামিটারগুলি সামঞ্জস্য করা বা বাণিজ্য স্থগিত করা উচিত।

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

  5. সময় উইন্ডো সীমাবদ্ধতা: কঠোর ট্রেডিং সময় উইন্ডো সময় বাইরে উচ্চ মানের ট্রেডিং সুযোগ মিস করতে পারে। বিভিন্ন বাজারের জন্য বিভিন্ন ট্রেডিং উইন্ডো সেট করার কথা বিবেচনা করা যেতে পারে।

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

  1. ডায়নামিক থ্রেশহোল্ড অপ্টিমাইজেশনবর্তমান কৌশলটি স্থির ওঠানামার পরিসীমা ব্যবহার করে। (± 2) বাজারের অস্থিরতার ভিত্তিতে (যেমন এটিআর) এই পরিসীমাটি পরিবর্তনশীলভাবে সামঞ্জস্য করার জন্য বিবেচনা করা যেতে পারে।

  2. অস্থির ফিল্টারএটিআর-ভিত্তিক অস্থিরতা ফিল্টারিং শর্তগুলি যুক্ত করা এবং খুব কম অস্থিরতার সময় লেনদেন এড়ানো, যা হরফ বাজারে মিথ্যা সংকেত হ্রাস করতে সহায়তা করে।

  3. বহু-সময়-প্রান্তিক নিশ্চিতকরণ: একাধিক সময়কালের সমন্বিত আরএসআই সংকেত নিশ্চিতকরণ, কেবলমাত্র যখন একাধিক সময়কালের আরএসআই দিকনির্দেশনা একত্রিত হয় তখনই একটি ট্রেডিং সংকেত উত্পন্ন হয়, যা সংকেতের গুণমানকে উন্নত করে।

  4. লেনদেনের পরিমাণ নিশ্চিতকরণ ব্যবস্থা

  5. মুনাফা লক করার পদ্ধতি: ডায়নামিক ট্র্যাকিং স্টপ বাস্তবায়ন করুন, স্বয়ংক্রিয়ভাবে স্টপ পজিশনের সমন্বয় করুন যখন দাম অনুকূল দিকের দিকে চলে যায়, আংশিক মুনাফা লক করুন।

  6. ভর্তি অপ্টিমাইজেশান: বাজার কাঠামোর অবস্থার বৃদ্ধি (যেমন সমর্থন / প্রতিরোধের স্থান), কেবলমাত্র মূল মূল্য বিপর্যয়ের সময় প্রবেশ করুন, বিজয়ী হার বাড়ান।

  7. স্বনির্ধারিত প্যারামিটার: বাজারের অবস্থার উপর ভিত্তি করে RSI দৈর্ঘ্য এবং EMA চক্রের স্বয়ংক্রিয় সমন্বয় করার একটি প্রক্রিয়া বাস্তবায়ন, কৌশলকে আরও অভিযোজিত করে তোলে

সারসংক্ষেপ

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

কৌশলটির একাধিক ফিল্টারিং প্রক্রিয়া এবং কঠোর ট্রেডিং নিয়মগুলি কার্যকরভাবে মিথ্যা সংকেত হ্রাস করে, এবং নমনীয় প্যারামিটার কনফিগারেশন এটিকে বিভিন্ন ট্রেডিং জাত এবং বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে দেয়। যাইহোক, ব্যবহারকারীদের অবশ্যই RSI ব্রেকিং কৌশলগুলির অন্তর্নিহিত সীমাবদ্ধতাগুলি বুঝতে হবে, বিশেষত ক্রস-অর্ডার বাজারে পারফরম্যান্স।

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

কৌশল সোর্স কোড
/*backtest
start: 2025-04-21 00:00:00
end: 2025-04-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy('RSI SR OB Breakouts Strategy PRO (coffeshopcrypto)', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, max_bars_back=200, max_boxes_count=200, precision=2)

// === Inputs ===
show_hide_boxes = input.bool(true, 'Show Ranges')
show_hide_orderblocks = input.bool(true, 'Show Orderblocks')
use_breakout_colors = input.bool(true, title="Use Breakout Bar Colors")

rsi_len = input.int(14, title="RSI Length", minval=4, group="Risk Management")

// --- Risk Management ---
takeProfitPoints = input.int(50, title="Take Profit (Ticks)", group="Risk Management")
useStopLossMode = input.bool(false, title="Use Stop Loss Instead of Only TP?", group="Risk Management")
stopLossPoints = input.int(30, title="Stop Loss (Ticks)", group="Risk Management")

// --- Time Preferences ---
startTradeHour = input.int(9, title="Trading Start Hour (EST)", minval=0, maxval=23, group="Time Preferences")
startTradeMinute = input.int(30, title="Trading Start Minute (EST)", minval=0, maxval=59, group="Time Preferences")
endTradeHour = input.int(16, title="Trading End Hour (EST)", minval=0, maxval=23, group="Time Preferences")
endTradeMinute = input.int(0, title="Trading End Minute (EST)", minval=0, maxval=59, group="Time Preferences")

// --- Trade Limit Preferences ---
useTradeLimit = input.bool(true, title="Enable Daily Trade Limit?", group="Trade Limit")
maxTradesPerDay = input.int(5, title="Max Trades Per Day", minval=1, group="Trade Limit")

// --- EMA Adjustable ---
ema_filter_enabled = input.bool(true, "Use EMA Filter?")
ema_length = input.int(50, "EMA Length", minval=2)
ema_dynamic = ta.ema(close, ema_length)

// --- SMA150 Trend Filter ---
sma200 = ta.sma(close, 150)
useBullishSettings = close > sma200

// --- Trading Panel Toggle ---
showPanel = input.bool(true, "Show Session Trading Panel?", group="Display Settings")

// === Trade Time Check (EST Time) ===
tradeAllowed = (hour > startTradeHour or (hour == startTradeHour and minute >= startTradeMinute)) and 
               (hour < endTradeHour or (hour == endTradeHour and minute <= endTradeMinute))

// === Trade Limit Check ===
var int tradeCount = 0
newDay = ta.change(dayofmonth) != 0
if newDay
    tradeCount := 0

canTrade = tradeAllowed and (not useTradeLimit or tradeCount < maxTradesPerDay)

// === Calculate RSI and thresholds ===
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_len)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_len)
_rsi = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)
adjustedRSI = _rsi - 50

bullish_center = 5
bearish_center = -5
spread = 2
auto_rsi_center = useBullishSettings ? bullish_center : bearish_center
momentum_upper_threshold = auto_rsi_center + spread
momentum_lower_threshold = auto_rsi_center - spread

pricebarColor = adjustedRSI > momentum_upper_threshold ? color.rgb(37, 155, 41) : adjustedRSI < momentum_lower_threshold ? color.rgb(223, 48, 48) : color.gray

// === Signal Conditions ===
longCondition = adjustedRSI > momentum_upper_threshold and (not ema_filter_enabled or close > ema_dynamic)
shortCondition = adjustedRSI < momentum_lower_threshold and (not ema_filter_enabled or close < ema_dynamic)

// === Fresh Triggers Only ===
var bool longTrigger = false
var bool shortTrigger = false

longTrigger := longCondition and not longCondition[1]
shortTrigger := shortCondition and not shortCondition[1]

// === Trade Management with Reversals ===
var int winsToday = 0
var int lossesToday = 0

if (canTrade)
    if (longTrigger)
        if (strategy.position_size < 0)
            strategy.close("Short", comment="Reverse to Long")
        if (strategy.position_size <= 0)
            strategy.entry("Long", strategy.long)
            tradeCount += 1

    if (shortTrigger)
        if (strategy.position_size > 0)
            strategy.close("Long", comment="Reverse to Short")
        if (strategy.position_size >= 0)
            strategy.entry("Short", strategy.short)
            tradeCount += 1

// === Attach Exits After Entry ===
if (strategy.position_size > 0)
    longTakeProfit = strategy.position_avg_price + (takeProfitPoints * syminfo.mintick)
    longStopLoss = strategy.position_avg_price - (stopLossPoints * syminfo.mintick)
    if useStopLossMode
        strategy.exit("Long Exit", from_entry="Long", limit=longTakeProfit, stop=longStopLoss)
    else
        strategy.exit("Long TP Only", from_entry="Long", limit=longTakeProfit)

if (strategy.position_size < 0)
    shortTakeProfit = strategy.position_avg_price - (takeProfitPoints * syminfo.mintick)
    shortStopLoss = strategy.position_avg_price + (stopLossPoints * syminfo.mintick)
    if useStopLossMode
        strategy.exit("Short Exit", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss)
    else
        strategy.exit("Short TP Only", from_entry="Short", limit=shortTakeProfit)

// === Track wins/losses ===
if (strategy.closedtrades > 0)
    if (strategy.closedtrades.profit(strategy.closedtrades - 1) > 0)
        winsToday += 1
    else
        lossesToday += 1

// === Auto Close all trades if time window ended ===
if (not tradeAllowed)
    strategy.close_all(comment="Session End Auto Close")

// === Plotting ===
plot(adjustedRSI, title="Adjusted RSI", color=color.rgb(255, 235, 59))
plot(ema_dynamic, title="Dynamic EMA", color=color.blue)
plot(sma200, title="SMA 200", color=color.gray)
hline(0, color=color.white)

barcolor(use_breakout_colors ? pricebarColor : na)

// === Trading Panel ===
if showPanel
    label.new(x=bar_index, y=high, text="Wins: " + str.tostring(winsToday) + " | Losses: " + str.tostring(lossesToday), color=color.black, style=label.style_label_left, size=size.small)