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

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

    電子郵件

    有興趣的主題
    量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

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

    還有什麼詢問的?

    好富投 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:

      電子郵件

      有興趣的主題
      量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

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

      還有什麼詢問的?


      量化通粉絲社群,一起討論程式交易!

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

      加入臉書社團「程式交易 Taiwan」即時獲取實用的資源!

      RoWay
      RoWay

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

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

      文章: 28

      發佈留言

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