getsymbolgroup("權證") 在選股腳本不正常

  •   73 
  • 最後發表   Shih Hui Chang  2026 二月 02
Shih Hui Chang 發文於   2026/01/30

Hi 小編,

請教一下,以下的程式,我寫成指標腳本,動作是正常的,但寫成選股腳本,卻得不到任何資料。請問有什麼地方需要調整嗎?

 

group: _list();

var: _uSum(0), _dSum(0), _count(0), _cp("");

 

_list = getsymbolgroup("權證");

 

_uSum = 0; //買權加總

_dSum = 0; //賣權加總

_count = 0;

for value1 = 1 to groupSize(_list) begin

_cp = getsymbolinfo(_list[value1], "買賣權");

if _cp = "CALL" then _uSum += GetField("收盤價", "D") * getsymbolField(_list[value1], "Volume", "D", default:=0) * GetSymbolInfo(_list[value1],"執行比例")*100*GetField("面額", "D");

if _cp = "PUT" then _dSum += GetField("收盤價", "D") * getsymbolField(_list[value1], "Volume", "D", default:=0) * GetSymbolInfo(_list[value1],"執行比例")*100*GetField("面額", "D");

//print("Close", getsymbolField(_list[value1], "Close", "D", default:=0) );

//print("Volume", getsymbolField(_list[value1], "Volume", "D", default:=0));

//print("groupSize", groupSize(_list));

//print("買賣權", getsymbolinfo(_list[value1], "買賣權"));

//print("執行比例", GetSymbolInfo(_list[value1],"執行比例"));

end;

 

Ret = 1;

 

 

outputfield(1, _uSum, 2, "近一筆買權權利金加總金額", order := 1);

outputfield(2, _dSum, 2, "近一筆賣權權利金加總金額");

outputfield(3, groupSize(_list), 2, "groupSize");

//plot1(_uSum, "近一筆買權權利金加總金額");

//plot2(_dSum, "近一筆賣權權利金加總金額");

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

GetSymbolInfo是提供商品資訊欄位的函數,它只接受一個字串參數。無法做跨商品處理。

你希望跑每檔股票時,計算該股票權證的相關數據。由於洗價的商品是股票,GetSymbolInfo提供的是股票的商品資訊,無法提供權證的數據,因此,你的需求基本上無法實現。

我懷疑你說的在指標運作是正常的說法,因為同樣面臨用GetSymbolInfo抓的「買賣權」及「執行比例」欄位無法跨商品處理的問題。

 

Shih Hui Chang 發文於   2026/01/30

Hi 許教授,

 

感謝你的分析,不過我試了可轉債跟選擇權都可以,只有權證有選股腳本拿不到正確資料的問題,你可以參考截圖。

 

虎科大許教授 發文於   2026/01/30

我修正我的說法,GetSymbolInfo可以接受兩個參數,亦即可以做跨商品處理。不過,在選股腳本中getsymbolinfo(_list[value1],"買賣權")傳回空字串,抓不到CALL及PUT。GetSymbolInfo(_list[value1],"執行比例")傳回0,抓不到執行比例數值。這是為何兩個欄位都傳回0的原因。在交易腳本,這兩個資訊欄位資料都抓得到。

Shih Hui Chang 發文於   2026/01/30

Hi 許教授,

 

謝謝你的分析,我看到的問題跟你說的一樣,目前我試過選擇權與可轉債都無此問題,只有權證有這個問題。

 

補充一點,以下五個值,只有 groupSize 可以在選股腳本拿到正確資料。

 

//print("Close", getsymbolField(_list[value1], "Close", "D", default:=0) );

//print("Volume", getsymbolField(_list[value1], "Volume", "D", default:=0));

//print("groupSize", groupSize(_list));

//print("買賣權", getsymbolinfo(_list[value1], "買賣權"));

//print("執行比例", GetSymbolInfo(_list[value1],"執行比例"));

 

 

XS小編 發文於   2026/02/02

Hello Shih Hui Chang,

 

就小編所知是因為選股不支援權證商品,故無法取得相關資訊。

Shih Hui Chang 發文於   2026/02/02

 

Hi 小編,

了解,謝謝你的回覆。

發表回覆
Close