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.8.dev1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed2a3b8f16b56f7171879037270d09bdf51eae81a03afe2434bbb411829794f |
|
MD5 | 8dc4637aa796274f2327b8a046320b68 |
|
BLAKE2b-256 | 3ebe823c5e0766b30e86eb13129b1e25df93adf39f0dc634d8d5cd9160282c89 |
Hashes for finlab-0.3.8.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 421d1f854fa4f584d41d5283cca22af3839a781091e6ab4204c3133c8634175b |
|
MD5 | 14cd124f0c0ef4fb703228343ff50006 |
|
BLAKE2b-256 | b5c87a5e47173933c0ed081408dd5bec0611dbae784d1db377146feaf052feaf |
Hashes for finlab-0.3.8.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27880e19ed120fff73f77d17bb1b9d39212ffa218032fadfb13c0ac6e9ea04d5 |
|
MD5 | e89442d052cdb63af2dd563b32d19c9c |
|
BLAKE2b-256 | d4c05718a180f579d7e6e698b049de0bd74d945e8bf29259582a190edcb97e4e |
Hashes for finlab-0.3.8.dev1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30866f01b5a32b82b4c74993fd1928f33f0b5f1f064c006b21f3290916e1fa32 |
|
MD5 | 2b67fbadbf5f10baace3a65206f87521 |
|
BLAKE2b-256 | d104b9527572e1c34729e4d5a774edaebbb22e01e609b5938490c9ad3531e2ea |
Hashes for finlab-0.3.8.dev1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bb648447579bdecffe2e269e854700626b06bab436b3840e2d0f7b4904de427 |
|
MD5 | df1555a97fca8222e57dc1233a4080c3 |
|
BLAKE2b-256 | ab4c70a753c45b24e9de23b731b9515bc28a0f4bde2fa964b9f04726301e9262 |
Hashes for finlab-0.3.8.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ca6e1ec5c84e62afe64a008ab0d64fdf81e9d5e0dacb07700b344630f255897 |
|
MD5 | fadabd28cc11ecb794d4d20bec1af1d6 |
|
BLAKE2b-256 | 2590a29ceff2b9bf73b0096b2cf1e6a886ed1b725f068e9d085ffa0e67929abb |
Hashes for finlab-0.3.8.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42b19207e9f338dfeca5e0bc67e74ede4498a6ed5e8bf522f2fff0afa2e59142 |
|
MD5 | 1f0ced3e4b48802e7c239d97442f5fe2 |
|
BLAKE2b-256 | bf5617b027e8a35e8fc2fbd10b457ae13196202da8de558b710d8e37aee0991a |
Hashes for finlab-0.3.8.dev1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a09e080ec4c3b764234522e145ddd58a8216248e358532471a3b472b6b392c5e |
|
MD5 | 1101a094f12856ff32e2680b02cf8876 |
|
BLAKE2b-256 | d85229c1363f62605c28126dfb96ae74d48da96474428c8710c1661766ce720e |
Hashes for finlab-0.3.8.dev1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be305e470f63237d9661e7468cdca20aa0b860d26cbcebd1d7a1e5ca19fee3b1 |
|
MD5 | 06c4936f218c612e4011569b92d1b657 |
|
BLAKE2b-256 | 16e9af2e56abca3cdaa89ff88fc2ec78de52a2cefa736dee8df321a052e59828 |
Hashes for finlab-0.3.8.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd735ba5ff8b300f8d1ed48711a0d0cd173aefda62b3c548982c9e156c722eec |
|
MD5 | 449425c5533ce5f1c1ea2c8f70b87ce6 |
|
BLAKE2b-256 | 9408a99338fe5b716373e99138ef8af391a06ac4cbc87680a99a7a38e42d98a4 |
Hashes for finlab-0.3.8.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea7c3d9d17d9c309e0752d896e598a9de216bb0cf13f70a4b346f6bee74f367c |
|
MD5 | 50b23f17dbff78f8f2e53f81eb531dd0 |
|
BLAKE2b-256 | 3ae4d3ed7fb76f66b5372d6b09ca0d2601aa404225807e9f79e8a5342921f657 |
Hashes for finlab-0.3.8.dev1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e33319b3b0390dbed5ad7499b5a14b24e508be5908f6ab67924e1e73c765e6ba |
|
MD5 | 3fa82d5f4584662abc61d21affea943d |
|
BLAKE2b-256 | ae538deb8d67466a4e32d3a0b457c854e9394ade429619877bf4311844e935d9 |
Hashes for finlab-0.3.8.dev1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e60962c7f4d1a9d06b22af786979254430024b918744c3196ae02fdf034cc05a |
|
MD5 | 64b8f9450e768743b842403c2e876602 |
|
BLAKE2b-256 | e9b16fa4f158bff8cd9eb0278f2f74742cc364e80e4c8d2c9274de90958fd255 |
Hashes for finlab-0.3.8.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a5319146ac01e6dab05378b24faa8bea97d84b4839de51a4bc9d313487531f |
|
MD5 | e3fd122202a99f0ab89a45c702059552 |
|
BLAKE2b-256 | 9191c65ae82fac0c86c95cff183f0acd2983e3e849b31ab3ecd8974dfe06b23e |
Hashes for finlab-0.3.8.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6165c959c6e679b3cf0fe29276d4805170e80b37de2dd52a17f0db4b00258b5b |
|
MD5 | 7ce19528564a51630a52865124993b8f |
|
BLAKE2b-256 | 28b64b96d02a5591ebea15dcbe3a7c610ba37508baee62276556645c969b49f5 |
Hashes for finlab-0.3.8.dev1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8684243a4d4b3ab6fead124cc44327bdf77882f46514faf160eb587a0ebdc5ec |
|
MD5 | 092bb8c885ea4705bb471efde425c603 |
|
BLAKE2b-256 | 959c311a42eab95b91848ac7201b593889f82b4f8a36464d0a18ab16fc52673e |
Hashes for finlab-0.3.8.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3a3b73ff741032e73e595bcc3450b886684ff48fd0e2e7e7d5de4f5130eb36d |
|
MD5 | c7501c58fd8136c6743b2b4ba9558078 |
|
BLAKE2b-256 | 0fb669e286f94ccb65bdea01e8c51de3419f3a4011af23bf8dc6d5891896b9f3 |
Hashes for finlab-0.3.8.dev1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ebbf9b28d8cd9325aeabfe611184053285c715ac270b1ade52565c299f40070 |
|
MD5 | d92c1b3f5b19b9d0d693712018639221 |
|
BLAKE2b-256 | 5fbc55663c110d7df882cfc5b460fe714ec5761a7056d580cffc1cc37d48b9af |