RSI ریورس بریکنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-08 12:11:03
ٹیگز:

img

جائزہ

یہ حکمت عملی رشتہ دار طاقت انڈیکس (آر ایس آئی) اشارے پر مبنی ہے اور بریک آؤٹ تجارت کرنے کے لئے آر ایس آئی کے اوور بکٹ / اوور سیل اصولوں کا استعمال کرتی ہے۔ جب آر ایس آئی اوور بکٹ کی حد سے تجاوز کرتا ہے تو یہ طویل ہوجاتا ہے اور جب آر ایس آئی اوور سیل کی حد سے تجاوز کرتا ہے تو مختصر ہوجاتا ہے۔ یہ ایک عام اوسط ریورس ٹریڈنگ حکمت عملی ہے۔

حکمت عملی منطق

  1. صارف کے ان پٹ کی بنیاد پر RSI اشارے کے پیرامیٹرز مقرر کریں، بشمول RSI مدت، زیادہ خریدنے کی حد اور زیادہ فروخت کی حد.

  2. اس بات کا تعین کریں کہ آیا آر ایس آئی حد سے زیادہ خرید یا فروخت زون میں ہے اس کی پوزیشن کی بنیاد پر.

  3. جب آر ایس آئی اوور بک / اوور سیل زون سے باہر نکلتا ہے اور اسی حد کی لکیر کو عبور کرتا ہے تو ، مخالف سمت میں تجارت کریں۔ مثال کے طور پر ، جب آر ایس آئی اوور بک زون سے اوور بک لائن سے اوپر ٹوٹ جاتا ہے تو ، مارکیٹ کو الٹ سمجھا جاتا ہے ، اس مقام پر طویل ہوجائیں۔ جب آر ایس آئی اوور سیل زون سے اوور سیل لائن سے نیچے ٹوٹ جاتا ہے تو ، مارکیٹ کو الٹ سمجھا جاتا ہے ، یہاں مختصر ہوجائیں۔

  4. داخل ہونے کے بعد، سٹاپ نقصان مقرر کریں اور منافع کی لائنیں لیں. SL / TP ٹریک کریں اور جب ٹرگر ہو تو پوزیشن بند کریں.

  5. حکمت عملی میں ای ایم اے کو فلٹر کے طور پر استعمال کرنے کا آپشن بھی فراہم کیا گیا ہے۔ صرف تب ہی تجارتی سگنل لیں جب آر ایس آئی سگنل اور ای ایم اے کی سمت کے خلاف قیمت کی خرابی دونوں پوری ہوجائیں۔

  6. یہ صرف مخصوص ٹائم فریم کے اندر ہی ٹریڈنگ کی اجازت دیتا ہے۔ پوزیشنیں ٹائم فریم کے اختتام پر بند ہوجائیں گی۔

فوائد کا تجزیہ

  • اچھے بیک ٹسٹ نتائج کے ساتھ کلاسیکی RSI بریک آؤٹ اصولوں کا استعمال کرتا ہے.

  • مختلف مصنوعات کے لئے موزوں زیادہ خرید / زیادہ فروخت کی حد کی ترتیبات.

  • اختیاری ای ایم اے فلٹر زیادہ سے زیادہ وِپسا ٹریڈنگ سے بچتا ہے۔

  • استحکام کو بڑھانے کے لئے SL / TP کی حمایت کرتا ہے.

  • غیر مناسب مدت سے بچنے کے لئے ٹائم فریم فلٹر کی حمایت کرتا ہے۔

  • دو طرفہ قیمتوں کے اتار چڑھاؤ کا مکمل استعمال کرنے کے لئے طویل اور مختصر دونوں کی حمایت کرتا ہے۔

خطرے کا تجزیہ

  • آر ایس آئی کی انحراف اکثر ہوتی ہے ، صرف آر ایس آئی پر انحصار کرنے سے غلط سگنل پیدا ہوسکتے ہیں۔ رجحان ، حرکت پذیر اوسط وغیرہ کے ساتھ امتزاج کی ضرورت ہے۔

  • ناقص حد کی ترتیبات بہت کثرت سے یا لاپتہ تجارت کی طرف جاتا ہے.

  • SL/TP کی خراب ترتیبات زیادہ جارحانہ یا زیادہ محافظتی کا سبب بنتی ہیں۔

  • غلط EMA فلٹر کی ترتیبات درست تجارت کو نظر انداز کر سکتی ہیں یا اچھے سگنل کو فلٹر کر سکتی ہیں۔

