我已經有訂閱選股及策略模組,想使用選股中心的選股策略,給策略雷達使用,
我回測使用的參數:
最大同時進場次數:1
執行頻率:"週"
停損:10%
最大持有時間:1期
進場、出場:當期收盤價
請問這樣的設定,我在策略雷達腳本裡面該如何寫?
謝謝
策略雷達使用的觸發語法是ret
但因為策略雷達無法使用自動交易中的setposition filled等語法概念 也沒有filledavgprice之類的語法
所以必須要手動加上變數
最大同時進場次數:
一旦ret = 1 後另外在加一個變數上去 假設是xtime
var: xtime(0);
if 條件成立 and xtime = 0 then begin
ret = 1 ;
xtime = 1;
end;
停損停利也是必須自己加變數上去 因為策略雷達無法使用語法抓到你的進場價
假設是變數是inprice
入場語法
var: xtime(0),inprice(0);
if 條件成立 and xtime = 0 then begin
ret = 1 ;
xtime = 1;
inprice = close;
end;
出場語法
if xtime = 1 and close < inprice*0.9 then ret = 1 ;
但這有一定的機會會不準確 如果遇到快市滑價滑很大的話還是有一定的機率會跑掉 雖然應該不大
最大持有時間也是老樣子 必須用變數去紀錄
你可以套用上面語法的概念自己再加一個變數紀錄date (假設是 indate)
而出場可以用 if date = indate+7 then ret = 1;
以上,如果有更好的寫法或我有寫錯,還請各位先進或小幫手指正~
謝謝MIick大,弟研究了一晚,發現我該使用自動交易中心可能更貼近進場點,下面是我嘗試寫的結果,還請各位大大幫忙指正。
最大同時進場次數:1
code:
if Position = 0 then SetPosition(1, Close);
停損:10%
code:
if Filled > 0 then begin
if Close <= FilledAvgPrice * 0.9 then SetPosition(0);
end;
可以請M大再幫忙,
執行頻率:"週"
最大持有時間:1期
進場、出場:當期收盤價
這樣的在自動交易中心的腳本如何寫??
謝謝您的幫助~祝您順心平安。
你第一段code應該是要判斷手上沒單的話就買進一張對嗎
我的經驗用filled = 0會比用position = 0 來的好
畢竟兩者是不一樣的東西 Filled是真正你手上持有的單
執行頻率不用特別寫 在執行自動交易時選擇你要的頻率就好
最大持有時間 你一樣可以用我上面講的 在執行setposition的時候記錄date在一個自訂的變數內
當實際date > 進場日+7時就出場
或者也可以用 FilledRecordDate 自己寫寫看 (拍謝,因為我沒用過這個函數)
http://xshelp.xq.com.tw/XSHelp/?HelpName=FilledRecordDate&group=TRANSACTIONFUNC
至於當期收盤價,我也沒用過,但我覺得這只是回測時需要的一個基準點
實務上你用收盤價的話應該無法成交甚至無法掛單才對
因為最後一盤是13:30,而這一次成交才是當天的實際收盤價
也就是說當13:30最後一筆成交產生了收盤價這個數值後你才進行掛單,這是沒辦法掛出去的
除非你買14:30的盤後盤,但必須要14:00才能掛單,而且盤後盤量通常很少,更不見得會成交
--
我是半路出家的,沒XQ小幫手那麼專業,大家互相交流一起進步~
4 評論