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.15-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e4781ec2670311322ca3e3e690c620f632f3254612a955d12cc976e52790504 |
|
MD5 | b54d209ba27c7ebfc5d1c7794e46a359 |
|
BLAKE2b-256 | 3d943de251d5d01bbf9134ac2f7a0020edc879269f9b6f322620737a65c11f3d |
Hashes for finlab-0.3.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a016d94b79dafed62e511ae121fc6f97a3085e20489abbe5b5735dc71ccbbf8b |
|
MD5 | 2bd9fe5a077204547aa5a31d023c6b7c |
|
BLAKE2b-256 | 57efe14caab02d5cee4babeede1e989e556b52202fce7a295b8708d494051ee7 |
Hashes for finlab-0.3.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c20a143e9ed1e2c54a5bad8328aed14bf1d328f3aa9e58902e56f523c5964fb |
|
MD5 | 9d805aa004057b4368a9be4393eb24bd |
|
BLAKE2b-256 | aecadca56305ee4683c5bd8adeb0606e165f3277096ea7413695acab16ad1b93 |
Hashes for finlab-0.3.15-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a769bb7510df0a33918787dfddb5b2f08da3abf1abcdb932d93f33ae5067ae30 |
|
MD5 | b56fc4971c07fec9d1cd7b6ffb76044c |
|
BLAKE2b-256 | 8cd674e4f8bf21cdd2bf0142c0bb6914ca72a458f6fb6ae8b26f5ac946c5564d |
Hashes for finlab-0.3.15-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c347f34c56bb911847822e6ce75ffdbab6e956f8221e8de2f354b5b102d9becd |
|
MD5 | 6affa27adbdcdce1845f0bd7a547e591 |
|
BLAKE2b-256 | 4535d9100ba2db01a2ced1b9ac9019538229ef37711a595e71db81859b9b83f0 |
Hashes for finlab-0.3.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91d0cdc2edf86c519a7787282bad65325c2ddc7c9a8373ccce8882cdc3d6f304 |
|
MD5 | 4f582d4e78347a8130da9d306084d716 |
|
BLAKE2b-256 | 045cf58f444de8dd0864001b1a733f6cffd9ea961553dc2c16b8e8293f597bad |
Hashes for finlab-0.3.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008822ee8668007af796abbbf0e99b3a9c779236a4acad75e31df15bf48289f9 |
|
MD5 | 92aa374f9351c9ef3521ebc6818decae |
|
BLAKE2b-256 | b28dba212a6f65d897d3538a02ae1abdf3a97a7bc91cd3cef9eb83e6aef8c609 |
Hashes for finlab-0.3.15-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 910be19cd29cf4978ebf64379484172a7b0ff7613d05bd780755e29b2dc5fee7 |
|
MD5 | 096040a41a68bc3f230f0f8fba304294 |
|
BLAKE2b-256 | e35732f14675f06ff880daeeff7f7647aa3eb47e77faf3f51471e3ec596760ad |
Hashes for finlab-0.3.15-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b2a784806c48e265c0bc5ee1e16a2f3107325444fd63e6989c8d9ffdee2cb73 |
|
MD5 | c685b4007d1e45b01372def741caac80 |
|
BLAKE2b-256 | f64542019ee03ff748d2f106006bb93e1d70b8c07bb29376199aac94ae52c2bf |
Hashes for finlab-0.3.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02b530e4956c6ec2057b029d421ed7e771af5f86b12419c902e67ff3301bf19f |
|
MD5 | 076ccd1930f5f11387b2da97b044b810 |
|
BLAKE2b-256 | 33299115f0eb774ab7d23e1318a79dee3238399ff514a64eed4fd6904d6b2d39 |
Hashes for finlab-0.3.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b7633bc10779eb652231ca5236c83db1ebc985b390ad6ba16c63c0a2f6e5fa3 |
|
MD5 | 02d82f97bbc7f52f05f57a25a65ca72a |
|
BLAKE2b-256 | ea13910bd3fd24dd6ad76fb724afd28f312b41ef6e3eb6e51b5eec7378da8b52 |
Hashes for finlab-0.3.15-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c2d90a82bd8c86e42fb46c0279a2b6db0be8169c07161c4f10d309177e94061 |
|
MD5 | 23d73ae1d5842a934261e8c99fd243ad |
|
BLAKE2b-256 | ca53f91cf1de182b83b8f9df70a08338bc8beb4281fbfd6af39e579baba6ce59 |
Hashes for finlab-0.3.15-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aedbcad417ae676b9e46f4bf4b0cfdcc3aac456f0ded4ebe67e8ce10cc18f9f8 |
|
MD5 | 51e334bc3a43ae6f67ecbaa7cf90f3c9 |
|
BLAKE2b-256 | d78578d178cbb34365e076c5e330889961e889334f8d11072f31b2ddc3a974c6 |
Hashes for finlab-0.3.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7227ebd4a9a8909f94d1f0b9472e492daa2e90d3357c0163a55d036863ea0139 |
|
MD5 | 77bc84dff546d0f87c43618b6ab31077 |
|
BLAKE2b-256 | dc79fad9e334c514edde3c5e666a1d3023532f08012e5b10d7771098d59308fa |
Hashes for finlab-0.3.15-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1d742f82a6dd03d89debaa8f1426fde28226d859dfafbabc76080f24d80899c |
|
MD5 | c2ba3bcdf154746e90b33e11f17e3d0c |
|
BLAKE2b-256 | d2ac9b9c195ff132a6fc8026796b57a61ebc9d56d6c192ed21ea7a9d397d70e2 |
Hashes for finlab-0.3.15-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 470f629e9799b5f4982a8ecd5799ebba3475aa532d5b38482d9d4f6e9812d50c |
|
MD5 | 39b93eb1a07a1d1cd88e279bbfface22 |
|
BLAKE2b-256 | 54c198b1783984b01faa64d063361b6abda52ab95ab77032db4792eaafd98289 |