COCO研究院

 找回密碼
 註冊
搜索
查看: 46532|回復: 34

[其他程式語言] 程式交易菜鳥給菜鳥的一封信

  [複製鏈接]
發表於 15-5-26 16:36 | 顯示全部樓層 |閱讀模式
各位好,我本身是個新手,程式交易還玩不到一年,不過我想這將近一年的時間裡,有一些心路歷程想跟大家分享,雖然目前還沒有完全成功,但不知不覺中,遇到問題而改變腳步的方式,竟也跟一些程式交易老手一樣,以下菜鳥的經驗也請各位指教分享:


去年中因朋友的介紹進入程式交易的世界,一開始是使用HTS日盛的程式交易系統,從未接觸程式交易的我,看到績效報表,60K的程式每4年穩定賺50W,15K的程式一年可以賺60~70W,我想說這太好賺了,於是一頭栽下去,一開始就勇敢用60W資金開2口大台跟他拼,一開始還真的如曲線般的效益賺錢,但交易的過程中,我上網看一些資料,發現可能有參數最佳化的問題,也就是說程式有可能會突然開始失效,但HTS能顯示的歷史就是很有限(我還不知道有multicharts這種東西),所以一直無法得知若這樣的參數再多往前測個幾年會怎樣,於是就去租了multicharts來用,這也是我第一次接觸Mc,將hts的程式翻譯成MC後一跑,媽呀,績效圖是長這樣NNNNN(賺一大段賠一大段,來來回回啥都沒),但是觀察到一個現象,就是最佳化參數外的幾個月還是有正常獲利的,於是想到一招來玩玩看,就是每個月都修改參數,改玩就可以多跑一兩個月,這樣不是可以長長久久嗎?

然後就開始了半年的程式交易,一開始的3個月,依照目標每到結算日就換一次參數,短短兩個半月,帳戶內的數字就狂飆40W,若不是中途出錯,包含手動干預,程式開啟失敗,HTS交易模組出問題(問題蠻多的),還有測試了一些奇怪的小程式,否則獲利60幾萬絕不誇張,到了第四個月時,就變只賺一兩萬,第五個月時,開始沒賺錢,到第六個月開始大賺大賠,到第七個月,也就是今年一月,發生災難了,短短的一個月就把40萬的獲利吃光只剩10W,若非即時減碼停止,早就變負數,雖然從一月到現在,程式會失敗的原因除了最佳化的問題外,跟走勢的改變也有很大的關係,美股大漲大跌,波動很大,台股跳空上來跳空下去,結構出現變化,其實或許程式還是可以繼續執行,但由於之前用MC看過NNNNN的長線走勢,於是對手中的程式感到不信任,也終於體會老手說的參數孤島是啥鬼,雖然早知道,但不到黃河心不死,而且你已經連賺3個月會開始相信,短期最佳化參數的程式賺賠比都是2:1,3:1,最大波段虧損都不會超過5W,勝率60以上,這期間我也看過一些長線的程式,但虧損常常搞到20~30W,平均每年賺約20~40W,有的年還可到80~90W,但是就是易大賺大賠,但長期執行是可賺錢的,只要你有耐心,但當時我對這種程式充滿不屑,就遇到這樣的結果,因此我對於這一年來的交易心得產生以下結論:

1.參數越多的程式越容易有參數孤島,若要最佳化至少也要先最佳化3~5年區間,然後再去看更早幾年的表現
2.最佳化期間越短,績效越佳,短期賺到錢很爽,但死的很快
3.一段時間做最佳化沒有太大效用,因為當你獲利好時,最佳化的參數並不會改變,等到最佳化出來的參數有變化時,已經賠一屁股了,因為獲利差才會修正啊~
4.短線(一兩年最佳化區間)表現佳的程式容易死,長線(10年)表現佳的通常都大賺大賠,一種你會賺很爽,但對未來充滿懷疑,一種很痛苦,但你知道苦盡甘來
5.滑價+手續稅金的成本不可忽略,沒加曲線非常漂亮,年年都40~50W,但若伴隨高量的交易次數,成本+滑價讓你當場獲利減半,或是長期無法獲利(尤其是這三年來的順勢當沖策略,就非常明顯)
6.長線策略+多策略多市場的投資組合才是王道
7.多策略多市場分散風險(我一年來執行的交易策略,竟然清一色都是順勢策略,每一種策略出手都很類似,所以要死一起死)
8.不要影響程式,別用自己的主觀意見去讓程式走走停停,最後會一身傷,該賠的就要賠,沒賠就賺不了錢,程式交易鐵律
9.若要加碼不要加碼同一策略,若賺到錢了,想加碼,建議去跑其他策略或市場,或許表現不如你現在的程式,但分散風險是必要的


