Skip to main content

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
```
!!! tip annotate "可能存在相容性問題"
    用「pip install finlab」方法安裝,可能會造成 Package 不相容的問題,假如您希望得到更穩定的版本,請參考「Docker」安裝。

=== ":octicons-code-16: Docker 安裝"

### 1. 安裝 Docker 請按照下列步驟安裝 Docker:

* 前往 Docker 官方網站:https://www.docker.com/products/docker-desktop。
* 在下載頁面中,按一下「Download Docker Desktop」按鈕。
* 完成下載後,執行安裝程式並按照提示進行安裝。

### 2. 下載 FinLab 的 Jupyter 映像檔
在安裝 Docker 完成後,請按照以下步驟從 Docker Hub 下載 FinLab 的 Jupyter 映像檔:

開啟終端機或命令提示字元。

輸入以下命令以下載 FinLab 的 Jupyter 映像檔:

```bash
docker pull finlab/jupyter-finlab
```
此命令將會從 Docker Hub 下載映像檔,請耐心等待下載完成。

### 3. 執行映像檔並連接到 8888:8888 的 IP 位址
下載完成後,您可以使用以下命令執行映像檔:

```bash
docker run -p 8888:8888 finlab/jupyter-finlab
```
此命令將會啟動一個容器並將容器內部的 8888 埠口映射到您的本機 8888 埠口。請耐心等待容器啟動完成,終端機中將會顯示一個 URL,例如:

```bash
http://127.0.0.1:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
請複製該 URL,稍後您將使用它來連接到 JupyterLab。

### 4. 使用 JupyterLab 和 FinLab 套件
現在您已經成功啟動了 JupyterLab,請按照以下步驟進一步使用 JupyterLab 和 FinLab 套件:

在瀏覽器中打開剛剛複製的 URL。這將會顯示 JupyterLab 的介面。
在 JupyterLab 的介面中,您可以創建新的 Jupyter Notebook 。
在 Notebook 中,您可以使用 FinLab 提供的功能和套件。FinLab 是一個針對金融數據分析和策略回測的 Python 套件,詳細的使用方法請參考 FinLab 的官方文件。
</div>

下載資料

輸入以下程式碼,即可下載資料。可以查詢有哪些歷史資料可以下載。

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')
report.display()

image

Project details


Release history Release notifications | RSS feed

This version

0.5.4

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

finlab-0.5.4-cp311-cp311-win_amd64.whl (508.9 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

finlab-0.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp311-cp311-macosx_10_9_x86_64.whl (573.7 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

finlab-0.5.4-cp311-cp311-macosx_10_9_universal2.whl (951.5 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

finlab-0.5.4-cp310-cp310-win_amd64.whl (507.6 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

finlab-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp310-cp310-macosx_10_9_universal2.whl (945.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

finlab-0.5.4-cp39-cp39-win_amd64.whl (507.5 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

finlab-0.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp39-cp39-macosx_10_9_universal2.whl (946.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

finlab-0.5.4-cp38-cp38-win_amd64.whl (510.4 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

finlab-0.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp38-cp38-macosx_10_9_universal2.whl (944.5 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

finlab-0.5.4-cp37-cp37m-win_amd64.whl (500.9 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

finlab-0.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp37-cp37m-macosx_10_9_x86_64.whl (562.0 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

finlab-0.5.4-cp36-cp36m-win_amd64.whl (525.5 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

finlab-0.5.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

finlab-0.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

finlab-0.5.4-cp36-cp36m-macosx_10_9_x86_64.whl (554.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page