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
```
下載資料
輸入以下程式碼,即可下載資料。可以查詢有哪些歷史資料可以下載。
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')
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.3.10-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cebb2bb259b34d50b68d57e27c5def4a496aa2f38cf44c6e18ce7a4cb24ca5d |
|
MD5 | 3bf577bbeb30f1232f5ee838f6f0a053 |
|
BLAKE2b-256 | 4488155279e354cea58e4f2e3c572f6db8d2a0958fa6871c56765f1864c050b5 |
Hashes for finlab-0.3.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad028f8e203adbc90d3dde3fbb76058a90ba473fefae78e4f9434e280a838355 |
|
MD5 | 1446fea594823144ed6085091b2abe2d |
|
BLAKE2b-256 | 0c675145af9c2b9bd7778908a41a9ffb4a1624a3c3059e89fa1e119544f5b047 |
Hashes for finlab-0.3.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95e0506c3844fbe7f8f8a4aef3ba0707f93e49f0040d1ae25ef17a3edd461df7 |
|
MD5 | 3e2439bd19ee5eccc73706aa0f32bdb7 |
|
BLAKE2b-256 | ad08d4744c02db844dc5716898208241de3a1b54a8ac47313c7b9c767ae1ee2d |
Hashes for finlab-0.3.10-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2015edcb7b2858554b80a95ee33f8f548e23a244b2810bf6440ca3e3e4dc5fdc |
|
MD5 | f6e412404309d129b297765e362ad8b8 |
|
BLAKE2b-256 | 4d695b99029a38c6d08d9066c6b3600062d5740fed46d28c21d1855620859955 |
Hashes for finlab-0.3.10-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e5192f42c30d0e148f5439d4faeb4d3b4a75e4fba801edc735c50b4f3a9148 |
|
MD5 | 151d03e41392a0c950fcbe70a78aade2 |
|
BLAKE2b-256 | af05d6e072b78624416c2600241e3e5bb3db67a5dcf03e3c2eb7fa1868173de5 |
Hashes for finlab-0.3.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ff147ae439a676af2b57a0ef582b7ac04c8839573d9c1da7ccc7cc7d3700d9d |
|
MD5 | 66ca2e41e35137b7eaa9b2e9b27bdbf6 |
|
BLAKE2b-256 | c9d0fc6b5d830a189df63af7c7bcfc48bb3778bd01cfea8d9a759433ecb94d2e |
Hashes for finlab-0.3.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cdd9f1f43335e2e132cd7f8c79d501ee4f00c29d92e5d528a5ac4f1a2584140 |
|
MD5 | 0c97590cc33643412a751ea4d4a33195 |
|
BLAKE2b-256 | 0695e80501efb0e078feb50351bbb27f7c27b3c2536d6dce6c698ce407396ce8 |
Hashes for finlab-0.3.10-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92eaa9c8436c1bfbbaf3ed48e0d1e628004ecbc52cf87ded9cc112ba6496e7da |
|
MD5 | fc20c6690570475b98b2c590b802730f |
|
BLAKE2b-256 | ddb013be1382669fbeecfdc577f8b711579b602f280492658c6809002a0637e4 |
Hashes for finlab-0.3.10-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 121cc664c52723481bc30b6f2c9ff9d8d75df3f67df3e5ebb41cb457a9bb19fd |
|
MD5 | 829c6bcc3fec3a01ece1fcd3a87d4579 |
|
BLAKE2b-256 | 60718223bd8c77a587a99f598613fcd3612a8281d0cd36d037e34fcfbd92eaea |
Hashes for finlab-0.3.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5808782b798daff3322989fe92468c2f3e1a328dbd8d31f40f3f65b633c5abcd |
|
MD5 | e99ed0fe1f553e157aa35c7da4dc7550 |
|
BLAKE2b-256 | fdee76bf9eeedb2729fb4cc9888105e01272a6c665e5061b6a805cffd39d83cf |
Hashes for finlab-0.3.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c238bc7fbf83f3809266870581bec37d36df003a062f8fe00fbe26d3ebe53ecd |
|
MD5 | 489f96bd6345c3c1ec2515002a4f7afb |
|
BLAKE2b-256 | 12fea3e2d4c8b635190b2bcecaae29f0ce2bba157156df78c2b8f8fa9bd4d09b |
Hashes for finlab-0.3.10-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4828e74f927bafac67d5a554b6e29e22cefde9c2878cc26b1f2cde70f5061ae6 |
|
MD5 | 8d2a01edfdc0ec226f9580b6b9bed1a7 |
|
BLAKE2b-256 | b6a0deb9ffff65b2c517a6a5867ed5322b8dd8a880c7ea339d1cb60ee226c2a9 |
Hashes for finlab-0.3.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c98b892c9d4cb061ac9c8e9efe165684bb7431a8665b1c1bea839834093dbf1c |
|
MD5 | 5b9889bbdb07b30a4d1ba0aba86fa498 |
|
BLAKE2b-256 | 1b28a4ddf746c94da311a203c468a6d1a32e93eb5a23093dbc13c1bb8cfd7579 |
Hashes for finlab-0.3.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abdee4d0ebf805a1a6dbe00f2c57ae87469cf65df3368e1f2dbdc7b41086e6ad |
|
MD5 | bb8d6ae3b79663aeaca641185d20fe51 |
|
BLAKE2b-256 | 87950e3953cb1fbf15e4d09d3dab49c306199fdfeb3ba5cdbb289cca43f1ac77 |
Hashes for finlab-0.3.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6df9579e60ed2d28aeb0a1d1355904f6f7855585b0a825a95692660c91da66cf |
|
MD5 | 279782b5a2e71f68c10c40de3b3c8e1e |
|
BLAKE2b-256 | bc6bf0e06aa2bc92727b2777c0956d881b95fe505372581e9d00540f72bc64d4 |
Hashes for finlab-0.3.10-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dcd057e056b5e388fb15b22a081c35a2db783175310978a73a5c4008b25a058 |
|
MD5 | e08d90ac355629ab1e63ac3615239295 |
|
BLAKE2b-256 | 53acca1e3e32e102a01f330aa9adddb94c7bab47b9c9f2242b666cdb8ab3d576 |
Hashes for finlab-0.3.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c54c3fbf3f68376d9ca10034095148869630acac547ac41a55fac7c29b517520 |
|
MD5 | c3d6aff02ba060e364ee0831ea590fe7 |
|
BLAKE2b-256 | 1b8435ea20e44d3aa7cda9cdf36839606ce50e833093dcd71065e03abf8f0b5d |
Hashes for finlab-0.3.10-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d69a7d8d14827cea0658df9a68f5449c36305809f992d12f8b1e4dbb101c89d |
|
MD5 | 1a73470eccbfb74e306b41fa693eaa94 |
|
BLAKE2b-256 | 9e62908d05dc08fffa41e0ff019783c4e7dd72a81183f29f9ee9e7e7782b709f |