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.4.dev1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0bdad8b661c061cfeea36cef71a88bbde34ab5d8ce2ccac752eb581e0adc5ce |
|
MD5 | 5131734701f513716414f95766174775 |
|
BLAKE2b-256 | faaf9e3e5c9be8aa1d85abcfe9a2b22236a4c8313d86dd8b51c1fe1bc75756f2 |
Hashes for finlab-0.3.4.dev1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 670546ac3b464fd351198db60e17b4d2b63b1650ca7b02304d604022dac7c00a |
|
MD5 | 0e5ea0caa568a27001cfece88c5ee875 |
|
BLAKE2b-256 | 57244046fd42714c2366e0d36ccadb9bea40b1085e0ee63ee4f21c63d7cd26a5 |
Hashes for finlab-0.3.4.dev1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 719d52cc14ce4999de6a632d2e7aef0ad5f55a8048a77b8ebc16d0e27b6aa335 |
|
MD5 | 79ae482726af5193626e2993c8841dbf |
|
BLAKE2b-256 | 82083e17ead67de4a15f4dcfeb78eb4991ca586d6161f3baf508b61ffc8f6729 |
Hashes for finlab-0.3.4.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d48dc8309ccd646589dfc6612e7bc530bcafcb493c1c9739f2edcba890ab7590 |
|
MD5 | 04e5df8de1b6398414603cc881ec6bbd |
|
BLAKE2b-256 | a8efbe4287ac8a4c57de0688d816d0ead14a88360b2d50980135433046f0ad51 |
Hashes for finlab-0.3.4.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a3f2db32f6637bac08aa4c0f524bd495b676b4a99c027f0be3010339b5e9c7f |
|
MD5 | 0110e825fa213fdb5c468ddef615f64d |
|
BLAKE2b-256 | 84ad28431e0052b6138b42ef45d41f9d75340a3cf5e2b1c57d2d2eca6d0b0e48 |
Hashes for finlab-0.3.4.dev1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad2786ced501cd25f8e93c29fc3feffeb7c6414ade728db8e0cd22a8060dc944 |
|
MD5 | 72a5e40ca6cad4b0a557733411f51a99 |
|
BLAKE2b-256 | a9fd9ca711ac74c7066636cf350cd5175ca0d2264b52128868d6eb040710634d |
Hashes for finlab-0.3.4.dev1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd3f86ab3bb7a66b579837406359a324507327754b386dbf1f548486a08d780f |
|
MD5 | c5808fa7fb082e2fd9ae455bcc36ffd1 |
|
BLAKE2b-256 | 4d26d7049090b094f1af67a445999c6def223bff7be405f250944fa2980fb430 |
Hashes for finlab-0.3.4.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cba0619f31afcb58ed330bdefb96a7ad1392188a37cb7526f7c0e881c08d95a |
|
MD5 | f387858802f32a504b7df1d81f645e56 |
|
BLAKE2b-256 | 381355148f78cea9c6c163eb40ed5c495944b17cabc4283de1ae435ba920422f |
Hashes for finlab-0.3.4.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b041e5af2ba71a3db7c6eadbe06025ff9653f50c3c20789ff9acb6c55412542e |
|
MD5 | e7e221497b53999ff6e03fc4495812e2 |
|
BLAKE2b-256 | cb18ad613ce9e3e285bdeb9b353789ec85036574847f884c6756726178939665 |
Hashes for finlab-0.3.4.dev1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ee6af9bf7e1f6051b27bad6388143da7430fad1c36559e0b056bae4a4a6e18d |
|
MD5 | b7e20299dd85be7a034dbadce886b0f2 |
|
BLAKE2b-256 | 70bcf6b9463710586da55bf73d9baf6ca6c57e934939c43deed0c52d212ea5bd |
Hashes for finlab-0.3.4.dev1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3967f5901bbb180cd359fe806098fa2f034b6fde216186f9989d58c46ea78b1 |
|
MD5 | 720b586641124f74f35149d6aa9ba9d0 |
|
BLAKE2b-256 | a32f5b9f5eda9a18d9db04e7934443ac43a4421ba82ab04f97291b84112c7a19 |
Hashes for finlab-0.3.4.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6839efbf98e932bcd3ae840a877acc4b928939ece24c91226c030263c435abbf |
|
MD5 | 99fcba8950a7e6209931e8b40dcdf34c |
|
BLAKE2b-256 | 8605465cffd5d6d77d7b6914a12809f11280a62edb7242a642a87f60ebeaca7f |
Hashes for finlab-0.3.4.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b05e96c53cca794eebf332d167e611d3dc1ebf7325650c721adc01df2e762f0 |
|
MD5 | f231fad9424b4c19b03ed922565695c3 |
|
BLAKE2b-256 | 79df880d112824b1fd8095a7c5de5f4364fe190a53424caaf2a5ad1c7cf7a97d |
Hashes for finlab-0.3.4.dev1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7457b59ef06beddfbca5d0f06007526c02d79fdc95cf9edac1249874bf4dd58 |
|
MD5 | 43842800b1a27e319fdd37cf8954a97b |
|
BLAKE2b-256 | 509556a6a95f24d2b96e6564bd3880b8676dde8368234862fb1ab002520755fc |
Hashes for finlab-0.3.4.dev1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6891fd0ee2ccecbea4155ddf30623bf253b95c41abacb29bff424aa9bb0cdf97 |
|
MD5 | b5a4ef40b1c07e0922457f10489357de |
|
BLAKE2b-256 | a3c6e3cd5cf484cdcfa06699b766320ce0e219236d6654e6b267f5045bbfd6b7 |
Hashes for finlab-0.3.4.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46c4f9fd6ad836f0ccc441c8ed8347e7cd8488da2509a64bc9a3b4bfbc336cec |
|
MD5 | 8499ce7e3198cadcdbf3b4fb60a61430 |
|
BLAKE2b-256 | 29e83d9f76eda50a29157513af602e5bea32c4174b79e1cd91388aac24e47db9 |
Hashes for finlab-0.3.4.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4c2df124a2beca2d43f16cbf2e8a4eff9cfcedb4930db7185c64b768878d643 |
|
MD5 | ab13dc3e9bda4b39268584246c0554c5 |
|
BLAKE2b-256 | 4a2da26f97fbfc4e46257e0cdb3c085d0b78e37d75b016a61876510133a4ee39 |
Hashes for finlab-0.3.4.dev1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21fd150262fe28d9ce14ff292a6879097ec55330e39472d7b5c9b31d2a95c215 |
|
MD5 | 5d48e37e9288f8e58ca6ae53fd87e93b |
|
BLAKE2b-256 | c8ba9e534a76841c290f453c120b52ba7c77ce420bbc541ecbfeaffd758c3f48 |
Hashes for finlab-0.3.4.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59aea543b413ae872db3f93f11da41a06e701cfca51460293d3ab05db6706637 |
|
MD5 | 3d7eb02ff36937835c7c5e138a2e0d5c |
|
BLAKE2b-256 | f28432e5f4fb0f54d74f4d62d0bfbaba5c7f6504fbe412c053ada33e19204f71 |
Hashes for finlab-0.3.4.dev1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89fc077432a4a469893fb68e2fd695d4613e2c94721e7dc773eb552c38b26f95 |
|
MD5 | 6a0bf3ebac82018e7c12ab2f28f94c2e |
|
BLAKE2b-256 | 81052478497f7bbbb1af42db9c1c39250a325f313ae243d64e27f91321a3a756 |