Shopping Cart

購物車內沒有任何商品。

套件的安裝、導入與使用-Python 從零開始(五)

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

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

    稱呼

    電子郵件

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

    投資經驗

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

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

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

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

    還有什麼想詢問的?

    2024tv黑五 1920 X 400 像素(pc端的banner)
    2024tv黑五 978 X 258(移動端的banner)


    一、安裝套件

    講到 Python,就想必絕對不能錯過 Python 廣大的套件生態圈,所以這章節就來跟大家講解怎麼安裝、導入與使用套件囉!Python 安裝套件有很多做法,這邊跟大家介紹常用的幾種做法:用 pip install 安裝以及用 Pycharm 工具安裝。

    1. 用 pip install 安裝:

    (1)優點:

    可以跨出 Pycharm 環境直接安裝,不限定在哪個環境,甚至原生環境都可以,在雲服務(GCP, AWS)上安裝也都是使中指令居多(讓大家覺得打指令很厲害),所以未來還是得有個大概的使用概念比較好哦!

    (2)缺點:

    對於安裝的路徑、套件名稱、安全性等等不好驗證,之前有些套件會故意取的名稱很像,讓使用者安裝錯誤。

    但功能雖然一致,可以當你在執行使用套件的時候,相關程式內的一些資料可能就會外流,這件事還一度上了資安報告中呢,所以除非很熟或是使用環境不會涉及到個人資料等等的。

    否則會建議使用 Pycharm 提供的工具包去安裝就好囉!

    2. 用 Pycharm工具安裝:

    (1)優點:

    有介面化,可以方便安裝與搜尋相關套件,也可以很方便的切換套件版本號,以及我個人覺得很重要的部分,以 Pycharm 而言,可以快速點進套件網址,確認套件到底是不是真實的套件而不是釣魚套件。

    (2)缺點:

    離開 Pycharm 到其他工具中就可能得適應其他使用方式,而在雲服務中就可能無法使用這模式安裝,這部分我建議可以參考 requirements.txt 的套件管理方式。

    Py 101209161710
    Py 101209161711

    二、導入套件與使用

    套件的導入比較單純,但也分成幾種不同的作法:

    假設我們的 our_main.py 內有:

    def run():
        print("run 1")
    
    
    def run_sec():
        print("sec run")

    我們想從另一份腳本內呼叫該函式就可以是:

    import our_main
    
    if __name__ == '__main__':
        run()  # 結果:  run 1
        run_sec()  # 結果:  sec run
        # 這時候兩個都可以被呼叫,因為我們整份 our_main 內的都要被呼叫
    from our_main import run
    
    if __name__ == '__main__':
        run()  # 結果:  run 1
        # 這時候我們是 call不到 run_sec() 的,因為我們指定只呼叫 run()

    以下以常用的datetime套件做舉例,基本上大原則就是 from xxx(從哪個檔案)import(導入)bbb(哪個函式):

    直接把整個套件包內存在的 function、class 都呼叫進來:

    import datetime
    print(datetime.datetime.now())

    結果:

    2022-06-03 17:34:12.084197

    直接把整個套件包內存在的 function、class 都呼叫進來,但因為有時候套件名稱或是內部函數名稱很長,故可以用這方式縮短後續呼叫名稱。

    最常見的還有 import pandas as pd 這範例:

    iimport datetime as dt
    print(dt.datetime.now())

    結果:

    2022-06-03 17:34:12.084228

    一份 script 內可以有很多函式、參數、class 等等的,但當我們只需要其中一些功能時,就可以指定 Script 名稱,然後導入我們需要的功能函式就好:

    from datetime import datetime
    print(datetime.now())

    結果:

    2022-06-03 17:34:12.084228

    那當然,有了上面的經驗,就更可以將每個需求都結合起來,在套件使用與程式開發上,可讀性也是一大良好的撰寫習慣,所以像是一些很長又長的很像的套件,就很適合這樣處理:

    from datetime import datetime as dt
    print(dt.now()) 

    結果:

    2022-06-03 17:34:12.084228

    補充:

    當需要呼叫的套件在某資料夾內:

    例如: test.py(我們主要要寫的程式腳本)在主目錄底下,但是我們所需要的 def run_sec() 的函式在一份叫做 testrun.py的腳本內,而 testrun.py 在一個名為 run_func 的資料夾內:

    這時候在我們的 test.py 中就要用以下這樣呼叫:

    from run_func.testrun import run_sec

    這樣就可以針對不同資料夾的內容做呼叫囉!

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

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

    三、小結:

    大家可以發現不同的呼叫方式都可以達成相同的功能,未來隨著撰寫習慣、使用的套件多寡等等,

    會涉及到更多各類型套件的使用,那這些好的習慣都是為了未來開發時方便囉!有任何問題或錯誤歡迎大家提出來討論!感謝收看!


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

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

    Write Together 101306261122
    Write Together 101306261121
    RoWay
    RoWay

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

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

    文章: 28

    發佈留言

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