電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus


程式交易知識庫-程式交易加碼介紹


『我就是伽瑪(加碼)過頭了才變成這樣啦』

程式交易的玩法可以千變萬化,當然獵人不可能所有的東西都懂,
只是獵人可以藉由在網路分享自己所知,可以找到一群志同道合的夥伴,
互相交流切磋,增進彼此的功力,這也是大家所樂見的。
當然,獵人還是有一些理想跟抱負的,有機會再跟大家分享。
今天要來介紹程式交易的加碼部分,這部份也是蠻多人有興趣的地方,
加碼方式百百種,不過還是要先介紹軟體設定的部份,軟體都沒搞定,
談了一堆策略也是沒用的。



今天會介紹MulitiCharts跟TradeStation這兩套軟體的加碼設定方式,
其實設定部分還蠻簡單的,不過因為有些讀者是初學者,
所以還是要慢慢的講解一下,首先我們先來看看MulitiCharts部分。

MulitiCharts程式加碼設定



首先打開MulitiCharts程式,加入我們想執行的訊號程式後,
然後按右鍵去設定訊號,如下圖所示:


然後去選擇屬性,會跳出一個視窗,
如下圖所示:


在這個視窗你可以設定你的交易成本與部位限制部分,
為了讓我們的策略可以重複進場,所以必須去更改部位限制的設定,
一般來說,當我們要設定程式執行加碼策略時,
我們會在主要進場邏輯進場之後,才會開始執行加碼策略。
所以程式中會有一個主要進場邏輯,還會有其他次要的進場邏輯,
比如說:當主要邏輯進場做多之後,我們決定指數再漲20點後,
再度進場加碼1口單,所以加碼的進場程式是要另外再寫的,
也就是說,主邏輯是進場方式1,加碼是進場方式2,以此類推。
所以必須勾選部位限制中的-「最多容許多少筆和目前倉位相同的委託」,
就看大家想要加碼到多少口就設定多少口,如下圖所示:



如果你的加碼策略是由同一個進場邏輯所產生的話,
那你就要勾選「無論委託是否由相同訊號產生」這個選項,
不過大家要切記,除非你的進場邏輯交代得非常清楚,
不然只要K棒滿足你的進場條件,就會一直重複進場,必須非常小心。

TradeStation程式加碼設定



一樣打開TradeStation程式,加入我們想執行的策略程式後,
然後按右鍵去Format Analysis Techniques,如下圖所示:


點進去後選擇 Format ,如下圖所示:


進去後看到第一欄Pyramiding Settings
一樣可以去選擇-
1. 不允許重複進場(Do not allow)
2. 允許不同的進場訊號重複進場(Allow fo differrnt entry signals only)
3. 允許相同或不同的進場訊號重複進場(Allow fo same and differrnt entry signals )
如下圖所示:


這之間的差異跟MulitiCharts一樣,參考上面的解說就好。
如此一來我們就可以來執行我們的加碼程式了。
既然都介紹了程式如何加碼了,我們就把之前的程拿來試試看,
這邊使用之前的累積分數進場策略,來看看績效有什麼差別。

回測時間,SHOW TIME!

回測目標:加碼對於原本策略有什麼影響?

回測標的:用台指5分K線作當沖交易。

回測成本設定:費用來回設定總共為1000元。

回測時間:從2002/1/2到2012/6/7。

進場方式
(1)當分數超過+3,啟動買進訊號,當價格向上突破前6根K棒高點時進場作多。
(2) 當分數低於-3,啟動賣出訊號,當價格往下突破前6根K棒低點時進場作空。

濾網
(1)限制當天多空都只能各進場一次。
(2) Highest(High,4)-Lowest(Low,4) < (Highd(0)-Lowd(0))×R。
(3) 最近6根K棒的高低點範圍要超過當日高低點範圍的某個比例。
(4)作多濾網:high>average(close,N),N為某整數。
(5) 今日最低點離均線太遠,不要作多,這邊設定差距為80點。

出場方式
(1)設定停損點數為50點。
(2)收盤前1點40分全部出場。
(3)當獲利在50點內,指數拉回超過或是低於幾根K棒的高點或低點出場。

加碼多單進場方式
當前面多單進場後,滿足下列條件就再次進場做多,
最多只能加碼1口。
(a) 當K棒高點超過之前進場點10點以上
(b) 當分數再累積2分以上
(c) 當日最高點要超過前1日最高點
(d) 前次進場後2小時內可以加碼,超過時間就不再加碼
(e) 12點30分後也不再加碼
滿足以上條件後,當價格向上突破前3根K棒高點時進場作多。

加碼空單進場方式
當前面空單進場後,滿足下列條件就再次進場做空,
最多只能加碼1口。
(a) 當K棒低點低於之前進場點10點以上
(b) 當分數再減少2分以上
(c) 當日最低點要低於前1日最低點
(d) 前次進場後2小時內可以加碼,超過時間就不再加碼
(e) 12點30分後也不再加碼
滿足以上條件後,當價格往下突破前3根K棒低點時進場作空。

最後我們把報表整理如下:
A代表原始的程式
B是有加碼的程式



上圖為每年績效表


上圖為每年績效直方圖


上圖為其他各種報表重要數值


大家可以發現,原則上加碼之後的近場次數多了大概470次,
勝率跟Profit Factor都上升了,績效也有大幅上升超過100萬,
不過唯一美中不足的是,連續最大虧損(DD)變大了。
這邊要跟大家說明一件事情,當你使用加碼策略後,
不僅僅只有進場部分要注意,出場部分也是要注意。
怎麼說呢?因為這支程式雖然把進場方式給分開成2部分,
但是出場方式卻沒有區分,也就是說,不管先進還是後進的部位,
都會在相同的出場點出場,其實這樣是不太合理的。
因為先進場的部位,可能獲利空間比較大,可以忍受較大的震盪,
但是後進的部位,相對來說獲利空間較小,
可能無法忍受跟原本先進的部位一樣的震盪幅度,
所以出場部分必須要稍微區分一下才行。
當然連續最大虧損變大並不完全是因為出場方式的關係,
有許多失敗的加碼部位也是一個影響的重點。
所以要如何加碼會比較好,網路上其實有很多的討論,
大家可能也知道一些方式,可以先自己試試看,
也歡迎大家提供意見跟獵人討論喔!
大家想知道獵人如何修改加碼部分的程式碼嗎?
請按標題下的,然後到讀者回覆區回覆,如果數超過100,
獵人就把程式碼寄給大家,不然獵人會在一個月後找機會在文章上公布。
不想知道,想自己嘗試的人,也請給獵人一個鼓勵,按個吧!
還有之前的文章所要寄送的程式碼,可能有些讀者是後來陸陸續續回覆的,
獵人會定期彙整再寄出給大家,請大家耐心等候。

在撰寫加碼策略程式時,除了進場部分的策略要分散之外,出場方式也要作區分喔!

0 意見: