[心得] 如何自己動手寫一個自動交易程式
薦於許多人對於寫交易程式很感興趣,但卻不知從何開始,且剛好有幾位網友寫信問我
寫交易程式的問題,因此我整理了幾個比較關鍵的概念與參考網站,供大家參考。
在開發工具的部份,目前小弟使用的是Visual Studio 2008 VB or C#,這算是範例
程式多,券商API支援度也較高的工具。
有了開發工具才能開始,一個完整的自動交易程式必要的程序如下:
接收盤中即時資料=>策略運算與分析=>下單
以下就各程序簡單說明:
1.接收盤中即時資料:
A.大部份券商的看盤軟體打開後,即是DDE Server,所以盤中必須打開它。
B.你的軟體裡必須有DDE Client端程式,以連線你所開啟的看盤軟體(DDE Server),
接收即時資料,請參考 http://goo.gl/sNA1s 或 http://goo.gl/GrTWg 。
C.DDE Client端裡重要設定:
a.DDE Server的Topic & Service,每個看盤軟體皆不同,請自己向券商詢問或上
網查,下面是凱基KGI全球通TS範例:
DdeClient DdeClient = new DdeClient("TCGQ", "ICE.TWF.FITX.HOT");
b.商品代碼,每到結算日轉倉要特別注意,請參考 http://goo.gl/G3fBq 。
2.策略:
這部份其實才是程式交易的核心,也是最難的,但並不是本文想著墨的,等你把接收
資料與下單搞定了,賺錢的策略就隨你發揮。我們只談:
A.技術分析:一般收費的自動交易程式有一堆現成的技術分析方法或指標可以直接拿來
用,自己寫就不同了,可能你只是弄個均線就滿頭大汗,更何況是其他更複雜的指標
,不過好處就是透過寫程式的過程,可以完全了解該技術指標的含義,且非常有彈性
,如:想寫個3秒K、8分K、2.5小時K都不是問題。
B.回測:當一個策略寫完後,除了要測bug,更重要的就是回測勝率,可以到期交所下載
每日歷史資料的Tick檔,餵進你的程式,檢驗策略可行性並調整,下載連結如下:
http://www.taifex.com.tw/DailyDownload/Daily_yyyy_mm_dd.zip (From期交所)
(yyyy年、mm月、dd日)
3.下單:
A.先向券商申請API下單權限。
B.透過券商的API(小弟的券商有提供支援VS的API)或所謂的下單機下單,這部份通常
券商會提供範例程式與函式說明。
以上是小弟過去摸索了一陣子累積的心得,希望分享給想要自己開發交易程式的同好,
降低摸索的時間,也別忘了停損的重要性,若有任何錯誤或問題,麻煩告知,
祝大家賺大錢,謝謝~
by winman
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.50.202
推
03/08 17:57, , 1F
03/08 17:57, 1F
推
03/08 17:58, , 2F
03/08 17:58, 2F
→
03/08 18:12, , 3F
03/08 18:12, 3F
→
03/08 18:24, , 4F
03/08 18:24, 4F
推
03/08 18:24, , 5F
03/08 18:24, 5F
推
03/08 18:28, , 6F
03/08 18:28, 6F
推
03/08 18:28, , 7F
03/08 18:28, 7F
→
03/08 18:32, , 8F
03/08 18:32, 8F
→
03/08 18:48, , 9F
03/08 18:48, 9F
推
03/08 19:30, , 10F
03/08 19:30, 10F
→
03/08 19:31, , 11F
03/08 19:31, 11F
→
03/08 19:31, , 12F
03/08 19:31, 12F
推
03/08 19:39, , 13F
03/08 19:39, 13F
推
03/08 19:44, , 14F
03/08 19:44, 14F
※ 編輯: winman 來自: 114.34.217.77 (03/08 19:59)
推
03/08 20:07, , 15F
03/08 20:07, 15F
推
03/08 20:13, , 16F
03/08 20:13, 16F
→
03/08 20:31, , 17F
03/08 20:31, 17F
→
03/08 20:32, , 18F
03/08 20:32, 18F
推
03/08 20:40, , 19F
03/08 20:40, 19F
→
03/08 20:41, , 20F
03/08 20:41, 20F
→
03/08 20:41, , 21F
03/08 20:41, 21F
→
03/08 20:42, , 22F
03/08 20:42, 22F
→
03/08 20:48, , 23F
03/08 20:48, 23F
推
03/08 20:48, , 24F
03/08 20:48, 24F
→
03/08 20:49, , 25F
03/08 20:49, 25F
→
03/08 20:49, , 26F
03/08 20:49, 26F
→
03/08 20:51, , 27F
03/08 20:51, 27F
推
03/08 20:58, , 28F
03/08 20:58, 28F
推
03/08 21:01, , 29F
03/08 21:01, 29F
→
03/08 21:01, , 30F
03/08 21:01, 30F
推
03/08 21:29, , 31F
03/08 21:29, 31F
→
03/08 21:41, , 32F
03/08 21:41, 32F
推
03/08 22:25, , 33F
03/08 22:25, 33F
推
03/08 23:02, , 34F
03/08 23:02, 34F
→
03/08 23:02, , 35F
03/08 23:02, 35F
推
03/09 00:05, , 36F
03/09 00:05, 36F
推
03/09 11:37, , 37F
03/09 11:37, 37F
推
03/13 01:13, , 38F
03/13 01:13, 38F
→
08/13 00:27, , 39F
08/13 00:27, 39F
→
09/15 07:25, , 40F
09/15 07:25, 40F
→
11/07 06:49, , 41F
11/07 06:49, 41F
→
01/01 15:25,
7年前
, 42F
01/01 15:25, 42F