有沒有多空都能賺錢的交易策略??

By | 2016-06-07

“我希望有一個策略,大盤在漲的時候我會賺錢,大盤在跌的時候我也會賺錢。” 這是先前來學程式交易的某網友,許的願望。(我很想跟他說你直接叫我乾爹,我給你零用錢比較快)

不過正所謂需求創造供給,這陣子有空就在想如何建構一個多空都要能賺錢的交易策略,搭捷運時想,走路時想,有時候連睡覺前都在想,想來想去,想到了一招,我寫了一個小程式,似乎可行,今天就來跟大家分享這個嚐試。

請大家先看下面這張圖

0050 and 00632r

TSE,0050及00632R擺在一起看,TSE漲時,0050會漲,TSE跌時,00632R會漲,所以我們如果有個策略,可以抓到多空轉折點(不用太精準,大勢看對有接對就行),那麼應該可以實現一個策略多空都賺的願望。

於是,我寫了一個腳本如下: 用0050及00632R這兩檔ETF去跑

if symbol="0050.TW"
then begin
if average(GetSymbolField("tse.TW","收盤價"),5)
crosses over average(GetSymbolField("tse.TW","收盤價"),20)
then ret=1;
end;

if symbol="00632R.TW"
then begin
if average(GetSymbolField("tse.TW","收盤價"),5)
crosses under average(GetSymbolField("tse.TW","收盤價"),20)
then ret=1;
end;

今年以來,回測的報告真的不錯

060701

如果從00632R上市的時候2014年11月起跑回測,也還OK

060702

這個腳本的概念就是當加權指數週線突破月線時進場買0050,當週線跌破月線時,進場買00632R

用這個方法,會輸錢都是輸在均線假突破跟假跌破,至於怎麼濾掉假突破跟假跌破,先賣個關子,下次有機會再來討論

在腳本中有用到symbol這個函數,它的用法是

symbol=”商品代碼”

不過這邊有個小陷阱,商品代碼的英文字母記得一定要用大寫,小寫電腦不認識。