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.19-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e13f4b2f855345708c13f564501a9a002ff49c7985e4c1f3d25937664af5902 |
|
MD5 | 2f627fa25efe97a86a73b531a5671580 |
|
BLAKE2b-256 | 15b4c3dc9fa891b4a607e7ebba64936bebe6cc1bab88b7a4a01099eb9de3d17e |
Hashes for finlab-0.3.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c94e08a26d9568c0dfdec36790958d5362f17c7af31cfea9675158e6a8733f4e |
|
MD5 | 273dcd30596c7f5100a7d59ef6701030 |
|
BLAKE2b-256 | 2d458b253903aa3544812dbb5c73c1dfec00c8a8f03c80b14ce8f9685ca2c317 |
Hashes for finlab-0.3.19-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f21999b5248979861b8bcab75d0236b804292566ca2f4ccdce59b4255f0e2d58 |
|
MD5 | 2fa57ea20789166ba30fd8bc9205ce91 |
|
BLAKE2b-256 | 487c44b586a1c6307baa4b451b9070b72f826bf3ff25b7caa664019ff2bb5aa2 |
Hashes for finlab-0.3.19-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c8ab45948f6506ccf96615472ac56eec3b64c4262fd25802756fd4521ea4f14 |
|
MD5 | 3e7391a36f37bec369fa22a321003406 |
|
BLAKE2b-256 | 105995ef88bd8bfe1fa597a714e11a8fc1a181d3067672276eb41ff660289a95 |
Hashes for finlab-0.3.19-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ece555b9a3dd2d6189349781351553f92cf082a968d5bcd818662af06e61cedc |
|
MD5 | e06a11b1fd56aab85b401d5934a047f3 |
|
BLAKE2b-256 | e5bf7c8421f97ff08f3fee8c63f42088dd2c678a487551c0a7f0e7a240d38e5f |
Hashes for finlab-0.3.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c28e216bae539f978972c563ca02b46fa7d7ce3cd82e04dfd42aaa4e743cd1eb |
|
MD5 | 04cec8ce779451f7de43348c7e6c7708 |
|
BLAKE2b-256 | 342638966c2108dbc76e9db79bfa3ec1d9755d4e4592a0b10d1415fb7adb587d |
Hashes for finlab-0.3.19-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5587542adc499ffbd70cc28a96adc745f1d71d55007b54f0c0076422be85a600 |
|
MD5 | 1dfe1af4c79ffcb0fe72fb962aa3cc0d |
|
BLAKE2b-256 | f2396725fe3987a361b45696d3d4ef656dfd7f8d29f31f1a03a52f73fdd19d79 |
Hashes for finlab-0.3.19-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ead856674154bb5747b2cdacb69afd93cdaca40c3a6c4f7650bbf8a6734172f4 |
|
MD5 | acc2f49d725ed8eb68e36391431267ea |
|
BLAKE2b-256 | 6ba1cc5a039e9eb38d0faa81b5a08ed5c8f6e68b04788eb09f3b25cc77db3704 |
Hashes for finlab-0.3.19-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dcb0848a4b35522eb873b0393d940a53f8fb708104f0f39bbcbcc16bd077a2c |
|
MD5 | e8251031c8e72b0a8b08c0e737c7996c |
|
BLAKE2b-256 | 7a292dadae2c83af21fc11a0ae0af49584f43095fa56c62ae67f54ec8cfeb7c3 |
Hashes for finlab-0.3.19-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4acc14dec2eff74ee50cd6caf39d4bde4f11da7bf6df623fbe20da2859e9496 |
|
MD5 | c4941e0bb4caf6dcec94143c77673cf0 |
|
BLAKE2b-256 | 82bf7f277c5a9431a0f33a350d86ee1cff6ae74ea0e388b0a3d7cfbeaf5c7f3e |
Hashes for finlab-0.3.19-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 609c893d8e7f400a1dee4205890a75292bcfce61fe9d05b4646390dd90db9005 |
|
MD5 | 6a2999876810f3ca25ecb86739e017cd |
|
BLAKE2b-256 | efdeafc4dcc17ce6fad3443ea30082287867869d858e1ed08c5be7272e92f015 |
Hashes for finlab-0.3.19-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7748e5060c11a9cfa87ff70600e501fdee4061598de36078ac96763b7e60336 |
|
MD5 | b338aa9c73fbfbb1690365c51588a3c3 |
|
BLAKE2b-256 | 8b9d8ef643f58208391e866c4fff02aa2e2a00e99f8260abcf37407e2bd3634f |
Hashes for finlab-0.3.19-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76425e3fa5a4cacf6a71f86e00e742bf9ea81106fd61f73cbed31f559f4713a3 |
|
MD5 | 10cbf5974cae8f7c81401734ff62b958 |
|
BLAKE2b-256 | a6774491de0c23d3a41e89ad9a4e358e7bc340915500bd9c68b3af02f885fcad |
Hashes for finlab-0.3.19-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e177cf5087891c9437109e30f65093dc35bba7f86b8766d58f477f0c100d08ea |
|
MD5 | 62be0366a7e1316d40bde6abf08cf32b |
|
BLAKE2b-256 | d60195c802ccf0ffbb3118d604e7723207b0503594e462ff6ebf39ac64fab3c6 |
Hashes for finlab-0.3.19-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22612baee487df7bb96b2fb546f11aecfe9091986ca91d0159585057200b1ae8 |
|
MD5 | 0f20c7f327028fc2cfb4cdbb738d012f |
|
BLAKE2b-256 | b1637172ae47e002bfb237a1d573a64abfb8618bf8e16aee211c06f83f460736 |
Hashes for finlab-0.3.19-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3867a2deb52546c562513ab002e1315844177a3326f0098fd584e70c15779315 |
|
MD5 | 1a00e3727dcedd36ba0bf2d4865df344 |
|
BLAKE2b-256 | 86cde3e7e9f633213f8735c73d7760cc56fe45906855695cdf7881d8fdec705d |