GetQuote("總量(日)" ) = GetField("Volume") ?

  •   467 
  • 最後發表   Woody16  2022 七月 12
Woody16 發文於   2022/07/06

Hi Sir ,

       GetQuote("總量(日)"  = GetField("Volume") ? ,我用下列程式策略雷達執行,但 GetQuote("總量(日)"  = GetField("Volume") 不一樣? 這是正常嗎?

==

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"總量=",GetQuote("總量(日)"));

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"成交量=",GetField("成交量"));

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"volume=",GetField("Volume"));

 

==

 

附加文件

排序方式: 標準 | 最新
musashi 發文於   2022/07/07

正常。

很多函數可以在下面的XS函數搜尋網址裡面找到答案

https://xshelp.xq.com.tw/XSHelp/

value1=GetQuote("總量(日)");   //日頻K棒的成交量(即時報價欄位)

value2=GetField("Volume","D");  //日頻K棒的成交量(資料欄位或即時欄位)

value3=GetField("Volume");      //目前頻率K棒的成交量(資料欄位或即時欄位)

Woody16 發文於   2022/07/07

理論上要差不多!但是程式跑出來卻差很多?為什麼?

 

總量= 238135.000000 

成交量= 325.000000 

volume= 325.000000 

總量= 238135.000000 

成交量= 396.000000 

volume= 396.000000 

總量= 238135.000000 

成交量= 571.000000 

volume= 571.000000 

總量= 238135.000000 

成交量= 1277.000000 

volume= 1277.000000 

總量= 238135.000000 

成交量= 2888.000000 

volume= 2888.000000 

總量= 238135.000000 

成交量= 1038.000000 

volume= 1038.000000 

總量= 238135.000000 

成交量= 760.000000 

volume= 760.000000 

總量= 238135.000000 

成交量= 910.000000 

volume= 910.000000 

總量= 238135.000000 

成交量= 1197.000000 

volume= 1197.000000 

Woody16 發文於   2022/07/07

查資料 "昨量"可以用 GetField("Volume","D")[1] ,表示,但我下下列指令,得到卻不是昨量,為什麼?

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"總量=",GetQuote("總量(日)"));

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"成交量=",GetField("成交量"));

print (File("C:\09_Temp\Print\[Symbol]_[StartTime].log"),"volume[1]=",GetField("Volume","D")[1]);

==

output 

總量= 178542.000000 

成交量= 3157.000000 

volume[1]= 3949.000000 

總量= 178542.000000 

成交量= 1520.000000 

volume[1]= 3157.000000 

總量= 178542.000000 

成交量= 1523.000000 

volume[1]= 1520.000000 

總量= 178542.000000 

成交量= 14636.000000 

volume[1]= 1523.000000 

總量= 178542.000000 

成交量= 11415.000000 

volume[1]= 14636.000000 

總量= 178542.000000 

成交量= 5173.000000 

volume[1]= 11415.000000 

總量= 178542.000000 

成交量= 13009.000000 

volume[1]= 5173.000000 

總量= 178542.000000 

成交量= 11048.000000 

volume[1]= 13009.000000 

總量= 178542.000000 

成交量= 6120.000000 

volume[1]= 11048.000000 

musashi 發文於   2022/07/07

你執行腳本的頻率要日頻,GetField("Volume","D")[1]才會是昨量,

以上修正,GetField("Volume","D")[1]請參考XQ小編說明。

不管是K線圖指標腳本、警示腳本或自動交易腳本都會有不同頻率,撰寫腳本需要依執行頻率不同而使用對應的函數

XQ小幫手 發文於   2022/07/12

Hello Woody16,

 

您在print的時候,或許可以將日期和時間一併print出來,會比較好根線圖比較。

另外需注意,getquote是報價函數,所以是取得最新的資料,且不能使用在回測上。

而getfield則是會對應該根Bar的日期時間取得相對應的(歷史)資料。

GetQuote("總量(日)" ) = GetField("Volume", "D") 會發生在即時運作當下的狀況下,過去的資料則會不相同。

 

另外 GetField("Volume","D")[1] 使用在不同頻率下都會是昨日的日頻率成交量。

value1 = GetField("Volume","D");

value1[1] 則是執行頻率上一根Bar的日成交量頻率。

 

感謝 musashi 的熱心回覆。

發表回覆
Close