VWAP اور OBV RSI اشارے پر مبنی بیبی شارک VWAP ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-03-08 16:39:28
ٹیگز:

img

حکمت عملی کا جائزہ

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

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

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

خاص طور پر ، حکمت عملی VWAP کے لئے حساب کتاب کی مدت کے طور پر 60 موم بتیاں استعمال کرتی ہے ، جس میں ان پٹ ڈیٹا کے طور پر اختتامی قیمت ہوتی ہے۔ اس کے بعد یہ VWAP سے مثبت اور منفی 3 معیاری انحرافات کی قیمت کے انحراف کی بنیاد پر زیادہ خریدنے اور زیادہ فروخت زونوں کی تعمیر کرتی ہے۔ OBV RSI کے لئے ، یہ حساب کتاب کی مدت کے طور پر 5 موم بتیاں استعمال کرتی ہے اور زیادہ خریدنے اور زیادہ فروخت کی شرائط کا تعین کرنے کے معیار کے طور پر 70 اور 30 کی حدیں طے کرتی ہے۔

تجارتی منطق کے لحاظ سے ، جب قیمت VWAP کے نچلے بینڈ سے نیچے اوور سیل زون میں ہوتی ہے اور OBV RSI 30 سے کم ہوتا ہے تو ، حکمت عملی ایک طویل سگنل پیدا کرتی ہے۔ اس کے برعکس ، جب قیمت VWAP کے اوپری بینڈ سے اوپر اوور شاپ زون میں ہوتی ہے اور OBV RSI 70 سے زیادہ ہوتی ہے تو ، یہ ایک مختصر سگنل پیدا کرتی ہے۔ اس کے علاوہ ، حکمت عملی میں 0.6٪ کا منافع اور اسٹاپ نقصان کا تناسب طے ہوتا ہے اور خطرات پر قابو پانے کے لئے لگاتار نقصانات کے بعد 10 موم بتیوں کی کولنگ آف مدت متعارف کراتی ہے۔

حکمت عملی کے فوائد

  1. مارکیٹ کے رجحانات اور رفتار کو جامع طور پر قبضہ کرنے کے لئے قیمت اور حجم جیسے متعدد مارکیٹ کے عوامل کو یکجا کرتا ہے۔
  2. متحرک VWAP اور OBV RSI اشارے کو مختلف مارکیٹ سائیکلوں میں ہونے والی تبدیلیوں کو اپنانے کے لئے اپناتا ہے۔
  3. مناسب منافع اور سٹاپ نقصان کے تناسب اور خطرہ کو مؤثر طریقے سے کنٹرول کرنے کے دوران مواقع کو پکڑنے کے لئے کولنگ آف کی مدت مقرر کرتا ہے.
  4. واضح منطق، سمجھنے اور لاگو کرنے کے لئے آسان، تشریح کی ایک خاص سطح کے ساتھ.
  5. سایڈست پیرامیٹرز، بہتر بنانے اور بہتر بنانے کے لئے مختلف شیلیوں کے ساتھ تاجروں کے لئے موزوں.

حکمت عملی کے خطرات

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

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

  1. دوڑتا ہوا بازاروں کے لئے زیادہ فلٹرنگ حالات متعارف کرانے، جیسے رجحان کی تصدیق کے اشارے اور اتار چڑھاؤ کے اشارے، کثرت سے تجارت کو کم کرنے کے لئے.
  2. آؤٹ پٹ کے حالات کو بہتر بنائیں، جیسے ٹریلنگ اسٹاپ کا استعمال کرنا یا رجحانات کی پیروی کرنے والے دیگر اشارے کے ساتھ مل کر رجحانات کی مارکیٹوں کو بہتر طور پر پکڑنے کے لئے.
  3. VWAP اور OBV RSI پیرامیٹرز کی موافقت پذیر اصلاح انجام دیں ، حساب کے ادوار اور حد کی ترتیبات کو متحرک طور پر ایڈجسٹ کریں۔
  4. او بی وی آر ایس آئی اشارے کی وشوسنییتا کو بہتر بنانے کے لئے حجم کی صداقت کی تصدیق کے طریقہ کار متعارف کروائیں۔
  5. حکمت عملی کی موافقت اور استحکام کو بڑھانے کے لئے میکرو اکنامک ڈیٹا تجزیہ ، جذبات کے اشارے وغیرہ کو شامل کرنے پر غور کریں۔

