跨商品print 資料問題

  •   48 
  • 最後發表   utopiaaj  2 週前
utopiaaj 發文於   2025/09/30

您好,請教下關於跨商品的 print 問題。我在"警示腳本" 編輯如底下語法,目的是想撈出期交所的小型台指行情,透過value 1~8 撈出相對的數據,再用value9 做加總,單純做 print 輸出到 log 看結果。謝謝~

問題如下: 

1. 如何可以單純的print to log 就好? 因為策略雷達要求一定要加入執行商品

2. 如果在策略雷達的腳本內容, 加入這value 1~8 的這8種商品, print 只會有FIMX210這一個跑出log, 其他都報錯誤

3. 數據看來有跟期交所對上, 我驗證的方式是改成用 getField("未平倉"), 然後分別刷 value 1~8 的8種商品, 但是這樣會有 8 個log。

 

value1 = getsymbolField("FIMTX*1.TF","未平倉");

value2 = getsymbolField("FIMTX*2.TF","未平倉");

value3 = getsymbolField("FIMTX*3.TF","未平倉");

value4 = getsymbolField("FIMTX03.TF","未平倉");

value5 = getsymbolField("FIMTX06.TF","未平倉");

value6 = getsymbolField("FIMTX09.TF","未平倉");

value7 = getsymbolField("FIMX110.TF","未平倉");

value8 = getsymbolField("FIMX210.TF","未平倉");

 

value9=value1+value2+value3+value4+value5+value6+value7+value8;

 

 

print(NumToStr(date,0),

"[小型台指近月]",  NumToStr(value1,0),

"[小型台指遠月]",  NumToStr(value2,0),

"[小型台指次遠月]",NumToStr(value3,0),

"[小型台指036]",   NumToStr(value4,0),

"[小型台指066]",   NumToStr(value5,0),

"[小型台指096]",   NumToStr(value6,0),

"[小型台指10W1]",  NumToStr(value7,0),

"[小型台指10W2]",  NumToStr(value8,0),

"[未沖銷契約量]",  NumToStr(value9,0));

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/09/30

(1)既然是跨商品,一定需要主商品。若你只是要收集資料,而非交易,你可將執行商品設為台指期,這樣就只會輸出一個檔案。沒有執行商品,是無法執行策略的。

(2)由於策略雷達執行策略時,預設讀取的資料筆數是200筆。在這200筆資料中,有些商品沒有資料,例如"[小型台指096]",   "[小型台指10W1]",  "[小型台指10W2]", 因此呼叫getSymbolField時,要加上Default:=0,否則會出現執行錯誤。這個功能需要更新版本到16.04才有。

value1 = getsymbolField("FIMTX*1.TF","未平倉",default:=0);
value2 = getsymbolField("FIMTX*2.TF","未平倉",default:=0);
value3 = getsymbolField("FIMTX*3.TF","未平倉",default:=0);
value4 = getsymbolField("FIMTX03.TF","未平倉",default:=0);
value5 = getsymbolField("FIMTX06.TF","未平倉",default:=0);
value6 = getsymbolField("FIMTX09.TF","未平倉",default:=0);
value7 = getsymbolField("FIMX110.TF","未平倉",default:=0);
value8 = getsymbolField("FIMX210.TF","未平倉",default:=0);
value9=value1+value2+value3+value4+value5+value6+value7+value8;
print(datetostring(date),
"[小型台指近月]",  NumToStr(value1,0),
"[小型台指遠月]",  NumToStr(value2,0),
"[小型台指次遠月]",NumToStr(value3,0),
"[小型台指036]",   NumToStr(value4,0),
"[小型台指066]",   NumToStr(value5,0),
"[小型台指096]",   NumToStr(value6,0),
"[小型台指10W1]",  NumToStr(value7,0),
"[小型台指10W2]",  NumToStr(value8,0),
"[未沖銷契約量]",  NumToStr(value9,0));

utopiaaj 發文於   2025/09/30

謝謝教授,可以執行了, 感謝!!

utopiaaj 發文於   2025/10/02

您好,上次教授提供的範本,今天執行時都報錯誤,請問是甚麼原因? 跟模組有關嗎? 謝謝~

9/30 日那天, 我有 盤中+盤後 兩個模組

今天則是只有盤中 (盤後到期沒了)

截圖圖片

虎科大許教授 發文於   2025/10/02

台股指數現貨這個商品沒有在交易。不應該納入執行商品。

utopiaaj 發文於   2025/10/02

商品改成這幾個也都報錯誤

 

截圖圖片

虎科大許教授 發文於   2025/10/02

小型台指10W1本週三最後交易日之後就不存在了,因此產生錯誤。將該商品相關的程式碼刪除即可。

utopiaaj 發文於   2025/10/03

原來如此, 謝謝 教授 幫忙~~

發表回覆
Close