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.12-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d29cf55ee62c1dd72110c929bd2771630193c8aba3e2bb71a07ec2f64124879 |
|
MD5 | 0cb487df629a7518b65d5fa6c4f07fb8 |
|
BLAKE2b-256 | c0ea831b380e6850f02e76f3e8f964660f851fb666d68983d6fae3b8a125fada |
Hashes for finlab-0.3.12-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 549ac66faad17031fbdb83f77cf62a5106755ac0a13fbe386ad008acfc952a7f |
|
MD5 | c0838dced003083a0ce1fddba614f685 |
|
BLAKE2b-256 | e56a4e7d127fc537b3283d6163504d060a505e19f16a9445c936fefbd133902f |
Hashes for finlab-0.3.12-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eec869e1907a7b50f9ec3b2dadc3d7e76d268bb090142035610e8827a4417a8 |
|
MD5 | 7f85e265619d210df4aab6bf07f504e6 |
|
BLAKE2b-256 | 9c5dcbce0be0a319227c95702d91f1740a0cea5590d892bcd5445b410bb837cc |
Hashes for finlab-0.3.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a12290286dd18f1b94fdd0be6d5dd9e164a48a3220c11c0dea273153dd0d155a |
|
MD5 | 1adb4c9ea2bb09c19548bcb0bdb03188 |
|
BLAKE2b-256 | 81ce6b8862118e1de63f0e4859bc1ae7f5b76539f86a120e45ea61572a6c8e27 |
Hashes for finlab-0.3.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b92da402eadb7b38dc2510da2ef17dfd3fa2906357902574e04dee4436f34e93 |
|
MD5 | 39d354207254f1e503c8e4833b5e60ca |
|
BLAKE2b-256 | 820c8b5bbddee179a0fdce9aa5f81b81ca0c39a3c2cc77930fb19428970047e4 |
Hashes for finlab-0.3.12-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b447e91f709672f74d5ea3210af79a396fb5600f6c0b8a945a280c9a3ae9681f |
|
MD5 | 47bf52d020f7f866f5df745ed0529fe3 |
|
BLAKE2b-256 | bcc6efdad4dea7d692f5f5cf28274b66e10afe4636a2eefdfeb96bdf7a285bc8 |
Hashes for finlab-0.3.12-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e41535c8e163bb96e7936879f7607998ad7b74fcd8e610810c560cf5135b6c9 |
|
MD5 | 2ed5e302755e433f2894a6eaf64fbbd8 |
|
BLAKE2b-256 | 6f15469dcd203eb6fc6248f9636f860b4fd91c97dce35bf7add81645895819cd |
Hashes for finlab-0.3.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 224714329d845a287aa9019afe214ae002cb35c173adaee95249135a078cb746 |
|
MD5 | 70b609b8d12b5f1111c33db163799667 |
|
BLAKE2b-256 | 396e46d919890cdb245c931eff78cdac46dcfa7885f38701475717b91d852c68 |
Hashes for finlab-0.3.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21aea798d66d3f007530e79e96c4062ce5bf0e15a9d1d7b11b5f8c8fdfc0958b |
|
MD5 | 673191c420eaa8764791bff19cd95f4b |
|
BLAKE2b-256 | 7f001782c7fe0b2c1791a52f3ee6f469c23d6fe3fc1369afa8f0d8ada8a03d85 |
Hashes for finlab-0.3.12-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c6d75ac5ae15f065f390cc2b858c6d1566d94beba64bec1eaef04cd78218654 |
|
MD5 | b35276c28e088fa006bd460ab16c5de3 |
|
BLAKE2b-256 | f2f90ea475a3cff05a295c05606958a8fefae8bbdfdeb1dcaef698b3aa26fc76 |
Hashes for finlab-0.3.12-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc6178ce106aeeae718726bf1396c70ab73710d938dec77c06046af8174ab42e |
|
MD5 | 027ba587e6e130ccf49713108000ef3c |
|
BLAKE2b-256 | 6d2cc3b67ee47fc43d110df80de743737115a3530853c0d0199874b82499de3d |
Hashes for finlab-0.3.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79a08a23d1a07a4b845d2d72714285982ec5a6dc4b276cfe7d91fd705e565608 |
|
MD5 | 8a55bca2af4190a89c0894a2e702fc66 |
|
BLAKE2b-256 | ca284a862a0761f2af155f9a773e9f5ad142df4408e49bd457dd5a96792707c8 |
Hashes for finlab-0.3.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b939976f544f56a5362c90593649c805827de32ffef23e5c889efaa162d90933 |
|
MD5 | 072773f00b849424b8a7728d6b553f34 |
|
BLAKE2b-256 | 52ea8e4221f99338ee5d68bb31d56f160d70980270b607ad7ebe8330ef614d58 |
Hashes for finlab-0.3.12-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf2cae21c5f76094a802327c73a3e03f032bfca0ecf44aaf5c96d4177bb9faac |
|
MD5 | 8fa9b0a4cbf407d9c234aab0a1239c3f |
|
BLAKE2b-256 | c0a3feaac46f0636527e5fee93783d14ac715d1a692f2ed84603d4f4b9e45cbd |
Hashes for finlab-0.3.12-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88b691b77fad82766d1c960a82f587125adaebfd935df8bd74591d1af0ff45b3 |
|
MD5 | a95f5c62133adee7bc69c711116efbbb |
|
BLAKE2b-256 | 43381a3235e41708c3273ea7aabcf0e7806fa96a32df72221b96831d72cb3744 |
Hashes for finlab-0.3.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89bc16407a90bef0409478b2a06ab41995ef57987bdabfcd028a21059e0094de |
|
MD5 | 5db58ec5117aa1a6d0fbf0a71893d9ab |
|
BLAKE2b-256 | 2e7d0d945b7e358618259f771fceb384feb4a08e03643fb5f699ff41444a6d15 |
Hashes for finlab-0.3.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67b22d07fbf7e55a8d3bf8a3dbe5d6bdf47e12ab0f790951a96f8ba071c54bbf |
|
MD5 | e8e652ec235e6ddc6e30a0aa77ccb87e |
|
BLAKE2b-256 | b2613d091a2a82ff2a2e2ff0a92ffa4c3ce5b7a5767f187c6b575b5026786d40 |