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')
report.display()
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.4-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28efaa7c1823b993e261a53db2a4d5134c9ee1734f83b7ff7d6b01019c7bf02 |
|
MD5 | 120b32eed814a3008676c1bc3189236d |
|
BLAKE2b-256 | b1db4d10207dae6bb141a6c5a4127f83194f839cd7eea3102ae894a4d28680ad |
Hashes for finlab-0.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5eca1bd09b1522e0e16cb360315c42b84e947d7233bd090c32dd89fe59d2e61b |
|
MD5 | 7095c9df1f665e4ffda1e2e6949cc577 |
|
BLAKE2b-256 | abfc6a3d462bf3288ce6cc0b89e64ddf7e6c0adbc4a4b9f9acfc448a734400f5 |
Hashes for finlab-0.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2179fb1147beb0b79b5fed7c242592c8196fb931f9ca468c503831bb5e7c468b |
|
MD5 | 9bd9a4545ffc850ff73f3b33e9231e10 |
|
BLAKE2b-256 | 79d6c0be1ca8cc54d76029a917346b6f6a32988a98480aeb18d43013cbfb8289 |
Hashes for finlab-0.4.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a23cf376839047ed7bf38907adfcc1d9988af9e0f2847106d1b34c30d4dd7ce2 |
|
MD5 | 7f6d18194f7f311d6293339f0ed7b532 |
|
BLAKE2b-256 | 9aa5381683f9b854cc1065dcf0157686768fa130cbc31df3716064df2b52d04f |
Hashes for finlab-0.4.4-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aec4b5c464f3eb2e6498e2024f418431675d95a47e97612264846849b5a907a3 |
|
MD5 | ab3f5fd4b792799081cf3b27c479e5f4 |
|
BLAKE2b-256 | 7fda69fbda202f6eab7e27cbdc4d54f48c3230500197a2652b996abe123ca47a |
Hashes for finlab-0.4.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7faefa44c8ba205b31d63f9ddf607e81a5fa613122ff80f63e7f484fc0c50e0b |
|
MD5 | 94596e5a8272c646019681b6ba85ec7e |
|
BLAKE2b-256 | be1b295237ef4035bc77f6ad2068a0d8e6258b3a035310429f8e4ebab64f69d6 |
Hashes for finlab-0.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b30378643ad3588928d53f1fa167b60e4321aea31f4f5e58501ee11e09818a46 |
|
MD5 | 9e7a27074e1b08f921bbe190f6124ef4 |
|
BLAKE2b-256 | d096e41ae583fadc26193392eef20cab31a8c78e8d401934bb4b8ad58400bcb5 |
Hashes for finlab-0.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb301bbf2613621fd3453675e658e574277be0975f30316dbec3ec705fae65fd |
|
MD5 | af5d4c3b5e3e8b381dda864d3784f51b |
|
BLAKE2b-256 | d4c34057fc6bce030575faec2d5dc52c3579d2d24e4ee67c099928db7478985f |
Hashes for finlab-0.4.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fb964e51ee5b4eab604eef475a8551a82b3e1db030586800d801a746aaadf6c |
|
MD5 | 720f9423f363bf59d48c19e815b88481 |
|
BLAKE2b-256 | 68c51bb305a1a1c273ad029eb4fcc98ada7a953d9e9512f8259320b8231efdf9 |
Hashes for finlab-0.4.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac2901896eed1b197499a66d193c0aa16df1367cf1f66f1e3140b7e5c1156829 |
|
MD5 | 894737e85ae22d7656465b7900a69e00 |
|
BLAKE2b-256 | 5240fc74a6751c34063e8e5f1cad8639fd47a0681cc82c1c2aadaf9a9a92807f |
Hashes for finlab-0.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f9b519977d59a169a8bf2c16e4e94e36ccb691fe18151828dbda3df4161706b |
|
MD5 | ccc8394cead2881a5a44276955749581 |
|
BLAKE2b-256 | b4103b147600731f6c36a002e3a53c5149ac5f737bc9df11137a6bc219cb8c6b |
Hashes for finlab-0.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6337df2b463e56060aea2925ba87652c49a76e534bda61a0b31210fb00ce6c7b |
|
MD5 | cbcf03da49a4722c0f4046a7d8e13dfb |
|
BLAKE2b-256 | 6c4642d13194cb630fd67adc32d6ca64c5d0fc25aa87b882f070c81efb29e755 |
Hashes for finlab-0.4.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bd05645ce4da343d80856b15baff817a583dce2da8fc0b7b8fc7d918addd640 |
|
MD5 | 65a933ac0c7b9bffcae3c4232d299d4f |
|
BLAKE2b-256 | 8d8ee51758511f9b969a3df00f408605fc624da73fc4b63051684428f57bcb3a |
Hashes for finlab-0.4.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56acf7f740b68aa433467129c6fbd453bd025df8653144c3c3f8394979f670f0 |
|
MD5 | 38626c158ec31a798aabdaf41984dca2 |
|
BLAKE2b-256 | ca9a969919d2f0a20b34a5e5e74d1ae7f652c23de3309d6d78d7d993cb932793 |
Hashes for finlab-0.4.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6908700039e9237f7c661131f938b3c6f55b7253e1ce2c155894c369f2dae981 |
|
MD5 | d2b7cd9f6bde2f57fd4fd90d7367ed49 |
|
BLAKE2b-256 | 16b4f48d1d91f366aaf83c16382518028d90de61407646b4187b0d9021a3a12e |
Hashes for finlab-0.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85ca4e55b7f46223d828539140526a47416d94023c564265f9dee3529582611a |
|
MD5 | 7393a48d7230257196270190b9c37145 |
|
BLAKE2b-256 | 40ca9aa6478bc77a3a01945eb9869b28f4bc346c7e6ddb7b66dc756f4cd9ad03 |
Hashes for finlab-0.4.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9290f5853c5075a84f3141758d30925674c7e57f6be082c7ba6ab9b97d7b5b7d |
|
MD5 | 76a4e7cbd3867205be0c8f2351b32b80 |
|
BLAKE2b-256 | 5588873d6f8bf5b2be603e7bd4e96e1853f0206a0d9acbdad8247a25db8e4eea |
Hashes for finlab-0.4.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be7545713fe5f28dad9233edbba6ed59956316fb2f2a33f4b8c6a83d8b92ff34 |
|
MD5 | c792e2205248c7692a3474430514ea36 |
|
BLAKE2b-256 | 0a2a509312a523a202aa941259da4099cebfa33d46ffc39c5b830f52e2192cf6 |
Hashes for finlab-0.4.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 139dffa186b3b1791e05323ce190be751c217d6634ab72c606489e47cfce8e82 |
|
MD5 | 92dd8d0ba20fbdb8373bdf0b56b3e715 |
|
BLAKE2b-256 | ec8693576f2adc14ca4a774d4b521ed8ddc62323d381bbce65863c4ff620dcae |
Hashes for finlab-0.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e4f9b8476c17d76bdc92813585d6ccf238ca649d555e66a021e0aba2c3a4f8 |
|
MD5 | 90769956b1a09817b150d3ca81310bd7 |
|
BLAKE2b-256 | d6ebff5f8a3de16863c79d0bbfb8d0afbf1dfcc5add22420f6d9f16caf42f1a4 |
Hashes for finlab-0.4.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60176539b9ac8f31302e4618d347ce2886164a5499ee7ad0a0244fd3b450db4b |
|
MD5 | 16ee2bb50d368faa17981201314c6861 |
|
BLAKE2b-256 | 044c77f12cb170eafb030fced9b4214045733947c60790eddee1cc05a64ce624 |
Hashes for finlab-0.4.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fd2482010e9fa70ff08615695764fad2cc528d96621c7b32c296b390a414396 |
|
MD5 | 99157335f02b278a8de23801e48bfa69 |
|
BLAKE2b-256 | d8b1e648cc3a15b22b7a979554a33580c6bffd2d8bc0da3068e482f67f48ecb2 |
Hashes for finlab-0.4.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e9ae7344c184dfff45124ceba3237bd2bc8a28fd9c47a296819a207224b3ba |
|
MD5 | a0e9a44d86afd33f927041473d87d8fe |
|
BLAKE2b-256 | e2a94c1ef2100b5ca10d544133348d3bd52dba0183536d8110089b869a1a5c87 |
Hashes for finlab-0.4.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0229d14183ddf9e694029aee37ec348726c48268eaa0443d3fa0e21f901d2e0e |
|
MD5 | 0bd89b44004d802ff29d2c71cd6eef98 |
|
BLAKE2b-256 | 2f7080765e2363e1b4cc8e52f982412a01873a1e004b062a0e62a229420ebf55 |
Hashes for finlab-0.4.4-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ff96173534ef2529c15c5fec6366f0f232eca3b4c8827d99ff9cc5d50af3ef9 |
|
MD5 | fb520181ba5dbe1ea39ee654c26750ad |
|
BLAKE2b-256 | 696e2f4d328513dab176f0260baa440252dc755a3b7f0a7d3fb11c4bac188a4a |