Analyzing stock has never been easier.
Project description
hide:
- navigation
快速上手
安裝
在任意平台上,皆可安裝 FinLab Package,我們支援 Windows、MacOS、Linux,並且甚至是 Pyodide! 以新手來說,推薦的使用方式是直接在 Google Colab,來使用。 Google Colab 可以線上產生一個執行 Python 的環境,使用者不需額外在本機安裝任何程式,即可開始使用。
=== ":octicons-code-16: Google Colab" ``` py # 在 Colab 中任意 Cell 中執行
!pip install finlab > log.txt
```
=== ":octicons-code-16: FinLab 實驗室"
打開選股策略頁面 https://ai.finlab.tw/strategies 並點選「建立策略」即可開始使用。
=== ":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 | 0 | 0 | 0 | 0 | 0 |
2007-04-24 00:00:00 | 0 | 0 | 0 | 0 | 0 |
2007-04-25 00:00:00 | 0 | 0 | 0 | 0 | 0 |
2007-04-26 00:00:00 | 0 | 0 | 0 | 1 | 0 |
2007-04-27 00:00:00 | 0 | 0 | 0 | 0 | 0 |
這邊的 position
是一個 0/1 的查詢表,當數字為 1,代表該股票在當天有創新高,而數字 0 則代表沒有創新高。由於創新高的股票很少,上面的範例中,只有少數股票的數值會是 1。
假設我們希望每個月底,搜尋上表中數值為 1 的股票並且買入持有一個月,可以用以下的語法:
回測績效
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.7.dev1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b74176f35930278cbdedc85809ed0cd25c45c7c987a652f332e5dcda409d95fe |
|
MD5 | f0414222fb5d9900a5bd53386492108a |
|
BLAKE2b-256 | 7e6b2c62fb16360d0fd2e6ca98295faa5f04fed21c6ccf347fb3763216ba1dea |
Hashes for finlab-0.3.7.dev1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24c9f6f8ea698a791b68a99597d7e50952757291f5915c29a06aad59c14f4700 |
|
MD5 | 3606dd3be09bfb9a1c87cc6005a3e21b |
|
BLAKE2b-256 | 80a640a0360bddb1960f74a44c6b166e2723da59f45d6d5003a25c6a488d2850 |
Hashes for finlab-0.3.7.dev1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5895c18414dccf0cbf228d1048a35c6e5276610215551e1ca1ff5dd9787487be |
|
MD5 | 310fddba39200c53c1d84221b00d960e |
|
BLAKE2b-256 | 9a5d5d2a2e2cf65d02ae93413a3506a635e1018e34dc95cbbe83b50be7c8c9d5 |
Hashes for finlab-0.3.7.dev1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e659847edc044e0a8988bc4b0f675ea1c5df5520e61fa379af63af20ddd8679 |
|
MD5 | 22c473bbed5b8bf0cb3c898cbe9bf3bc |
|
BLAKE2b-256 | 9eb741b54bcc1fc76c92591887ebd216afc3a4b8c6817dc7b6ee241c588d1ca0 |
Hashes for finlab-0.3.7.dev1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b90d6146d877a1e0ea281000266c02ea3ec2b5991563a78a3c3a0d5d624c1608 |
|
MD5 | a3bf7eaf137fa2d2b14049ce6b0e3a0f |
|
BLAKE2b-256 | dd52e0d5c141c5b09e01e541029d04f9803bfaf8371bffcc5d055e2d8059a991 |
Hashes for finlab-0.3.7.dev1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84720e666ec9d6922365e50658e7594f7dfca9996ae94b305da3913d8fe57ead |
|
MD5 | 8a425251595912c306804550c151233c |
|
BLAKE2b-256 | d33a585e24e4961171b025409d51b6540ce6864ffe9976f2633d4e57bfcbc026 |
Hashes for finlab-0.3.7.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee71bef17b05c9764234c24ac6f83fd726596231a6e1e7811c3e98f2f23de68b |
|
MD5 | 4c12ed4f7580dbd307ace623c11f460f |
|
BLAKE2b-256 | c9dda0d498ad3f159c20f967b0e48650de9abf5f96229244401466277351d8df |
Hashes for finlab-0.3.7.dev1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a6b0adcb169e6e281aa85a47ecb700186a9f74d52e2a31b3a349039c6d747aa |
|
MD5 | a1d2eeed04f19e7a988eb14a427d374b |
|
BLAKE2b-256 | 20ed358c8c0d9e65855bffe007c7bbf1dcf2e71e6dccf663b13c23adcd5d6ecb |
Hashes for finlab-0.3.7.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49c978f2bf9203d1979d0e9ef496bdf9af77a9c5a28e702b3beeadb2b28449b5 |
|
MD5 | 4e14a07f4e2eb718710439fce58f87ec |
|
BLAKE2b-256 | 60a65a9ad354e1fc55804f82d47701b112e799147d93e513461cd97a1bf1ccba |
Hashes for finlab-0.3.7.dev1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf112bcb3b4372d4a6e7531c7ba1e653e149f8f171bc8ce78adeeef6a1fb012d |
|
MD5 | 4706e120329ae843b4a4e60ed192e0bd |
|
BLAKE2b-256 | c629144a359c3b582aefc46d3c22c94789cd8f380af241475d61c3a1174954ed |
Hashes for finlab-0.3.7.dev1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 086378b80d6989521a28ceca023d3536bb22db71dcd80cc9c1788c363bb847cb |
|
MD5 | b615f79fc63d043ceb0335f694a684ff |
|
BLAKE2b-256 | 18939edbc4ca5caf899b8ba8e9276f64a32ecf7ec93acb19fd120fb42fc2ca44 |
Hashes for finlab-0.3.7.dev1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65dc1fcd1d1c0630353b0e5e34c2de8f246fa24e4834ad23597a3b92f9fdd031 |
|
MD5 | 904af869a41d4f876dcc809dfbf549d7 |
|
BLAKE2b-256 | 24d75aae0dffed8d7380b36c3166265f4839524255ba4884c29abe89acca722d |
Hashes for finlab-0.3.7.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5f53e4addac64b9e7c953cc87c12ddd5c7fb54115b3154b265c531721f1c1f4 |
|
MD5 | 3ca239107cdad9a9597a0dcd2f9945d6 |
|
BLAKE2b-256 | a7fde383f67b30372ab0db101d0c0b8c1f863e396df4d1ea7b42cc1d526233cb |
Hashes for finlab-0.3.7.dev1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd54c6ce36b975d2380aa92446c762f08317c5b383cbed88438001a2f42fc97e |
|
MD5 | 1c4cb2ba3ac78ad36c1205d6b7284edb |
|
BLAKE2b-256 | 43ee20b6d1e22b5da4bd5c5d28f74ab2223ab27530a963e070efe107f6383fe1 |
Hashes for finlab-0.3.7.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e428d73847cd2a404c08f3b94300e5934b90a0c91aecdbfd718771f320412da |
|
MD5 | 0de21405ea8495e61314c9b5903cbc88 |
|
BLAKE2b-256 | 37eb1a0cb849569865aef6925888259eab567960a5dfa2658e4c7b0a7fd36f93 |
Hashes for finlab-0.3.7.dev1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b423415232f714cdeb11fbb39158c499629fe17967364f95abb8e9f6569044b |
|
MD5 | 3b9cced21b9125cb8f1bfdf319bbef2f |
|
BLAKE2b-256 | 4ad0346ad5a4b93d99fb6156c99b851cb49959f0b17753719e8dae2135cfeaf3 |
Hashes for finlab-0.3.7.dev1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb3f8c3ad560f5c87bd90692038c7bfac9e1fcbed934f25f070a842eb1572894 |
|
MD5 | f425c1c73936b03643b56d0ba831a948 |
|
BLAKE2b-256 | 037d72f9b2bb6ec8da167ac6441e3bdcba07969bcd13faf3a82e4c950503ee89 |
Hashes for finlab-0.3.7.dev1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 648aa0a41931c041d13b98d7016c0e3861be1aee4909924dfe104caca9216a70 |
|
MD5 | d4008d65f0548933404c169a5e2a496e |
|
BLAKE2b-256 | 84762e2096424affcf19ab44527f3b73d93dd076ccae04bb23b19d29f714b253 |
Hashes for finlab-0.3.7.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54a62c88f3a4426177f3a10f774171d9c2a5da8c535169a3720ffe124380e273 |
|
MD5 | 51768a19cd7072d12fc23eb97a2ff810 |
|
BLAKE2b-256 | 9d4d2ccdd618cba5b6dbf30f8c9f1c45ac5cfce70d2edab65fb65d1372acfde8 |
Hashes for finlab-0.3.7.dev1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50d3986794e8e5972f090d97e910e02548b35c3babdbcc515b825c0571774dff |
|
MD5 | d3d7a2662250ed0ebf386b0151d678cf |
|
BLAKE2b-256 | 8dcc6206e2fccefc986f268b78796d28d2f8faae6a2f544ddaf1d3cd1859345c |
Hashes for finlab-0.3.7.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 506cea7f89ddca03eb587f5fed9a85cd0283bc329bd02fe4f1b7fc49ca337659 |
|
MD5 | 391284106a152b5a02475b0c24d8dcdb |
|
BLAKE2b-256 | 1473015fbf1c42f4e940f9d05f4bf412fbe32e1ff20d9a3aa3bca32de734452e |
Hashes for finlab-0.3.7.dev1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c55d178f43790d7e441413fef79c1f9137d27a4fe71f66e19e64ed927adab9ac |
|
MD5 | 09c3925ad4dec278cdc603b7c43abd30 |
|
BLAKE2b-256 | f1d011c899c3e21a506fa655371cbf311d2599fc32cde1ebafc17fe5c868a916 |
Hashes for finlab-0.3.7.dev1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1b1e8a6038e27cd2f966f749cf08b70d54fec0919e29e5bd70307c8429e126c |
|
MD5 | 22d20d73f6e105c5376735fbff8ee67f |
|
BLAKE2b-256 | b532fdc416ef1df11148e889c78b1767937093530850c0d83c64b6ba03c3d201 |
Hashes for finlab-0.3.7.dev1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7bfee681ccd4ca521d477accc6697393b6a10d1e599a98ed2895f7d905c7775 |
|
MD5 | e2a4bf326b4ec95150709d951782d049 |
|
BLAKE2b-256 | 76e0625c64507ddfe975e0896a69a6d6787ede65fdf7b1651367bf97076c5305 |
Hashes for finlab-0.3.7.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 290628346bb40d23316031fed07c59d217603f23de25fe30500abcc4cc35e9e2 |
|
MD5 | 6d6703ab1d2de737928a59553b836e11 |
|
BLAKE2b-256 | ac6b6d47993fe696b83a506f33536572009eaac63d3e357d4f3e7744aef04d6c |
Hashes for finlab-0.3.7.dev1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfd3de97e29bbb0c6beb2f7ec90d8e3dcf7132e6e75178e84308d957d27b4d94 |
|
MD5 | 35a184983b8461b523f6af6ab1e948bd |
|
BLAKE2b-256 | 804de856a40f471d9cf35355c7f7a15c1ac15c8555b122f35323d559e78551bf |
Hashes for finlab-0.3.7.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 319a9dfd5c46e954c7d248cf31e7ba97649ac03da0c8ac5de79fd99fefaec3ba |
|
MD5 | b05eaa733777d4772b13886f91077424 |
|
BLAKE2b-256 | 90f91b649f97d7d402ca10c1b3133c8cc14a339d7021adc0be013388ade8fdaa |
Hashes for finlab-0.3.7.dev1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e599737b750fd69a0a8bfd2d9acf7eba133bbe2949c493acd7edbefb034c0a0d |
|
MD5 | 7cdab0468adb099726dbd19d9cae5071 |
|
BLAKE2b-256 | 1deb926a25dc1f34f85a9195d8b6d32b44098662eda2af680242c8824492f640 |
Hashes for finlab-0.3.7.dev1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ccdf95f06589101984da628e6eecdc9f20d8d361d72e8e94425607838ac9222 |
|
MD5 | 58506d8dd0894aa6570faeb916e9e0af |
|
BLAKE2b-256 | e03c870dcfa19ea1e1a7ddf8260c598859381e9e0ef411d40f78df3d1ead0642 |
Hashes for finlab-0.3.7.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8e2a4cfcf22809027b51e69d2477da36adf92202131e87221247ea3ae88632c |
|
MD5 | 2215440bd8adbd82388e6bd75faef5c8 |
|
BLAKE2b-256 | 21659211eb5c978bd7712e1cd547e2e83a241694797f47b540185807a3e4b69a |
Hashes for finlab-0.3.7.dev1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 771a7cc32a26ac3e5228e07f5a3e8720bcc8edbbecb416ab315775b6a0de370f |
|
MD5 | b347d62ed3fdff85cd25ce873268c62f |
|
BLAKE2b-256 | 3e9385c5c8c0c3475acdcd784b7688dc6a8cb13325cfca33c795f45e0bb6cf7c |
Hashes for finlab-0.3.7.dev1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f76108928d6ad0889814546540c0704fdefe7cb5a64ec508b61cf8e119f04e6f |
|
MD5 | 3cb940724ba2aba4e84990ed46a1a275 |
|
BLAKE2b-256 | 7628a3d4e1760f57f566c4a78d33a1797e01aafbb477f1ec5a9cb215b412865f |