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.6.dev1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92752c3e11512cee7adb70b5e34eef637fa7c89e3dc2c5fa530a34264a5a9389 |
|
MD5 | 4f357b997df61128012c61260b1bc41a |
|
BLAKE2b-256 | 17bcd9ea980250b1b049956801d319ebf5dd7b8b8066c55286baeea01f62115d |
Hashes for finlab-0.3.6.dev1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0f8695cce06c628e79de2f47f20c352a3100e2ce9c536fc66b756e151e4edc4 |
|
MD5 | 142eeb3e6b890bd82a36eba5085fb114 |
|
BLAKE2b-256 | 8b593706f79502d7d21283d0ee3fb74e6fc0ce073b6cb3f405bc7532ff248c02 |
Hashes for finlab-0.3.6.dev1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1aac8075abfe42aff9af44ec527b9f76e83da96bcc3bbd66ef817d11a8a41b2 |
|
MD5 | 74d842a23dc7bd9b401e847da5e1921d |
|
BLAKE2b-256 | 6c63b26f950d0b5491ec4da195b8ff09da6374f3252bca5898715d3bbebc2da5 |
Hashes for finlab-0.3.6.dev1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71549c2ab6158d8ac0838b608683c7589204c96c80ecea23ade3dabed7572a4a |
|
MD5 | 5d5ae34c5f926f1fbd338b5aa97c2f9d |
|
BLAKE2b-256 | 17e7ed099c93a1df4b4316444e954d9e89d9237390086b1aabe9d1508815f9fb |
Hashes for finlab-0.3.6.dev1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d0acd63242c9d6084573cd2553e2b164a0bd4b92b182158f838b17cc7d80955 |
|
MD5 | a672a582df78b5180a0c56ed621fb607 |
|
BLAKE2b-256 | 625f6de566e8ae26da02950322000d1ebc0218fc058c813e45462f69e9fbd651 |
Hashes for finlab-0.3.6.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ca127d15ce2f264262c48095d25e6e5e5e1c1f493032f28651c048632713f11 |
|
MD5 | 8b5ce1ec2a7bda0fdce6f100234c2361 |
|
BLAKE2b-256 | 6ece03b586c9a6e3c9d792b30edafaff77622418c5757d970ed4a55ddb0ca79f |
Hashes for finlab-0.3.6.dev1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e8b86610e712ddf3ecacfe4ee46af679a4b43b0465d23ccd24e8900d9a12999 |
|
MD5 | 4275ef5d816785c3ac04c038b13024fa |
|
BLAKE2b-256 | 867f2dcef2530c89b8768829977c532708dda5799c2e7b1043096551233a5f0b |
Hashes for finlab-0.3.6.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7b5a6a69732a72aa05479f390ec4c971ca80970346283540197a4e465489fe5 |
|
MD5 | cce2dde27c91317dc0d5c8ffcfee9c73 |
|
BLAKE2b-256 | add8cb43f4917422a80c140271fdd1b5ba1e5221f3b2e8ad095799d90e7ce9b7 |
Hashes for finlab-0.3.6.dev1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6ba10091ecda7c6db0d4814c6ca2582c6eac6171892642c7f0859c824364161 |
|
MD5 | efc75d714bdb27454ba36ec0f5b248b7 |
|
BLAKE2b-256 | 9e4c928fea9d614584a4fa7d7eda051c5a3580d1430cff8b9b868fb2b09b908e |
Hashes for finlab-0.3.6.dev1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4c1d44f8097605a1cf4deb4ccef6782243d56a1847214d04dea579756be40f6 |
|
MD5 | bf92da160a956acca1ba41508795c53f |
|
BLAKE2b-256 | ccdf8753eef7c0fe920558bfee2b89e37ddb357839c4a462a63c88dcd59b9e01 |
Hashes for finlab-0.3.6.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83c48cdc4e273a7296194cd398333f9d0b448a3a1a069e69d84a95b1f861ea95 |
|
MD5 | 9fa448d03ae2309b985fd53c581903d2 |
|
BLAKE2b-256 | d384b2eab966a969c3b5803bf25de5de51144e78b53b02bc7855197687d19072 |
Hashes for finlab-0.3.6.dev1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43aaec38aad533c5054a7080262fb4c8291af1acdf320ece6fe5926cb40f9bb6 |
|
MD5 | a99c956e55e71e74169f84f722faf8fa |
|
BLAKE2b-256 | c03557eebad3585c6cf409961142e3aab7b77ca0848686fd3c68b7e972d4b9f6 |
Hashes for finlab-0.3.6.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85e563dfa095a02bcb2273a657c35be43c89825a4ab0705662afb96e6772e3e7 |
|
MD5 | 39d8644f4db12cb3c6d80a6732d46fa3 |
|
BLAKE2b-256 | 113cc200356a01368284ac621ebc68abb7f6f9e483ea1eb1d8171dd8c269bb58 |
Hashes for finlab-0.3.6.dev1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d274d6fb325c71bf79728abe5cfc2559760cce6498067bac9779f5df7917ca3f |
|
MD5 | 8dfc89b43560044bd05baf5ee0970317 |
|
BLAKE2b-256 | fe8ffc1d084259db60f40d9191de67e074809ada3f70231bb38579b567d5b671 |
Hashes for finlab-0.3.6.dev1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecd89df747c06be13cd1a52f35916e92b6f6db33fdffb578ab882a20243fe0ce |
|
MD5 | b23fd5b28057619acf9794cca3883b65 |
|
BLAKE2b-256 | 87a92f13a61cfcf111de918e1048a0a527fa5728f69ec7761eb214bc6f8695de |
Hashes for finlab-0.3.6.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e70c6be9841ff6e7f561bd4dfe2b42eef2478e815a050598fb59fc4b27605eae |
|
MD5 | 6d9d05465c8307ff4dee29b176bd7dbe |
|
BLAKE2b-256 | 125c8fbca248c4051cdb34ea26a5aeafd99c74c1ae16cc336cb6cfe1194071ac |
Hashes for finlab-0.3.6.dev1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a2d7a4d09e582ff1cc4923eef3118890ae775d498992f7aa5d8cdf84a6b9549 |
|
MD5 | 653fba6de8e32e4eaa6383bcd8643347 |
|
BLAKE2b-256 | c4138906eee6a108dc67b4abb01b163af8ddd0ef3b11cd1a0d39a09d0571957b |
Hashes for finlab-0.3.6.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29afe988b443afffadbc8190b72d4a4cb55893263019a2dc4febf3fc154cc9fb |
|
MD5 | 1c36db3bb454ccab04910037093c8742 |
|
BLAKE2b-256 | 26548072d40a12ed9ff2b6a5a178c03bfff7c51a20d392fc543af31ee2e6de5b |
Hashes for finlab-0.3.6.dev1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7bb9f854a7a0ab66ce74d8b956f2f1758a8ba015a2578adce88424f9fcb9ef7 |
|
MD5 | 73f835a3a6c2b956b7ac1662e48fb44b |
|
BLAKE2b-256 | e7b70fd74b38dae1ed6d5922296d864157eb38143470730547a69f5939517e8e |
Hashes for finlab-0.3.6.dev1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf660336ae59b9c958f2eb455dc56934bf8806bccb190047677c56f3d10089a0 |
|
MD5 | fddc7ad14e0f1851f7aac2bb0dbb5613 |
|
BLAKE2b-256 | 829e621c320d328ddab40e8dd7048660aad0efe404b05f60d207ce83d212e7a9 |
Hashes for finlab-0.3.6.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 917b87fcfdc05f756ac4a21f323e07c8ac2b23aa78b5cf800bc18a6acb84edec |
|
MD5 | caa2739fc7e55ae0d460d71b205e04d4 |
|
BLAKE2b-256 | 6a199485a6287604778a4c960ba38d9b7e859823a56f2aa9ddeca92f58eb6b0a |
Hashes for finlab-0.3.6.dev1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c07010aa9ba58162b6c04902712e0b6a38f5ee82e9ffd077972d3cffd5e40790 |
|
MD5 | 6b37f07d903e77e2447a420e072fc2fe |
|
BLAKE2b-256 | f5769f06093f624ace080a522b30023efa476373bf3b56c670c680da10ee0087 |
Hashes for finlab-0.3.6.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78bdd22d1d9b8593ff61ce082b6eb566f136a880c80431724bdc5224caf25098 |
|
MD5 | 5a7c4bed45a9bdd29e3eb142ee9b4d7f |
|
BLAKE2b-256 | 6e38e6220ed8563441628cd3591f6e899f16377f2ec0fdeee562e5295905044f |
Hashes for finlab-0.3.6.dev1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9e8ff0d2fd16d3401e411c6e29cf7e670f75503e97370c529cb187072668340 |
|
MD5 | d478d7ecef4ce00f186494e99c071529 |
|
BLAKE2b-256 | d2a542f70d320129e0b9a4ec9f077e2296778e6a3c0b0e2919f248e2cb64affa |
Hashes for finlab-0.3.6.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db4fbbee3b0520206bb63f6590f3f9ff074fe79d8804d51584ba79e810e12a8c |
|
MD5 | d6c075f908e4e58a4edd83a7dc9f7209 |
|
BLAKE2b-256 | a29e029c5902310fb2db14ebab04798a4fbecd35b2169c19556e92e1768fff31 |
Hashes for finlab-0.3.6.dev1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e2cafb440124fd1816ec3603124f4014a64a60ecf8bb1acafbc840dee19acf6 |
|
MD5 | ad55846ae70147529f688d466e7d4f7c |
|
BLAKE2b-256 | 084bad738805fc55e0daa64eb5b92bb04d55a67879433fb3d2791f57e4dba45f |
Hashes for finlab-0.3.6.dev1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79deba7b0a73d156e4dd27a6f647fe79d5d5300e23ec972ad66d59f57c606ee7 |
|
MD5 | ac5967cbd5928edc8fe5665210a2a6e9 |
|
BLAKE2b-256 | e0d9f581f379919534a6499564b7f6dbbe8bd6d4f30c3b3245a37d2484473a61 |