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.6-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e592994cefe75aaddc2d1daf7f8f4e18166f643aeace33dc5f80537e8b542e0 |
|
MD5 | 21a381a7d1ccd6e28aa10cdfc595f2f0 |
|
BLAKE2b-256 | 024791f6eb667a53f88c717707a17d309c6997332d74761aaf810ca2bf584b40 |
Hashes for finlab-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25e8f2c832b67b707b46f0d272a389427c4029ba654a359178a30a68fa0d09bb |
|
MD5 | bc60dd34ea9819e7ceb3762631a7779b |
|
BLAKE2b-256 | f8cbda83ff8acc1fc7133ce86dd1bdca23dc440a2ec054e6a43d785f4d07146a |
Hashes for finlab-0.4.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68052bf922ea3f6f698928ce1ec98e137cd09bcd7d417b9cac17ff7b8d775cc2 |
|
MD5 | 2dba73e6ea6c9e7ed16ce113ba0927ae |
|
BLAKE2b-256 | 870821a51f953fb3798912486a08b3304eb4bc95492a90386e7f94a618958170 |
Hashes for finlab-0.4.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e84256c5468bb696b1494732ce9c2fdeda56a143d5d5fe6564b63f0cd3c0931e |
|
MD5 | 7c3d7bec6595502790133b7c728832ee |
|
BLAKE2b-256 | e4f8c107f428ba0ae8d86e6bfd4d022ee076992137faf3532088d0993e4b148a |
Hashes for finlab-0.4.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f47a988c267e0dc9a75bf23d30d94080ccf4a81021375d4033cc8571a1690fb1 |
|
MD5 | bb66477ca97ab55d2570e0a053d12ef2 |
|
BLAKE2b-256 | 63aec6860bf77bab0a46a94da805a21d5cd1de6227b331a8b977c4469da0ca26 |
Hashes for finlab-0.4.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1531e1e29e62e84e79494294d26ca7c4867c1d3bad73319d9ce026759eeae737 |
|
MD5 | b36644e5e7d36b37815b00dd4957b73f |
|
BLAKE2b-256 | cf48042ab0b519a7d381cca1efff18b530c1b0e4a2a0abf8a5472966d7fde8c7 |
Hashes for finlab-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 252804aaa7bb643ff2000372eaced52a69d6ae478475382c988027f1d8f211e6 |
|
MD5 | 592d0585038e4ac919907d9c3124ade6 |
|
BLAKE2b-256 | 6243f74e6adc570e956264e0fdd2032babe89ab23aae56e0c42c5e67cb6ada55 |
Hashes for finlab-0.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63d4288676237219d708e6f6ca8df29f3b02039dee7da25872b68d5abf3e331e |
|
MD5 | 5b4f16bd6659fdfa78fc63607ce411a6 |
|
BLAKE2b-256 | 06864ee564f28b7dc06f3f80c30851282f632cc4b8b8fd7acef4b51dcdf41059 |
Hashes for finlab-0.4.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a098193967e5b599b1e888a83df20490f13d49bf2c9c085ba09ebfde800ea3a |
|
MD5 | d16cd6eedae5b007c42135bfcca6eb98 |
|
BLAKE2b-256 | 823d9325d68eb477d5c740f6a3bde0c9a63dc79dae04762ca0e6b834950c6f01 |
Hashes for finlab-0.4.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90aae6e9d521eac51c6923c6a06ceff451454c9ea01954d344ec3871691469db |
|
MD5 | 5e4d8a92134b72aea26180ef89a699b6 |
|
BLAKE2b-256 | 3c0848410489853e3feda2c75e6bee425b7e484801f35a340426715f9aca1f2d |
Hashes for finlab-0.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdd9aaf237939abf5201eded41a34159dc70363a5f5c5a9ed78dec974b06fa27 |
|
MD5 | d4c970635a35cb432297cd65b739093e |
|
BLAKE2b-256 | d536e3c55a8091ec2ad897088339584f4fa27c94e9b0907d4ef0a32bc048e12f |
Hashes for finlab-0.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31f875cf5983b9ab04493b51f9fa7c0b1594e81aadd41f9e4098c37894cc4c45 |
|
MD5 | 0f25b1d9e2ee4a5d8eab538a031a5f07 |
|
BLAKE2b-256 | 0dea71ceff5f5929a19b2ea4dde330e9f2e35250cbb559bc6fa7d7c106e601f2 |
Hashes for finlab-0.4.6-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddc379d3b32e5335dbd7fb6ec0bf865257633a61251bccf179dbd68b36b9ae6a |
|
MD5 | c33262de5e54197f4619e4bc42066915 |
|
BLAKE2b-256 | 5b8329d38343249bc5f7ebe2121f170b5d0daac0eaca1608b9932250cd7bd25e |
Hashes for finlab-0.4.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bfc7c0ff0fa21a9d8f2f0f3120e21b7c7e14a980bba41bd95bd3fb9e413242c |
|
MD5 | 914f1d871de1db095e449db7f91005f5 |
|
BLAKE2b-256 | 5118ba9e17437ab0ec8643851b071f573cb05f50b2088381cf17fbeaa8af1fc0 |
Hashes for finlab-0.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9156e1d793ff164780898d99bd8c66aba3333b3c2fe8918d0c2ea196c94932d5 |
|
MD5 | 8be91f3fe1a9724d432ea9c2d9676992 |
|
BLAKE2b-256 | 35249dd1d40dc56f136377681738ca8f51d089f7692f3673aa072112dc3fa302 |
Hashes for finlab-0.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc95739d385c4c9077e96347135fc732ce7771f95f96e5a3d555ca7b49542f69 |
|
MD5 | 8840cf807e89db34658bee7d1a1d3b81 |
|
BLAKE2b-256 | 16744cb7f485aa8348f8e943e5234e051108c65c56c02d5c2319a29b5f08789f |
Hashes for finlab-0.4.6-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cdf2ae6010747be436d7ad4c9aae58267d0729ac968e55b3ba7d69fab79efbb |
|
MD5 | 840a9a4b1588027376449e0515ffbef8 |
|
BLAKE2b-256 | 0706dddf06b0eedbe13b72fbc28c8430df55ecb2cb43e3744a661366cfd7b9f6 |
Hashes for finlab-0.4.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08876c32d9d2ab8296ac38ae1d584dd79236d77534f3cf6f3babbe9a77723e36 |
|
MD5 | 4fb5d7502f31600b526c1bd5c3e24796 |
|
BLAKE2b-256 | 3eeba64b359fa1f76cdb3f08f1d2a9ce4c8574b143e5380f372d5d58b385a011 |
Hashes for finlab-0.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e937f02b4e00eaff21ecfe32e4c4d9c0588942255fdac498c02c2696cf885266 |
|
MD5 | 73d9fa0a5279fca08fa1380b5090829d |
|
BLAKE2b-256 | e4cdc28340e079a3d4a52f28ae52fb3bf3313f920b483617ba74dbd7d2cc7813 |
Hashes for finlab-0.4.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fde76b8ebcabafb74b52d84a8e27e882291086a9657d769f955d312258650d65 |
|
MD5 | 772d36351b9a1152ddd5086adf82d785 |
|
BLAKE2b-256 | 0d3c95a02e0d2bd383031ecbd60c5a5d4e9ed8f78add8721b257fd70ddca2852 |
Hashes for finlab-0.4.6-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 887496dcea41d309495e0e7e97e6efec5dbea56f5d30ee5c90fca6a1d59bee80 |
|
MD5 | 53bac13553d7cf441218b31069a6e323 |
|
BLAKE2b-256 | 493f2ad31a756e158e3eb3662731fa4caee56771ac21ad74d18fb4056167d72a |
Hashes for finlab-0.4.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38485fb707dae0bc1cae0d464e255ab4ed4c79b697055f3f6aed6015e8ff85d8 |
|
MD5 | 776301ec86a5a537ec1b3bfc26b519ee |
|
BLAKE2b-256 | 09a74016678f531b4f61d6ac6ee93260ea8130914205054af20168501a51c53c |
Hashes for finlab-0.4.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d1cdf47d3a15a3d8b84909fef0e0a5a55e26cad0164c59938cc7091b3fe1889 |
|
MD5 | 1671ece549a002151ae6a9dc88017259 |
|
BLAKE2b-256 | d508cf5f79086cc6a94cf4d6c7ef51ebfc0770d3cf023dc7e519d4bbc85fe924 |
Hashes for finlab-0.4.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9778dd94400b684f2b4d4573495c2047435a65622a593de9321b4b6847eff083 |
|
MD5 | d614ed991d71ef0ce042207a2b979e59 |
|
BLAKE2b-256 | de6354e4d4ec06e764cdfe1f29d1d5c072c14cc02a4aedd6a1824abf1ce5ff8f |
Hashes for finlab-0.4.6-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28c4b89cada7b0246b50c6c27fbdc98fd6c282c110500ae04a15eb948e84bbfa |
|
MD5 | 4a7f82923f0960f239fd3ae9aa915773 |
|
BLAKE2b-256 | f0abc4e1f2fdbfcfc439b9009807e81dece23e520f884ec7176d8e5fbbeaaf00 |