ڈبل RSI مقداری تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-11-15 17:31:24 آخر میں ترمیم کریں: 2023-11-15 17:31:24
کاپی: 0 کلکس کی تعداد: 690
1
پر توجہ دیں
1617
پیروکار

ڈبل RSI مقداری تجارتی حکمت عملی

جائزہ

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

اصول تجزیہ

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

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

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

طاقت کا تجزیہ

دوہری RSI کی پیمائش کی حکمت عملی کے فوائد یہ ہیں:

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

  2. اوسط لکیری نظام بڑے رجحانات کی سمت کا تعین کرنے میں مدد کرتا ہے ، رجحانات کے خلاف تجارت سے گریز کرتا ہے ، زیادہ تر شور کی تجارت کو فلٹر کرتا ہے اور جیت کی شرح کو بہتر بناتا ہے۔

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

  4. حکمت عملی ٹریڈنگ منطق سادہ اور واضح ہے ، آسانی سے سمجھنے اور بہتر بنانے کے لئے ، اور مقدار کے تاجروں کے لئے سیکھنے کے لئے موزوں ہے۔

خطرے کا تجزیہ

ڈبل آر ایس آئی کی پیمائش کی حکمت عملی کے کچھ فوائد کے باوجود ، اس میں مندرجہ ذیل خطرات بھی شامل ہیں:

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

  2. اگرچہ اوسط لکیری نظام چھوٹے پیمانے پر شور کو فلٹر کرسکتا ہے ، لیکن یہ درمیانی دورانیہ کے رجحان میں ہونے والی تبدیلیوں کا اندازہ لگانے میں ناقص ہے ، اور اس سے رجحان کی تبدیلی کا نقطہ نظر ضائع ہوسکتا ہے۔

  3. اسٹاپ نقصان کی غلط ترتیب سے اسٹاپ نقصان بہت وسیع یا اسٹاپ نقصان بہت چھوٹا ہوسکتا ہے ، جس سے حکمت عملی کا اثر کم ہوجاتا ہے۔

  4. بڑے پیمانے پر ڈیبجنگ سے نقصانات میں اضافہ ہوسکتا ہے ، جس کی وجہ سے پوزیشنوں کے سائز پر قابو پانے کی ضرورت ہے۔

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

اصلاح کی سمت

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

  1. مختلف پیرامیٹرز کے مجموعے کو آزمائیں ، RSI کے دورانیہ کے پیرامیٹرز کو بہتر بنائیں ، اور طویل اور مختصر مدت کے RSI اشارے کا بہترین مجموعہ تلاش کریں۔

  2. مختلف اوسط اشارے کی جانچ پڑتال کریں ، رجحانات اور الٹ جانے کے مواقع کا اندازہ لگانے کے لئے MACD جیسے اشارے متعارف کروائیں۔

  3. اسٹاپ اسٹاپ نقصان کی حکمت عملی کو بہتر بنائیں ، اسٹاپ اسٹاپ نقصان کو زیادہ لچکدار بنانے کے لئے ٹریکنگ اسٹاپ کو ترتیب دیں یا اسٹاپ اسٹاپ کو منتقل کریں۔

  4. پوزیشن کنٹرول ماڈیول شامل کریں ، بڑے دورانیہ کے رجحانات کے مختلف مراحل پر زیادہ سے زیادہ پوزیشنوں کو کنٹرول کریں۔

  5. مشین لرننگ ماڈل میں اضافہ انٹریز اور ایگزٹ کی درستگی کو بہتر بناتا ہے۔

  6. ٹرانزیکشن کی بہترین اقسام اور ٹائم سائیکلوں کو تلاش کرنے کے لئے ریٹرننگ اور اصلاحات کا استعمال کریں.

خلاصہ کریں۔

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

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

//@version=4
strategy("Growth Producer", overlay=true, initial_capital = 1000, currency = "USD", pyramiding = 2, commission_type=strategy.commission.percent, commission_value=0.07, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Functions
Atr(p) =>
    atr = 0.
    Tr = max(high - low, max(abs(high - close[1]), abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1])/p,Tr)