خطرے کے حل:

  • مختلف مصنوعات کے لئے RSI پیرامیٹرز کو بہتر بنائیں.

  • اختلافات کی نشاندہی کرنے کے لئے رجحان کے اشارے کے ساتھ مل کر.

  • ٹیسٹ اور SL / TP پیرامیٹرز کو بہتر بنانے.

  • ٹیسٹ اور EMA پیرامیٹرز کو بہتر بنائیں.

اصلاح کی ہدایات

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. مکمل بیک ٹسٹ کے ذریعے مختلف مصنوعات کے لئے بہترین ترتیبات تلاش کرنے کے لئے RSI پیرامیٹرز کو بہتر بنائیں.

  2. زیادہ مضبوط سگنل پیدا کرنے کے لئے RSI کے ساتھ مل کر یا اس کی جگہ لے کر مختلف اشارے آزمائیں ، جیسے MACD ، KD ، بولنگر بینڈ وغیرہ۔

  3. استحکام کو بڑھانے کے لئے اسٹاپ نقصان کو بہتر بنائیں اور منافع کی حکمت عملی اختیار کریں۔ موافقت پذیر اسٹاپ یا ٹریلنگ اسٹاپ استعمال کیے جاسکتے ہیں۔

  4. ای ایم اے فلٹر پیرامیٹرز کو بہتر بنائیں یا دوسرے فلٹرز کے ساتھ تجربہ کریں تاکہ بہتر طور پر وِپساؤ سے بچ سکیں۔

  5. بنیادی رجحان کے خلاف تجارت سے بچنے کے لئے رجحان فلٹر ماڈیولز شامل کریں.

  6. اس حکمت عملی کے لئے بہترین تجارتی سیشن تلاش کرنے کے لئے مختلف ٹائم فریم کی جانچ کریں۔

خلاصہ

آر ایس آئی الٹ بریک آؤٹ حکمت عملی میں کلاسیکی اوور بکٹ / اوور سیلڈ اصولوں پر مبنی واضح منطق ہے۔ اس کا مقصد مناسب رسک کنٹرول فلٹرز کے ساتھ انتہائی حد تک اوسط الٹ کو پکڑنا ہے۔ پیرامیٹر ٹیوننگ اور ماڈیولر بہتری کے ذریعے اسے مستحکم حکمت عملی میں تبدیل کرنے کی اچھی صلاحیت ہے۔ یہ لائیو ٹریڈنگ میں بہتر بنانے اور لاگو کرنے کے قابل ہے۔


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © REV0LUTI0N

//@version=4

strategy("RSI Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

// Strategy Backtesting
startDate  = input(timestamp("2021-10-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("9999-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true
// Strategy

Length = input(12, minval=1)
src = input(close, title="Source")
overbought = input(70, minval=1)
oversold = input(30, minval=1)
xRSI = rsi(src, Length)
    
rsinormal = input(true, title="Overbought Go Long & Oversold Go Short")
rsiflipped = input(false, title="Overbought Go Short & Oversold Go Long")

// EMA Filter
noemafilter = input(true, title="No EMA Filter")
useemafilter = input(false, title="Use EMA Filter")
ema_length = input(defval=15, minval=1, title="EMA Length")
emasrc = input(close, title="Source")
ema = ema(emasrc, ema_length)
plot(ema, "EMA", style=plot.style_linebr, color=#cad850, linewidth=2)

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100

longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)

plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if (xRSI > overbought and close > ema and time_cond and timetobuy and rsinormal and useemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI < oversold and close < ema and time_cond and timetobuy and rsinormal and useemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI < oversold and close > ema and time_cond and timetobuy and rsiflipped and useemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI > overbought and close < ema and time_cond and timetobuy and rsiflipped and useemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI > overbought and time_cond and timetobuy and rsinormal and noemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI < oversold and time_cond and timetobuy and rsinormal and noemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI < oversold and time_cond and timetobuy and rsiflipped and noemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI > overbought and time_cond and timetobuy and rsiflipped and noemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesl and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    
if strategy.position_size > 0 and enabletp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    



مزید