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.4.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25ad311c8ed32bc9059a2182e424ad96e34a43d27ef929963faf9ca39efdcc7b |
|
MD5 | e28c0bc699c5e1074530936f730a8c4e |
|
BLAKE2b-256 | 6209bcb4f4c85cda2bd2de6d32454118b3163d5428af29cba63020dafb6cf050 |
Hashes for finlab-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2789fea4c3e09826702b4ef771840d00663bd79b215250e0980463253f312791 |
|
MD5 | 9b6d57675751594ad95d8169784fb94b |
|
BLAKE2b-256 | 42202fac2414aab7d51524381dc51e5a132a257d394d8fa6e85e63c88ed9665f |
Hashes for finlab-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1ba33c5ab8bc59fdd101565549264c4a7fd7f23da6482392a8525265b6505a7 |
|
MD5 | 28214d0396ce156d8856f975da640dc8 |
|
BLAKE2b-256 | a93545c5086c839126ec81e176f831609c4240da7c139fa2f57740fd74b420c9 |
Hashes for finlab-0.4.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 743b730170933e157c4986ce01c4e826362da5bbb5497b88fcb76469a9d4278f |
|
MD5 | f3d11c83732c2638c005da618f7152ab |
|
BLAKE2b-256 | f951624034f6db17c2a75e89fb38097ac5a9d07e08f56d96f1e0cdb3dbec54b7 |
Hashes for finlab-0.4.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca10b47d694af4774d910c0d2524bd75afede685cad63ef8eb5b23013e18b550 |
|
MD5 | b0c918ee5942792cd01a29c73217125d |
|
BLAKE2b-256 | 87ae0113ab5ca2cd4130ad7471b0f30c69fe8ce6448ff2d6fd8b9420963708ae |
Hashes for finlab-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ccfb6830adf9e888005efaa61b6ee03c60876e30f9f7570b3cfb112257eee34 |
|
MD5 | 8d724abdfe88b35fb59752f9c16c0921 |
|
BLAKE2b-256 | f8b26dcf3cc41f9f2b4ef5fb17b064f781fc6103f87e5b2de5f9b5713fed895b |
Hashes for finlab-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5e71f17399b9b58c4de06a04e1b3ffdf18868ea56b458bcf0349ccad9acf735 |
|
MD5 | a8436b334ab9274d9bc01ebf0cc2e1ba |
|
BLAKE2b-256 | 470f3924f87faeaa9da4fc14db56de1a791d8d089e583464c01eeded956e55cf |
Hashes for finlab-0.4.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc2e3c280b1686718503463609d3049d6fbcf7d1da1a0e076c51f6d9d8bb9a12 |
|
MD5 | 1cd4898acf694c06f113c95caa164dca |
|
BLAKE2b-256 | e17c9c427d66d6a0f7066f7f5c0b3f321376c6bb4365b38680dcf55a79553113 |
Hashes for finlab-0.4.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af3c77d80c576e4838cb6bbeb01c83840d0e352fba29556a8063894c1fe090bd |
|
MD5 | 0ff5f23e3786dd2bbf7ba6871526fdd2 |
|
BLAKE2b-256 | 61ceb47cba32d008d7c459e17bf7ff62e6b3296eb9f9de106670602d77cc685a |
Hashes for finlab-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b962f74075e67d0e3f7d9313b16664564c62fb0d8d1ee10ffb7be72a6cb066c |
|
MD5 | 38081bd49c21526b17c3a4079223b9ae |
|
BLAKE2b-256 | 48d9e1c6152fa242a00fc1956e05915ac7f2f3af54d1138f5f9c6968732b6951 |
Hashes for finlab-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 995bec9e0c5d1c16fb412aa4bbe2556be1e34ef52aa7f6a48889df5196743e8b |
|
MD5 | 0df7d58242482544d542c13d8b325bf9 |
|
BLAKE2b-256 | e9e54890ae3c8a7c62e313931aa442457da1230204599e3e1105e0e4029051a5 |
Hashes for finlab-0.4.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5178acb4caaf0b309c9606d9a0d8468cfd24b386987cd2e16e7dccef3fbc516b |
|
MD5 | d073bc5c3a33402075f776f5d78d7b45 |
|
BLAKE2b-256 | 01e36d365015efcc4e1e4f580a49de2586002200e0d7d7630ef80983727fd6e9 |
Hashes for finlab-0.4.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bf5e478c075ac32e3921fe4f1a029a8e1c0aeb33224957937803669053eb9c1 |
|
MD5 | 014b5352ffd890eda336aa3aaf298700 |
|
BLAKE2b-256 | 841527bbe7c24defedd822058450ee1e1fc271724e2daa37635c9ab1c7768e89 |
Hashes for finlab-0.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 573a0748f8161f0e8de4597188252056f231c6e66a5d70c92cbf855eb5818fd9 |
|
MD5 | 41173ba6a1218db88f9e6282e2376bbe |
|
BLAKE2b-256 | efeaf6d3c56ab1c64a1d7a3c6b51ff63ab7b3af8389cf5994212cbba65b1ca74 |
Hashes for finlab-0.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98806e64f1c233015460de4a0b14c7825b5175863bdb1b7ed8f6055016f83ccc |
|
MD5 | 0f58e3646643fbd963f6b59dceda48ca |
|
BLAKE2b-256 | 348b12557aa07f4291d33ae70609e352cf9f9b23aa80e2b6de9905e3dd46392f |
Hashes for finlab-0.4.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6a1192ad2e86c3dd1c087cd01f567135ce0ddeced849442725d1e6e2473310e |
|
MD5 | 68cb852dbbeea7793470a07df731f4a3 |
|
BLAKE2b-256 | 67d6ed4b00567d670136a52b46265b11b3eb9da2107c53018b8a690b56937d23 |