新手如何執行長線策略?
若你技術高,可以寫出10年內最大波段虧損可以低於10W的,年年獲利都在40W以上,出手次數又不會太多的,那恭喜你找到聖杯,可以提早去享福了,但對於新手來說,要寫出這樣的東西非常困難,但就沒有辦法玩程式交易了嗎?方法有兩種:

1.改變心態與想法
若你資金不多,也不敢放太多資金,想從一口開始,手中又沒有好的程式,那怎麼辦?可以改變你的心態與想法,要找到年年賺錢的程式不難,網路上就可以找到不少免費的,但缺點是大賺大賠,最高波段虧損高達20~40W,平常虧個10~20W很正常,這種東西執行起來真是痛苦至極,但若能忍受過程,每年確確實實可以幫你賺至少20~30W,好的年有50~100W都有,10年下來可以賺400~500W,那可需要有超人的耐心,若你有股票抱到腰斬再腰斬的經驗,恭喜你,只要把你抱股票的毅力拿來搞程式交易就可以了,請你準備60W搞一口大台(或是15W搞一口小台),把它當作一檔600塊的股票,去死抱活抱,而你這張股票,會跌到勝200塊機率只有1/1300(10年差不多會有1300次出手),就是你開始跑這支程式時,剛好那時就是獲利高點往下掉,連賠40W的機率就只有1/1300,請問你去買一張600的股票10年內腰斬再腰斬的機率有多大?我敢說99999999%,買一張股票你還要怕他有高點要獲利了結,但程式不會,10年後的高點就是60W變500W,哪隻600的股票可以漲到5000?(PS.大立光是妖怪),他就是不斷地累積資金,準備60W來玩一口,你賠個10W,也不過10幾%,但是賺錢的機會遠高於賠錢的機會,用這樣的角度去思考是否能讓你抱久一點?可否忍受40W的虧損?就算發生40W虧損回來也很快,幾個月就回來了,但如果是股票呢?幾年都回不來了吧,這樣的程式一年獲利至少有20W,你知道600元股票獲利20W殖利率有多少嗎?遠高於全世界的所有股票,這樣很清楚了吧?

2.多市場多策略
若你有能力跟勇氣執行複數口數,多市場多策略最佳方式,我們沒辦法減低我們手中的程式波段大虧損,方法就是找一隻在再虧損時間卻反而表現不錯的程式,讓當時的虧損可以降到最低,雖然有可能獲利也會跟著降低,但賺多沒感覺,但虧大就很痛囉,這就是mc中portfolio,十個玻璃杯勝過一個聖杯,多策略是必要,那多市場呢?大家都知道台股很淺碟,加上受美股影響,跳空來跳空去讓你程式被洗來洗去,其實挺不好搞的,若發生期貨漲跌停,不是天堂就是地獄,因此國外期貨是好選擇,因為國外交易量大,有些市場走勢比較穩定,不易被操弄,台股當沖一天大部分都幾十點上下而已,國外有些市場是每天有幾百點的空間可以操弄,對某些程式來說是很有利的,至少放一些資金去外期,當台股發生漲跌停時,受傷比較不會那麼嚴重


PS.長線策略的選擇有一點很重要,就是把所有濾網拿掉,只有進場跟出場,沒有停損利,沒有濾網,就只有簡單的進出場,程式不超過10行,長線10年下來還有大約呈現40度角以上的走勢,這才是穩賺不賠的程式,用這樣的基礎去修改,讓曲線更好,才是正確的程式設計的開始,當你的濾網發生失敗時,最糟糕就是恢復沒濾網的樣子,不會偏離太多,因為基本的出手並沒有改變太多,千萬不可以用NNNNN的獲利曲線,利用濾網來讓它變成很美的45度角,我第一支自己寫的程式就是這樣.........