/// TREND
ribbon_period = input(19, "Period", step=1)

leadLine1 = ema(close, ribbon_period)
leadLine2 = sma(close, ribbon_period)

p1 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1)
p2 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1)
fill(p1, p2, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)

// Relative volatility index
length = input(120,"RVI period", minval=1), src = close
len = 14
stddev = stdev(src, length)
upper = ema(change(src) <= 0 ? 0 : stddev, len)
lower = ema(change(src) > 0 ? 0 : stddev, len)
rvi = upper / (upper + lower) * 100
benchmark = input(35, "RVI benchmark", minval=10, maxval=100, step=0.1)

// Plot RVI
// h0 = hline(80, "Upper Band", color=#C0C0C0)
// h1 = hline(20, "Lower Band", color=#C0C0C0)
// fill(h0, h1, color=#996A15, title="Background")
// offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
// plot(rvi, title="RVI", color=#008000, offset = offset)


/// MFI input
mfi_source = hlc3
mfi_length = input(19, "MFI Length", minval=1)
mfi_lower = input(15, "MFI Lower level", minval=0, maxval=50)
mfi_upper = input(90, "MFI Higher level", minval=50, maxval=100)


// MFI
upper_s = sum(volume * (change(mfi_source) <= 0 ? 0 : mfi_source), mfi_length)
lower_s = sum(volume * (change(mfi_source) >= 0 ? 0 : mfi_source), mfi_length)
mf = rsi(upper_s, lower_s)
// mfp = plot(mf, color=color.new(color.gray,0), linewidth=1)
// top = hline(mfi_upper, color=color.new(color.gray, 100), linewidth=1, editable=false)
// bottom = hline(mfi_lower, color=color.new(color.gray,100), linewidth=1, editable=false)
// hline(0, color=color.new(color.black,100), editable=false)
// hline(100, color=color.new(color.black,100), editable=false)

// Breaches
// b_color = (mf > mfi_upper) ? color.new(color.red,70) : (mf < mfi_lower) ? color.new(color.green,60) : na
// bgcolor(HighlightBreaches ? b_color : na)

// fill(top, bottom, color=color.gray, transp=75)

// Initial inputs
Act_RSI_VWAP_long = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE LONG")
RSI_VWAP_length_long = input(16, "RSI-VWAP LENGTH LONG")
RSI_VWAP_overSold_long = input(13, "RSI-VWAP OVERSOLD LONG", type=input.float)
RSI_VWAP_overBought_long = input(68, "RSI-VWAP OVERBOUGHT LONG", type=input.float)

Act_RSI_VWAP_short = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE SHORT")
RSI_VWAP_length_short = input(14, "RSI-VWAP LENGTH SHORT")
RSI_VWAP_overSold_short = input(7, "RSI-VWAP OVERSOLD SHORT", type=input.float)
RSI_VWAP_overBought_short = input(68, "RSI-VWAP OVERBOUGHT SHORT", type=input.float)

// RSI with VWAP as source
RSI_VWAP_long = rsi(vwap(close), RSI_VWAP_length_long)
RSI_VWAP_short = rsi(vwap(close), RSI_VWAP_length_short)

// Plot Them Separately.
// Plotting LONG, Put overlay=false
// r=plot(RSI_VWAP_long, color = RSI_VWAP_long > RSI_VWAP_overBought_long ? color.red : RSI_VWAP_lnog < RSI_VWAP_overSold_long ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
// h1=plot(RSI_VWAP_overBought_long, color = color.gray, style=plot.style_stepline)
// h2=plot(RSI_VWAP_overSold_long, color = color.gray, style=plot.style_stepline)
// fill(r,h1, color = RSI_VWAP_long > RSI_VWAP_overBought_long ? color.red : na, transp = 60)
// fill(r,h2, color = RSI_VWAP_long < RSI_VWAP_overSold_long ? color.lime : na, transp = 60)

