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')
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.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 945cb125506cd442aaec16a15a5a1bd118c1ff5b9ee4372f7b1a57390fe786cb |
|
MD5 | 67e950403366b91d121b4cc3e0f938ab |
|
BLAKE2b-256 | 9e296871dd0ce205d1b3ae592342155599d9a447344394d87287d053b3048e4c |
Hashes for finlab-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aabbfe736f09e6a3775cde2cd9c2154db0a39fde8e195f884623514bbe0e70c0 |
|
MD5 | b43640df126bd4786e545e0f32198072 |
|
BLAKE2b-256 | 1ce46dedc81edea36d223c7cce008ef836dc7f2b742d4a0445a755076b6a4665 |
Hashes for finlab-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a848ec59284a09f4d6291d7e32ffa6e337a81e7b2e2a8ef86b416078561b6020 |
|
MD5 | 43a4e643959af3f2231fb4bc31641353 |
|
BLAKE2b-256 | 3104afb365e05fbbbba4b4ad09d026e6d82a0ef23257c1fe6508655e14acf399 |
Hashes for finlab-0.4.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2323b357cb338797518e1658f0940ba66d3a116123cd143f52ae8ae67b707ba5 |
|
MD5 | b1a81aec8db163f1148a0c40bae66fb3 |
|
BLAKE2b-256 | fdfeae692d52a3781ef31c56fde4dd46c6f4421ea338858a26927ee7f650fa49 |
Hashes for finlab-0.4.3-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 317e19b70f32b3e014e185c23f795e804cb3c0676c5315d03353a665fc3925a8 |
|
MD5 | 33f9b059e65bc0454950054229799675 |
|
BLAKE2b-256 | 302632b13159666ca762f7445065e211eed5a6ed1294977c503ca4f1b66839fe |
Hashes for finlab-0.4.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dded8abed9b8c15269ebf7033c462ec98290d32889c90de729605eea8e7070bb |
|
MD5 | 62b8cc3b8fd54fe8303c51f9f1bf43cb |
|
BLAKE2b-256 | 74e3972352a57af1a511b3beaa9b9e325cc48bc24da7eb5e0f738352870ff4af |
Hashes for finlab-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37925427a8a62defe6ddb0cfe7b39c7cec1ccbf4354d67e55c3556ee66ce3d4d |
|
MD5 | baf267d85368f2a75841eb9d5314dc30 |
|
BLAKE2b-256 | 69c81ba13046328ff9820de5a4c1711a44a4c868782e193e7382966ccba0d69e |
Hashes for finlab-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c9afe7b27b6e26ded09b390d31fceef460f2f2a415ea5377d3fb6c6692fae36 |
|
MD5 | 6cc471c3418f1814cd217c7f853edc9a |
|
BLAKE2b-256 | 0b906487e6eb9c2bf5eb6f6f7e3429c8666805a362f9576ac47081cda83baa99 |
Hashes for finlab-0.4.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c885cc6d85a201a75978624d03d6b20bfd63c49da181e453c8eef532b3dde8a |
|
MD5 | 78973f0118ca5a88187cbdf68db5a76b |
|
BLAKE2b-256 | c3415b1af5e579fbe98461fbcdb2707c4c19b3bcfed4b73d15761391c44b78e1 |
Hashes for finlab-0.4.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22343140e81c80b78eb2f0c4a7ef3efd25d99f09d6b0db2f1fd29a962a7551ac |
|
MD5 | da0bbbbee6493485c6c619addf37ff30 |
|
BLAKE2b-256 | 5b2514e0794b0813674141b10bfa6484c6b7286c160c8bfe514fdc10a76bbfcc |
Hashes for finlab-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da63660a07eb8293d2c3719f2a7f25cef3598c7fe1f8196eea54d5fd0f1ee506 |
|
MD5 | eb7acb55af879c91d87911a60ebb04de |
|
BLAKE2b-256 | 5efd5b91d9d4dba90ff42dde83434be219b2321b9bc015de4b7f74a23972ee55 |
Hashes for finlab-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf285c98dbb25d05aec4ae6d291707ba18a89a976e151e2b6eb930a85127adcc |
|
MD5 | 099fb3c0abff5e7176775019711962c2 |
|
BLAKE2b-256 | 2318cbfbfba1a7575c39be8fe642d4d297fc435e2b1c05f427f0c62dc70e1552 |
Hashes for finlab-0.4.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e92fb7c23ab5cedc515bda6600d9e0aa86c7a7122b604522a5e04939116a77da |
|
MD5 | 15694e37285851914125a7e45102a0cc |
|
BLAKE2b-256 | 1ef4b17fc3e975a092d561f092058a64bff74fc103fdead06e843e5d81242e09 |
Hashes for finlab-0.4.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d129cfe8c423bea7ca24ba5dac0a445a25d60200510037397665cd47c6b2b2c3 |
|
MD5 | 39442908dec9cf87d4527b178ca28770 |
|
BLAKE2b-256 | ce5a30e8adb65b9ce240e949c8fd67f592f824212ddfbdc19806a34b5a3983c0 |
Hashes for finlab-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e14c1d4e1e173a447f86a9be9484f494e667f39190c248de95623a6bc98fba3 |
|
MD5 | b9e55d39a6ff4cbbb868920ba3044c45 |
|
BLAKE2b-256 | d32e7c06c95f72d561047b88fafeff4c7656a1475b382bfb06c2750bb7c3afc8 |
Hashes for finlab-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba73473eea9a9c2f990514aa1ab8e93771bafb29ecc261759e2cdafb259b283b |
|
MD5 | 7f197b19cfc8f7ef2811a2e98f96dea2 |
|
BLAKE2b-256 | e5a07854d784cf19952014b0a56607e4bf24f97fa95cf2a7a1f833e0bf5ca737 |
Hashes for finlab-0.4.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8336e6de1a1587fc6e2a0ecb5a44728eafd71f4642c36e544c73a2b3ddc5f40 |
|
MD5 | 04c5bfd711f9bc25025ea8e57238db5c |
|
BLAKE2b-256 | c47dec4f14480ff074c50757c4aa16d2b3ab0d91303154c34c8d1221c8ef857b |
Hashes for finlab-0.4.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a9e9eae75ccab325a8889c875b3acfe0f538709d1f4aec52865edeb1980a41e |
|
MD5 | a1d3025d77a63223cfd0d0b8ec3e0ccc |
|
BLAKE2b-256 | 88b9f1feb124e0a053d7c3129e8e77906446ea916bba512bc27ad4cff6d159cf |
Hashes for finlab-0.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f42de808068db2fcd9c23208e4afa02a3f6273a8b30f819d10aa972c30f1596e |
|
MD5 | ca63eb0a4b3adb95be18b6807df6105d |
|
BLAKE2b-256 | f64fbd3e8a0d4faf6ce1377c3bbd456165a58b9067e81a333599d5118c2951fd |
Hashes for finlab-0.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 893625c3a4309d45a8714f49248a99b563a072fe4bdddd22aba7d2cd33edb222 |
|
MD5 | 3056566736964ea19541f167c7b3222f |
|
BLAKE2b-256 | ef7f77b3c4b39d161794d632e74dde61d0e9d5ae7eb7922c7c1351c90a1b9ca2 |
Hashes for finlab-0.4.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2f2287f384f09a8676fe534ad7a111f80485428f795d939421abbb60c9260f4 |
|
MD5 | 70997081349133b5e53e1d7bc16a4286 |
|
BLAKE2b-256 | b230a5fdd136565a082d63e3b46b443784e856706a9a91a884dce888e1a9d014 |
Hashes for finlab-0.4.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1df073d8907c508b25bdd412afc7acd1d6216635a151198b038c0fa00397544e |
|
MD5 | 8e36644bdd86b00ef9a966f74b582e45 |
|
BLAKE2b-256 | f60aaf087a0445fc4c1b75f8aa6919efcbae524351535fe3a1adc7432e1e6845 |
Hashes for finlab-0.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fd344087e36489c68110b324d1397efde240a49987902408af54773aad843d6 |
|
MD5 | d07b49c9f19d577dfa70e49bd1f3d1f2 |
|
BLAKE2b-256 | 856e454128ffc5dcfb3ea1f2630db1bc1b39f112416821ca387588ec0d9f21d6 |
Hashes for finlab-0.4.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f179f9dc1890cf1c4698783a0e49859402baee4298667be28edeaad88191945e |
|
MD5 | 295b5113dc47c88d7e796725fed3127e |
|
BLAKE2b-256 | 190b290043a10a256b4fade7f7d6e9890ea73c926194e38e0291897913fe9267 |
Hashes for finlab-0.4.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a71b9d055abf70c7aefd7f39fc1a628da0c55bd8001e072ffff33bbff878c8eb |
|
MD5 | 3952d8a9a24c0f6e3590fc8a99457f6d |
|
BLAKE2b-256 | 3882a3a2a723b2f2772a082e23e0833f3063cf9e7adee83d6b17971c06ce6738 |