Shopping Cart

購物車內沒有任何商品。

如何開始用 Python 程式交易?-Python 從零開始(一)

立即訂閱電子報,掌握最新資訊!

    稱呼

    電子郵件

    以下非必填,但若您願意分享,我們將能推送更精準的內容給您

    投資經驗

    是否為理工科背景、工程師或有寫程式的經驗?

    有興趣的主題
    量化交易台股期貨海外期貨虛擬貨幣美股

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQ

    想透過量化交易達成甚麼目的?
    不確定自動交易選股回測投資績效量化自己的投資方法想找現成的策略套用

    還有什麼想詢問的?

    好富投 1920x400
    好富投 978x258

    點我了解更多資訊


    一、近年來最熱門的程式語言-Python

    Python 是近年來相當熱門的程式語言,在各個領域甚至職場裡,幾乎成為新鮮人技能的標配。除了免費開源、語法簡單好理解,在這幾年 Python 的生態系資源也越來越成熟完整,當大家的討論度越來越高,自己遇到問題也容易找到方法解決。

    甚至所有新手基本的功能,Python 都有套件支援,像是 pandas、datetime、numpy 等。除此之外 Python 可以跨平台使用、容易擴充、自由度高等優勢,都是這幾年排名不斷上升的原因。

    延伸閱讀:
    最齊全的 Python 技術指標工具箱 talib (一)套件安裝與基本操作說明
    最齊全的 Python 技術指標工具箱 talib (二):閱讀套件說明文件的邏輯就這麼簡單

    Hellogithub 程式語言走勢圖
    Hellogithub 程式語言走勢圖(https://hellogithub.com/report/tiobe/
    Hellogithub 前五大程式語言(來源:Hellogithub )

    Py 101209161710
    Py 101209161711

    二、Python 常見的金融投資用途

    Python 可以說是學習程式最好入門的語言之一,也是數據分析及爬蟲的主流程式語言。 除了在金融領域上,在其他領域的應用範圍也很廣泛,以下跟大家介紹四個 Python 在金融投資常見的用途。

    1. 網路爬蟲-爬取股價

    爬取股價是 Python 在程式交易其中一個強大的功能,個股的相關資訊每日都會在證交所公布,透過爬蟲相關資訊就可以進行數據分析,甚至制定出自己的選股策略和模型。

    Python 的 requests 與 BeautifulSoup 是目前最常作為網路爬蟲實作的套件。使用爬蟲即是讓程式幫我們去瀏覽各個網站,能自動化獲取指定的資料,例如:企業財報資料、社群訊息、網路小說等。再利用串接資料庫的套件,像是 pymongo,就能輕易地把爬蟲獲取的資料放到資料庫,以備後續大數據分析時取用。

    延伸閱讀:
    實作你的選股利器 – 找出業績好轉的盤整股
    實作你的選股利器 – 找出低本益比的營收成長股

    2. 數據分析-歷史回測

    Python 的程式碼可以相當簡單地就與資料庫互動,並擁有 pandas、numpy 等強大的資料處理套件,以及 plotly 等視覺化套件、tensorflow 等機器學習套件,使得 Python 在大數據分析佔有相當的地位。透過大數據分析,能夠做到使用者偏好推薦、輿情分析等。

    而「回測」 指的是將投資策略透過歷史資料驗證,模擬在過去的時間中實際交,確認這個投資策略在過往的歷史數據中所能獲得的績效。透過分析爬蟲來的數據,我們可以更精準的找到穩定的獲利機會。

    延伸閱讀:
    市售回測軟體與自己開發的差異
    進行回測常被提到的套件們

    3. 投資研究-策略開發

    Python 除了上述套件以外,也具備 statsmodel 等統計套件,與 R 語言同樣都是金融業的程式語言。應用領域包括量化模型設計、全自動程式交易、資產定價、風險控制等。

    4. 資料整理-資產配置

    Python 可以快速蒐集、整理、分析資產配置相關資料,「 資產配置 」指的是一種投資方式,主要的做法是把錢分配到不同商品上,借此分散投資的風險。透過 Python 能讓我們所設計的資產配置模組依照事先制定好的規則自動配比。

    延伸閱讀:
    資產配置理財入門大補包(一) – 資產配置是什麼?用 Python 做資產配置不可不知的兩大好處!

    三、開始學習 Python -從 IDE 出發

    IDE,或者稱為整合開發環境。軟體商幫你把 Python 功能整合在一起,可以幫助使用者 debug、儲存指令、執行功能等。簡言之,就是讓使用者可以更簡單又便利的寫程式 。

    Python 的 IDE 有很多種,比較常見的包括: Spyder、Jupyter、PyCharm、vs code 等。當然 Python 也有屬於內建的 IDE,每家 IDE 都有自己的特色與功能,這邊可以參考閱讀量化通 Eric 之前寫的 PyCharm 環境安裝全方位解說,就不多做介紹囉!

    四、認識 Python 常用名詞

    以下簡單整理常用的Python常用名詞,讓大家能初步有個概念:

    常用名詞說明範例
    print輸出,檢視程式運行的結果,也稱為印出。print("Hello Python")
    註解紀錄用的筆記,電腦不會讀取到,可以針對所撰寫的程式去說明用途。#單行註解
    "多行註解
    多行註解"
    縮排Python 使用縮排(Tab 鍵)來表示這是同一個區塊的程式碼。a=10
    If a>5 :
      print("Yes")
    SyntaxError程式語法的錯誤提醒常見的錯誤像是少打一個括弧、打錯程式等
    變數幫資料取一個代稱,使用「=」來表示兩邊是相同的內容。a = 123
    b = 6.66
    c = "567"
    資料型態基本的資料分類可以大略分為文字、數字、布林值和裝「文字」、「數字」的容器。a = 123
    b = "我是文字"
    c = True
    d =[123,"文字"]
    基本運算式資料的數學運算a = 10
    b = 5
    print(a + b)
    結果 >>>15
    關係運算式數值資料的大小比較a = 10
    b = 5
    print(a > b)
    結果 >>>True
    邏輯運算式資料之間的邏輯關係,包含 and(且)、or(或)、not(否)等。a = 10
    b = 5
    print(a > b)
    結果 >>>True
    布林值判斷條件是否符合,提供True(是/對)或 False(否/錯)的回覆。a = 10
    b = 5
    print(a > b)
    結果:>>>True
    input由使用者輸入資料給程式Name = input("請輸入您的大名")
    pip安裝外部工具套件。pip install pandas
    import安裝內部程式模組。import pandas as pd
    迴圈讓程式重複的執行指令直到條件滿足,分成 for 跟 While 兩種形式的迴圈。a=[123,666]
    for i in a:
      print(a)
    結果 >>>123,666
    函式
    Python分為內建函式和自訂函式a=[1,2,3]
    print(max(a))
    結果 >>>3

    本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲實用套件資產配置 等內容。

    建議可以照順序閱讀,從零開始學習 Python:


    加入LINE社群量化交易討論群」無壓力討論與分享!

    加入Discord 「量化交易討論群」即時獲取實用的資源!

    Write Together 101306261122
    Write Together 101306261121
    RoWay
    RoWay

    多年投資經驗的兩岸三地操盤手,曾任海外資產管理公司交易平台的產品經理、與各外商投資公司合作開發各式交易策略與系統。

    擅長用Python執行資料蒐集、整理、分析與交易;也善於用Multicharts、MetaTrader等系統建構並回測期貨、期權、區塊鏈策略進而完成投資組合管理。

    文章: 28

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *