請問要以1分K作自動交易,但要先用5分K 決定停損點,有可能嗎?
我用附件的腳本作回測,商品限 FITX*1,頻率分別使用 1分K 和5分K,同樣 不勾選 模擬逐筆洗價
二者結果不同,主要是因為當天第一筆 1分K 和5分K的收紅或收黑所造成。
Q1:如果我希望依據 5分K的結果決定是否進場,而進場後以 1分K 逐筆洗價,移動停損停利點,請問該怎麼修改?
Q2: 我看線圖,七月一日應該會被5分K列為符合進場條件,但是 log 檔裡卻被排除,是我哪邊寫錯了嗎?
報告小幫手,Q2已經找到問題了,是我自己耍笨,判斷邏輯沒寫清楚,拍謝。
問題一還在測試中。。。
針對第一個問題,我查了 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;
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棒)
3 評論