交易回測錯誤,取值問題

  •   175 
  • 最後發表   jamze  2022 四月 14
jamze 發文於   2022/04/09

 

Q1:請問小幫手,我明明只回測4/8台積電,嘗試取得1分K的收盤、低點,但print出來資料卻從2021年6月開始每日一筆,一直到2022/04/08才一分鐘一筆,而且我明明設定time<=090059(090100也試過),不曉得為什麼資料會長這樣。

value1=xfMin_GetValue("1",high,0);

value2=xfMin_GetValue("1",low,0);

我也試了這個嘗試取1分K高低,但依然錯誤

Q2:另外只要我像這樣 if time>=090000 and time<=090100 ...在前面加上另一個時間就什麼東西都跑不出來。

Q3:我在執行交易時後 想判斷昨天這檔股票是否有漲停,於是我參考版上的回復

getField("Close","D")[1]=getField("漲停價", "D"),但我就覺得很奇怪,為什麼漲停價卻不用使用前一期[1],而是使用當期的數值,經過測試過後我發現getField("Close","D")[1]=getField("漲停價", "D")[1] 才能達到昨天漲停的結果,不曉得這邊期數定義到底是怎麼樣?

Q4:我爬了好多文章後,還是不太清楚用分K的自動交易怎麼寫 EX跌破哪根5分K的低點進場,試了教學裡面的 if barfreq <>.....那段起手式,但每次都是runtimeerror,交易裡面又無法setbarfreq,想請問小幫手有沒有取得分K數值的交易範例可以參考,看了好久還是不知道怎麼寫,也才有了開頭的嘗試,問題有點多,還請小幫手幫忙解惑

XQ小幫手 發文於   2022/04/14

Hello jamze,

 

1.這是因為 2021/06 ~ 2022/04/08 的資料是預讀筆數,所以會照設定的頻率運算(日頻率)。

而 2022/04/08 會有1分鐘頻率的資料則是因為自動交易日頻率的話,會強制逐筆洗價 (以1分鐘頻率Bar來模擬)。

關於資料讀取筆數的說明,您可以參考連結

xfMin_GetValue 是用在變數上而不是欄位 (high, low)。

如果您要取得1分鐘頻率的資料,可以使用 GetField (GetField("High", "1"))。

 

2.日頻率的資料沒有time欄位,若使用的話會回傳0。

所以您用時間當作條件並不適合。

如果一定要用日頻率搭配時間條件的話,需要使用逐筆洗價,並搭配 GetField("Time", "1") 取得1分鐘頻率的時間來當作條件判斷。

 

3.應該是 GetField("漲停價", "D")[1] 沒錯,這樣才會是昨日的漲停價。

 

4.您使用日頻率,卻在腳本中限制只能使用5分鐘頻率的話,自然會出現runtimeerror。

您要作的是把執行頻率設為所需的頻率。

至於在日頻率取得分鐘頻率的資訊,您可以使用GetField來達成。

 

小幫手建議您先閱覽教學區的文章,裡面有XS語法的基礎、應用 以及各項參數設定。

發表回覆
Close