swimming543 發表於 12-11-18 17:14

我這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;


雙巴神 發表於 12-11-18 18:23

積效因人而異,你要指出哪裡"怪"才知道問題所在

還有,你中文描述和英文寫的不一樣

swimming543 發表於 12-11-18 19:52

我可能知道問題在哪了,似乎是只要buy at open or sell at open,就是作在next bar,也就是buy this bar at open是不可行的

曾永政 發表於 12-11-18 19:53

本帖最後由 曾永政 於 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

folkchen 發表於 12-11-19 00:30

疑~ 賠的還蠻少的耶~

tony4885 發表於 12-11-19 09:07

請問open tomorrow是?
謝謝
頁: [1]
查看完整版本: 我這Tradestation語法哪裡錯了?