Analyzing stock has never been easier.
Project description
hide:
- navigation
快速上手
安裝
在任意平台上,皆可安裝 FinLab Package,我們支援 Windows、MacOS、Linux,並且甚至是 Pyodide! 以新手來說,推薦的使用方式是直接在 Google Colab,來使用。 Google Colab 可以線上產生一個執行 Python 的環境,使用者不需額外在本機安裝任何程式,即可開始使用。
=== ":octicons-code-16: FinLab 實驗室"
打開選股策略頁面 https://ai.finlab.tw/strategies 並點選「建立策略」即可開始使用。
=== ":octicons-code-16: Google Colab" ``` py # 打開 Colab: https://colab.research.google.com/ 新增筆記本 # 在 Colab 中任意 Cell 中執行
!pip install finlab > log.txt
# 即可
```
=== ":octicons-code-16: 本機 Python" ``` py # 在 anacnoda prompt 中執行
pip install finlab
```
!!! tip annotate "可能存在相容性問題"
用「pip install finlab」方法安裝,可能會造成 Package 不相容的問題,假如您希望得到更穩定的版本,請參考「Docker」安裝。
=== ":octicons-code-16: Docker 安裝"
* 前往 Docker 官方網站:https://www.docker.com/products/docker-desktop。
* 在下載頁面中,按一下「Download Docker Desktop」按鈕。
* 完成下載後,執行安裝程式並按照提示進行安裝。
### 2. 下載 FinLab 的 Jupyter 映像檔
在安裝 Docker 完成後,請按照以下步驟從 Docker Hub 下載 FinLab 的 Jupyter 映像檔:
開啟終端機或命令提示字元。
輸入以下命令以下載 FinLab 的 Jupyter 映像檔:
```bash
docker pull finlab/jupyter-finlab
```
此命令將會從 Docker Hub 下載映像檔,請耐心等待下載完成。
### 3. 執行映像檔並連接到 8888:8888 的 IP 位址
下載完成後,您可以使用以下命令執行映像檔:
```bash
docker run -p 8888:8888 finlab/jupyter-finlab
```
此命令將會啟動一個容器並將容器內部的 8888 埠口映射到您的本機 8888 埠口。請耐心等待容器啟動完成,終端機中將會顯示一個 URL,例如:
```bash
http://127.0.0.1:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
請複製該 URL,稍後您將使用它來連接到 JupyterLab。
### 4. 使用 JupyterLab 和 FinLab 套件
現在您已經成功啟動了 JupyterLab,請按照以下步驟進一步使用 JupyterLab 和 FinLab 套件:
在瀏覽器中打開剛剛複製的 URL。這將會顯示 JupyterLab 的介面。
在 JupyterLab 的介面中,您可以創建新的 Jupyter Notebook 。
在 Notebook 中,您可以使用 FinLab 提供的功能和套件。FinLab 是一個針對金融數據分析和策略回測的 Python 套件,詳細的使用方法請參考 FinLab 的官方文件。
</div>
下載資料
輸入以下程式碼,即可下載資料。可以查詢有哪些歷史資料可以下載。
from finlab import data
data.get('price:收盤價')
date | 0015 | 0050 | 0051 | 0052 | 0053 |
---|---|---|---|---|---|
2007-04-23 | 9.54 | 57.85 | 32.83 | 38.4 | nan |
2007-04-24 | 9.54 | 58.1 | 32.99 | 38.65 | nan |
2007-04-25 | 9.52 | 57.6 | 32.8 | 38.59 | nan |
2007-04-26 | 9.59 | 57.7 | 32.8 | 38.6 | nan |
2007-04-27 | 9.55 | 57.5 | 32.72 | 38.4 | nan |
撰寫策略
可以用非常簡單的 Pandas
語法來撰寫策略邏輯,以創新高的策略來說,可以用以下的寫法:
from finlab import data
close = data.get('price:收盤價')
# 創三百個交易日新高
position = close >= close.rolling(300).max()
position
date | 0015 | 0050 | 0051 | 0052 | 0053 |
---|---|---|---|---|---|
2007-04-23 00:00:00 | False | False | False | False | False |
2007-04-24 00:00:00 | False | False | False | False | False |
2007-04-25 00:00:00 | False | False | False | False | False |
2007-04-26 00:00:00 | False | False | False | True | False |
2007-04-27 00:00:00 | False | False | False | False | False |
這邊的 position
是一個 False/True 的查詢表,當數值為 True ,代表該股票在當天有創新高,而數字 False 則代表沒有創新高。由於創新高的股票很少,上面的範例中,只有少數股票的數值會是 True。
假設我們希望每個月底,搜尋上表中數值為 True 的股票並且買入持有一個月,可以用以下的語法:
回測績效
from finlab import backtest
report = backtest.sim(position, resample='M')
report.display()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for finlab-0.4.5-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60bc9b93db97c8f5ecd24b5d03e078cd9ba67cce03e5919f6c3af9ca37c8597e |
|
MD5 | 4797222340cd51bc6b1adf125725de67 |
|
BLAKE2b-256 | 8252c23ef2f483110ccf0afc2768b4fc9ae555d96d83f6200cc6571aeae4d4a6 |
Hashes for finlab-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7531bd7842d9a2b2b8d6f5ea0a593a097e8102df39050f42fecd401b0c409a4 |
|
MD5 | 4ba9f4fbd98fcf326201eaba2971adf9 |
|
BLAKE2b-256 | c6487169de99f31dc084d196e6b855c0c98c7491c2f60f23ef09a4a50c0e3131 |
Hashes for finlab-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65fe44fa40c8865e53b0e03e921cd82ca4efb6e7743544edff7e74e2f2666824 |
|
MD5 | 8b9519890f99682f7d28cbadea2743e5 |
|
BLAKE2b-256 | 0a17ac0945403ad8e4297424755c405a738bb9eb0f7d8403cbd3f7afe76a74eb |
Hashes for finlab-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 991cb06ec8232d693505e24b57e07086adaad76d9e8ad7ed76eec7e051024d9e |
|
MD5 | 2ce7131d7f3345c72863f936db71040b |
|
BLAKE2b-256 | 653db872030ec711001b85a1d88a710f798d45835f1030d885ff3eced7b29d78 |
Hashes for finlab-0.4.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e8f784b80b1dc90ca2825591bc4e6fd6db2f00e7e194d43c7d9738544b72be5 |
|
MD5 | 46dd3441b2969e4e132d191916594515 |
|
BLAKE2b-256 | c75636973a4bec9f2ebbd81665337068ffedc441c25518bc1e822489159cc357 |
Hashes for finlab-0.4.5-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2962ad431296a433bdf7af6bf70505f891c8af83b3b2ec4a3aa688705a95ebd0 |
|
MD5 | a072765c28c94e609dea6072066e1b65 |
|
BLAKE2b-256 | 607a720e9e3076a6fad791aab5ecabe0ac1e59454c76574e010ef6a6d53cb7d0 |
Hashes for finlab-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5ad288e387cd6295e4ad51bbb65b775edfb6f16c46316f68add6e6611ec7963 |
|
MD5 | 77370b79f2d4ab3a5166640f129de558 |
|
BLAKE2b-256 | 99a0caff180b9e586aa188ef7e04e23e7aa2ba6ef841afb51b7db1f91755cdd0 |
Hashes for finlab-0.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96be3abbbc5d6ab21d588ec64c294aa14efa315003e80c324bd96fbf39d419b1 |
|
MD5 | 39e67d64f8dc499361e62ce832297072 |
|
BLAKE2b-256 | f774e02d1dcc32165d14a56f28f326abea0dc261094810e05c58687dc5d33a85 |
Hashes for finlab-0.4.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2323019c8e2e111ff98940e4a820d1910bf1d65756ec265c6ead7c45728776ac |
|
MD5 | 63ef871c5d113c9ee5d56191671ce71f |
|
BLAKE2b-256 | 3fba1b618b9c1663451a6732c870e2a3bbc8a30600a80958f9c2d07b88c0ec7b |
Hashes for finlab-0.4.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17c79f5bf2874d695fe59239ccd1044eb7afbd03f7b526ebf3f1d5f55fdb03c0 |
|
MD5 | 3437dbb90337d7b01a6ac2a149fc6eec |
|
BLAKE2b-256 | 8bd26c6b597bc13dbd00efbc93f9ffc0762ce78f03cee59a86b468669091a49b |
Hashes for finlab-0.4.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d6511438a49f3bf86dfbb3f558a5a252d240fac7dc7ff9708c85ea2632f9692 |
|
MD5 | c16a04c1aee3f067ac939f0d7dbb7487 |
|
BLAKE2b-256 | e822a0268154aff98a39672ae08e8c27afed0397d44da068f3ab3e3162567acc |
Hashes for finlab-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad0030ec1f772a4f68a90e805bce1a1b92fe60937cdf2b8f9e73bda2186dc2a0 |
|
MD5 | 190b71d8e333dc35ca37432704a8043c |
|
BLAKE2b-256 | e85beee4c0f5f7a6fc20767718d2ff5d39c39248d2890de6e322d24b80efe647 |
Hashes for finlab-0.4.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b59b8e8899860c5cf261608572a23f433cd35577cf37fd4763639a437f758479 |
|
MD5 | 1437052ba74c726da497c63d637664f4 |
|
BLAKE2b-256 | 570673de885d5fb99649a29b21227aace56e260a5303b3a35adf6d98b60cf56b |
Hashes for finlab-0.4.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f08fcae667945ae18198eb5cc714e08da28192137ebe87f168fbddc8c565e75f |
|
MD5 | 561b6bfb95fcd9bcd79b1829e3f1d666 |
|
BLAKE2b-256 | 4c141dc8db96d271976cd2153381a17639dd89edbea506ac21d0a9c35ba7fcfa |
Hashes for finlab-0.4.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a624d144ee201b5fb62c8e9c6335e0fd0bd54db836e40abad3b85751b1221a71 |
|
MD5 | 64f69cab81625a7bcedf462da6ef43ce |
|
BLAKE2b-256 | 335f8438d0b04bc8acc0cd41004518eb5e93a704cb290c77856ffc65b528a7fb |
Hashes for finlab-0.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f96c6910207b09541c3056071c4def487aff058c1bd04d98d1dced327c319f6c |
|
MD5 | 226ee1c9a10d8f0ce8fdf8fae3249e3d |
|
BLAKE2b-256 | a9bb2dca9c99f872f0fcb712feb2eac2f78af8e0522c02971fa1a5a17e810374 |
Hashes for finlab-0.4.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23e0fbd3bfd6b96779126fe08cb91fcf0725c6b5642c22bc74922bedb0011808 |
|
MD5 | dba2733e118506fa38cb4cc96661868c |
|
BLAKE2b-256 | 459f883b15476483ee4e5af7143f08cae97154724c2e98fd7bf8f500e60c8c65 |
Hashes for finlab-0.4.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4a9af5e569606df2db7d695f5df1256bdc67e192e1755603de0782a9cf68428 |
|
MD5 | 4e8a6701107403059152fe3bb6c07017 |
|
BLAKE2b-256 | 8f78f5423c2761a3228237467aae694e7cbedf0ec2470fca8858f42ac550753b |
Hashes for finlab-0.4.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f77c1cbef5b066d7e327f3c87598a1402ace34af79cd9ca30f9419ccb55ff2df |
|
MD5 | a1823bac0153b2147665ecdc61be50f5 |
|
BLAKE2b-256 | f2d79dc15496e2c86ecd057402510dcc221ee5ad557ae1f31f0cd115c1602f70 |
Hashes for finlab-0.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81c2b5a8fe843e4ca4f60213c7cb141af9746d1d406a678ba3827d12e12d9dca |
|
MD5 | 23be146a35fed865547813e670b1d769 |
|
BLAKE2b-256 | c3a8563da8c6f00b214424425d9144b495baec852b4bc334c625edd346ab46dd |
Hashes for finlab-0.4.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb58279beb7586a12212e75c31c77a1b1420bcad081006ef2324d80b0c6cd317 |
|
MD5 | 778260a40f84a98f7ac49bd1c249542a |
|
BLAKE2b-256 | 486d4f0435a3939d03db7213396957b07a52453c88fc1c86727c26e5a732c3cf |
Hashes for finlab-0.4.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30e872804553fcfe673135c66f4aa062a5013a52b8900385f7e94f68f14a3a1b |
|
MD5 | 38a3bbaa1a43bdc63b9713fe43c9c914 |
|
BLAKE2b-256 | 8ef9cfe29be7d8ad22e3e9c46b63e2254f4d117de54a3860bb85ed121c744031 |
Hashes for finlab-0.4.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4534243960b97b0c5b6bb60824875eb7c605270cbdb7b2b7d396cc601d3f5ca |
|
MD5 | 89d4833313813c3b93d3ec7791930005 |
|
BLAKE2b-256 | e329f78131a1191b3b0d7d0d1862fd93efd7376f0a5f18454558c180afad74f5 |
Hashes for finlab-0.4.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceabb49e3c7256e7412cfd4b5487be2575b50a68b05211cd125b622f52713c59 |
|
MD5 | 716c1646b6bc708f3d65f2dc9ae9094e |
|
BLAKE2b-256 | e3eed728b4f29ba6bb2a000b9493ed0dc02d5de0cf56e1a23e275bec3a3e1ac4 |
Hashes for finlab-0.4.5-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47e5da36988bba57d5366ce3bee767a109e5234798b8600dd0531504319c758c |
|
MD5 | 649b8b27f0dbdec0d23bbe12621b77d0 |
|
BLAKE2b-256 | 806949bb939fa6a09d7487250bb45edef4d6a00d5683c765fb4a061a9c7e3b54 |