以上是小弟短薄的新手經驗談,主要以失敗經驗跟大家分享,因為我也還沒大賺特賺還在痛苦掙扎中,只是所幸從程式交易開始到現在還沒賠過一毛錢,希望大家都能一起賺錢呦~重點是有好程式要分享啦~哈哈哈~~~

評分

參與人數 31金錢 +66 收起 理由
dizzy03 + 2 好文章,我推薦
jinace + 1 感謝分享
huagei + 2 太強了
fid + 2 很棒的文章,感恩
ys_chang + 2 好文章,我推薦
Oklin + 2 很棒的文章,感恩
觀天下 + 2 很棒的文章,感恩
NathanYu + 2 按一個讚
jiuhtsair + 2 好文章,我推薦
lee1127 + 2 好文章,我推薦
kuolung + 2 好文章,我推薦
rup640316 + 2 好文章,我推薦
googleandy + 2 好文章,我推薦

查看全部評分

 樓主| 發表於 15-5-28 00:50 | 顯示全部樓層
本帖最後由 blj0511 於 15-5-28 01:15 編輯

是的,我解釋一下我所謂的長線程式,可能說法有點錯誤,簡單來說應該是說最佳化區間為10年以上的程式參數,所謂短線程式就是最佳化區間很短,程式反應會很靈敏,當然無參數的程式是最好

我所謂的不設停損利,是指程式的原型,實際run當然要加停損利,但那屬於濾網的一種,這種程式範例非常多,wen的網站他常常分享很多程式原型

我也來分享一支好了,我無意中寫出來的:

inputs:g(3),len(39);
vars:start_time(900),end_time(1330),grade(0),sbar(0),Kb(0);

if date>date[1] then begin;
        grade=0;
        sbar=barnumber;
        kb=0;
end;

Kb=barnumber-sbar+1;

if kb>3 then begin;
        if h>h[1] then begin;
                grade=grade+1;
        end;
        if L<L[1] then begin;
                grade=grade-1;
        end;
end;

if time>start_time and time<end_time then begin;        
                if grade>g then begin;
                        BUY next bar At HIGHEST(H,len) STOP;
                end;
                if grade<-1*g then begin;
                        SELL Short next bar AT LOWEST(L,len) STOP;        
                END;
end;

1分K,沒設停損利,程式也很簡單,沒設滑價成本所以看起來很歡樂,會寫簡寫的人可以縮小到10幾行,我是指類似這種的程式原型,再自行加上停損利,濾網等等.........


以上程式我也沒改到很好,若您有辦法改成更好的績效,歡迎回饋給我耶~


其實我整篇的重點只有一個,就是10個玻璃玻贏過一個聖杯,程式老手已經有很多不錯的程式了,我說過這是給新手看的文章,過去一年中,我一直尋找聖杯,但卻忽略手中的玻璃杯~ 回頭一看這些沒再用的玻璃杯,過程崎嶇但最後竟然都獲利,手中認為有可能是聖杯的程式卻一蹶不振

有網友提到我執行NNNNN的程式沒賠錢,是因為我是先上線跑了一個回測一年的程式,但沒跑很久,跑了一段時間才去看一年以前的績效 ,才發現是NNNNNN,所以情況不對就停了,所以沒賠到錢 ,不是一直在執行NNNNN的程式


1432745050684.jpg

評分

參與人數 4金錢 +8 收起 理由
huagei + 2 好文章,我推薦
ttt378615 + 2 感謝分享, 小弟帶回去研究了,如果有機會改.
swwang1999 + 2 感謝分享
迎風 + 2 好文章,我推薦

查看全部評分

回復 支持 4 反對 0

使用道具 舉報

發表於 15-5-27 17:06 | 顯示全部樓層
GOGA 發表於 15-5-27 14:39
為什麼長線就要用翻單型??不要停損停利?

