Showing posts with label 量化交易. Show all posts
Showing posts with label 量化交易. Show all posts

Monday, December 25, 2023

什麼是程式化自動交易

         最近剛上線了個台期指程式化自動交易。目前就放個一口小台的資金讓機器人自己去交易,順便測一下bug,賠到下不了小台再說。自動化交易能聊的很多,今天先聊一些觀念上的事:




         一般人對程式化交易可能有許多誤解,包括程式化自動交易是獲利的保證、程式化自動交易是把一些規則寫成程式自動執行。

        首先要說明的是,一套完整的自動化交易策略包括了:盤前選股、盤中選時、下單資金分配、止盈止損。一般人關注的是技術指標,這可能是在盤前選股階段,也可能是在盤中選時階段。但關鍵點往往是止盈止損。舉個例子來說,如果你做的是布林通道策略,在價格跌破下時買入,那麼你的出場策略是什麼?萬一你抄底抄在下降趨勢呢?技術指標還有很多小細節,例如你選的K線數量跟標準差是怎麼決定出來的?止盈跟止損的邏輯是什麼?遇到近期有除權除息怎麼辦?

布林通道


        同一套交易策略應用在不同的股票上,結果可能截然不同。一套交易策略應用在台積電上面可能可以有年化15%的收益,但是套在0050上面可能是虧損10%。



        目前台股市場上有XQ、MultiChart這些適合自動化交易入門的交易者,為什麼還要自己寫python策略呢?

        既然要做自動化交易,自然不是把主觀交易的那一套策略簡單搬過來。上面說了,一套完整的策略包括了盤前選股、盤中選時、下單資金分配、止盈止損。每個情況的決策路徑都不一樣。XQ、MultiChart這些工具並沒辦法寫下這樣的決策路徑。

        其次是我主要是做短線動能策略的,是基於量先價行的核心觀念,靠盤中的成交量衍生出技術指標。例如我也會計算類似XQ裡面「量比」的技術指標,但我需要的是盤中短時間內的比值,這些指標都得拿tick數據在交易時間內自己計算。

        MGK在書上有一段關於程式化自動交易很生動的描述。有興趣的可以再去翻翻他的書。從一個小散戶的角度來思考這個故事,小散戶的資金並不適合做"股票"程式化自動交易。一方面程式化自動交易是大數法則,二方面是交易成本、三方面是盤前選股、盤中選時、下單資金分配、止盈止損中你怎知道是哪個環節出錯?或許你的抄底策略改善一下止損策略就能大幅提升策略績效。

        程式化自動交易就只是個工具而已,有時候不是工具的問題,可能是用錯了交易品種、可能是把主觀交易那一套策略完全照搬過來沒用上程式化自動交易的優勢。

        至於回測....懂得都懂不多談了。對於程式化自動交易有興趣的朋友,建議先別想得太複雜,先從止盈止損規則入手。


Tuesday, July 4, 2023

新手如何自學python

        最近看到個關於新手如何學習python的討論串。順便分享一下我自己學習python的經驗,希望能幫新同學少走彎路少採坑。

        因為我不是Computer Science背景的,也不是上課程有系統學python,加上我學習python的時候年紀已經很大了,完全是一套野蠻生長的學習套路,我沒怎麼看書,幸運的是身旁的同事都是python高手,或是其他相關團隊例如DBA/Hadoop/BI/modeling/app開發/docker,靠著不要臉的方式問這些小朋友,然後網上找解答(這個下期介紹)。因此一些同學會遇到的問題,我應該都遇過。目前我工作上每天都需要用到python。另外在一些課程平台上也有開課。因為這些課程一般同學應該都無法買,所以也沒啥打廣告的嫌疑。


Friday, January 15, 2021

量化交易筆記(0)--構思

          從2020年年中開始,我幾年沒動的股票又開始交易了起來,那時候面臨一個問題:我跟蹤了很多股票,但往往幾天沒注意到幾隻股票,這幾支股票就發射升空了。那時候在想,有沒有辦法透過Python,每天找出符合一些條件的票?這個想法慢慢推進到現在,陸續遇到一些問題,也找到一些解決方法。隨著慢慢有一些成果出來,也把一路上的想法,與遇到的問題和解決方法做個整理記錄。

        一開始的想法只是很單純的在收盤後用python分析,網路上有些相關資源或是教學,但這些資源都是分散破碎的,例如教數據接入、自動圖表製作、交易策略、消息推送等等。但這些資源都是對單一主題在說明。

        原始的想法慢慢的成朝一個產品方向推進,從盤中數據接入,盤中追蹤個股分析,到最終分析結果自動推送到line或是wechat這些通訊軟體,以後可能會對接到下單系統。總之就是把一個產品的流程從頭到尾走一遍。不僅把各地蒐集到的教學和大馬整合在一起,也完整做出一個產品。

        計畫是採模組化開發,在定義好欄位後,不同的模塊可以互相對接。核心的股價欄位名稱是參考上圖mplfiance的欄位,日交易的分鐘檔也可以參考這些欄位名稱。