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.17-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28aefac0d832ab3f3a7297b3f164967e7ead45db23f8c1e3ea2b070dc722a8ca |
|
MD5 | 638fee78c942dfb5440e590e4d76b517 |
|
BLAKE2b-256 | 6b08204d04dfb2c9e7934f866d45748af18d877c1176bc0ca794abbe565d4629 |
Hashes for finlab-0.3.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f1d19ea7814717fbb97b470b98326a2e57b83886c224e77e47844afbc63ed30 |
|
MD5 | fdc1ee1c86081e219cfbfc5181ae85f2 |
|
BLAKE2b-256 | 3e1ab6bcd76ddadc621055e43ebc1140854a1004665fd2c1188ba2ab51e37693 |
Hashes for finlab-0.3.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 790da6e76de60973c589a33d84e9b646c5a6a19e307414f24445cc4d7ed18745 |
|
MD5 | 2f2edaf2d0d63228d38d4941b9f4b11a |
|
BLAKE2b-256 | e5092caf23f1327f272ea9d5120e87430a7e714029340f06d355dcf9d9cbda77 |
Hashes for finlab-0.3.17-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c570457a7542ea2948d981137a82f929f179d421fad9b620f50bb19f2c123ed0 |
|
MD5 | f215863f8e15ada39043a0eccb405a8f |
|
BLAKE2b-256 | dbef4f259ac14f845ed22b952d21f71f39915a8141beefbbe7f694368ec2b113 |
Hashes for finlab-0.3.17-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86158405ca4cbe446796c3edf309f399e96ba3aea8d25ae00f77e33a96328fce |
|
MD5 | 8f3b43ce7e39f3a460d692bd6baf541b |
|
BLAKE2b-256 | 025969f747ad0da115ef061982bcd7022437469cb0f6c084762c90f40eebc84b |
Hashes for finlab-0.3.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278e33b21ee9bb3d2ded6e988a4d59f77454a3a13562fb26560521780e003bd7 |
|
MD5 | e64c1fb8bcd8f46fb2b4f6fadff3cd50 |
|
BLAKE2b-256 | 755e7102897dd60b1ecf1468dcfdda61ca6d17856c3b777635550b3a37797df4 |
Hashes for finlab-0.3.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6464c196fbfe886f04157902167de2eadc2d882d288387781d2edd3cc8ecaa69 |
|
MD5 | 529cb20ccde48a2f847f23d843f115b6 |
|
BLAKE2b-256 | 854e1a57c920b9932a62decde7184c3f52285d9ecaa086f32b8e6d2cc38430e2 |
Hashes for finlab-0.3.17-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e569ff4277607052d79142c2195f7eebd8bccec06becc53240a7176c9e46ae4 |
|
MD5 | f80d50e9453dfc2a6273c04979ab601b |
|
BLAKE2b-256 | 5f9ae39d87dd2bc8e32bb23d9464e57a15ee78a3613ffa7635a8662941792d3b |
Hashes for finlab-0.3.17-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb55d0c28018ae549039f7eac9c19afef6688c0deda369ae00647d0380d1e235 |
|
MD5 | dea4b5f481f4c6a2a752fd3605a9ca52 |
|
BLAKE2b-256 | d44decb55e61c09e5773312291c23a7b9133108e2b5ea9d762ec3ca27fa8346c |
Hashes for finlab-0.3.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 861f7384ef6cc0c38caba59c33f7e3299dd6772e23b44bd77f874a9da3a4f70f |
|
MD5 | 773525811479a58ca4d6091e4ba453ed |
|
BLAKE2b-256 | 18d59d683767a2f81c632c4aaabdad3fae037dd80c6ca882f0e761e8888d2280 |
Hashes for finlab-0.3.17-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66140c85b65a92cab5f82d95e796475e1ac48ced9b2e3c086e6bd41d89c1c6ba |
|
MD5 | cfb845f68c791bdf6a744ce1a374549c |
|
BLAKE2b-256 | 056f240b7e27b60797c14a9a5d9c35fb81992a052154480100739e0cc5a32074 |
Hashes for finlab-0.3.17-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 412f18c602d7e11bf55b134d75ac981c2859e531d2e20cc056d0def4cdb95127 |
|
MD5 | a00a75f4930af8f4e3876a70a341aa26 |
|
BLAKE2b-256 | def6b2a87b673c4a314b01c4c46b4c0a063819051fde73f9f568dfd2ca2cd21d |
Hashes for finlab-0.3.17-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7039990c898f237c0d0d7af7ceb4a5c8c7fe2c222094314a2472b56f4e4eb52b |
|
MD5 | cfff04ff7b39aca0594a063ba35cb1e4 |
|
BLAKE2b-256 | ef6309e9c10f32b4f5b96cb766116cf3c031e44cebba10d4b4d1ffa84a3b0f1b |
Hashes for finlab-0.3.17-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c690d9af97e06d4f8b2ea1b61bac0eef6a4a9986bed5a145933e9a6a485bfbf |
|
MD5 | 75025ca7bf00f69eb80b8f24ac7d9f61 |
|
BLAKE2b-256 | db24375682a059f99a30f016d705ee02c4e26aa8bb9c23eb06d727974255264f |
Hashes for finlab-0.3.17-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f4e04a7aa327b6636006b31a174028369e1d5a37b8c4fcf35a9b399cbab7b34 |
|
MD5 | 96c9736037f6af9388ac830f3350e2f8 |
|
BLAKE2b-256 | 201d258bae37d2ead3a2c26fa75fa50a6160ed90fb098b7ae6d1bcf554d2f91b |
Hashes for finlab-0.3.17-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59601533f7152f70bfda41c4d441fa9f645fe0c4ebbeff1878c67d01330f17d6 |
|
MD5 | 62b02d31a07d6278be815770829f242d |
|
BLAKE2b-256 | b9c77b8d1361683e82e762cd2c43b7af4735016af054a388f40972c442bc63f4 |