bituzi 發表於 11-8-26 17:42

程式獵人武器大對決-機關槍V.S手槍,談交易次數分析

看原文最簡單

https://lh3.googleusercontent.com/-R-CtToyU9Fs/TlZY3fQvwpI/AAAAAAAAAZ0/MwzzwVEVu-4/80254.jpg想必大家對城市獵人這部漫畫應該不陌生吧,
城市獵人所慣用的武器是手槍,並不是機關槍。
不過機關槍用起來比較方便,掃射敵人也很快,
手槍子彈又沒幾顆,一下子就用完了。
但是城市獵人為什麼還是使用手槍,
不使用機關槍呢?當然,手槍體積小,攜帶也方便,
使用機關槍,雖然可以連續掃射,很方便,
但總有點亂槍打鳥的感覺,
似乎是給槍法不準的人用的,
神槍手彈無虛發,所以使用子彈不多的手槍就夠了。
與其漫無目標的掃射,不如精準的射擊比較有效率。
不過這跟我們接下來要討論的主題有什麼關係呢?
賣個關子,繼續看下去就知道了。



上次程式獵人遇到兩個朋友在對話,
一個是在法人機構上班的法人A,
另一個是自己在家自營的散戶B。
散戶B:我那個營業員收我的費用好貴喔,
口數交易不多,費用都壓不下來。
法人A:是喔,我們在公司下單,費用還蠻便宜的,
當然我們下的口數也比較大啦!
散戶B:好羨慕喔!不過更機車的是,每次遇到快市,
就是有大行情的時候,我們下單很容易延遲,
所以滑價問題很嚴重。
法人A:真的嗎?我們在公司端,因為部位大,
公司的設備跟軟體也比較好,有專人在管理資訊問題,
所以就算是快市,滑價5點內應該都做得到。
平常就不用說了,頂多滑1、2點吧!
散戶B悲情的說:難怪散戶常常被吃得死死的,
下單就有順序之分,散戶永遠在法人跟VIP大戶之後,
真是太不公平了!

由上面的對話我們可以發現,
散戶在作交易的時候,會遇到最大的問題就是,
滑價成本跟交易費用。
所以在我們寫交易程式的時候,
交易次數是一個很重要的關鍵,
不管是你在寫當沖還是留倉程式的時候,
程式每次進出,都會有滑價成本跟交易費用,
所以交易次數過多,會造成成本與費用大增,
日積月累起來,可不是一筆小數字。
所以我們必須好好管控我們的彈藥,
不要像使用機關槍一樣,到處掃射,
搞不好這樣一個人都沒掃到,你的彈藥就已用盡。
所以我們要跟神槍手城市獵人學習,
要能彈無虛發,個個命中。

接下來我們用之前的RSI指標程式,來看看次數多寡的影響。

回測時間,SHOW TIME!
回測目標 :交易次數多寡對獲利的影響

回測標的 :用台指15分K線作留倉交易。

回測成本設定 :費用來回設定為1000元以及2000元作比較。

回測時間 :從1998年到現在(不過前三年數據參考就好)。

進場方式:
(1)當短期(6根K棒)RSI線由下往上突破長期(12根K棒)RSI線時,
啟動買進訊號,當價格向上突破前3根K棒高點時進場做多。
當短期(6根K棒)RSI線由上往下突破長期(12根K棒)RSI線時,
啟動賣出訊號,當價格往下突破前3根K棒低點時進場做空。

濾網:基本上我們使用開盤後第一根K棒的高低點當作壓力線與支撐線,買訊啟動後要過壓力線才進場做多;
賣訊啟動後要往下破支撐線才進場做空。

出場方式:(1)設定停損點數為150點。
(2)到期當天出場,等到下次訊號出現時在進場,此方式可以避免到期換月問題。

所以我們將所有情況分成四種-
1.        成本1000元,不加濾網(交易次數多)。
2.        成本2000元,不加濾網(交易次數多)。
3.        成本1000元,加濾網(交易次數少)。
4.        成本2000元,加濾網(交易次數少)。

我們將報表整理如下:

https://lh3.googleusercontent.com/-vNvkeUnh-8Y/TlZYcQmPRQI/AAAAAAAAAZo/xZFtpRYcvlA/08251.jpg

上圖為四種情況的歷年績效表

https://lh5.googleusercontent.com/-NoBe1nGRPVM/TlZYgGYuB0I/AAAAAAAAAZs/bpnegZzMgIA/08252.jpg

上圖為四種情況的歷年績效直方圖

https://lh4.googleusercontent.com/-gGH-1_E68Ig/TlZYkzGCaII/AAAAAAAAAZw/MxY9BrTbYH8/08253.jpg

上圖為四種情況的其他重要數據表

所以很明顯的可以知道,
交易次數過多,如果你是法人,你可能還會賺錢,
如果你是散戶,註定就是會賠錢。
但是交易次數就少的話,其實散戶還是可以賺到錢的,
雖然還是輸給法人。
所以大家就知道了,做交易,錙銖必較,
下單速度很重要,交易成本也非常重要,
所以我們必須要好好的建構我們的交易系統,
並且找到一個好心的營業員,
可以少收我們一點費用,
這樣我們就可以快樂地作交易了。