其實這是回測的分析結果,不管你如何設定停損及停利的金額或百分比,其結果都不會比多空對翻來得好,理由很簡單,我們為什麼要停損或停利?無非是行情快要反轉或對部位不利,既然這樣為何不做反手單呢?
另外一個更重要的情況可能大家都不願意正視,就是停損及停利是Curve fitting之母。因為大家都喜歡用回測來決定停損及停利的金額,就是去擬合(fitting)每個小波段以找出停利的最佳平均值,但未來的波段是否都按照歷史一樣的走法呢?當然不是,所以停損及停利就是curve fitting的元凶,一點都不為過。

評分

參與人數 5金錢 +9 收起 理由
kuolung + 2 好文章,我推薦
blj0511 + 2 好文章,我推薦
巴不倒 + 1 好文章,我推薦
swwang1999 + 2 感謝分享
GOGA + 2 感謝分享

查看全部評分

回復 支持 2 反對 0

使用道具 舉報

發表於 15-5-26 17:22 | 顯示全部樓層
恭喜你,這麼快就悟出大道理來,不過要在程式交易賺錢,還是要通過下列項目:
1. 不把錢當錢看
2. 程式績效要符合人性,人性因子要大於0.9
3. 程式要通過可靠度檢驗--移動窗格最佳化回測,推移效率要>0.5
4. SQN要>2.5

祝您操作順利

評分

參與人數 2金錢 +3 收起 理由
blj0511 + 2 不把錢當錢看真是至理名言
manhavecoco + 1 好文章,我推薦

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

發表於 15-5-26 16:39 | 顯示全部樓層
好文
發表於 15-5-26 17:25 | 顯示全部樓層
很棒的心得,謝謝分享
發表於 15-5-26 17:54 | 顯示全部樓層
感謝分享~ 大大沒賠過錢已經是高手了~~
發表於 15-5-26 18:01 | 顯示全部樓層
blj0511大懂得檢討跟思考輸贏的原因, 表示即將邁入贏家的行列了

評分

參與人數 1金錢 +2 收起 理由
googleandy + 2 按一個讚

查看全部評分

發表於 15-5-26 18:14 | 顯示全部樓層
運氣很好,拿NNNN的績效策略實單沒虧錢。
發表於 15-5-26 18:16 | 顯示全部樓層
在市場中賺錢與賠錢是相對的
但實際上大部分人所得到結果卻常是絕對的
我想是因為大部分的人看事情的角度都是絕對的吧
所以結果也會是絕對的
很多事情的道理其實很簡單也很原始~



評分

參與人數 3金錢 +8 收起 理由
googleandy + 2 按一個讚
manhavecoco + 1 按一個讚
生猛海鮮 + 5 按一個讚

查看全部評分

發表於 15-5-26 20:55 | 顯示全部樓層
感謝版大的分享。
發表於 15-5-26 21:37 | 顯示全部樓層
我程交超過20年設計經驗 但我完全看不懂版大寫什麼

或許 程式交易 就是這麼可愛 領域之廣

還是祝您操作順利

評分

參與人數 2金錢 +3 收起 理由
david911 + 2 我也看不太懂XD
沒房子的阿捨 + 1 太強了~

查看全部評分

發表於 15-5-26 22:15 | 顯示全部樓層
twcs666 發表於 15-5-26 21:37
我程交超過20年設計經驗 但我完全看不懂版大寫什麼

或許 程式交易 就是這麼可愛 領域之廣

有趣的用語,值得學習。
發表於 15-5-27 00:14 | 顯示全部樓層
我剛買書才要邁入程交
看文卻似很有收獲
可能手動交易已經做到想無可想了
發表於 15-5-27 06:07 | 顯示全部樓層
新手如何執行長線策略?
長線為何要程式交易?是因為信號過於複雜嗎?
發表於 15-5-27 14:39 | 顯示全部樓層
為什麼長線就要用翻單型??不要停損停利?
發表於 15-5-27 15:51 | 顯示全部樓層
長線策略的選擇有一點很重要,就是把所有濾網拿掉,只有進場跟出場,沒有停損利,沒有濾網,就只有簡單的進出場,程式不超過10行

這是永遠有倉位的意思?  不考慮留個空手的時間嗎

10行的程式碼很少~就是說要靠個簡單訊號多空對翻~原po方便舉例討論嗎~謝謝
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-2 14:46

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |