PTT評價

[心得] 量化交易起頭篇

看板Stock標題[心得] 量化交易起頭篇作者
canxx
(希望工程師)
時間推噓77 推:78 噓:1 →:97

希望藉這篇起頭文和量化交易同好交流,歡迎來信,
若有line或是Telegram群,或是論壇還請分享給我

部落格版本 https://wp.me/p6LfX3-ab

(正文開始)

這是長榮套在202元努力寫程式脫魯的血淚文,話不
多說有圖有真相(哭)
https://i.imgur.com/ywsbuDI.jpg


話說買股票這些年來,很神奇的每次追高就大跌殺低
就大漲,據說這就是魯蛇平均值,決心寫程式脫魯

上過金融研訓院的量化交易課,老師說好策略不用程
式也能賺錢,爛策略走程式賠更快,嚇死寶寶了

先說結論,經過數個不出門的周末,產出個簡單的網
站,先別笑很簡陋,這可是C語言工程師初次寫Python

網址在此 http://stock.tw-maker.net/
https://i.imgur.com/MoJ54mh.jpg


選擇Python語言實作,感謝(量化交易30天)和 (Python
入門到分析股市 30天),這兩個系列文超適合入門。

花很多時間測試免費資料源,發現twstock擷取臺灣證
交所雖然免費,但很容易查詢太密集被黑名單一整天
,而且也不清楚具體限制,最後台股使用FinMind,
為了取得即時股價月繳149元。美股使用yfinance取得
Yahoo Finance資料。

試過的資料來源為下:
——
Tiingo API
免費美股資料,而且有調整後歷史股價, 考慮除權息及
拆股,方便做回測。使用限制為每月可用500檔標的資
料、每小時500 次 requests、每日2000次requests、
每月5GB用量,

Yahoo Finance (yfinance)
免費台股美股資料,而且有調整後歷史股價,使用限
制為每小時2000次requests

FinMind
部分免費,非常棒的台股資料。有股價,基本面,籌
碼,新聞。可惜股價沒經過調整,有除權息表但好像
沒有拆股表。繳交月費140元才有即時股價。

公開資訊觀測站 (twstock)
免費台股資料,但盤中一半以上股價讀到’-‘而不
是數字。不能連續讀取不然會封鎖IP。沒有調整後歷
史股價。

永豐Python API
免費但需永豐證券帳號。本來開戶前充滿期待,但試過
後覺得反應很慢,常連線失敗,相當不穩定。

TEJAPI
月費488~8800元,有各種財金資料庫
——-


除了基本資料外只有兩個指標,第一個是我唯一會
的布林通道,用來評估20交易日內,95%信任區間的
上下限,代表股價有95%機率落在此區間,超出即是
買賣點。

Pythona的matplotlib繪圖功能很強大,但要畫張漂亮
的圖也不簡單,花了不少時間調圖
https://i.imgur.com/8GzpKrr.jpg


第二個是Google Trend搜尋量指標,據說熱門股票搜尋
量大跌之後股價也會大跌,準確度還在驗證中。灰線是
每日資料,橘線是七日平均,因為周末搜尋量大減,週
平均才有代表性,八天九天都不行。

問題是Google Trend只能取得三日前資料,資料延遲
有點嚴重。若使用日指標雖然取得最新資料,但
0-100的權重每次query都不同,新舊資料不能比較,
沒法計算漲跌
https://i.imgur.com/B3fFPHR.jpg


第三個是最近很紅的處置股通知,再接上LINE機器人
就不需要處置王了!來源為證交所的上市處置股及上
櫃處置股,現在政府資料都給csv下載,一行直接丟
入dataframe處理超方便,為政府開放資料拍拍手
https://i.imgur.com/p6MpZgM.jpg

有了資料源後開始學習用Python寫網站,似乎Flask是
首選入門framework,和大學時代寫的php邏輯不同,
網址處理都是虛擬的覺得很特別,不像php網址都是真
實目錄結構

至於網頁前端…. 完全沒有前端,就是用dataframe輸
出表格加上漲跌顏色,身為C語言工程師已經有成就感 ^_^

開了一台AWS EC2,設定crontab定時執行parser,將
結果寫入csv,再由flask讀取csv用dataframe顯示在
網頁,第一個網站服務就此上線,幹話講了這麼多年
終於開始進入量化分析的世界。不過免費的t2.micro
等級好慢啊,真不適合上線服務,還是說flask太沒效
率也有可能。

下一步準備實作九轉指標,做回測,想策略,將策略
實作到網站並加入LINE通知,使用AI模型LSTM分析。

台灣量化交易的資料不多,歡迎同好來信交流,一起
邁向脫魯王的道路!
-----
Sent from JPTT on my iPhone

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.159.182 (臺灣)
PTT 網址

hakkacandy 07/24 16:03兄弟 我們是來交易賺錢 不是來寫程式的

HpHolidays 07/24 16:03滿厲害的 給推

hakkacandy 07/24 16:04可以站在這個角度 有些輪子不用自己做

stlinman 07/24 16:05推,分享。

MuziKAY 07/24 16:07感覺厲害

pttccbbs 07/24 16:10沒錯啊,要鑽研自己致富的方法,而不是寫程式啊

pttccbbs 07/24 16:11我在小虧一些小單後,有自己學到一些經驗,這才是

pttccbbs 07/24 16:11自己成長的動力啊,後來就賺大筆的,經驗可以傳承

pttccbbs 07/24 16:11

ru8bj6 07/24 16:11太複雜,純推不下

kyova 07/24 16:11雖然我也覺得要盡快進入重點。但可能原PO有自己的

kyova 07/24 16:12考量。畢竟有些別人弄的東西有時候無法掌握、修改

dogass83 07/24 16:13想學,但文組的我覺得好複雜

sunbox 07/24 16:14少看財報多看線

kyova 07/24 16:14回測和模型會有很多奇奇怪怪的問題...

jimjim95135707/24 16:14

kyova 07/24 16:14不是一般的機器學習這麼簡單。最好有相當交易經驗,

kyova 07/24 16:15或厲害的交易者輔助、交流比較好...

erichha 07/24 16:15之前也想寫,不過後來發現看圖比較快

user048288ef07/24 16:15股市是人性的市場,人是善變的

chuikov 07/24 16:16辛苦了,感謝分享

peanutburger07/24 16:16推推

qq251988 07/24 16:16那個老師說的真的是精髓

真的有幸上這位老師的課,一語打醒工程師 [1;31m→

kyova : 就算不弄自動化交易,其實量化篩選也很有幫助。

07/24 16:16

kyova 07/24 16:17航海王應該就是自營部出身,也會用量化篩選

jack91303 07/24 16:17flask會沒效率嗎?

kyova 07/24 16:18我覺得財報也很重要,但要有相當經驗去作分類和微調

我的困難就是沒有財金知識,買書學看財報都覺得很無感,不太知道怎麼培養財金敏銳度,為量化公司part time打工有用嗎?

xylitol 07/24 16:19+U 這是一條孤獨的路呢

kyova 07/24 16:19有些可以提取額外資訊,可搭配技術籌碼。不過也是

chinaeatshit07/24 16:19我都當跟單仔 免費還能賺大錢

kyova 07/24 16:19需要相關專業的人來指導、輔助比較好,都自己來會

kyova 07/24 16:19作到死...

justin5 07/24 16:19你長榮再放段時間會賺的...不要看太短

好… [1m推

dalbuhr : 請問原po是業界人士嗎?如果可以想了解相關工作機會

07/24 16:20 我是軟體工程師但不同領域,Python, AI model, flask都是新學的

ga023630 07/24 16:20感謝分享

neobasara 07/24 16:23推一樓,寫程式和不寫程式兩種方法要同時開發,總之

neobasara 07/24 16:23就基本面也要了解

ts01049212 07/24 16:31用人家做好的比自己刻快吧

st9061204 07/24 16:31日盛的程式好像對程式交易者比較友善

joygo 07/24 16:32你在跟我做一樣的事情,不同的是我都在偷懶哈哈

Yahweh 07/24 16:32用flask app架server 可考慮 mod_wsgi/apache

謝謝推薦!

joygo 07/24 16:33結果發現跟單比較快,就懶得寫,現在改成寫紀錄自己

joygo 07/24 16:33持股

herculus650207/24 16:34你的策略亮出來了照著操會有點危險,建議加點白噪音

boombastick 07/24 16:34加油 到時候績效搭配程式販賣可以在撈一次

guanting886 07/24 16:35放伺服器我只推薦放GCP 券商講ㄉ

有聽說GCP比較划算,之後試試

guanting886 07/24 16:36不過我覺得學一學 看有沒有機會幫大戶打工

有大戶願意合作的話我很樂意,歡迎來信!

kevinken 07/24 16:37厲害

disfish 07/24 16:37蠻厲害的。之前學了一陣子也想做。但最後還是半途

disfish 07/24 16:37放棄了 加油

guanting886 07/24 16:39另外你可以去玩玩看XQ 不知道會不會給你有其他靈感

謝謝建議,我會去試用看看 [1m推

boa255451 : 推推

07/24 16:43

qa1122z 07/24 16:45推1樓

lalelee 07/24 16:49情緒如何量化!

情緒確實可以量化,這也是我用Python原因之一

elfish123 07/24 16:49你那個老師說的是真的 策略才是key

q123jack 07/24 16:57謝謝分享

lover790222 07/24 16:58flask...有點不快耶

clubee 07/24 16:58python的backtrader不錯玩 該有的都有了 可以驗證一

clubee 07/24 16:58些自己的想法

mepowerlmay 07/24 16:59是喔賺錢要分我嗎

kkuume 07/24 16:59推你的研究精神 但自用的話輪子真的不用自己造

wade00123 07/24 17:03自己造很有趣R 學習到的技能還可以拿到工作上使用

moonls 07/24 17:21有分享給推!

jimmyid4 07/24 17:23加油

ppnow 07/24 17:23程式工具花錢就有人能做出來,但交易的邏輯,交易

ppnow 07/24 17:23系統才是根本,應該窮盡一生找尋聖杯,再來談工具

typeking 07/24 17:26寫完大概該漲的都漲完了,加油

jimmyid4 07/24 17:28用ai比較有機會

jagger 07/24 17:29加油

angell543 07/24 17:29加油了

Chilloutt 07/24 17:32Tiingo 蠻好用的,做波段還不賴

charliedung 07/24 17:32覺得不錯 這個花一陣子的努力能輕鬆一輩子 說真的也

charliedung 07/24 17:32值得投資 祝能找到聖杯

謝謝大家回饋,做這系統前其實有試用過multichard,但範例都是期貨比較沒台股,而且沒跑成功覺得很生澀就沒繼續,可能再找永豐版本multichard和XQ再試看看。 會自己寫一方面覺得比較上手,畢竟自己是軟體工程師,藉著股票分析學python和AI模型很有趣,另方面如果走出和現有軟體不同的路,取得不同資料和模型,也許有新的賺錢機會?對未來工作可能也有幫助 或是仿效這位前輩,在2008年開始寫期貨分析,後來好像開始賣服務賺錢了,據說工程師賣程式比股票好賺!

https://www.ptt.cc/Option/E.hXTsH3JKpVYI

這套系統計畫改成比較有擴充性來開源,歡迎各位自行加入自己的策略:-)

※ 編輯: canxx (223.137.159.182 臺灣), 07/24/2021 17:47:09

Benetnasch 07/24 17:41誰說 情緒 不能量化= =

Benetnasch 07/24 17:41只要有交易 就是量化,只是 怎麼收集資料 跟分析

Benetnasch 07/24 17:41而以

lohas1019 07/24 17:43python 可以用django +sqlite取代flask 給您參考

謝謝!

KOF98992000 07/24 17:51有放在github上面的話 我也可以一起弄 現在空手有

KOF98992000 07/24 17:51點無聊

好的準備好就開源

Stunish 07/24 17:52加油 框架建構好後 後續就以策略變化為主

kevin000095 07/24 17:58有認真寫程式和分享給推

akane1234 07/24 18:01雖然還看不懂但是有興趣,謝謝分享

encoreg5798507/24 18:05推認真

abc65379 07/24 18:08之前有寫過幾個爬蟲選股,也摸過幾個演算法,但回測

abc65379 07/24 18:08選股勝率的時候,其實會有幾個要克服的難點,變數篩

abc65379 07/24 18:08選時其實如果遇到類股輪動的狀況,選股策略比較難完

abc65379 07/24 18:08整抓出波段,技術面參數比重太多也容易overfititng

abc65379 07/24 18:08,假設用單一紀律策略選股進出場可能還好,但想用演

abc65379 07/24 18:08算法抓關鍵K進場的勝率一般不太理想,所以實現自動

abc65379 07/24 18:08化交易可能比較難,不過你很棒了也謝謝分享這麼多給

abc65379 07/24 18:08大家

aljohn0422 07/24 18:09t2micro系列的要集氣,cpu消耗超過一定量會扣點數,

aljohn0422 07/24 18:09扣完就只剩下基礎運算能力

aoc7175 07/24 18:23猛喔

lsmd 07/24 18:37很有趣吔,謝謝分享

lin821 07/24 18:58感謝分享

lovelock110 07/24 19:22

slayptter 07/24 19:24python api 我用很久了,沒問題啊

slayptter 07/24 19:24唯一的問題是上面的數據常常是錯的

slayptter 07/24 19:25我還上github跟他們工程師反應

slayptter 07/24 19:26結果他們自己都沒發現....

slayptter 07/24 19:27盡量不要用券商版MC

slayptter 07/24 19:27最佳化會有問題

slayptter 07/24 19:29加油吧

slayptter 07/24 19:29每次看到這種文就會回憶起青春

slayptter 07/24 19:29相信未來你也會XDD

GoGoJoe 07/24 19:30多樣技能有何不好 搞不好還能收會員

slayptter 07/24 19:32股版很多也都靠這賺錢

slayptter 07/24 19:32期貨版更多,要找夥伴那邊容易很多

ljsnonocat2 07/24 19:35Trading版也可以去逛逛

Vere 07/24 19:40先跪再看

noreasonkon 07/24 19:42其實與其自己刻flask 不如直接用powerBI這種套裝軟

noreasonkon 07/24 19:42體做視覺化 會省很多時間

謝謝建議,研究看看PowerBI

noreasonkon 07/24 19:43把技能點在爬蟲 資料庫 還有回測的模組會進步的比

noreasonkon 07/24 19:43較快一點

coyoteY 07/24 19:44有trading版

Trybeer 07/24 19:46我都用feeling回測

noreasonkon 07/24 19:50另外 老師說的 一部分是正確的 市場上有些隱藏的邏

noreasonkon 07/24 19:50輯 不需要最佳化 純粹的大數統計就能有期望值

noreasonkon 07/24 19:51有些寫程式的寫到走火入魔整天在調參數 一點用都沒

noreasonkon 07/24 19:51有 倒不如一個懂市場的人 程式和回測只是增加信心

所以說程式人多靠程式賺錢是這樣來,策略才是王道

noreasonkon 07/24 19:51或驗證想法的工具而已

p31415926 07/24 19:58概念對,參數不要太誇張應該都要賺錢

p31415926 07/24 19:59追求參數最佳化只會是那段時間的最佳

f496328mm 07/24 20:08python 不少回測套件,金融視覺化套件

f496328mm 07/24 20:08可以做策略,盤中觸價用 chatbot 發訊息

這個很棒,可以分享套件名稱嗎

f496328mm 07/24 20:08用視覺化工具做個人看盤軟體

f496328mm 07/24 20:20我是 FinMind 作者,最近在開發 dashboard

f496328mm 07/24 20:22https://tinyurl.com/y5e8n8mb

竟然引出FinMind作者親自回覆,好榮幸啊

HaHaPoint : 高手

07/24 20:39

RedestXrain 07/24 20:45我記得之前有人寫過一篇很專業的

RedestXrain 07/24 20:45可以回去爬文看看

RedestXrain 07/24 20:50我有用過lstm做過相關的模型,可是結果很糟。國外有

RedestXrain 07/24 20:50人有寫過相關的paper,就查machine learning stock

RedestXrain 07/24 20:50price就有很多相關的資料

謝謝給關鍵字,不過爬文沒看到,可以提示一下標題嗎?

f496328mm 07/24 21:05看過蠻多文章講,其實 LSTM 做股票預測,會延遲

f496328mm 07/24 21:05現在大多都是往 ML 結合策略走

f496328mm 07/24 21:或是做一些當沖模型

大大可以分享相關資料或連結嗎?

bbsbug 07/24 21:07推推

k825324 07/24 21:29推!

※ 編輯: canxx (114.37.220.232 臺灣), 07/24/2021 21:35:53 ※ 編輯: canxx (114.37.220.232 臺灣), 07/24/2021 21:36:56

f496328mm 07/24 22:34之前待過券商,不能講太多

f496328mm 07/24 22:35只能說,很多做策略的都低調賺

f496328mm 07/24 22:35可以先以資料分析、策略為主

uouoiyiy 07/24 22:35

f496328mm 07/24 22:35最後再試著搭配一些 ML

f496328mm 07/24 22:36舉個簡單例子,前陣子開放盤中零股

f496328mm 07/24 22:37零股、整股有價差,很多人就在做套利

f496328mm 07/24 22:39套利賺不多,但用程式做,可以做大量套利

f496328mm 07/24 22:39就很可觀

wargods8402 07/24 22:41推…覺得股票資訊太少…

ccloudd 07/24 22:46量化交易 凌波微步大大

shinmin1226 07/24 23:24很厲害 我朋友RD也在寫股票相關程式可以一起討論

WWIII 07/25 00:09哈哈 推分享 老師應該虧不少

ttmaniac 07/25 01:33猛猛的

lookluke 07/25 01:43感謝大大 剛被證交所鎖到崩潰就看到你的文章

RedestXrain 07/25 01:542.html

RedestXrain 07/25 01:54這篇受益良多

wayne8848 07/25 02:01推~我自己也有做類似的dashboard

wayne8848 07/25 02:02https://imgur.com/2K82USD

wayne8848 07/25 02:02搭配新聞做NLP分析,但我沒做出什麼結果

sunshineduck07/25 03:44如果單純是個人喜好喜歡用自己建的東西,那麼我倒是

sunshineduck07/25 03:44覺得可以當作修身養性做這些事

sunshineduck07/25 03:45可是如果最終目的是交易,那麼以你工程師的能力寫

sunshineduck07/25 03:45個dll給其他交易軟體用Matlab, Python, R會更有效率

sunshineduck07/25 03:47太多回測的細節是你可能自己寫程式會忽略的,這些

sunshineduck07/25 03:47都是未來你賠錢的風險。沒必要

sunshineduck07/25 03:51等你真的清理完資料,建好系統,驗證好策略行情都過

sunshineduck07/25 03:51了。傻多B&H都賺到錢了,結果你才剛要開始

saedn 07/25 04:20好厲害 想學

likeyousmile07/25 04:31群益python api不錯,文件寫蠻清楚又有範例檔。

※ 編輯: canxx (114.37.220.232 臺灣), 07/25/2021 04:58:51 ※ 編輯: canxx (114.37.220.232 臺灣), 07/25/2021 04:59:26

zero7022 07/25 09:14

※ 編輯: canxx (114.37.220.232 臺灣), 07/25/2021 11:03:16

kagamine892 07/25 13:11我以前搞半天發現比起b&h根本沒差多少就放棄了 加油

kagamine892 07/25 13:11

kagamine892 07/25 13:11啊不過你統計學重修 信賴區間那邊全錯

XD 沒辦法畢業都不知道多久了

genezhang 07/25 15:24感謝分享 我覺得tradeview不錯用

genezhang 07/25 15:24不過它回測的程式好像是Java script

genezhang 07/25 15:24不是python

jrbobo 07/25 17:34網站不錯啊 幫你加油

aaa1234136 07/29 07:11有分享 有推

※ 編輯: canxx (114.37.174.172 臺灣), 08/14/2021 16:01:48 ※ 編輯: canxx (123.51.207.117 臺灣), 09/05/2021 13:26:26 ※ 編輯: canxx (123.51.207.117 臺灣), 09/05/2021 13:29:00