خلاصہ

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


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GreatestUsername

//@version=5
strategy("BabyShark VWAP Strategy", overlay=true, margin_long=100, margin_short=100, calc_on_every_tick = true)


// VWAP
ls = input(false, title='Log-space', group = "Optional")
type = 'Average Deviation'
length = input(60, group="Strategy Modification")
source = input(close, group="Strategy Modification")
_low = ls == true ? math.log(low) : low
_high = ls == true ? math.log(high) : high
src = ls == true ? math.log(source) : source

//weighted mean
pine_vwmean(x, y) =>
    cw = 0.0
    cd = 0.0
    w_sum = 0.0
    d_sum = 0.0
    for i = 0 to y - 1 by 1
        cd := x[i]
        cw := volume[i]
        d_sum += cw * cd
        w_sum += cw
        w_sum
    d_sum / w_sum

//weighted standard deviation
pine_vwstdev(x, y, b) =>
    d_sum = 0.0
    w_sum = 0.0
    cd = 0.0
    for i = 0 to y - 1 by 1
        cd := x[i]
        cw = volume[i]
        d_sum += cw * math.pow(cd - b, 2)
        w_sum += cw
        w_sum
    math.sqrt(d_sum / w_sum)

//weighted average deviation
pine_vwavdev(x, y, b) =>
    d_sum = 0.0
    w_sum = 0.0
    cd = 0.0
    for i = 0 to y - 1 by 1
        cd := x[i]
        cw = volume[i]
        d_sum += cw * math.abs(cd - b)
        w_sum += cw
        w_sum
    d_sum / w_sum

vwmean = pine_vwmean(src, length)

//consider using Average Deviation instead of Standard Deviatio if there are values outside of 3rd upper & lower bands within a rolling window
dev = if type == 'Standard Deviation'
    dev = pine_vwstdev(src, length, vwmean)
    dev
else if type == 'Average Deviation'
    dev = pine_vwavdev(src, length, vwmean)
    dev

