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.16-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a06cbebc076c5f8aafe9657b47dafe988ed7b4a29c84c059ead611b4bb8d248 |
|
MD5 | c3926d25c7af383c250c024ed672192d |
|
BLAKE2b-256 | 2596e1a1ad6138a6efb99d9fa026d6de8355d8b0795b7dca5e1e2fe9eb4c9831 |
Hashes for finlab-0.3.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 102fd4f10227e056ffdb79187ded5676d7374ead2e2907bea697fd632e35267b |
|
MD5 | 9ac823dab365d0d222d4e66960dda6a2 |
|
BLAKE2b-256 | 42643a8d0276a43e1330fe366eadb67c6f1a365377337c11e718d00c5120a6dc |
Hashes for finlab-0.3.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4aa0543703e5dc11799c459ecd24c8dc90de66f9b3e2b60d81e75eee6198429 |
|
MD5 | 15d5519477319fc76aa29dbcd46b927f |
|
BLAKE2b-256 | 79714ed691226556b79bb8afcaff2dc97346b4365e78e7f09ae6b143a014933c |
Hashes for finlab-0.3.16-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9aafd65a9413e4eabb42396bbfae03c57f1ca258c655402f5f831fc56ac4271 |
|
MD5 | 59be3cd04a915bd10b887bef1e2bf536 |
|
BLAKE2b-256 | 0ab1b93bd4cca7b0426eb3feca4c170e5c1f789ad65d8e140d04f2047cbb56f6 |
Hashes for finlab-0.3.16-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | baafbc1e315a0efbd4f6434b6ca9f8d67834cdc4b5607044429c4b5e7512de6c |
|
MD5 | 2f31037321dab1a8c6706db05bdc7554 |
|
BLAKE2b-256 | 6de634cb0b4b0383572129986994a4bf333faf0d436c5dfc6ee0f2bab428bdb1 |
Hashes for finlab-0.3.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abaa435dc9561e09858b30247a2da3e4ef6d176702c3a5d2b7e71b7267e17bdb |
|
MD5 | 348a1e22a5e71fa993c2fb92c4a4550c |
|
BLAKE2b-256 | 0ab782deddb4713efdc414346c3093cba6a0b82d8bd0ccc3d7510e3e67e47baa |
Hashes for finlab-0.3.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0faf3697f2e3d682a298ad8db14d3b05e071afa718e20dbb3df3b3223b7fce1f |
|
MD5 | c40703c61777e214fe9bbe3d948ed382 |
|
BLAKE2b-256 | 5a3447540b9c9768ca900593cc2c7262716162e9aba380aa655e72b9cd628ccd |
Hashes for finlab-0.3.16-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84382406cb91d0183ca57f7522d355ae0feb2a46b69468603348747f5754fc41 |
|
MD5 | 7fd6c35fd493b63a67a41b3b32358683 |
|
BLAKE2b-256 | 9ea5e678a4c33932228c9e661f6184fc90e72a34bcac1949163c4555f1fd7e97 |
Hashes for finlab-0.3.16-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bee510aa3868d8d1686ecf73a5b16a0b396f5b3fc5c1bb2b2aab7a040589c157 |
|
MD5 | 928bde8f9b318b44ebc075af36605bd9 |
|
BLAKE2b-256 | 6707490bd15790f442138938d1231799f1f1c4f8188144eed0ebf2e3552a893b |
Hashes for finlab-0.3.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 490532d5b88dd0025d9d7240941037ebeacd291839fee6bc10ea5ff673ac20f9 |
|
MD5 | 66d508b8d84cbccdb5606be941ec7ccd |
|
BLAKE2b-256 | 3301cd1f8528dfac3926d2e5b1c3b98c79a589e4432465b57617746c468022f5 |
Hashes for finlab-0.3.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1685b55e84fa82b62fe761044fa2e7b63be95ced203eedf55b4abc7903807bb0 |
|
MD5 | e85fdb78f653940186e925534671d1f0 |
|
BLAKE2b-256 | 3266dd4b9fd03f526506c24bbe578e608950bb43466c5dc5ac0918d1ea10a4fc |
Hashes for finlab-0.3.16-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4b100fdb7c13faae3b27a93452285e602c3af0d781fb45c9ebee5143afa4be6 |
|
MD5 | c6ab34593158086345f3d9123a671b99 |
|
BLAKE2b-256 | cab15234e50f9384cd959dcd2d8a4ca788f69dcc0a829ec588a72259af790b54 |
Hashes for finlab-0.3.16-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d58e4678e698f68d42938310a593c569ef3eff5e4225a2d84c9d12b49fa60ff8 |
|
MD5 | ebd53296ca37cc5f389363f721216b03 |
|
BLAKE2b-256 | 721dc7380e1c3ca2df726c90d41cceeccc7589b72219dbf55d65e4fe6f6ac961 |
Hashes for finlab-0.3.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58bb0f22c91187c9c86735db3ba183254baf3eb6bf4998364cd0fc0bc48682a3 |
|
MD5 | d0c609919128ac835e4a7534e9a6fab5 |
|
BLAKE2b-256 | 8c588a852a4654e2dd4105ed23288c48cca60b653f2a7d801d548ed782d5759b |
Hashes for finlab-0.3.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f821d40bff808dcf20c549bd1ef42092804b18a35e6151b626bde6cc099693b0 |
|
MD5 | 38e5d7b9f5e0a8a640f1cd4f5a2da993 |
|
BLAKE2b-256 | 38484b35cbcbe52729e0032f2e234f96668fbcecb9c5b11856cc25a30531f344 |
Hashes for finlab-0.3.16-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cc92f77a7b32d46a55608266ccf78023b0d87c466cfb545af1fa48ca272dc61 |
|
MD5 | 25854aab9ea3017a9611feba6c7d8430 |
|
BLAKE2b-256 | b3ede3e7e6dfd6acd0082dcda194306e87570235dbb3ecd171e9bb5238486a73 |