RSI اشارے طویل اور مختصر حکمت عملی


تخلیق کی تاریخ: 2023-09-19 19:43:19 آخر میں ترمیم کریں: 2023-09-19 19:43:19
کاپی: 0 کلکس کی تعداد: 746
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

حکمت عملی کا اصول

اس حکمت عملی کے بنیادی اصولوں میں شامل ہیں:

  1. RSI کا حساب لگانا
  2. RSI اوپری اور نچلی حد مقرر کریں
  3. RSI پر حد تک پہننے کے بعد ، نظر انداز کریں
  4. جب RSI نیچے کی حد سے گزرتا ہے تو ، زیادہ سے زیادہ اندراج دیکھیں
  5. سٹاپ نقصان کی شرائط مقرر کریں
  6. جب RSI دوبارہ بینڈ میں داخل ہوتا ہے یا اسٹاپ نقصان کی روک تھام کی شرائط کو ٹرگر کرتا ہے تو فلیش پوزیشن

آر ایس آئی اشارے سے یہ ظاہر ہوتا ہے کہ مارکیٹ اوور بیو یا اوور سیل کی حالت میں ہے۔ آر ایس آئی 70 سے زیادہ ہونے پر اسے اوور بیو سمجھا جاتا ہے ، اور آر ایس آئی 30 سے کم ہونے پر اسے اوور سیل سمجھا جاتا ہے۔ تجارت کی حکمت عملی یہ ہے کہ آر ایس آئی کی اوور بیو اور اوور سیل حالت کی بنیاد پر یہ فیصلہ کیا جائے کہ خالی پوزیشن یا کثیر پوزیشن قائم کی جائے۔

یہ حکمت عملی آر ایس آئی اشارے کی کلاسیکی منطق کا استعمال کرتی ہے ، جس میں آر ایس آئی کی تعداد اور پہلے سے طے شدہ اوپری اور نیچے کی حد کے مابین تعلقات کی بنیاد پر پوزیشن کی سمت کا فیصلہ کیا جاتا ہے۔ اس کے علاوہ ، حکمت عملی میں ایڈجسٹ کرنے کے قابل پیرامیٹرز موجود ہیں ، جس سے آر ایس آئی اوپری اور نیچے کی حد ، اسٹاپ نقصان کی حد وغیرہ کو بہتر بنایا جاسکتا ہے ، تاکہ مارکیٹ میں تبدیلیوں کو ایڈجسٹ کیا جاسکے۔

اسٹریٹجک فوائد

  • RSI اشارے کا استعمال کرتے ہوئے ، آپ کو مارکیٹ کے اوورلوڈ اور اوور سیل ہونے کا اندازہ لگایا جاسکتا ہے
  • RSI اشارے کی تھیوری کی بنیاد پر وسیع پیمانے پر قبول کیا جاتا ہے
  • مختلف اقسام اور مارکیٹ کے حالات کے مطابق حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کیا جا سکتا ہے
  • انٹیگریٹڈ اسٹاپ نقصان کا نظام ، جو خطرے کو کنٹرول کرتا ہے

اسٹریٹجک خطرات اور ردعمل

  • RSI غلط سگنل دے سکتا ہے جس سے غیر ضروری نقصان ہوسکتا ہے
  • RSI پیرامیٹرز کی حد میں مسلسل اصلاح کی ضرورت ہے
  • زلزلے کے حالات کے خاتمے کے نقصانات کے نتیجے میں ہوسکتا ہے

انسدادی اقدامات:

  1. دوسرے اشارے کے ساتھ مل کر ملٹی فیکٹر کی تصدیق کریں تاکہ غلط سگنل سے بچا جاسکے
  2. مختلف قسم کی خصوصیات کے مطابق آر ایس آئی پیرامیٹرز کی حد کو بہتر بنائیں
  3. اسٹاپ نقصان کی پوزیشن کو ایڈجسٹ کریں اور بیعانہ کا خطرہ کم کریں