// Plotting SHORT, Put overlay=false
// r=plot(RSI_VWAP_short, color = RSI_VWAP_short > RSI_VWAP_overBought_short ? color.red : RSI_VWAP_short < RSI_VWAP_overSold_short ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
// h1=plot(RSI_VWAP_overBought_short, color = color.gray, style=plot.style_stepline)
// h2=plot(RSI_VWAP_overSold_short, color = color.gray, style=plot.style_stepline)
// fill(r,h1, color = RSI_VWAP_short > RSI_VWAP_overBought_short ? color.red : na, transp = 60)
// fill(r,h2, color = RSI_VWAP_short < RSI_VWAP_overSold_short ? color.lime : na, transp = 60)


///////  STRATEGY Take Profit / Stop Loss ////////
////// LONG //////

long_tp1_inp = input(3.3, title='Long Take Profit 1 %', step=0.1)/100
long_tp1_qty = input(15, title="Long Take Profit 1 Qty", step=1)

long_tp2_inp = input(12, title='Long Take Profit 2%', step=0.1)/100
long_tp2_qty = input(100, title="Long Take Profit 2 Qty", step=1)

long_sl_inp = input(3.3, title='Long Stop Loss %', step=0.1)/100

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

////// SHORT //////
short_tp1_inp = input(3.2, title='Short Take Profit 1 %', step=0.1)/100
short_tp1_qty = input(20, title="Short Take Profit 1 Qty", step=1)

short_tp2_inp = input(5.5, title='Short Take Profit 2%', step=0.1)/100
short_tp2_qty = input(100, title="Short Take Profit 2 Qty", step=1)

short_sl_inp = input(3.2, title='Short Stop Loss %', step=0.1)/100

short_take_level_1 = strategy.position_avg_price * (1 - short_tp1_inp)
short_take_level_2 = strategy.position_avg_price * (1 - short_tp2_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)



///Strategy_Conditions
/// LONG ///
entry_long =(crossover(RSI_VWAP_long, RSI_VWAP_overSold_long) and leadLine2<leadLine1) or (crossunder(mf,mfi_lower) and leadLine2<leadLine1)
entry_price_long=valuewhen(entry_long,close,0)
exit_long =crossunder(RSI_VWAP_long, RSI_VWAP_overBought_long)

/// SHORT ///

entry_short =crossunder(RSI_VWAP_short, RSI_VWAP_overBought_short) and leadLine2>leadLine1 or (crossover(mf,mfi_upper) and leadLine2>leadLine1)
entry_price_short=valuewhen(entry_short,close,0)
exit_short =crossover(RSI_VWAP_short, RSI_VWAP_overSold_short)

////// BACKTEST PERIOD ///////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

if testPeriod()

    if strategy.position_size == 0 or strategy.position_size > 0 and rvi>benchmark
        strategy.entry("long", true, when = entry_long, comment="Insert Enter Long Comment")
    strategy.exit("TP1","long", qty_percent=long_tp1_qty, limit=long_take_level_1, stop=long_stop_level)
    strategy.exit("TP2","long", qty_percent=long_tp2_qty, limit=long_take_level_2, stop=long_stop_level)
    strategy.close("long", when=exit_long, comment = "Insert Exit Long Comment")

    if strategy.position_size == 0 or strategy.position_size < 0 and rvi>benchmark
        strategy.entry("short", false, when = entry_short, comment="Insert Enter Short Comment")
    strategy.exit("TP1","short", qty_percent=short_tp1_qty, limit=short_take_level_1, stop=short_stop_level)
    strategy.exit("TP2","short", qty_percent=short_tp2_qty, limit=short_take_level_2, stop=short_stop_level)
    strategy.close("short", when=exit_short, comment = "Insert Exit Short Comment")


// LONG POSITION
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? long_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")


// SHORT POSITION
plot(strategy.position_size < 0 ? short_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Short Take Profit")
plot(strategy.position_size < 0 ? short_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Short Take Profit")
plot(strategy.position_size < 0 ? short_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")