取不到group組裡面的股票本人

  •   6 
  • 最後發表   mina2310  7 小時前
mina2310 發文於   2026/02/17

不好意思 我又上來詢問了

實在想不透 我在一開始的時候就把stockID設成字串變數

為什麼跑出來的錯誤還會是GetSymbolField:第 1 個參數應該是 String/Input/Group。

 

Inputs: 

    cbgroup(group,"可轉債本人");

SetFirstBarDate(20200101);

Vars:

cbsize(0),

i(0),

cbClose(0),

change_Price(0),

change_Value(0),

stockID(""),

stockClose(0),

priceGAP(0),

average_priceGAP(0),

validCount(0);

 

cbsize = GroupSize(cbgroup);

 

average_priceGAP = 0;

validCount = 0;

 

For i = 1 to cbsize 

Begin

 

    cbClose   = GetSymbolField(cbgroup[i],"Close",default:=0); 

    change_Price = GetSymbolField(cbgroup[i],"轉換價格",default:=0);

 

    stockID   = GetSymbolInfo(cbgroup[i],"標的物");

 

    stockClose = GetSymbolField(stockID,"Close",default:=0);

 

    If change_Price > 0 and stockClose > 0 and cbClose > 0 Then 

    Begin

 

        change_Value = stockClose / change_Price * 100;

 

        priceGAP = (cbClose - change_Value) / change_Value * 100;

 

        average_priceGAP = average_priceGAP + priceGAP;

        validCount = validCount + 1;

 

    End;

 

End;

 

If validCount > 0 Then

    Plot1(average_priceGAP / validCount, "平均折溢價%");

 

 

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

GetSymbolField的第一個參數是商品代號字串,只能是一般字串,不接受字串變數。

mina2310 發文於   2026/02/17

不好意思 那我該怎麼解這個?

該怎麼去計算市場的cb折溢價平均? 該怎麼 讓他們在group裡面得到相對應的現股價格?

🙏可以給個方向嗎?

虎科大許教授 發文於   2026/02/17

目前我能想到的是用Switch Case結構,逐一根據CB代號,賦予現貨代號,以擷取現貨價格。不過,這樣做的話,你需要輸入三百多檔的資料。

Switch(cbgroup[i])

begin

case "11011.TW":

stockClose=GetSymbolField("1101.TW","Close",default:=0);

case "25483.TW":

stockClose=GetSymbolField("2548.TW","Close",default:=0);

case "82993.TW":

stockClose=GetSymbolField("8299.TW","Close",default:=0);

end;

 

發表回覆
Close