حکمت عملی کی اصلاح کی سمت

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

  1. مشین لرننگ کا استعمال کرتے ہوئے خود کار طریقے سے آر ایس آئی پیرامیٹرز کی حد کو بہتر بنانا

  2. ٹرانزیکشنز کی تصدیق میں اضافہ، جعلی ٹرائلز سے بچنے کے لیے

  3. منتقل اوسط جیسے اشارے کے ساتھ مل کر ملٹی فیکٹر تصدیق

  4. مارکیٹ میں اتار چڑھاو کے مطابق اسٹاپ نقصان کی حد کو ایڈجسٹ کرنے کے لئے ایک لچکدار اسٹاپ حکمت عملی مرتب کریں

  5. ٹرانزیکشن حجم میں تبدیلیوں کا جائزہ لینا اور پیسے کے بہاؤ کا اندازہ لگانا

  6. دیگر غیر متعلقہ حکمت عملیوں کے ساتھ مجموعی طور پر واپسی کو کم کریں

خلاصہ کریں۔

یہ حکمت عملی RSI اشارے کا استعمال کرتے ہوئے اوور خرید اور اوور فروخت کا تعین کرنے کے لئے ایک سادہ اور عملی الٹ حکمت عملی ہے۔ حکمت عملی مارکیٹ میں تبدیلیوں کے مطابق پیرامیٹرز کو ایڈجسٹ کرسکتی ہے ، بلکہ اس میں کثیر جہتی توسیع اور اصلاح بھی کی جاسکتی ہے۔ پیرامیٹرز کی اصلاح ، کثیر عنصر کی توثیق ، اور خود بخود نقصان کو روکنے جیسے بہتری کے ذریعہ حکمت عملی کو زیادہ مستحکم اور قابل اعتماد بنایا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("4All V3", shorttitle="Strategy", overlay=true)

/////////////// Component Code Start ///////////////
testStartYear = input(2011, "Backtest Start Year") 
testStartMonth = input(8, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(29, "Backtest Stop Day")
// testStopDay = testStartDay + 1
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
/////////////// Component Code Stop ///////////////

src = close
len = input(4, minval=1, title="Length")

up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

rsin = input(5)
sn = 100 - rsin
ln = 0 + rsin

/////////////// STRATEGY ///////////////
ts = input(99999, "Trailing Stop") / 10000
tp = input(15, "Take Profit") / 10000
sl = input(23, "Stop Loss") / 10000

pyr = input(1, "Pyramiding")

short = crossover(rsi, sn)
long = crossunder(rsi, ln)

totalLongs = 0
totalLongs := nz(totalLongs[1])
totalShorts = 0
totalShorts := nz(totalShorts[1])

totalLongsPrice = 0
totalLongsPrice := nz(totalLongsPrice[1])
totalShortsPrice = 0
totalShortsPrice := nz(totalShortsPrice[1])

sectionLongs = 0
sectionLongs := nz(sectionLongs[1])
sectionShorts = 0
sectionShorts := nz(sectionShorts[1])

if long
    sectionLongs := sectionLongs + 1
    sectionShorts := 0

if short
    sectionLongs := 0
    sectionShorts := sectionShorts + 1

longCondition = long and sectionLongs >= pyr
shortCondition = short and sectionShorts >= pyr

last_long = na
last_short = na
last_long := longCondition ? time : nz(last_long[1])
last_short := shortCondition ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = na
last_open_short_signal = na
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = na
last_short_signal = na
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = na
last_low = na
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal
short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal

long_tp = high >= (last_open_long_signal + tp)
short_tp = low <= (last_open_short_signal - tp)

long_sl = low <= (last_open_long_signal - sl)
short_sl = high >= (last_open_short_signal + sl)

leverage = input(1, "Leverage")
long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal
short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal
long_call_signal = low <= long_call
short_call_signal = high >= short_call

if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)
    
    strategy.close("Long", when=long_call_signal)
    strategy.close("Short", when=short_call_signal)
    strategy.close("Long", when=long_tp)
    strategy.close("Short", when=short_tp)
    strategy.close("Long", when=long_sl)
    strategy.close("Short", when=short_sl)
    strategy.close("Long", when=long_ts)
    strategy.close("Short", when=short_ts)