وسائل لوڈ ہو رہے ہیں... لوڈنگ...

حجم کی بے ضابطگی کا پتہ لگانے کے ساتھ VWAP ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-06-07 15:44:04
ٹیگز:وی ڈبلیو اے پیآر ایس آئیYTDایس ایم اے

img

جائزہ

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

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

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

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

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

خطرے کا تجزیہ

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

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

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

خلاصہ

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


/*backtest
start: 2024-05-30 00:00:00
end: 2024-06-06 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("5 Anchored VWAP Strategy with Abnormally High Volume Candle", overlay=true)

// Initialize VWAP variables
var float vwap_open = na
var float vwap_high = na
var float vwap_low = na
var float vwap_high_volume = na

var float cum_v_open = 0
var float cum_v_high = 0
var float cum_v_low = 0
var float cum_v_high_volume = 0

var float cum_pv_open = 0
var float cum_pv_high = 0
var float cum_pv_low = 0
var float cum_pv_high_volume = 0

var float highest_volume = 0

// Initialize YTD high and low variables
var float ytd_high = na
var float ytd_low = na

// Parameters for abnormal volume detection
length = 20
volume_threshold = 2.0

// Displacement parameters
displacement_percentage = 0.01 // 1% displacement

// Calculate average volume
avg_volume = ta.sma(volume, length)

// Check if it's the first day of the year
is_first_day_of_year = year(time) != year(time[1])

// Reset YTD high and low on the first day of the year
if is_first_day_of_year
    ytd_high := high
    ytd_low := low

// Update YTD high and low
ytd_high := na(ytd_high) ? high : math.max(ytd_high, high)
ytd_low := na(ytd_low) ? low : math.min(ytd_low, low)

// Update cumulative variables for open VWAP
cum_v_open += volume
cum_pv_open += close * volume
if cum_v_open != 0
    vwap_open := cum_pv_open / cum_v_open

// Update cumulative variables for high VWAP
if high == ytd_high
    cum_v_high := 0
    cum_pv_high := 0

cum_v_high += volume
cum_pv_high += close * volume
if cum_v_high != 0
    vwap_high := cum_pv_high / cum_v_high

// Update cumulative variables for low VWAP
if low == ytd_low
    cum_v_low := 0
    cum_pv_low := 0

cum_v_low += volume
cum_pv_low += close * volume
if cum_v_low != 0
    vwap_low := cum_pv_low / cum_v_low

// Check for new high-volume candle that is also abnormally high and reset cumulative variables for high-volume VWAP
new_high_volume = false
if volume > highest_volume and volume > volume_threshold * avg_volume
    highest_volume := volume
    cum_v_high_volume := 0
    cum_pv_high_volume := 0
    new_high_volume := true

cum_v_high_volume += volume
cum_pv_high_volume += close * volume
if cum_v_high_volume != 0
    vwap_high_volume := cum_pv_high_volume / cum_v_high_volume

// Plot VWAPs
plot(vwap_open, color=color.red, linewidth=2, title="VWAP Open")
plot(vwap_high, color=color.green, linewidth=2, title="VWAP High")
plot(vwap_low, color=color.blue, linewidth=2, title="VWAP Low")
plot(vwap_high_volume, color=color.purple, linewidth=2, title="VWAP High Volume")

// Plot a vertical line on the chart only when a new high-volume VWAP anchor occurs
bgcolor(new_high_volume ? color.new(color.purple, 90) : na, offset=-1)

// Calculate displacement amounts
displacement_amount_open = vwap_open * displacement_percentage
displacement_amount_high = vwap_high * displacement_percentage
displacement_amount_low = vwap_low * displacement_percentage
displacement_amount_high_volume = vwap_high_volume * displacement_percentage

// Check for gaps on the opposite side of a VWAP
gap_up_opposite_open = na(close[1]) ? false : (open > close[1] and open < vwap_open and close[1] > vwap_open)
gap_down_opposite_open = na(close[1]) ? false : (open < close[1] and open > vwap_open and close[1] < vwap_open)

gap_up_opposite_high = na(close[1]) ? false : (open > close[1] and open < vwap_high and close[1] > vwap_high)
gap_down_opposite_high = na(close[1]) ? false : (open < close[1] and open > vwap_high and close[1] < vwap_high)

gap_up_opposite_low = na(close[1]) ? false : (open > close[1] and open < vwap_low and close[1] > vwap_low)
gap_down_opposite_low = na(close[1]) ? false : (open < close[1] and open > vwap_low and close[1] < vwap_low)

gap_up_opposite_high_volume = na(close[1]) ? false : (open > close[1] and open < vwap_high_volume and close[1] > vwap_high_volume)
gap_down_opposite_high_volume = na(close[1]) ? false : (open < close[1] and open > vwap_high_volume and close[1] < vwap_high_volume)

// RSI calculation for momentum change detection
rsi = ta.rsi(close, 14)
long_exit_condition = rsi > 70
short_exit_condition = rsi < 30

// Debugging Plots
plotshape(not gap_up_opposite_open and not gap_down_opposite_open and close > vwap_open and low < vwap_open - displacement_amount_open and close[1] < vwap_open, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Open Long Signal")
plotshape(not gap_up_opposite_open and not gap_down_opposite_open and close < vwap_open and high > vwap_open + displacement_amount_open and close[1] > vwap_open, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Open Short Signal")

plotshape(not gap_up_opposite_high and not gap_down_opposite_high and close > vwap_high and low < vwap_high - displacement_amount_high and close[1] < vwap_high, style=shape.triangledown, location=location.abovebar, color=color.blue, size=size.small, title="High Long Signal")
plotshape(not gap_up_opposite_high and not gap_down_opposite_high and close < vwap_high and high > vwap_high + displacement_amount_high and close[1] > vwap_high, style=shape.triangleup, location=location.belowbar, color=color.orange, size=size.small, title="High Short Signal")

plotshape(not gap_up_opposite_low and not gap_down_opposite_low and close > vwap_low and low < vwap_low - displacement_amount_low and close[1] < vwap_low, style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small, title="Low Long Signal")
plotshape(not gap_up_opposite_low and not gap_down_opposite_low and close < vwap_low and high > vwap_low + displacement_amount_low and close[1] > vwap_low, style=shape.triangleup, location=location.belowbar, color=color.yellow, size=size.small, title="Low Short Signal")

plotshape(not gap_up_opposite_high_volume and not gap_down_opposite_high_volume and close > vwap_high_volume and low < vwap_high_volume - displacement_amount_high_volume and close[1] < vwap_high_volume, style=shape.triangledown, location=location.abovebar, color=color.teal, size=size.small, title="High Volume Long Signal")
plotshape(not gap_up_opposite_high_volume and not gap_down_opposite_high_volume and close < vwap_high_volume and high > vwap_high_volume + displacement_amount_high_volume and close[1] > vwap_high_volume, style=shape.triangleup, location=location.belowbar, color=color.fuchsia, size=size.small, title="High Volume Short Signal")

// Trading signals based on VWAP support/resistance with displacement, no gaps on the opposite side, and bounce conditions
if not gap_up_opposite_open and not gap_down_opposite_open
    if (close > vwap_open and low < vwap_open)
        if close > open
            strategy.entry("Long_Open_Wick", strategy.long, comment="Wick")
        else
            strategy.entry("Long_Open_Crossover", strategy.long, comment="Crossover")
    
    if (close < vwap_open and high > vwap_open)
        if close < open
            strategy.entry("Short_Open_Wick", strategy.short, comment="Wick")
        else
            strategy.entry("Short_Open_Crossover", strategy.short, comment="Crossover")

if not gap_up_opposite_high and not gap_down_opposite_high
    if (close > vwap_high and low < vwap_high)
        if close > open
            strategy.entry("Long_High_Wick", strategy.long, comment="Wick")
        else
            strategy.entry("Long_High_Crossover", strategy.long, comment="Crossover")
    
    if (close < vwap_high and high > vwap_high)
        if close < open
            strategy.entry("Short_High_Wick", strategy.short, comment="Wick")
        else
            strategy.entry("Short_High_Crossover", strategy.short, comment="Crossover")

if not gap_up_opposite_low and not gap_down_opposite_low
    if (close > vwap_low and low < vwap_low)
        if close > open
            strategy.entry("Long_Low_Wick", strategy.long, comment="Wick")
        else
            strategy.entry("Long_Low_Crossover", strategy.long, comment="Crossover")
    
    if (close < vwap_low and high > vwap_low)
        if close < open
            strategy.entry("Short_Low_Wick", strategy.short, comment="Wick")
        else
            strategy.entry("Short_Low_Crossover", strategy.short, comment="Crossover")

if not gap_up_opposite_high_volume and not gap_down_opposite_high_volume
    if (close > vwap_high_volume and low < vwap_high_volume)
        if close > open
            strategy.entry("Long_High_Volume_Wick", strategy.long, comment="Wick")
        else
            strategy.entry("Long_High_Volume_Crossover", strategy.long, comment="Crossover")
    
    if (close < vwap_high_volume and high > vwap_high_volume)
        if close < open
            strategy.entry("Short_High_Volume_Wick", strategy.short, comment="Wick")
        else
            strategy.entry("Short_High_Volume_Crossover", strategy.short, comment="Crossover")

// Exit trades based on RSI momentum change
if strategy.position_size > 0 and long_exit_condition
    strategy.close("Long_Open_Wick")
    strategy.close("Long_Open_Crossover")
    strategy.close("Long_High_Wick")
    strategy.close("Long_High_Crossover")
    strategy.close("Long_Low_Wick")
    strategy.close("Long_Low_Crossover")
    strategy.close("Long_High_Volume_Wick")
    strategy.close("Long_High_Volume_Crossover")

if strategy.position_size < 0 and short_exit_condition
    strategy.close("Short_Open_Wick")
    strategy.close("Short_Open_Crossover")
    strategy.close("Short_High_Wick")
    strategy.close("Short_High_Crossover")
    strategy.close("Short_Low_Wick")
    strategy.close("Short_Low_Crossover")
    strategy.close("Short_High_Volume_Wick")
    strategy.close("Short_High_Volume_Crossover")

متعلقہ

مزید