我用交易腳本跑選股腳本,交易腳本程式如下,用1分鐘頻率或15分鐘頻率,開逐筆+觸發即成交,都印不出090000的k棒,請問問題在哪裡?謝謝
完整程式碼貼不上來,就是時間往後類推,想把選股策略中的分鐘k棒資料印出來
input: Capital(10, "每檔資金(萬)");
input: _side(1,inputkind:=Dict(["多單",1],["空單",-1]));
var: IDX(0), OrderQuantity(0);
IDX = FilledRecordCount;
IF (Filled = 0 AND (IDX = 0 OR FilledRecordDate(IDX) <> DATE)) then begin
if _side = 1
then begin
OrderQuantity = Floor(Capital * 10000 / Close / 1000);
SetPosition(OrderQuantity, Market);
end else
if _side = -1
then begin
if GetSymbolInfo("IsDayTrading") = true then
OrderQuantity = Floor(Capital * 10000 / Close / 1000);
SetPosition(-OrderQuantity, Market);
end;
END;
if position <> 0 and filled <> 0 then begin
if time = 090000 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0),"昨天收盤價"+NumToStr(getField("參考價", "D"),2),"當天開盤價"+NumToStr(getField("Open"),2));
if time = 091500 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
if time = 093000 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
if time = 094500 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
if time = 100000 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
if time = 101500 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
if time = 103000 then print(file("Print\print數據用.csv"),"商品代碼"+SYmbol,"進場日期"+NumToStr(DATE,0),"時間"+NumToStr(time,0),"均價"+NumToStr(getField("均價"),2),"開"+NumToStr(open,2),"高"+NumToStr(high,2),"低"+NumToStr(low,2),"收"+NumToStr(close,2),
"15分鐘成交量" + NumToStr(getField("成交量", "15"),0));
end;


資料
22 評論