開拓者關于NumericSeries、Numeric 在tick和bar上執行流程的問題 [開拓者 TB]
- 咨詢內容: 本帖最后由 zhangkaijacky 于 2012-11-12 23:39 編輯
給出代碼如下:
Vars
NumericSeries x;
NumericSeries y;
Numeric z;
Begin
If(BarStatus == 2)
{
FileAppend("c:\\log.txt",CurrentTime+" 賦值前 x: "+Text(x)+" y "+Text(y)+" z "+Text(z));
x = x + 1;
y = y[1] + 1;
z = z + 1;
FileAppend("c:\\log.txt",CurrentTime+" 賦值前 x: "+Text(x)+" y "+Text(y)+" z "+Text(z));
}
End
如果不測試該段代碼,您認為在當前bar上的tick1、tick2的結果輸出,以及到了下一根bar的tick1和tick2的輸出(以1分鐘周期為例)會是什么?另外,在測試完該代碼得到真實結果后,麻煩解釋一下相關的執行流程和邏輯,謝謝各位大佬! - TB技術人員: 最后的結果是:
0.091002 賦值前 x: 0 y: 0 z: 0
0.091002 賦值后 x: 1 y: 1 z: 1
0.091002 賦值前 x: 0 y: 0 z: 0
0.091002 賦值后 x: 1 y: 1 z: 1
0.091003 賦值前 x: 0 y: 0 z: 0
0.091003 賦值后 x: 1 y: 1 z: 1
。。。。。
0.091100 賦值前 x: 0 y: 0 z: 0
0.091100 賦值后 x: 1 y: 1 z: 1
0.091101 賦值前 x: 0 y: 0 z: 0
0.091101 賦值后 x: 1 y: 1 z: 1
0.091101 賦值前 x: 0 y: 0 z: 0
0.091101 賦值后 x: 1 y: 1 z: 1
0.091102 賦值前 x: 0 y: 0 z: 0
0.091102 賦值后 x: 1 y: 1 z: 1
從結果來看,numeric的生命期是begin-end,bar上每個tick的numericseries變量的生命期也是begin-end;但是不能理解的是,為何該bar最后一個tick走完后,序列變量仍然沒有被賦值呢。本來預計的結果是回溯bar的值為1、2、3.。。望斑竹或管理員能夠幫忙解惑,謝謝!
- TB客服: 猜的:
NumericSeries 在BAR內不改變值(即不同的TICK觸后,相當于Numeric),BAR的最后一個TICK把值固定下來,傳給下一根BAR;
Numeric 在BAR內不改變值,不傳給下一根BAR;
文檔上說,要保留每個tick的變化要用全局變量 。 - 網友回復:
beolee 發表于 2012-11-13 21:01
猜的:
NumericSeries 在BAR內不改變值(即不同的TICK觸后,相當于Numeric),BAR的最后一個TICK把值固定下 ...
但是根據輸出結果,只能推理出我上面寫的結論哦。。。你也可以試試跑跑看~ - 網友回復: 是不明白哦。。頂上
按理解如果是下一個bar(下一個分鐘),numericseries變量應該也已經賦值,而結果是沒賦值
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 262069696 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容