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.4.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2849edb6af34a55a0ee4476a4746b55c531b3ba4459a93cfa7b8214badb686e4 |
|
MD5 | bb687bbab828a107f224bf2c6663d46d |
|
BLAKE2b-256 | 74604f88d64a443197a169ec90b6af0f7bc0ddc2f7ed5664e5b4248922612579 |
Hashes for finlab-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d64d6ccda0f0349e61fe328795719300fd806437881419a1285eb368c49eba2 |
|
MD5 | 48a8e8174d03b546b6eda36ee182ca97 |
|
BLAKE2b-256 | e70e5c82ee77cbdd387843ca57b87af434a97909fa604cee19ceb05e71e229ab |
Hashes for finlab-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eed2c6cd4c9e2915394f5cdf6ce273b0f16b63c06a05406a22cc3a0614015ca3 |
|
MD5 | 1c5e246336af98a76b8fe412bee24294 |
|
BLAKE2b-256 | bd7966a53ee38afc73862a2d7e0c2ba7d0799db7bf8e05b82fa5595105f40e6c |
Hashes for finlab-0.4.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3477afe3b77a8bd6aed87a62b883b6ad0a7436814eb0210dda640bf57fdc6f75 |
|
MD5 | d2a5933030bd4c1f32b4383f98c67aba |
|
BLAKE2b-256 | aab3e5c51578f23c58c1012f89e9874f718438b714fc469a9c531691fc5467d1 |
Hashes for finlab-0.4.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7679111b592f15f53f9eb708715dd816e16fae3a5a219d191a28de6cbef1b993 |
|
MD5 | 6b3213443bdf543e940fc9a2a9688688 |
|
BLAKE2b-256 | fa379e925386c0a47955204990f19d34852c9e41dd43ac014ee9bd5cdb616259 |
Hashes for finlab-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5856a7aaa25a94e0057f6750b00d702dbac7979c374561b5f6d8e85578cf441 |
|
MD5 | d626b5ee3391e70de3226e0b35d5c178 |
|
BLAKE2b-256 | b7367d3ef990b25baf78cc265161127b9e45164b27db2c84f962d90e871442e6 |
Hashes for finlab-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f543d4d49be5f237c2e8d6e4f44964b3c0e139524a46b71f8684384bfe27434c |
|
MD5 | acda0bc85414401d012adac0ab895c83 |
|
BLAKE2b-256 | be9d9b5b694f9749bf84a1f09e892becb16d246c608eb61f1c3be7f6edceb7cc |
Hashes for finlab-0.4.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3f9999d6deb2f098f704f324f58336f12c162dc4db4c1934465bdb700c88e17 |
|
MD5 | e8910b7d64d2eb0cc0d74f4fa5bd449c |
|
BLAKE2b-256 | e45829cf2c4c3aac218639e3054b4862c42daca512b051d4125bb1282d3594f4 |
Hashes for finlab-0.4.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93ed3e0550d6c48f1496bf4856dd95b06a9e244a01dc457a9c9afa0b71d1bbbf |
|
MD5 | 2864744ec38d1bceac87b804ce016004 |
|
BLAKE2b-256 | b81abff4552149c34237c8b1d1b057704c809e3997149c27a914462c326e9e75 |
Hashes for finlab-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ff6a7ed072db2970f31d3fb5d8eadde9960994003ff6f7182b7f9afcf38cd2c |
|
MD5 | 44bf0b4ae8cf88162706114058166340 |
|
BLAKE2b-256 | 407f1d4547b8c40adf76bb7aa21e21b2392ab45b57eca9d732055d9174831581 |
Hashes for finlab-0.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3437d78a0159c5efd42153f1946c1f8351e94d4c092b2a2e231682f6468adba |
|
MD5 | a795a7ac0e55a7f147a424a4c7420a5f |
|
BLAKE2b-256 | 0b82f8198e96bba0a927c6ba557a0b5f8be3d0482eacf39e1c03947d521ec538 |
Hashes for finlab-0.4.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cd43c133a3980f00ba0f464d53f0e93da40112e73d03b0b1e9debb565370e9a |
|
MD5 | b0344bcc352a5d45ecfe2f1a12dd5c98 |
|
BLAKE2b-256 | 43b6510c197ef8d2174a587a1e371d68c8c5a6ee6a5459ba6986a11b324c2e0e |
Hashes for finlab-0.4.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d0230832596e7cf2848f222328ae06315803f8993dcf8cc5187f35ea47a1225 |
|
MD5 | b392b6c91118d97c0f48eb679a76937b |
|
BLAKE2b-256 | 3c80ab28e7b66e83f6ae801c878006e7679134d27346abdec998a0dbc086f4cc |
Hashes for finlab-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 892a4842224ea2306d3496e1e3e3d2809ec5f9d7caa3ad380170775d76a2585b |
|
MD5 | cace6fa9f5aad7d9cab61ba5349b0e14 |
|
BLAKE2b-256 | fde00dd60479cb3bf35a55fe49b96643ce7f702203160461041288ed60168fc5 |
Hashes for finlab-0.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e892f661ed769c2763830c0df5393c5198b5abadc35f0459c6129173aa4149d |
|
MD5 | 96ffce4540eaaa73359eb74a5de14869 |
|
BLAKE2b-256 | d9cc75ddd5f5b76f528478df0a57723fa402ab2c5570dc80a8379d55d334013e |
Hashes for finlab-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11aa7aff2df62ab6441a9e8d64d59558f0f24121a2318735821fdd3c29d615e2 |
|
MD5 | e01af0e626d8279ee9572492e73771b2 |
|
BLAKE2b-256 | 9efb63613e829bba8d05cb5599aa461d01fff6941fd566b3fe59220e68dd2743 |