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.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50f1b30c270a7b90d35c5cfbb2894c810ff668dd8917181229f1fb29546e7265 |
|
MD5 | 3eb4cbbb820485b60d482642418daa54 |
|
BLAKE2b-256 | d784898de540f5d58acc0e3fa389c498aed962617f26913c96b26c78f97e1a85 |
Hashes for finlab-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c5cd34defcef0d43371b00b778da168f40011cf654bfc3126a3a8cadfb06f27 |
|
MD5 | eb66e43ae3093fb436924581eb01867b |
|
BLAKE2b-256 | 287fd55309fcd6b8a3873bc00df426501cacfcb184f60d0436ce20c0f7a28d2d |
Hashes for finlab-0.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3e04141392b2cc695a573e810e7364c2698ab3c2d4e3fea4ed2d0a3d50dc397 |
|
MD5 | c00ebb24b4ff248e5022acbf7eec10c5 |
|
BLAKE2b-256 | 80d13cf64455828281263c05a6408440b6d9654efa3e771836999ef06df3df5c |
Hashes for finlab-0.4.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 009e3d2dcc75fc2b59c352718821135be833e5100a89f9033414995d7f5fec26 |
|
MD5 | e4f8c557513c1004f1f045e11d795cd9 |
|
BLAKE2b-256 | 92d0fa3e7770fbb48b4cde5ef7ff512660cec0126a37ec44774c5692dc44161e |
Hashes for finlab-0.4.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 482377100a36252d652c3c61f7ba9d95cdb31f5683eed3f05eefb5d0041e480f |
|
MD5 | aea403e479aaea03819769e4e5c96a57 |
|
BLAKE2b-256 | 44c74865e45035348a23674e2d122ef61d0e032bff42e477e0d72849121cc4b7 |
Hashes for finlab-0.4.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d53f2481d9b2467a0b2d2a6d0692f060185e9e7700e7d40e738d49d89e2a060 |
|
MD5 | 298d374a0ea499bdf9a16a2ef851136a |
|
BLAKE2b-256 | 1be2ae40c3f144981f67b4cf33a8a7b774d184db71e3e98eb4431962d32725d5 |
Hashes for finlab-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c368e70783974ac54c08d491d12039bafcba97f19d54d1a460aff9feef4afffc |
|
MD5 | 6dfc3998303cc3cdcae24081c11a967d |
|
BLAKE2b-256 | 74c3867021acf2c4ec92a3d11e931662b075c3d390ab527b45e0def2b157a6a3 |
Hashes for finlab-0.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f453d2bd10630d1fe530d7a7e4d25066e76bcf2e06100e6dbfc197cc2aae02bb |
|
MD5 | 684add1569d7e429cb8bdb4554c75837 |
|
BLAKE2b-256 | 384f0c5ef52210471c7e23c50b6594bd81c1932d842529c41cee9024d97b0f26 |
Hashes for finlab-0.4.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 074703ac91ed411f7600dcb7b1213559f029b265fe491a1454ec4f35f2d1d8e7 |
|
MD5 | b71ee350b1d48558459314e11dbf5657 |
|
BLAKE2b-256 | 61f3f73a2ee748f055ab2f0838249338d220199391f015c5b8883d043b006a12 |
Hashes for finlab-0.4.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f3810c00cd949680cd77bf9b31e16e7b49cbf8f45220adbb64c24b92e1fc594 |
|
MD5 | 19a6113011047b0f3bfd90f9a10d296d |
|
BLAKE2b-256 | b8a217dc40f85c0c9af58fa480241293798e6dedbbcb12a6e039f8048cd344b3 |
Hashes for finlab-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e31188866848f127318b9d1f07504db0a597582fe44e5e2d6e69dedf7d8e69d |
|
MD5 | c850b89c7177127f5612d722e68c12f3 |
|
BLAKE2b-256 | bd3605cbf4983f5e014ce158fa84318063d12052d8eb8697727e0370e08b97ed |
Hashes for finlab-0.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a06f3ff7129b2437734002ec8304aec09ef74796946a40695a96a05cfaec093a |
|
MD5 | abe3f7d0a6512155c0bb9905e3fc0aea |
|
BLAKE2b-256 | 926dd97903d16f53d47f877add7ca243485e22e6b8e14c6113f08f4615433e72 |
Hashes for finlab-0.4.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8502cb705ae14aa7201f509a100645d66d31fed9fc65f6e3800a92a791b29103 |
|
MD5 | 835569ebbf06dc6ad36c22e13761f76e |
|
BLAKE2b-256 | 86812317f8e39e564a586de033bbe4f993115671ad625625d45a83eaab3dabc4 |
Hashes for finlab-0.4.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 559392b8d735517dd269431d65f83dc71d1fbb8677533aa026b496ba8514d879 |
|
MD5 | 101c7bd34856cfd046363060e30438a5 |
|
BLAKE2b-256 | 52284156d2dfb7a8238bb89d1db048780f3ae99810a5c7edc933d652e9bc74d6 |
Hashes for finlab-0.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc69c052094c54a15fa7a7f685a97061a747e546083fcc12a44b2edb861c0605 |
|
MD5 | 5bcf24a182da7252e05a7ba859586bc0 |
|
BLAKE2b-256 | 8d90ad1b0c4a31af47caa3930364304e4c4c14138c8aac88b0865b43fb031eb0 |
Hashes for finlab-0.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aefc0d316d9efb3fa5aff056b6417b75a2745d28dd607bcad829ce4705a72545 |
|
MD5 | a01455998f0c768709c7bb1ae28acf7d |
|
BLAKE2b-256 | 414db5c47023e12f5f6ba30bfba71cb9474e565f665d3b670201296507da04f7 |
Hashes for finlab-0.4.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0b17e118a6d0ab0fe55de6a6387e48b11ca9fb770bb33f29c4fcd8c33197b18 |
|
MD5 | 8a12703290a0ce1ad08b56a1c9cd2cf8 |
|
BLAKE2b-256 | 3afb08f18e91251e49087e82c517ec3c978dca04b8d51a08aa393dc87348b2e9 |
Hashes for finlab-0.4.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b50c968bb8a8abe580d6492e2a09c85dbb80d5bebd9b0bbd492a9e40b5fa7799 |
|
MD5 | caa53ee51da406549d935242ebb6e855 |
|
BLAKE2b-256 | 6f9a4fab0a0b350b9548e14ac0d0a804911d56f28b4910d712676c24c55d98ae |
Hashes for finlab-0.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5aea71940af4d8408df10c92e4a984b4364dfd1cca84fbb813b1941d338b857 |
|
MD5 | a2b76f32b09792bac386e5fa7d06fa93 |
|
BLAKE2b-256 | 8baf89d5cbd617e276f2fd221a70935c339d322da1ddf885c57a77b59a922df5 |
Hashes for finlab-0.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b6b471a1cea44fc83a8513286a27b66c2bbd443cf77635872d393feccc4cd9f |
|
MD5 | ab46a823bf5b28276fdcd4c1bbcbe279 |
|
BLAKE2b-256 | d5e5a83bc8bda27e5858b5640b68d42554a52fe68228120c2254f7a4ac0dcd94 |
Hashes for finlab-0.4.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 180964921842aeb8fb204ca22e9b0b24164c83d805bc1a2c0c93f06921c4edf8 |
|
MD5 | af980a4638629505e75fc76d60f8b3e3 |
|
BLAKE2b-256 | 1e51b569c4af06ff6cd6dba9fcdc8d976aec1635f93bf9568017ef3d496ad966 |
Hashes for finlab-0.4.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f9c3b09db494ad9c72da98e9a14fb5a955b0ceb8e5828ec66edc287de2ca35c |
|
MD5 | e4f09b14c6c5a018989f02d59f610b5e |
|
BLAKE2b-256 | 68aa603a591a5cb1fa354e32385d8ec8304d386496dbe8fe190e3579f7479b4f |
Hashes for finlab-0.4.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2f754286b39171aa7c2150fa03f2e9e3c3a5bdc39ce86901c007337337b779 |
|
MD5 | 981032c79a81eb53da2dbad67297df54 |
|
BLAKE2b-256 | d0f2b806b9d5f1037640b57fcee81f80178bff7fa238586712e2d3abee469dd0 |
Hashes for finlab-0.4.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52b6118de8bfe00d1c60371b858b43884d7cfdb6af0126e4580199a8adee8a74 |
|
MD5 | 0641153aecff41211563eafb1323d8d2 |
|
BLAKE2b-256 | 024030b1966cc395b2d7afd5373811b171ff6cce313fc97338247da2089f6412 |
Hashes for finlab-0.4.2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bba4f301348e453c40a8481f2e14ab69a3a5f82c7fa91e724ec44176d52e1cd |
|
MD5 | 58c3e81ac15f285005e8de33b52f8014 |
|
BLAKE2b-256 | a153fdb58c20fd1b651aebc159c32e481d53170a2ea0b8aab9a4adb0fadd2c20 |