我想問一下如果我想要篩選出台指期漲跌超過300點的日期,還有相對應的選擇權資料該怎麼做?目前我的想法是這樣
value1 = getField("close","D");
value2 = getfield("open","D");
value3 = value1 - value2;
if value3 > 300 or value3 < -300 then ret = 1;
但是如果執行商品台指期,要怎麼樣獲取選擇權的資料
我想問一下如果我想要篩選出台指期漲跌超過300點的日期,還有相對應的選擇權資料該怎麼做?目前我的想法是這樣
value1 = getField("close","D");
value2 = getfield("open","D");
value3 = value1 - value2;
if value3 > 300 or value3 < -300 then ret = 1;
但是如果執行商品台指期,要怎麼樣獲取選擇權的資料
執行商品台指期,要獲取選擇權的資料,可用getSymbolField抓。你的value3不是漲跌點數,而是收紅的點數。ret=1只會在最新K棒執行,歷史K棒不會選股或警示。
那請問教授如果要篩選出過去的K棒,是不是要用settotalbar 這個函數,但是這個是要寫成指標、選股、還是警示?
選股中心裡面可以選擇符合條件的日期。

可是教授選股中心的商品不能夠選擇台指期貨,而且我是想要使用print功能把資料輸出出來做分析。所以我是寫成警示去做回測如下
settotalBar(1512); //讀取過去六年的日K棒
value1 = getfield("close", "D");
value2 = getField("open", "D");
value3 = value1 - value2; //計算今日漲跌幅
if value3 > 300 or value3 <-300 then
begin
print(File("C:\SysJust\XQLite\LOG\Myoutput.csv"), date, value3);
ret =1 ;
end;
不過途中遇到很奇怪的事情是,我本來寫的code是如下,我發現如果在執行下列code的回測的時候,如果在回測設定畫面下方勾選「啟動腳本內Print指令」那出來的回測結果交易次數就會是零次,反之如果沒有勾選那回測結果就是正常的。這讓我百思不得其解。
settotalBar(1512); //讀取過去六年的日K棒
value1 = getfield("close", "D");
value2 = getField("open", "D");
value3 = value1 - value2; //計算今日漲跌幅
if value3 > 300 or value3 <-300 then ret =1 ;
print(File("C:\SysJust\XQLite\LOG\Myoutput.csv"), date[value3], value3);
Hello 洋蔥,
如果您是使用回測功能的話,SetTotalBar並不需要設定這麼長。
就您這邊的腳本而言,只要設定一筆即可,然後將回測期間設為您想要檢查的範圍。
另外若只是要確認印出的資料,那麼腳本亦可不用 ret = 1 來觸發。
交易次數是0是因為回測出錯 (回測報告上應該可以看到商品位於失敗的部分),因為 索引值 [n] 只能是正值。
6 評論