[感謝小幫手。已解決]以1分K作逐筆洗價交易,但先用5分K 決定是否進場

  •   760 
  • 最後發表   Skywalker  2021 九月 13
Skywalker 發文於   2021/09/07

請問要以1分K作自動交易,但要先用5分K 決定停損點,有可能嗎?

我用附件的腳本作回測,商品限 FITX*1,頻率分別使用 1分K 和5分K,同樣 不勾選 模擬逐筆洗價

二者結果不同,主要是因為當天第一筆 1分K 和5分K的收紅或收黑所造成。

Q1:如果我希望依據 5分K的結果決定是否進場,而進場後以 1分K 逐筆洗價,移動停損停利點,請問該怎麼修改?

Q2: 我看線圖,七月一日應該會被5分K列為符合進場條件,但是 log 檔裡卻被排除,是我哪邊寫錯了嗎?

附加文件

排序方式: 標準 | 最新
Skywalker 發文於   2021/09/09

報告小幫手,Q2已經找到問題了,是我自己耍笨,判斷邏輯沒寫清楚,拍謝。

問題一還在測試中。。。

Skywalker 發文於   2021/09/10

針對第一個問題,我查了 GetField 函數的說明有提到三個參數,傳入欄位名稱、指定的欄位頻率與是否為還原值。如果不傳頻率的話,則讀取目前執行頻率的對應欄位。

我用一分鐘的頻率回測腳本,腳本裡有寫要取 5分K 資料,但是回測的結果卻是 1分K 的資料(請參見附檔)

請問小幫手,我要怎樣寫,才能在一分鐘的頻率下取得5分K 資料?

if getfieldDate("Date")<>getfieldDate("Date")[1] then begin

//取出今天開盤第一根 5分K 資料

kbar_high =GetField("High","5")[0];

kbar_low = GetField("Low","5")[0];

kbar_open= GetField("Open","5")[0];

kbar_close=GetField("Close","5")[0];

end;

附加文件

XQ小幫手 發文於   2021/09/13

Hello Skywalker,

 

可以做到,但要取用5分鐘頻率資訊時需要注意time的設定。

舉例來說,如果要取用開盤第一根5分K的資訊,且要是完成的K棒的話,需要在1分鐘頻率下的090400取用才行。

//取出今天台股開盤第一根 5分K 資訊

if time = 090400 then begin   //台指的話就是 084900。

    kbar_high =GetField("High","5");

    kbar_low = GetField("Low","5");

    kbar_open= GetField("Open","5");

    kbar_close=GetField("Close","5");

end;

這樣就可以取得完整的K棒資訊。

請注意XS的時間是該跟Bar開始的時間,所以 090400 就會是 09:04 ~ 09:05 的資訊,而此根Bar完成的時間會是 09:05。

這樣就會跟5分鐘頻率 090000 相同。 (09:00 ~ 09:05,完成時間是在09:05,這時取用當根5分K才能取得完整的K棒)

  • 按讚來自於
  • skywalker0123
發表回覆
Close