GetSymbolInfo("轉換價格");
GetField("轉換價格");
以上兩個在交易腳本內 跑CB資料
使用Print 輸出都是0 再麻煩確認~
GetSymbolInfo("轉換價格");
GetField("轉換價格");
以上兩個在交易腳本內 跑CB資料
使用Print 輸出都是0 再麻煩確認~
Hello TommyTommy,
小編這邊測試也有相同狀況,會請相關人員確認。
還有在交易腳本使用"標的物"取值都會有誤,指標取值則無問題
以GetsymbolField / Date為例
Date;
GetsymbolField("標的物", "參考價", "D"); GetsymbolField("標的物", "open", "D"); GetsymbolField("標的物", "high", "D"); GetsymbolField("標的物", "low", "D"); GetsymbolField("標的物", "Close", "D");
2025/02/14 使用該交易腳本執行CB商品
CB 99587為例
標的物 9958 取到的值是 20241127 的資料
交易腳本如下
Var: intraBarPersist Count(0);
Var: _symbol("");
_symbol = GetSymbolInfo("標的物");
value1 = CurrentDate;
value2 = Date;
value3 = GetsymbolField("標的物", "參考價", "D");
value4 = GetsymbolField("標的物", "open", "D");
value5 = GetsymbolField("標的物", "high", "D");
value6 = GetsymbolField("標的物", "low", "D");
value7 = GetsymbolField("標的物", "Close", "D");
if Count = 0 then begin
Count +=1;
Print("CurrentDate:", NumToStr(value1,0),
",標的物:", _symbol,
",Date:", NumToStr(value2,0),
",參考:", NumToStr(value3,0),
",O:", NumToStr(value4,0),
",H:", NumToStr(value5,0),
",L:", NumToStr(value6,0),
",C:", NumToStr(value7,0)
);
end;
使用指標則無問題,查看CB 都是回傳2025/02/14當天標的物資料
指標腳本如下
value1 = CurrentDate;
value2 = Date;
value3 = GetsymbolField("標的物", "參考價", "D");
value4 = GetsymbolField("標的物", "open", "D");
value5 = GetsymbolField("標的物", "high", "D");
value6 = GetsymbolField("標的物", "low", "D");
value7 = GetsymbolField("標的物", "Close", "D");
plot1(value1, "CurrentDate");
plot2(value2, "Date");
plot3(value3, "參考");
plot4(value4, "開");
plot5(value5, "高");
plot6(value6, "低");
plot7(value7, "收");
轉換價格取不到值的問題已解決。
//選股範圍:台(可轉債)
ret=1;
outputField1(GetSymbolInfo("可轉換日"));
outputField2(GetSymbolInfo("轉換價格"));
有關交易腳本抓標的物的商品代號錯誤問題,你可以針對所有台股可轉債,print它們的現貨商品代號、參考價、開高低收等價格。我測試了,結果是正確的。
//執行商品:看盤應用分類->台股可轉債
Var: _symbol("");
_symbol = GetSymbolInfo("標的物");
print(
date,
_symbol,
GetSymbolField("Underlying", "參考價", "D"),
GetSymbolField("Underlying", "開盤價", "D"),
GetSymbolField("Underlying", "最高價", "D"),
GetSymbolField("Underlying", "最低價", "D"),
GetSymbolField("Underlying", "收盤價", "D")
);
教授您好,交易腳本取值"轉換價格"問題
選股部分output 是沒問題
//選股範圍:台(可轉債)
ret=1;
outputField1(GetSymbolInfo("可轉換日"));
outputField2(GetSymbolInfo("轉換價格"));
將上述選股結果直接在交易腳本執行Print
結果如下,有些有,大部分則沒有
Var: intraBarPersist Count(0);
Var: _symbol("");
_symbol = GetSymbolInfo("Underlying");
value1 = CurrentDate;
value2 = Date;
value3 = GetsymbolField("Underlying", "參考價", "D");
value4 = GetsymbolField("Underlying", "open", "D");
value5 = GetsymbolField("Underlying", "high", "D");
value6 = GetsymbolField("Underlying", "low", "D");
value7 = GetsymbolField("Underlying", "Close", "D");
Value8 = GetSymbolInfo("轉換價格");
Value9 = GetField("轉換價格");
if Count = 0 then begin
Count +=1;
Print("CurrentDate:", NumToStr(value1,0),
",標的物:", _symbol,
",Date:", NumToStr(value2,0),
",參考:", NumToStr(value3,0),
",O:", NumToStr(value4,0),
",H:", NumToStr(value5,0),
",L:", NumToStr(value6,0),
",C:", NumToStr(value7,0),
",轉換價格Info:", NumToStr(value8,2),
",轉換價格Field:", NumToStr(value9,2)
);
end;
Hello TommyTommy,
經相關人員確認,因為交易腳本背後取資料的邏輯和其他腳本不同,故出現0是因為沒有抓到資料的緣故。
只要加上 setbackbar 並指定資料引用筆數 (視您的腳本而定,但轉換價格只要有一筆就可以抓到) 就可以取得印出相關資訊。
另外會印出不同日期的標的物資訊是因為 Count 變數在資料讀取筆數運算時就印出並改變,因此並不是執行當下的資訊。
(CurrentDate在即時的狀況下只會印出當下的日期,就算是在資料讀取筆數也一樣)。
您可以將條件改為 if Count = 0 and getinfo("IsRealTime") = 1 then begin,來確保print指令只會在即時的狀況下運行。
8 評論