請問指標為何有些正常顯示 有些卻無法顯示 VWAP

  •   1.8K 
  • 最後發表   PYC888  2023 三月 30
PYC888 發文於   2022/01/02

量加權平均價(Volume-weighted Average Price,VWAP)

 

VWAP的計算方式

 VWAP = ∑ (典型價格 * 交易量 ) / ∑ 總交易量,當中典型價格 = 最高+最低+收盤 / 3

 

 

 

嘗試透過公式編輯 XS語法 發現有的可正常 顯示 有的卻無法顯示

4919無法正常顯示指標線

 4919無法顯示指標線

正常顯示指標線(橘色)

正常顯示指標線(橘色)

variable: vwap(0);
variable: idx(0);
idx = 0;
while date[idx] = date
  begin
    idx = idx + 1;
      end;

value1=(High+Low+Close)/3;
value2=value1*volume;
value3=summation(value2,idx);
value4=summation(volume,idx);
vwap=value3/value4;
plot1(vwap,"VWAP");

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/01/05

Hello PYC888,

 

小幫手猜測您應該是勾選了只顯示指標名稱導致錯誤訊息沒有出現。

錯誤原因是因為發生除法中分母為0的狀況。(2019/11/28 4919沒有成交量)

建議您可以把腳本改成:

if value4 <> 0 then vwap=value3/value4 else vwap = 0;   //若分母為0則vwap為0

或是

if value4 <> 0 then vwap=value3/value4 else vwap = vwap[1];    //若分母為0則vwap為前期值

都可以。

附加文件

PYC888 發文於   2022/01/05

公式看起來

是否value2的volume

若為0則用volume[1]

會比較正確呢?

但改成這樣也無法正常

variable: vwap(0);
variable: idx(0);
idx = 0;
while date[idx] = date
  begin
    idx = idx + 1;
      end;

value1=(High+Low+Close)/3;
value2=value1*volume;
if volume <>0 then value2=value1*volume else value2=value1*volume[1];
value3=summation(value2,idx);
value4=summation(volume,idx);
vwap=value3/value4;
plot1(vwap,"VWAP3");

XQ小幫手 發文於   2022/01/06

Hello PYC888,

 

如果您有把 只顯示指標名稱 取消勾選的話,就會看到錯誤一樣是分母為0。

您改了value2,但問題是出在 vwap=value3/value4; 這一段。

除法的分母 value4 不能為0。

可以考慮改為:

if value4 <> 0 then vwap=value3/value4 else vwap = value3/value4[1];

 

須注意,您的作法遇到連續兩天成交量為0的時候,一樣會出錯。

Rupert 發文於   2023/03/27

請問範例中的第4行到第7行是做什麼的? 如何得來的?

 

XQ小幫手 發文於   2023/03/28

Hello Rupert,

 

小幫手推測您應該是指這一段:

idx = 0;

while date[idx] = date begin

    idx = idx + 1;

    end;

 

您可以參考 while 迴圈的說明。

這一段基本上就是會用idx變數紀錄當下到前一日間有經過多少根Bar。

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

Rupert 發文於   2023/03/30
發表回覆
Close