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.18-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcdce2b45c7ca6945abcf91d2eeed84b0b7a782f32090f9b85b507970b57b28f |
|
MD5 | 5a46959e17ca111b1138d7555cdba5c7 |
|
BLAKE2b-256 | c5ffaf90a4813f446dea305dc18baa97c03943b9bc0df3aa04c921e50cdadb88 |
Hashes for finlab-0.3.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a134346d51d701c56220b367b3cb6b75eeb2a590430c7ad788a1a405e9a75aa5 |
|
MD5 | 70083c5f6dcd07be9ac71685b718232f |
|
BLAKE2b-256 | ef3de5e29e561c64fc651e61265841b58e82bb45d3906dd90ad273e316895bee |
Hashes for finlab-0.3.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd90069e9616a1029018a7e5b80dd5c16e3e2d3a10d71e40c3075144c3886ae8 |
|
MD5 | 20ca7d49b43ff1ae6205d48f66be63af |
|
BLAKE2b-256 | 1f41a600eb540dc94f0483b166fd3b04e7c44ed0fd8beafb5df8dc7743e8e0f0 |
Hashes for finlab-0.3.18-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0415ae6af0fb578aa3fbed40fb1550bd29b9cdf6fa84606c7ca577337b1cbe95 |
|
MD5 | 096bdfc654af81277a87c986845fbaa8 |
|
BLAKE2b-256 | 33edd6fb2ae3a5766534eabda0ba72cc79f47197d2cfefee387a013fc3e72b1a |
Hashes for finlab-0.3.18-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22ae5b15be77c635e257cf37f92f1706b8fb5a19215119b5313243c0e056d7da |
|
MD5 | 0c0f50c2bbdb3e7adee6c5fad371c1b6 |
|
BLAKE2b-256 | 396cd278d0b32f8bab0cd68666540b29b8d61e7f8fab6863fc05ecf776bbbf20 |
Hashes for finlab-0.3.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92d188b003b489920c2aad32d540c0c243412aee376582aabec64b27f60b4782 |
|
MD5 | a34efd29225385a4b4de09fb3c5d7987 |
|
BLAKE2b-256 | e879e4fbeb46e09706f11fa4105e684117d631190a17a25d5814222716a40345 |
Hashes for finlab-0.3.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28737cb1fdc471d69fcb578b07209d4f92cf254f2b1cc7b9aec886dee38dd52 |
|
MD5 | c60c3176493f7ed3738c1581e816a74f |
|
BLAKE2b-256 | ae6077fcaa69a5fad5dd11e9d02e23b691f89597138e1f1bea3a89a0046af509 |
Hashes for finlab-0.3.18-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d61ff34f3fa4d6ba80953a24e1b7157470cccde609107904070359ae14c2e35 |
|
MD5 | 1cf7e86d05474e25eb9a435c78d9587a |
|
BLAKE2b-256 | 1f0b982412f9497218d20dc707efeae2e2fea994532b5ec3b5dfbe936c39ca87 |
Hashes for finlab-0.3.18-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f5d482d9ee078e62701e6973a79b76501154682d2f9699fa6ac3e83185b9a85 |
|
MD5 | a94b66eb1c972d36fbdfa0194ad20501 |
|
BLAKE2b-256 | d2fb0e0561f75217efee918c0aecf7e5298f2b80e8ed5604368988bea744a354 |
Hashes for finlab-0.3.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a456eea0109a7f90c3c5f1d43fba8563512cece349ba796bd288a40f69299639 |
|
MD5 | da88fa5d3e53a8b27e81f0452581e12a |
|
BLAKE2b-256 | 1cfcdb5a55c61b4e0b02d19dc06acbd2bfe6da8808e74e69f6fe9b486f659e7f |
Hashes for finlab-0.3.18-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c93815a6c9174a9c000d8a9e7c7a0f852decbf8d8380715a8920074af15b64d4 |
|
MD5 | 74fa4102c7fd9a6565b9b235d58094e6 |
|
BLAKE2b-256 | 6ac0ab461e34435c75a2fb931a982affeb7f1a456a0212e9d666e5f3f49ee037 |
Hashes for finlab-0.3.18-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b838f985afbb78c5c4f904a098e34bd7bd26118fc909725a12b0a1c5f28561ff |
|
MD5 | 9c74e25109c2ba2b6d7218534b088a7c |
|
BLAKE2b-256 | f362d68055e639d99c307ebd874466bd30ecdfa72591afb894c8fe0635a3b704 |
Hashes for finlab-0.3.18-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94953389432daf40ea630ebbb8ab306f664e6ea567e510c1bf93e25a073032b9 |
|
MD5 | ef3d4d3dcbe7b409dd366fc2b39d96e4 |
|
BLAKE2b-256 | 02a2b50f24a8acd67ca7a17160a595b050236636a641067abaeed7d8d52c0c68 |
Hashes for finlab-0.3.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e730b8de3c4ccd247d8d53996800e87063da19a3e05ae91c5f25da15c3e5aafd |
|
MD5 | 6246f6b06a318f5d52fcf85735d1b99b |
|
BLAKE2b-256 | be85f9ebdf571ffbca69424c23c404a4bbfdbbed7b8e2ec3c345deda7f86ba5c |
Hashes for finlab-0.3.18-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d52ceb441d1c7873b5df5a92a227650f4ea4fea6dff7371535ff7ec72e7ceb23 |
|
MD5 | b9d4c9d0bbdb572c10b9e6a46271e1ba |
|
BLAKE2b-256 | 70d9206d4f4b48cdc18db29fbd2a155bfe97bc5d07483a20aaaa33086d42540d |
Hashes for finlab-0.3.18-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f184eba6963a3044b6b017cab268740d125a9e36e234134e90c68efc05af4475 |
|
MD5 | b7c30b2ad979f086479380cf793839f9 |
|
BLAKE2b-256 | 4983a48fe6c0df7d9c3f049fef40cbb33d7989b9b15810763aa08eabab01851d |