從上面幾張圖表中,可以知道,
當我們不加濾網的時候,交易次數其實非常的多,
平均一年可以交易到400次左右,
但是一年也才不到260個交易日,
這樣的次數也太未免太多了。
在加了濾網之後,交易次數平均一年降到只有不到140次,
績效表現當然也比較好,不過我們還是希望次數可以在少一點。
因此要降低次數,勢必要加入一些其他的濾網,
所以濾網將來也是我們很重要的課題。

不過這篇文章主要是想跟大家說,
我們一定要好好的控管交易次數,
亂槍打鳥是沒有用的,可能會傷及無辜害到自己,
希望可以跟城市獵人一樣變成神槍手。
而且之前我們也提過,
市場大概只有30%的時間有趨勢,其他70%幾乎都在盤整,
所以我們的交易次數也希望可以維持在所有天數的3到4成左右,
這樣是比較合適的選擇,當沖的程式交易也是。
其實交易次數對當沖的交易者來說更為重要,
因為你在一天內進出,滑價跟成本影響更大,
下次有機會,我們再來看看交易次數對當沖程式的影響有多大。

最後一樣再把程式碼附上給大家做參考,
跟之前的文章有些許不同,做了些修改

var : buyflag(false),sellflag(false),dh(0),dl(0);

if time=0915 then begin
dh=highd(0);
dl=lowd(0);
end;

if RSI(close,6) crosses above RSI (close,12) then begin
buyflag=true;
sellflag=false;
end;

if RSI(close,6) crosses below RSI (close,12) then begin
buyflag=false;
sellflag=true;
end;


if buyflag=true and high > dh and high > highest(h,3) then begin
buy next bar at highest(high,3)+1 stop;
end;

if sellflag=true and low< dl and low < lowest(l,3) then begin
sell next bar at lowest(low,3)-1 stop;
end;

if marketposition > 0 then exitlong at entryprice-150 stop ;
if marketposition < 0 then exitshort at entryprice+150 stop ;

Condition0=(dayofweek(date)=3 and dayofmonth(date)>14 and 22>dayofmonth(date)) or Date=1040127
or Date=1070226
or Date=1100617
or Date=1100222;
if condition0=true then begin       
if t>1314 then begin
exitlong("EXPL") on close;
exitshort("EXPS") on close;
end;
end;


幣圖誌粉絲團

oneman001 發表於 11-8-26 17:57

謝謝版大
周末愉快
{:4_209:}

pepe1234 發表於 11-8-26 18:47

交易次數多
相對的費用成本高
就算網路在好遇到滑價的機率也大

所以還是當神槍手瞄準大肥羊吧

Dogfaceman 發表於 11-8-26 19:04

感謝幣圖誌好文~
{:4_195:}

2姐 發表於 11-8-26 19:40

好文.謝謝版主分享{:4_113:}
版主有空能多分享一些程式羅輯跟回測數字供我們參考學習嗎??
感謝~~{:4_195:}

kilroy 發表於 11-8-26 19:41

還沒看過版大在COCO回覆過 {:5_227:}

wongsphere 發表於 11-8-26 20:28

只是來這發文當廣告?

第十三使徒 發表於 11-8-26 22:12

不管怎樣,文章內容好就是好,太給力了,推一下{:4_113:}

titl 發表於 11-8-27 02:36

怪了!為什麼我測出來的結果,跟板大的差那麼多!
明明只有把程試完全Copy下來!有人知道我錯在哪嗎?還是回測資料錯誤= =!{:4_155:}


我測試設定15分k、來回費用2000、程式MC!



var : buyflag(false),sellflag(false),dh(0),dl(0);

if time=0915 then begin
dh=highd(0);
dl=lowd(0);
end;

if RSI(close,6) crosses above RSI(close,12) then begin
buyflag=true;
sellflag=false;
end;

if RSI(close,6) crosses below RSI(close,12) then begin
buyflag=false;
sellflag=true;
end;


if buyflag=true and high > dh and high > highest(h,3) then begin
buy next bar at highest(high,3)+1 stop;
end;

if sellflag=true and low< dl and low < lowest(l,3) then begin
sellshort next bar at lowest(low,3)-1 stop;
end;

if marketposition > 0 then sell next bar at entryprice-150 stop ;
if marketposition < 0 then buytocover next bar at entryprice+150 stop ;

Condition1=(dayofweek(date)=3 and dayofmonth(date)>14 and 22>dayofmonth(date))
or Date=1040127
or Date=1070226
or Date=1100617
or Date=1100222;

if condition1=true then begin       
if t>1314 then begin
sell("EXPL") this bar on close;
buytocover("EXPS") this bar on close;
end;
end;

tigerssh 發表於 11-8-27 08:29

感謝分享,看來得重視滑價及次數對交易的影響…

香蕉船 發表於 11-8-28 19:48

回復 11# 一撇木


    {:4_140:} 這個月稅和交易費繳了20幾萬



我{:4_214:} {:4_214:} {:4_214:} {:4_214:} {:4_214:} {:4_214:}

維里恩 發表於 11-9-2 14:21

善用濾網
放小魚 抓大魚
因為小魚賣不夠本錢啦...
頁: [1]
查看完整版本: 程式獵人武器大對決-機關槍V.S手槍,談交易次數分析