作者heuristics (阿弟牯)
看板Trading
標題Re: [問題] 大家都怎麼學程式交易 建立交易模型的
時間Sat Jan 7 23:41:35 2017
程式交易有兩種。
指標交易-用指標當作判斷式的條件,決定進出場
一般人會接觸到的程式交易 (或稱 EA) 這種居多,
臉書或 Line 看到獲利滿滿的也是這種居多,但會讓人看到獲利滿滿的,小心是詐騙。
要入門指標交易,學習為交易而生的程式語言還有對應的交易及開發工具最有效率,
例如外匯有 MetaQuotes Language 還有對應的 MetaTrader,
MetaQuotes Language 幫你實作好許多指標,你只要呼叫函式,它就給你結果,
而 MetaTrader 幫你處理好程式交易所需的一切,你只要專心發展你的策略。
指標交易要再深入一點就是自己創新的指標。
另一種程式交易是
演算法交易-用機器學習或其他演算法,決定進出場
我們在交易其實是在做一件事,就是是用現有的價格 (或其它資訊) 去預測
晚一點會漲還是跌 (分類),甚至預測晚一點的價格 (預測)。
在這很多領域例如影像、聲音或文字都有類似的問題 (分類跟預測),
電腦科學為此早就發展了歷史悠久的機器學習去解決這些問題,
既然機器學習是在解決分類跟預測的問題,理所當然也可以用在交易上。
但用在交易上有效嗎?顯然不容易,不然學校教授早就發達了。
可是機器學習在解決影像、聲音或文字的分類跟預測的問題時,其實表現不錯,
甚至比人類還厲害,用在交易上怎麼不太容易?問題在哪?
我是這樣看,我是價格 Random Walk Theory 的信奉者,每一時刻的價格都是隨機的,
而且背後沒有相同的隨機分佈,隨機沒問題,但沒有相同的隨機分佈就不行,
這就是交易價格跟影像、聲音或文字的差別。
要入門演算法交易,就是學習機器學習理論,
實作上就以對機器學習支援較多的程式語言為主,例如 R 或 Python。
演算法交易要再深入一點我想是研究交易價格的本質。
※ 引述《micbrimac (shark)》之銘言:
: 哈囉
: 大家好
: 小弟是投資初心者
: 在職場上工作浮浮沈沈了幾年
: 以前對投資理財沒什麼興致 每次聽到朋友在聊投資股票 都避而遠之
: 覺得投資跟賭博一樣 常常聽銀行業朋友在報明牌 (可是都覺得超不准XDD
: 唯一碰過的一次股票 是去年聽了銀行業朋友的話
: 買了一張台GG股票 後來覺得壓力大 持股不到一週就趕快賣掉了
: 最近也不知道怎麼回事 突然起了興致想研究理財
: 這一個月開始尋找stock版上推薦的書單 也跟銀行業朋友要書單來看
: 陸續看了一個投機者的告白 走進我的交易室 stock for the long run
: 才終於有點知道基本面、技術面是什麼東西
: 後來又找了玩投資的朋友聊天 探尋散戶們都怎麼玩股票的
: 直到上禮拜看到臉書上的一個朋友 玩程式交易 賺了滿滿白花花的銀子
: 才注意到程式交易 跟量化投資 認識到James Simons這位大神
: 這幾天在google跟一些網站上蒐集了一些書單 有一本是版上推薦的Kaufman的書
: 稍微瞄了一本哈佛教授寫的量化金融初級入門書
: 結果裡面全是一堆看不懂的方程式跟數學
: 雖然我在理工科也念了些微積分、線代、ODE、PDE跟一點工程統計
: 想請教一下 大家一開始都怎麼建立自己的交易系統的
: 難道真的都是從學機率、統計學還有數學入門?
: 才一步步建立起自己的交易邏輯跟編輯程式的
: 雖然這樣也蠻有趣的啦~
: 身為一個理工宅 某種程度上我也是挺相信數學的
: 只是不知道要從哪裡開始 才能讀懂那一堆看不懂的書
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.220.116
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Trading/M.1483803698.A.B08.html
1F:推 ProTrader: 簡單的說 演算法交易就是股市版的Master 01/07 23:59
2F:推 micbrimac: 推推! 感謝 剛好看到 有個數學家提出關於隨機性的預測 01/08 00:17
3F:→ micbrimac: 理論 好像就是企圖在隨機中找尋規則 感覺很有趣! 01/08 00:18
4F:→ micbrimac: 找到模式規則回測是算你文中所說的第二類嗎? 01/08 00:19
Ok,實務的部分再多寫一些,人在做交易或回測,過程如下
交易-
登錄帳戶
看盤
產生決策
下單
回測-
拿一段歷史數據
產生決策
下單
重複
最後統計
程式去做是一樣的過程,所以完整的程式交易除了產生決策外,
其餘的過程也需要被實作。
一樣分為指標交易跟演算法交易。
指標交易如前所述,用為交易而生的程式語言跟工具最方便,
大部分除了交易的過程幫你準備好之外,回測的過程也準備好了,
所以比較沒有困惑,就是去學語言跟工具,至於學那套會跟你的交易商有關 (支援那套)。
演算法交易比較繁瑣,需要把過程串起來,有幾個跟交易商有關的,
需要串交易商的 API (Application Programming Interface),例如
Interactive Brokers (IB)
https://www.interactivebrokers.com/en/software/api/api.htm
OANDA
http://developer.oanda.com/
交易的過程會如下
交易-
登錄帳戶 (交易商的 API)
看盤 (交易商的 API)
產生決策 (例如 R 或 Python)
下單 (交易商的 API)
如果想要回測,就需要另外實作剩餘的過程,不過還好,外國人都很 Nice 的,
很容易找到素人實作好的函式庫,例如 Python 就有回測專用的函式庫
PyAlgoTrade
http://gbeced.github.io/pyalgotrade/
回測的過程會如下
回測-
拿一段歷史數據 (Python - PyAlgoTrade)
產生決策 (Python)
下單 (Python - PyAlgoTrade)
重複 (Python - PyAlgoTrade)
最後統計 (Python - PyAlgoTrade)
5F:推 nds3ds: 推 01/08 10:50
6F:推 bohun: 原來如此 感覺演算法這派入門難度很高 01/08 15:26
7F:推 ETHZ: micbrimac版友,可以麻煩您分享一下您看到的文章出處嗎? 01/08 20:28
8F:推 ETHZ: 先謝了~ 01/08 20:30
9F:→ micbrimac: 解讀量化投資:西蒙斯用公式打敗市場的故事 中提到的 01/08 21:05
10F:→ micbrimac: 鮑姆-威爾士算法 01/08 21:05
11F:→ micbrimac: 講到James Simons他們是用演算法來控制風險 01/08 21:06
12F:推 ETHZ: 這本書我看完了,非常好的書 01/08 23:05
13F:推 ETHZ: Baum-Welch algorithm就是Hidden Markov Model的演算法 01/08 23:06
14F:推 ETHZ: 這是我在用的方法之一,但是還沒有大成功 01/08 23:07
※ 編輯: heuristics (42.72.142.63), 01/08/2017 23:27:34
15F:推 tneduts: 推推 01/09 02:40
16F:推 micbrimac: 個人感想ETHZ大推薦 還有其他的嗎? 01/09 12:02
17F:推 micbrimac: 感謝! 01/09 20:35
18F:推 uxux: 你一開始假設就不太對哦,如果價格random,那根本不可能從 01/09 23:41
19F:→ uxux: 市場賺錢,也就沒有研究演算法的必要了,只有價格非隨機,開 01/09 23:41
20F:→ uxux: 發演算法程式交易這些東西才有意義 01/09 23:41
您可能將隨機誤解成任意,隨機是有機率分佈的,價格是隨機的,
演算法交易才有機會。
21F:推 rodion: random walk通常是說"短期"價格是隨機 但"中長期"則未必吧 01/10 15:39
提供一個觀點,反而短時才容易出現短暫的交易模型,
您可以追一些著名的演算法或量化機構,大部分都是做高頻交易。
※ 編輯: heuristics (223.140.129.33), 01/10/2017 20:07:20
22F:推 micbrimac: 我現在也認為短期反而容易有交易模型預測 01/10 21:35
23F:推 dodo222kimo: 01/10 22:52
24F:→ uxux: 如果你這麼認為,你很可能會錯過好東西哦,可以再多思考看 01/11 07:57
25F:→ uxux: 看 01/11 07:57
26F:推 magier: 短期靠數據統計容易建立模型,中長期人為變因太多難建模 01/12 09:20
(ETHZ 刪除 ES200h 的推文: 分身亂版!)