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.11-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b4330a021df29f5dc7161d231da6bdb1db239b6c121cc37f05bc7197f70685a |
|
MD5 | 7569ac8e43c754b276a82092f2f9772c |
|
BLAKE2b-256 | 573419f17dcfe3115f14af8fdcdd648ed268897d5257e77c1a663f41fc9cceb2 |
Hashes for finlab-0.3.11-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58589f34f803ce763c5ac55494944c9b3261e914cf1e6ebf7a4911089ef80856 |
|
MD5 | f494fac47f75df4589f4187857e57cf3 |
|
BLAKE2b-256 | 9e098e0723a1051f4713c315fc8c354a1fd382176b14d909ce92a52d5e0af192 |
Hashes for finlab-0.3.11-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60c12570f945d74dd8263515a03970303ebad9a13a8735f99e52035ddb1733d0 |
|
MD5 | e9913a7de4c7ec0ac13fb9a0687e3908 |
|
BLAKE2b-256 | 81f7038d20b1f0b7bb9ea7a73763e6541b8b8945edb0fe7d52945d5109e933ca |
Hashes for finlab-0.3.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0213ab0c1bc1deb28cbe148c75eabb40a7f3a629cb10dd2b9d73b46ce0277b0f |
|
MD5 | 727e7a7302fa532816037ca7bbbb968a |
|
BLAKE2b-256 | f6f2a9d24b062b442e6a6662502a5a0c3630a7732be0a0e37ec7c4065fecac72 |
Hashes for finlab-0.3.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aff3c4494d762a83c6d018656322c90d8db7cf9f5bb8aafdfbca64796cac065 |
|
MD5 | 65ccb48ca6e2b77380659997183e54d0 |
|
BLAKE2b-256 | d9262a592961848fcb5ee1c9dc07a041100d6f6235307b46d1b93122d1380e8b |
Hashes for finlab-0.3.11-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bc0a827335360937b3b940bd505172323bc1e98487bb671cc60021fd8942c78 |
|
MD5 | 66bdd46c83d1de1d8ab758d752424e3c |
|
BLAKE2b-256 | 83cef3d612bab8605c9e2b154854410b9d56ac637e6836c9ac0a483769ac07c6 |
Hashes for finlab-0.3.11-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9004069537cdddefd498d75f0592dee34f0a0041dd7c0ff6a5d1a781aefa2066 |
|
MD5 | b6fa5e643073f5c75ed822dc1aed12a7 |
|
BLAKE2b-256 | 5bba941fb253552804c1d85c10a50e383d9493be966ad8d1b8e2037471c74428 |
Hashes for finlab-0.3.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76da20a24a2755ca6a969e1edb7606c3e4c61fbf981c607a333ba8213e90c452 |
|
MD5 | bba6a560bec7937c110f44d2d34ed8c6 |
|
BLAKE2b-256 | 56e435fbd39584a01eac1c660e6ba6d0b3cc278563f5dd0ac4c60fa8531c767e |
Hashes for finlab-0.3.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e4bd0a884286216216c6c4278389ce478b6819a3d9d394794a0bf5640a4cba5 |
|
MD5 | 863bbd86f48e23091c30e4d456fb481d |
|
BLAKE2b-256 | 9f17aba83c35fe5b08a0ff3a50680c842ae6c2af82656489c1e76f17016cdf7f |
Hashes for finlab-0.3.11-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44d86706937261a533e3eaba666d90b0e3f28cb3a1e7c350bf08671847237d6d |
|
MD5 | 062853d967edaf320ed6d08346ed32e7 |
|
BLAKE2b-256 | d46fca5d76a5eb1c946563c3dd6d2dfcce1bd0f8276a4c8103267b85190e4e13 |
Hashes for finlab-0.3.11-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e15b457a9ff3a1d9bb60a158f2b7bb82c1c7713be73083d3000c043fd0bcd40f |
|
MD5 | cf6bced4242ba146b5ac1bcee66ab8bb |
|
BLAKE2b-256 | 283943e462684f36541b68b55a3819d7ef1527a53eea7a369cf04c13fa847396 |
Hashes for finlab-0.3.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e6f62f1d8d5ac2ff8fb974c739e8be1f191439f279a8b6ce04ed09136b60bf6 |
|
MD5 | f246c81f9e037c8dd992789c9ecdd8d4 |
|
BLAKE2b-256 | 71024c714edbaf7e261ae9027873257b476882104d0581efbb2a6f699664b550 |
Hashes for finlab-0.3.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3229c4fc666f21f0ba9b570541931e08b05d26634cd90973337a8e8412e2bc9c |
|
MD5 | 2627d62744a1445f9bbbd0e6d4daa9c1 |
|
BLAKE2b-256 | feb90d0188cf4ff1d937c0c084e11ec6dc4334e7baafec5d29180d8fa02d3002 |
Hashes for finlab-0.3.11-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69c33656a7d05e82ab405dde1ae2a469585884e029ed5382727b2c4057cfc632 |
|
MD5 | 41c844561a568358c3c067212293047f |
|
BLAKE2b-256 | 1e6f1447e38ad878c2b8745ede2a3439392b693176cda48a49e64abc8072c71b |
Hashes for finlab-0.3.11-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87f2ae0d42c9b6d3e72ebcb138c063a493803efb2f77dd005f525aa711a08999 |
|
MD5 | c76af4c8ce7d11e37c11a74d7f051971 |
|
BLAKE2b-256 | 7c6c5966e6b4cca2c38f8e3b51e086b13117d8c8b21e48c80cff3a6b65b74e9f |
Hashes for finlab-0.3.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5a58d9836b9135dfe0be02f1b7575a0d99829277e2665d8f86ba82f3fb8a17e |
|
MD5 | 4173d668ecf24bb760e59f4e0b36507e |
|
BLAKE2b-256 | de3624bf036a3d69e3fc4ced1f6c9c2bfcc6057a6919918b3f8d18345af319e3 |
Hashes for finlab-0.3.11-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 969b7bb389912529f7cf564f81a783fe9593e71caea593609076e634106fa8b2 |
|
MD5 | 22b2e27c8ae315be0f96012b6a1ee5c1 |
|
BLAKE2b-256 | dcf9466d47a699338f0c2a5b6cb2b0dda96bbf7027cf8b850eac130038e9d62e |
Hashes for finlab-0.3.11-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc4b245b02bc0c325510aefa860bd2563e4059952d08862ab36b34d7d8e6da6c |
|
MD5 | 8e8c9da888cef477f51037949d865daf |
|
BLAKE2b-256 | 9aca72497e0c4810650ca274a193a18e99abef901bf106911f37b145b33007e1 |