basis = ls == true ? math.exp(vwmean) : vwmean
plot(basis, color=color.new(#b7b7b7, 60), title='Basis')

upper_dev_2 = vwmean + dev * 2
upper_dev_3 = vwmean + dev * 3

lower_dev_2 = vwmean - dev * 2
lower_dev_3 = vwmean - dev * 3

fill(
     plot1=plot(ls == true ? math.exp(upper_dev_2) : upper_dev_2, color=color.new(#B20000, 0), title='Upper dev 2'), 
     plot2=plot(ls == true ? math.exp(upper_dev_3) : upper_dev_3, color=color.new(#FF6666, 0), title='Upper dev 3', display=display.none), 
     color=color.new(#FF4D4D, 80), title='Upper band'
     )
fill(
     plot1=plot(ls == true ? math.exp(lower_dev_3) : lower_dev_3, color=color.new(#00CC00, 0), title='Lower dev 3', display=display.none), 
     plot2=plot(ls == true ? math.exp(lower_dev_2) : lower_dev_2, color=color.new(#008000, 0), title='Lower dev 2'), 
     color=color.new(#006600, 80), title='Lower band'
     )


// Input to enable or disable the table visibility
table_visible = input(false, title="Show Table", group="Deviation Cross Monitor")
// Input for the number of candles to look back
table_length = input(300, title="Table Lookback Length", group="Deviation Cross Monitor")

// Custom count function
count_occurrences(cond, length) =>
    count = 0
    for i = 0 to length - 1
        if cond[i]
            count := count + 1
    count

// Count occurrences of prices above Upper dev 2 and below Lower dev 2

above_upper_dev_2 = count_occurrences(close > upper_dev_2, table_length)
below_lower_dev_2 = count_occurrences(close < lower_dev_2, table_length)

// Create table in the bottom right corner
var table tbl = table.new(position=position.bottom_right, rows=2, columns=2)

if table_visible
    if barstate.islast
        // Update the table headers
        table.cell(tbl, 0, 0, "Above Upper Dev 2", bgcolor=color.gray, text_color=color.white)
        table.cell(tbl, 0, 1, "Below Lower Dev 2", bgcolor=color.gray, text_color=color.white)
        
        // Update the table values
        table.cell(tbl, 1, 0, str.tostring(above_upper_dev_2), bgcolor=color.new(color.green, 90), text_color=color.green)
        table.cell(tbl, 1, 1, str.tostring(below_lower_dev_2), bgcolor=color.new(color.red, 90), text_color=color.red)
else
    table.delete(tbl)

// RSI
obvsrc = close
change_1 = ta.change(obvsrc)
obv = ta.cum(ta.change(obvsrc) > 0 ? volume : change_1 < 0 ? -volume : 0 * volume)

src2 = obv
len = input.int(5, minval=1, title="RSI Length", group="Strategy Modification")
up = ta.rma(math.max(ta.change(src2), 0), len)
down = ta.rma(-math.min(ta.change(src2), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
higherlvl = input(70, title="Higher Level", group="Strategy Modification")
lowerlvl = input(30, title="Lower Level", group="Strategy Modification")


plot_color = rsi >= higherlvl ? color.red : rsi <= lowerlvl ? color.green : color.new(#b7b7b7, 60)
// plot(rsi, color=plot_color)

//plot(rsi, color=color.white)



// Count occurrences of RSI crossing higher level and lower level
cross_above_higher = ta.crossover(rsi, higherlvl)
cross_below_lower = ta.crossunder(rsi, lowerlvl)
above_higher_count = count_occurrences(cross_above_higher, table_length)
below_lower_count = count_occurrences(cross_below_lower, table_length)

// Create table in the bottom right corner
if (table_visible)
    var table tbl2 = table.new(position=position.bottom_right, rows=2, columns=2)
    if (barstate.islast)
        // Update the table headers
        table.cell(tbl2, 0, 0, "Higher Level Cross", bgcolor=color.gray, text_color=color.white)
        table.cell(tbl2, 0, 1, "Lower Level Cross", bgcolor=color.gray, text_color=color.white)
        
        // Update the table values
        table.cell(tbl2, 1, 0, str.tostring(above_higher_count), bgcolor=color.new(color.red, 90), text_color=color.red)
        table.cell(tbl2, 1, 1, str.tostring(below_lower_count), bgcolor=color.new(color.green, 90), text_color=color.green)


// Entries

// Long Entry:
// Price is in the shaded GREEN area of [Hoss] VWAP Deviation
// and the [Hoss] OBV RSI is GREEN.
longCondition1 = close <= lower_dev_3
longConditions = plot_color == color.green and longCondition1 and strategy.position_size == 0

// Short Entry:
// Price is in the shaded RED area of [Hoss] VWAP Deviation
// and the [Hoss] OBV RSI is RED.
shortCondition1 = close >= upper_dev_3
shortConditions = plot_color == color.red and shortCondition1 and strategy.position_size == 0

var int lastEntryBar = 0


shortEMA = ta.ema(close, 12)
longEMA = ta.ema(close, 21)
uptrend = shortEMA > longEMA

if longConditions and lastEntryBar < bar_index - 10 //and uptrend
    strategy.entry("Long", strategy.long, stop=close * 0.994)
    lastEntryBar := bar_index

if shortConditions and lastEntryBar < bar_index - 10 //and not uptrend
    strategy.entry("Short", strategy.short, stop=close * 1.006)
    lastEntryBar := bar_index


if strategy.position_size > 0 and (ta.crossover(close, basis) or strategy.opentrades.entry_price(strategy.opentrades - 1) * 0.994 > close)
    strategy.close("Long", immediately = true)
if strategy.position_size < 0 and (ta.crossunder(close, basis) or strategy.opentrades.entry_price(strategy.opentrades - 1) * 1.006 < close)
    strategy.close("Short", immediately = true)

// Stop Loss:
// 0.6%
// After 1 Loss => NO more Trades for 10 Candles (10 minutes) (usually a breakout will happen, and it takes average 10min till it ranges again. So basically wait for range to form again)

// Take Profit:
// Grey line on [Hoss] VWAP Deviation or 0.6%



مزید