請教均價線公式哪裡錯了
Data1 5分, Data2 1分
寫成一個指標載入後, print 出來發現
0846 的量總和還對, 0847 後就亂了, 不知原因在哪
Vars: SumVolume(0) , SumPriceVol(0) , VWAP(0) ;
IF (D <> D) of data2 Then
Begin
SumVolume = 0 ;
SumPriceVol = 0 ;
End ;
SumVolume = SumVolume + Ticks of data2;
SumPriceVol = SumPriceVol +(C of data2)*(Ticks of data2);
If SumVolume > 0 Then
VWAP = SumPriceVol/SumVolume
Else
VWAP = C of data2;
Plot1(VWAP ,"VWAP Data2",white,Default,3) ;
if D > 1160228 then
begin
print("D=" ,D of data2 , ",T of data2=", T of data2,
" Ticks of data2=", Ticks of data2,
" C of data2=", C of data2,
" SumVolume=", SumVolume ,
" SumPriceVol=", SumPriceVol);
end;
您在每個變數前面加個intrabarpersist試試看
似乎OK 了, 請教這是為什麼呢? 本帖最後由 alexliou 於 16-3-6 21:42 編輯
jackthetan 發表於 16-3-6 18:11
似乎OK 了, 請教這是為什麼呢?
在 EasyLaguage Essentials Programmers Guide的第42頁
"Variable Calculation and Storage"這個section 有描述到變數值在IntraBar是如何處理的
When you reference a variable, the value of the variable returns is the value of the variable as the close of the previous bar.
........
So each time an analysis technique calculates intra-bar, the previous intra-bar value of a variable is thrown away.
Each variable value only gets permanently set once per bar when the bar close.
你的例子裡, 5分線是主圖, 以1分線的資料來計算daily-reset 的VWAP
對5分線的Bar而言, 根據1分線提供的資料所做的計算, 就是Intra Bar的Result, 算完後就扔掉了
下一分鐘在計算的時候, 所有變數的值又回到了上一根5分Bar Close時的值
所以在8:47分計算時, 你所reference到的價量相關值
並不是8:46分時的值, 而是前一天收盤時的價量相關值
如果要把IntraBar時的計算留下來
變數宣告時, 就必須加上IntraBarPersist
p.s. 我原先也以為, 在multiple timeframe的圖裡
建立在高時間層級的策略或指標
在不使用ADE的狀況下
除了與高時間層級Bar 同一個time stamp 那根低時間層級Bar外
存取不到其他低時間層級Bar的資料
你印出來的 traceout result 讓我推翻了我原先的看法
5分線圖裡, 每1分鐘還是有計算的
非常感謝, 不過雖然解決了, 但是6年1分K 要跑6分鐘好久,{:4_161:}
頁:
[1]