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.13-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3c875a13bb8025b13ec83f4426374547811658689cf950039b531ede23a7a89 |
|
MD5 | b278de2eb2e3bb19b8186899f547d517 |
|
BLAKE2b-256 | 4d1af5eae20bc0f34f66720c11e180fe56a97f0dda1e6200e452281cc581e1b0 |
Hashes for finlab-0.3.13-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a0b44c6738d36ed2ac7f889e83f9a86f0a79b818dcf98202cc4d43aa9e484b5 |
|
MD5 | 0f6e938a31260544f62a62211eaafc71 |
|
BLAKE2b-256 | 422c0470b55e6054e15e91982448ecdf64320d9965893fb1565ea5d7656078f4 |
Hashes for finlab-0.3.13-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bba38dc07b5b9198cb927823dbe05a8526b135530589db992ffc2cd465125876 |
|
MD5 | bdf04af79fb404c56806f82ac82a4643 |
|
BLAKE2b-256 | b80247e2684d6099717a295c87078e258cd35cfda7296ccc8f1a843075aabcc5 |
Hashes for finlab-0.3.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 410ebe68abfdbc8bc96da4ab5fea9c917273ee728fef0a98e19410852624e854 |
|
MD5 | ee0d3458d251d9b4f2366126564d7016 |
|
BLAKE2b-256 | d1d205c76f91d2342e05f1cda20d1b65a6c4190a5e7d3a2f64a05f4f685d1c0c |
Hashes for finlab-0.3.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b6077f6bc96f2582f876d879805fdff740fae019d2f0bf1d39f71063b6e5b2b |
|
MD5 | 3ab8fd0886ae8bd8b3c47b0febd9f2a1 |
|
BLAKE2b-256 | 2981f4c1c6cffcd5c0d1cb62d825903937643ac89b2c867bb773555d29f55656 |
Hashes for finlab-0.3.13-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff9252bce0671a84a19f2dcbed36a26b4836fe97dfbcf2058a75a9ae8b0e0410 |
|
MD5 | 729cd45911eed101cb17907d6c0ea85a |
|
BLAKE2b-256 | beb94c7384dec67066b12903c553dda9d1723851ee708403c0fc1c4cf0ae0244 |
Hashes for finlab-0.3.13-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e2474c6a5778661c7dd76cd594600fd46b0d992778688e047f1af2fc91c82e7 |
|
MD5 | f992c9782f4547913c08a307f4d600e9 |
|
BLAKE2b-256 | 5f5a0c321179cd7406ca907453ccc46a3de824f14765d36144286390ddb834df |
Hashes for finlab-0.3.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92eb4db2fb037b8280066f9c92ac6a8c494e55f2ea44c2f2092dee5a004d1421 |
|
MD5 | 7ddd3c5c3ba62c04f353277aa69945b1 |
|
BLAKE2b-256 | b8432b7936df8de57b28f182c4294abdfb1949d0c63a033f4350e611755d0a9c |
Hashes for finlab-0.3.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ca405fe6ce1ff63d97a9d30bc48fa4cf10b800443d8bc8fa521daf0192be60b |
|
MD5 | bd633efb2d96f11808655c0a47e84392 |
|
BLAKE2b-256 | e85083265a82eee3448881d362423aa6e678797cee72feeb84672784a7c62139 |
Hashes for finlab-0.3.13-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3e01f0666325a72920884c3e9594a57de773c5b0bce1952320c30366d8321d6 |
|
MD5 | 6e7197880df22ca6bced671d97a37c22 |
|
BLAKE2b-256 | 1ae5ec1e6a2429e11e90899d631dd0533ab8343dfd9c9626003f4a7e672dffd3 |
Hashes for finlab-0.3.13-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3cc11b5d700b9b2a7df358f2f9776a9c4eb53f9051aeb024767d9536aec2d70 |
|
MD5 | 30539a69a087c04cd55f19eb0f2df192 |
|
BLAKE2b-256 | 95fe2dc0c6ad7ed98994cdb8e9f521a9d7f74425e88214da39ab8667a18c8c45 |
Hashes for finlab-0.3.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c59dd84c5829419b2bd11d1a2d8f1923ed297b24e525d39e18a8fe097ec43e01 |
|
MD5 | d1e2208ed7f2958b7cc1db472580caf5 |
|
BLAKE2b-256 | 4b8a16634db86f34b5076c9c169cbe80a220d2ad508b64edef4e7a8fb5760eea |
Hashes for finlab-0.3.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b62c85c07d31b1cc798432ca50f1689fb38655ec949754261ebecfe914d19e8 |
|
MD5 | 7491667de48aec296c249cbf750fbe5f |
|
BLAKE2b-256 | f5724d15f3006e50bcda3901c091681ae37a4389a2e521259f54825314a59beb |
Hashes for finlab-0.3.13-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a60e4a18abc8941840bb25e3b99093729fbc8ce39397b8515fcb41c172bda14 |
|
MD5 | 4c9ea1485bd0522fbbd574b19cd2d9ea |
|
BLAKE2b-256 | 47d5f7c5eb7727c7bf97a426596ac94a312ad27a4c0bdb9355cc41b7f47b4c83 |
Hashes for finlab-0.3.13-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f76d6b98d45a9051aff11630516e3f217dbdebab9dc41b654c1e63d621ba22c |
|
MD5 | 2724fcc429c23af6a6747a440dd69128 |
|
BLAKE2b-256 | a0a018f6b31a3dea746326277aa4905a453538a1d3322e1794c333a709d6a931 |
Hashes for finlab-0.3.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7fd7266d2943fd73a4f4de06e19633b81faa260c1143fbcabe71d6f1acfe5cb |
|
MD5 | b6e0cb0f64b1bf9a9db4fa9c05423f01 |
|
BLAKE2b-256 | 3b83d986ca23eba2facb79a7079d527b90d852074aedcb5bafb9ec9ec4223e40 |
Hashes for finlab-0.3.13-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cec8184e0162af56edff705f78bfdfa8cda369c3c23dd0e2facbb17562bdeee7 |
|
MD5 | 6377b96c03cfc52f337b8b4f8e336cb8 |
|
BLAKE2b-256 | 49ed2f3cc7becdc3bff2d729b16eef6674e79985d4a85eed51d6d69623d88125 |