我這Tradestation語法哪裡錯了?
各位好,我是Tradestation的新手,最近開始學寫easylanguage語法,目前寫了一個很簡單的逆勢單邏輯來回測,但跑出來的回測怪怪的
邏輯如下:
進場:
如果k線連續為兩天為實體黑k(實體佔50%以上),今天若開盤比昨天收盤高,則以市價買進;
如果k線連續為兩天為實體紅k(實體佔50%以上),今天若開盤比昨天收盤低,則以市價賣出;
IF H<>L and H<>L and (C-O)/(H-L)<-0.5 and (C-O)/(H-L)<-0.5 and O>C then buy at O;
IF H<>L and H<>L and (C-O)/(H-L)>0.5 and (C-O)/(H-L)>0.5 and O<C then sell at O;
出場:
若當日低點低於前日低點, 則買單以收盤價出場
若當日高點高於前日高點, 則賣單以收盤價出場
if marketposition <> 0 then begin
If L<L then exitlong at C;
If H>H then exitshort at C;
end;
積效因人而異,你要指出哪裡"怪"才知道問題所在
還有,你中文描述和英文寫的不一樣 我可能知道問題在哪了,似乎是只要buy at open or sell at open,就是作在next bar,也就是buy this bar at open是不可行的 本帖最後由 曾永政 於 12-11-18 20:00 編輯
如果你需要用當天的開盤價決定是否進場,除了以 IOG 模式去寫之外,大概就得用 Open tomorrow 去做了,聽說 TradeStation 也有支援 open tomorrow。
我用 MultiCharts 直接以你的中文描述寫的:
var:DayRed(false),DayBlack(false);
DayRed= C>O and absvalue(C-O)>(H-L)*0.5;
DayBlack= C<O and absvalue(C-O)>(H-L)*0.5;
//Entry
if DayRed and DayRed and Open tomorrow>Close then
buy next bar market;
if DayBlack and DayBlack and Open tomorrow<Close then
sellshort next bar market;
//Exit
if marketposition>0 and Low<Low then
sell ("XL") next bar market;
if marketposition<0 and High>High then
buytocover ("XS") next bar market;
訊號圖如下:
http://images.plurk.com/7CF6paZO7JtTj71g3lzqiM.jpg
回測 2001~today:
http://images.plurk.com/4Oi6cZAC0Wn8OKa4qre8KU.jpg
疑~ 賠的還蠻少的耶~
請問open tomorrow是?
謝謝
頁:
[1]