請問警示的XSCRIPT 的日期顯示 以及 日期的前後關係

  •   200 
  • 最後發表   Peter54321  2021 五月 20
Peter54321 發文於   2021/05/18

我的CODE如下

 

 

variable:aa(0);

variable:bb(0);

 

variable:count(0);

input:_time(090000);

 

aa=GetField("成交量", "D");

bb=GetField("成交量", "D")[1];

 

if GetField("成交量", "1") > aa

then count=count+1;

print(date,time,Hour(time - _time) * 60 + minute(time - _time),GetField("成交量", "1"),aa,bb,symbol,close);

 

 

印出來的結果如上傳檔案一樣

下面先秀2行就好

20210513.000000 101000.000000 70.000000 79.000000 66075.000000 50411.000000 4142.TW 61.700000 

20210513.000000 101100.000000 71.000000 98.000000 66173.000000 50411.000000 4142.TW 61.700000 

 

問題是這樣的

1. 我的PRINT日期寫法參考https://forum.xq.com.tw/thread/%E5%A6%82%E4%BD%95%E5%9B%9E%E5%82%B3%E9%96%8B%E7%9B%A4%E5%BE%8C%E5%88%B0%E7%9B%A4%E4%B8%AD%E6%99%82%E9%96%93%E7%9A%84%E5%88%86%E9%90%98%E6%95%B8/

這邊文章

但是印出來的小時是

 101000.000000

印出來的分鐘是

70.000000

這真的超級不合理

 

2. 我回測的設定如下

我明明就是測2021/05/14

為什麼GetField("成交量", "D")[1] 這一個秀的是2021/05/12的數據?

然後GetField("成交量", "D")是秀2021/05/13的數據

我回測的是05/14壓~~~

 

3. 我列印的  GetField("成交量", "D")  這個參數,為什麼第一時間的數字是66075.000000 ? 

這是哪一天的幾分所記錄下來的數字?

附加文件

排序方式: 標準 | 最新
Peter54321 發文於   2021/05/18

有關時間的話

想要請問 應該要怎麼寫

可以準確的印出  日時分?

XQ小幫手 發文於   2021/05/19

Hello Peter54321,

 

1.

有關時間的運算的話,請您用 TimeAddTimeDiff 函數。

日期的運算,請用 DateAddDateDiff

 

2.

回測的時候預設會往前讀取200筆資料,所以您印出的是在運算那些資料時所得出的結果。

但是在那段期間並不會進出場。進出場只會發生在您設定的開始與結束日期內。

 

3.

GetField("成交量", "D")會回傳該根bar時當日累積的成交量數。

依照您提供的文件顯示,這是在 2021/05/13 10:10 時的當日累積成交量。

 

4.

date 和 time 回傳的時該根 bar 的日期和時間。

currentdate 和 currenttime 在即時的狀態下是回傳目前電腦的時間,如果回測的狀態下則是該根bar的日期時間。

 

Peter54321 發文於   2021/05/19

Hi 小編你好

3.

GetField("成交量", "D")會回傳該根bar時當日累積的成交量數。

依照您提供的文件顯示,這是在 2021/05/13 10:10 時的當日累積成交量。

 

我回測的時間是05/14

為什麼當天是05/13  ?

當天應該是05/14才對

還是我錯過什麼設定?

 

XQ小幫手 發文於   2021/05/20

Hello Peter54321,

 

如同小幫手上次的回覆:

回測的時候預設會往前讀取200筆資料,所以您印出的是在運算那些資料時所得出的結果。

但是在那段期間並不會進出場。進出場只會發生在您設定的開始與結束日期內。

 

這是因為策略運算時會連同預先讀取筆數一起運算,所以那段時間也會 print。

但這並不會影響回測的進出場。

您可以參考此連結來了解關於資料讀取筆數的詳細資訊。

 

如果您完全不想要print出您設定的日期以前的資料,建議您可以在腳本裡新增時間條件來作控制,舉例來說:

if date = 20210514 then print(......);

這樣的話print就只會發生在20210514這天。

發表回覆
Close