Day17 - 如何用shioaji搭配Ta-Lib计算技术指标: 应用篇

昨天我们学会了安装ta-lib的方法,今天我们来看看如何用shioaji搭配Ta-Lib计算技术指标吧。

首先可以用以下程序码查看TA-Lib所有技术指标的代号,

import talib

talib.get_functions() # 查看TA-Lib所有技术指标的代号

搭配ta-lib 官方文件https://mrjbq7.github.io/ta-lib/doc_index.html, 就可以知道每个技术指标的定义与使用方式。

或是用以下程序码也可以直接查看各个技术指标的用法

talib.SMA?

以下示范如何用要shioaji搭配Ta-Lib计算SMA(简单移动平均线)。

计算技术指标基本上一定会用到K棒,可以用以下方式从shioaji取得1分K,

import shioaji as sj
api = sj.Shioaji(simulation=True) 
api.login(              #登入模拟帐号
    person_id="PAPIUSER02", 
    passwd="2222", 
    contracts_cb=print,
)

import pandas as pd
kbars = api.kbars(api.Contracts.Stocks["2330"], start="2021-09-27", end="2021-09-27")  #取得2330在2021-09-27的1分K
df = pd.DataFrame({**kbars})                #将资料格式转成dataframe
df.ts = pd.to_datetime(df.ts)
df.head(5)
Low High Volume ts Close Open Amount
0 597 600 1751 2021-09-27 09:01:00 597 600 1.05026e+09
1 596 598 131 2021-09-27 09:02:00 596 597 7.8192e+07
2 596 597 91 2021-09-27 09:03:00 596 596 5.4257e+07
3 594 596 223 2021-09-27 09:04:00 594 596 1.32744e+08
4 593 595 250 2021-09-27 09:05:00 594 594 1.48505e+08

而1分K的计算只需用到收盘价,因此从一分K的dataframe取出收盘价

df['Close']

然後将收盘价丢入talib.SMA中,timeperiod设定为5,即可计算出一分K的5MA

talib.SMA(df['Close'],5)
0
0 nan
1 nan
2 nan
3 nan
4 595.4
5 594.8
6 594.6
7 594.2
8 594.4
9 595.2

今天学会了如何用talib进行指标运算,明天将介绍如何在盘中即时计算技术指标,且当技术指标达到我们的要求时,自动送出通知到line里。


<<:  [Day 17] 阿嬷都看得懂的程序码编辑器与开源软件是什麽

>>:  Day 17 : Add Two Numbers

Day 9 情报收集 - Information Gathering (netmask)

今天要介绍netmask,是可以让我们自由转换各种不同表示类型的网路地址以及子网遮罩,在划分子网路的...

[Day 2]- 企业环境因素&组织过程资产

在组织经营过程,除了组织能将本身资源/资产运用得当,持续产出商品/提供服务以创造价值(营收),在经营...

【Day 23】Go 基础小笔记 IV:goroutine、channel

身为并发(concurrency)小能手的 Go 的重要特色 有了 channel 好像几乎不需要...

Gloud IAM 是什麽?

IAM 简介 经过昨天已经设定好了的GCP SDK後,可以开始进入云端世界上的正题溜,首先开始使用G...

Day1:Hello World!

print 'Hello world!' #你就会看到你的第一个程序 Hello world 这就是...