SAM-Terminal-SDK-Python
项目功能简述:调用终端sdk接口
1. 运行v
开发平台是Pycharm,可以用VS Code等IDE平台均可运行
2. 开发环境配置
系统:Win10
语言:Python3.7.3(需添加环境变量)
下载地址:https://www.python.org/downloads/
相关包/库:numpy, pymysql
开发工具:Pycharm
3. 安装方法
用 pip 安装,当前最新版本为1.4.7
pip install samdata_terminal_dev
4. 执行回测
1.通过 pip 安装 sdk。
2.下载策略模板,在模板对应位置填入用户名,密码和策略ID。
3.根据SDK API在策略模板中的onData函数实现策略逻辑。
4.完成策略,运行python代码,执行回测。
# coding=utf-8
from samdata_terminal_dev.backtest_sdk import SAMTraderEngine, SAMTrader
from datetime import datetime
def initial():
userid = "779d34ccde3846ee85ea95e32233251e" # 用户id
strategyID = "9fdf5563-97be-43e7-90db-a90ca8fed4de" # 策略id
symbol_list = "BTC/USDT.BN" # 订阅交易对
for symbol in symbol_list.split(','):
history_data[symbol] = []
time_type = "1m" # 1:1m 2:5m 3:15m 4:30m 5:1h
data_type = "kline" # 数据类型:kline(k线)、depth(盘口)
get_data_way = "1" # 获取数据方式:1(本地csv)、2(api)、3(同步数据库)
api_key = '' # 如果通过api获取数据,则需要传api_key 和 api_secret
api_secret = ''
cash = 100000 #initial cash
starttime = "2019-12-01" # 回测开始时间
endtime = "2019-12-02" # 回测结束时间,不包含最后一天数据
account_type = "USD" # 账户类型 USD:美元,CNY:人民币
excuation = 2 # 订单成交方式,1:当前bar价格成交,2:下一bar的价格成交
running_type = 1 # 0:手动模式,返回数据库地址;1:自动模式,自动拉取行情数据;
e = SAMTraderEngine(userid = userid, strategyID = strategyID,symbol_list = symbol_list,time_type = time_type,cash = cash,\
starttime = starttime,endtime = endtime,fill_bar_type = excuation,running_type = running_type,account_type = account_type,\
data_type = data_type, get_data_way = get_data_way, api_key = api_key, api_secret = api_secret)
return e
def on_data(bar, e):
#strategy
dt = bar['BTC/USD.OK.Q'][0].bar_time
if 'BTC/USD.OK.Q' not in e.get_holdings().keys() or e.get_holdings()['BTC/USD.OK.Q'][0].quantity < 1:
e.place_order(symbol = 'RB1705.SHF.future', direction = 'Buy', order_type = 0, order_time = dt,open_or_close = 'Open', quantity = 100, fillprice = bar['BTC/USD.OK.Q'][0].close)
return
sdk = SAMTrader(initial = initial,on_data = on_data)
sdk.start()
5. 函数功能
1. SAMTrader 入口函数类
任何用户自定义的策略回测都需要创建一个 SAMTrader 对象,用于配置策略运行过程中需要的参数。
实现内部策略引擎SAMTraderEngine,包含函数:
- init:构造函数
- start:策略回测开始
在调用SAMTrader入口函数类中的方法前,需要先执行下面代码引用相关库
from samdata_terminal_dev.backtest_sdk import SAMTrader
1.1 构造函数 - init
函数说明: 构造函数,传入初始化参数
函数原型:
def _init_(self,initial,onData)
1.1.1 初始化函数 - initial
函数说明:初始化策略引擎, 其中初始化策略引擎所需参数,请参考 2.1 策略引擎构造函数
函数原型:def initial()
示例代码:
def initial():
userid = "779d34ccde3846ee85ea95e32233251e" # 用户id
strategyID = "9fdf5563-97be-43e7-90db-a90ca8fed4de" # 策略id
symbol_list = "BTC/USDT.BN" # 订阅交易对
for symbol in symbol_list.split(','):
history_data[symbol] = []
time_type = "1m" # 1:1m 2:5m 3:15m 4:30m 5:1h
data_type = "kline" # 数据类型:kline(k线)、depth(盘口)
get_data_way = "1" # 获取数据方式:1(本地csv)、2(api)、3(同步数据库)
api_key = '' # 如果通过api获取数据,则需要传api_key 和 api_secret
api_secret = ''
cash = 100000 # initial cash
starttime = "2019-12-01" # 回测开始时间
endtime = "2019-12-02" # 回测结束时间,不包含最后一天数据
account_type = "USD" # 账户类型 USD:美元,CNY:人民币
excuation = 2 # 订单成交方式,1:当前bar价格成交,2:下一bar的价格成交
running_type = 1 # 0:手动模式,返回数据库地址;1:自动模式,自动拉取行情数据;
e = SAMTraderEngine(userid = userid, strategyID = strategyID,symbol_list = symbol_list,time_type = time_type,cash = cash,\
starttime = starttime,endtime = endtime,fill_bar_type = excuation,running_type = running_type,account_type = account_type,\
data_type = data_type, get_data_way = get_data_way, api_key = api_key, api_secret = api_secret)
return e
1.1.2 策略回调函数 - on_data
函数说明: 策略回调函数,编写策略回测逻辑,实现根据实时推送的数据进行策略回测
函数原型: on_data(bar, e)
参数说明:
bar:一个<string, list>的key-value对象,其中每一项的key是品种名,value是一个KlineData(K线数据) / DepthData(盘口数据) 的list数组
e: 策略引擎
KlineData 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | 品种 |
bar_time | string | 报价时间 |
high | float | 最高价 |
low | float | 最低价 |
open | float | 开盘价 |
close | float | 收盘价 |
quote_volume | float | 基础币种成交量 |
quoteasset_volume | float | 计价币种成交量(okex期货合约表示合约张数,单位为张) |
trade_num | float | 交易笔数 |
DepthData 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | 品种 |
bar_time | string | 报价时间 |
bids_price_list | list(float) | 买20价 |
bids_quantity_list | list(float) | 买20量 |
asks_price_list | list(float) | 卖20价 |
asks_quantity_list | list(float) | 卖20量 |
示例代码:
def on_data(bar, e):
print(bar["BTC/USD.OK.Q"][0].bar_time)
1.3 策略回测开始函数 - start
函数说明:完成SAMTrader 对象初始化后,通过调用该对象的start(), 开始运行策略回测
示例代码:
sdk = SAMTrader(initial = initial,on_data = on_data)
sdk.start()
2. 策略引擎 SAMTraderEngine
实现内部策略引擎SAMTraderEngine,包含函数:
- init:构造函数
- get_all_bars:获取所有回测数据bar
- pull_bar:获取下一个数据bar
- place_order: 下单
- get_orders: 获取订单
- get_account:获取账户信息,包含可用资金等
- get_holdings:获取持仓
- client_close:结束回测
- get_local_csvpath: 获取数据文件路径
在调用SAMTraderEngine策略引擎类中的方法前,需要先执行下面代码引用相关库
from samdata_terminal_dev.backtest_sdk import SAMTraderEngine
2.1 构造函数 - init
函数说明:构造函数,传入初始化参数
函数原型:
def __init__(self,userid,strategyID,symbol_list,time_type,cash,starttime,endtime,fill_bar_type,\
running_type,account_type, data_type, get_data_way, api_key, api_secret)
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
userid | string | 用户id | 用户id |
strategyID | string | 策略ID | 根据用户创建策略给出的唯一ID, |
symbol_list | string | 回测品种 | 支持多品种,多个品种用英文半角逗号(",")隔开 |
time_type | string | 时间精度类型 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
data_type | string | 数据类型 | kline(k线)、depth(盘口) |
get_data_way | string | 获取数据方式 | 1(本地csv)、2(api)、3(同步数据库) |
api_key | string | 访问api的key | 当获取数据方式为2,即通过api获取数据时,需要传入该值,其具体值请从官网中的个人中心获取 |
api_secret | string | 访问api的secret | 当获取数据方式为2,即通过api获取数据时,需要传入该值,其具体值请从官网中的个人中心获取 |
cash | float | 初始资金 | |
starttime | string | 回测开始时间 | 格式:'%Y-%m-%d %H:%M:%S' 或者 '%Y-%m-%d' |
endtime | string | 回测结束时间 | 格式同上 |
fill_bar_type | string | 成交方式类型 | 1:当前bar价格,2:下一bar的价格 ,目前暂时不处理该字段,请传入空字符'' |
running_type | string | 数据源类型 | 0: 手动模式,返回数据文件路径;1:自动模式,自动拉取行情数据 , 目前只支持自动模式 |
account_type | string | 结算币种 | 账户类型 USD:美元,CNY:人民币,保留 |
示例代码:
SAMTraderEngine(userid = "779d34ccde3846ee85ea95e32233251e", strategyID = "9fdf5563-97be-43e7-90db-a90ca8fed4de",symbol_list = "BTC/USDT.BN",time_type = "1h",cash = 100000, starttime = "2019-11-01",\
endtime = "2019-12-01",fill_bar_type = "2",running_type = "1",account_type = "USD", data_type = "kline", get_data_way = "1", api_key = "", api_secret = "")
注意:
1、 当starttime 和 endtime的格式为"YYYY-mm-dd", 则会自动补全时间字符串为"YYYY-mm-dd 00:00:00"。
2.2 获取回测所有数据bar - get_all_bars
函数说明:根据指定获取数据的方式,获取回测开始时间~结束时间的所有k线(盘口)数据bar
返回参数: 一个<string, list>的key-value对象,其中每一项的key是品种名,value是一个KlineData(K线数据)/DepthData(盘口数据)的list数组返回 list列表,其中每个元素为一个KlineData / DepthData对象, KlineData 和 DepthData类的具体属性请参考 1.1.2 on_data
示例代码:
data = e.get_all_bars()
print(data["BTC/USD.OK.Q"][0].close) # 打印第一个k线数据的收盘价,
注意:
2.3 获取下一个数据bar - pull_bar
函数说明:通过指定获取数据方式,获取下一个数据bar的k线(盘口)数据
返回参数:返回两个参数
参数 1 :一个<string, list>的key-value对象,其中每一项的key是品种名,value是一个list列表,其中每个元素为一个KlineData /DepthData(盘口数据)对象,如果无数据,该value值为一个空list列表, KlineData 和 DepthData类的具体属性请参考 1.1.2 on_data
参数 2 :数据获取状态
示例代码:
data, status = e.pull_bar() # data 为返回的数据, status 为获取数据的状态信息
print(data["BTC/USD.OK.Q"][0].open) # 获取下一个k线数据的开盘价
2.4 下单 - place_order
函数说明:下单函数,根据策略回测信号主动触发下单
函数原型:
def place_order(self,symbol,direction,order_time,quantity,open_or_close,order_type ,fillprice ,limit_price=0):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
symbol | string | 交易品种 | BTC/USDT.BN |
direction | string | 交易方向 | Buy(买)、Sell(卖) |
order_time | string | 交易时间 | |
quantity | float | 交易手数或下单量 | |
open_or_close | string | 开仓或平仓 | Open(开仓), Close(平仓) |
order_type | string | 订单类型 | 0:市价单,1:限价单 |
fillprice | float | 订单成交价 | |
limit_price | string | 订单限价 | order_type填0此处可不填 |
返回参数:无
示例代码:
e.place_order(symbol = 'BTC/USD.OK.Q', direction = 'Buy', order_type = 0, order_time = '2019-10-01 00:00:00',open_or_close = 'Open', quantity = 100, fillprice = 1000)
2.5 获取所有订单 - get_orders
函数说明:获取当前策略的所有订单
返回参数:返回 list列表,其中每个元素为一个 OrderModel 对象
OrderModel 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | 品种 |
direction | string | 订单方向(Buy 和 Sell) |
offset | string | 交易类型(Open 开仓,Close平仓) |
ordertype | int | 订单类型(0:市价单,1:限价单) |
limitprice | float | 限制成交价 |
fillprice | float | 成交价 |
quote_volume | float | 基础币种成交量 |
volumemultiple | float | 合约乘数 |
quantity | int | 交易手数 |
strategyid | string | 策略id |
ordertime | datetune | 下单时间 |
jobid | string | 回测id |
orderfee | float | 订单手续费 |
status | string | 订单状态(fill:成交、invalid: 无效) |
filltime | datetime | 成交时间 |
orderrid | string | 订单id |
示例代码:
data = e.get_orders()
print(data[0].symbol)
2.6 获取当前账户的可用资金 - get_account
函数说明:获取当前账户的可用资金
返回参数:可用资金(float类型)
示例代码:
print(e.get_account())
2.7 获取持仓量 - get_holdings
函数说明:获取当前账户的持仓量
返回参数:一个<string, list>的key-value对象,其中每一项的key是品种名,value是一个 Holding(持仓量)的list数组
参数说明:
Holding 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | 品种 |
direction | string | 方向 |
quantity | float | 持仓手数 |
volumemultiple | float | 合约乘数 |
averageprice | float | 开仓平均成本 |
示例代码:
holds = e.get_holdings()
if 'BTC/USD.OK.Q' in e.get_holdings().keys():
for h in holds['BTC/USD.OK.Q']:
print(h.direction) # 输出持仓方向
2.8 结束回测 - client_close
函数说明: 结束回测
返回参数:无
示例代码:
e.client_close()
2.9 获取数据文件存放的路径 - get_local_csvpath
函数说明:返回存放数据的文件路径
返回参数:string 类型
示例代码:
e.get_local_csvpath()
3. 数据获取(通过api)
在购买访问数据api的权限后,可直接通过调用sdk中的方法,获取现货的历史k线数据、现货交易对信息、期货交易对信息、指数交易对信息以及期权交易对信息。其相对应的函数命名如下:
- get_history_kline_data_by_api:获取现货的历史k线数据
- get_spot_symbol_by_api:获取现货交易对信息
- get_future_symbol_by_api:获取期权交易对信息
- get_index_symbol_by_api:获取指数交易对信息
- get_option_symbol_by_api:获取期权交易对信息
在调用以上数据获取方法前,需要先执行下面代码引用相关库
from samdata_terminal_dev.datagetting_sdk import *
3.1 获取现货的历史k线数据 - get_history_kline_data_by_api
函数说明:通过提供Api Key、Api Secret以及相关参数获取指定时间范围的现货K线数据
函数原型:
def get_history_kline_data_by_api(api_key, api_secret, symbol, frequency, starttime='', endtime=''):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
api_key | string | 访问获取数据的Api Key ,具体请从官网个人中心获取 | |
api_secret | string | 访问获取数据的Api Key ,具体请从官网个人中心获取 | |
symbol | string | 交易品种 | 格式为:基础币种/计价币种.交易对简称,如:BTC/USDT.BN |
period | string | k线周期 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
starttime | string | 开始时间 | 时间格式:'%Y-%m-%d %H:%M:%S' |
endtime | string | 结束时间 | 同上 |
返回参数:list数组,其中每一项为KlineData对象,KlineData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_history_kline_data_by_api(api_key = '***', api_secret = '***', symbol = 'BTC/USDT.BN', period = '1m', starttime='2019-10-10 00:00:00', endtime='2019-10-01 00:00:00')
注意:
1、如果starttime和endtime参数同时为空,则返回最近的200条k线数据;starttime和endtime参数要么同时为空,要么同时不为空。
3.2 获取现货交易对信息 - get_spot_symbol_by_api
函数说明:通过提供Api Key、Api Secret以及相关参数获取交易对信息
函数原型:
def get_spot_symbol_by_api(api_key, api_secret,exchange, symbol):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
api_key | string | 访问获取数据的Api Key ,具体请从官网个人中心获取 | |
api_secret | string | 访问获取数据的Api Key ,具体请从官网个人中心获取 | |
exchange | string | 交易所 | 交易所全称或交易所简称 |
symbol | string | 交易品种 | 格式为:基础币种/计价币种,如:BTC/USDT |
返回参数:list数组,其中每一项为SymbolModel对象
参数说明:
SymbolModel 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | matrixdata统一交易对 |
baseasset | string | 基础币种 |
quoteasset | string | 计价币种 |
type | SymbolTypeModel | 交易对类型,具体属性参考 SymbolTypeModel类属性说明 |
status | string | 状态 |
displaysymbol | string | 交易所显示交易对 |
tradesymbol | string | 交易所接口交易对 |
exchange | string | 交易所 |
listedtime | string | 上市时间 |
delistedtime | string | 退市时间 |
SymbolTypeModel 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symboltype | string | 交易对类型 |
subsymboltype | string | 交易对子类型 |
示例代码:
from samdata_terminal_dev.datagetting_sdk import *
data = get_spot_symbol_by_api('***', '***', 'BN', 'BTC/USDT')
3.3 获取期货交易对信息 - get_future_symbol_by_api
函数说明:通过提供Api Key、Api Secret以及相关参数获取交易对信息
函数原型:
def get_future_symbol_by_api(api_key, api_secret,exchange, symbol):
参数说明:具体参考 获取交易对信息 - get_spot_symbol_by_api的参数说明
返回参数:list数组,其中每一项为FuturesModel对象
参数说明:
FuturesModel 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | matrixdata统一交易对 |
baseasset | string | 基础币种 |
quoteasset | string | 计价币种 |
contractmonth | int | 合约乘数 |
contractmultiple | int | |
listedtime | string | 上市时间 |
delistedtime | string | 退市时间 |
deliverydate | string | 交割日 |
deliverymonth | int | 交割月份 |
deliveryprice | float | 交割价 |
minprice | float | 最小变动价位 |
type | SymbolTypeModel | 交易对类型,具体属性参考 SymbolTypeModel类属性说明 |
status | string | 状态 |
displaysymbol | string | 交易所显示交易对 |
tradesymbol | string | 交易所接口交易对 |
exchange | string | 交易所 |
latestcontract | int | 最新合约 |
示例代码:
from samdata_terminal_dev.datagetting_sdk import *
data = get_spot_symbol('***', '***', 'BN', 'BTC/USD')
3.4 获取指数交易对信息 - get_index_symbol_by_api
函数说明:通过提供Api Key、Api Secret以及相关参数获取交易对信息
函数原型:
def get_index_symbol_by_api(api_key, api_secret,exchange, symbol):
参数说明:具体参考 获取交易对信息 - get_spot_symbol_by_api的参数说明
返回参数:list数组,其中每一项为IndexModel对象
参数说明:
IndexModel 类属性说明
属性 | 数据类型 | 描述 |
---|---|---|
symbol | string | matrixdata统一交易对 |
baseasset | string | 基础币种 |
quoteasset | string | 计价币种 |
type | SymbolTypeModel | 交易对类型,具体属性参考 SymbolTypeModel类属性说明 |
status | string | 状态 |
displaysymbol | string | 交易所显示交易对 |
tradesymbol | string | 交易所接口交易对 |
exchange | string | 交易所 |
listedtime | string | 上市时间 |
delistedtime | string | 退市时间 |
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_index_symbol_by_api('***', '***', 'BN', 'BTC/USDT')
3.5 获取期权交易对信息 - get_option_symbol_by_api
函数说明:通过提供Api Key、Api Secret以及相关参数获取交易对信息
函数原型:
def get_option_symbol_by_api(api_key, api_secret,exchange, symbol):
参数说明:具体参考 获取交易对信息 - get_spot_symbol_by_api的参数说明
返回参数:list数组,其中每一项为IndexModel对象,其属性介绍请参考 获取指数交易对信息 - get_index_symbol_by_api的IndexModel对象介绍
示例代码:
from samdata_terminal_dev.datagetting_sdk import *
data = get_option_symbol_by_api('***', '***', 'BN', 'BTC/USDT')
4. 数据获取(本地数据库)
从本地postgresql数据库中获取k线数据。其相对应的函数命名如下:
- get_sync_spot_kline_data:获取现货的k线数据
- get_sync_future_kline_data:获取期货的k线数据
在调用以上数据获取方法前,需要先执行下面代码引用相关库
from samdata_terminal_dev.datagetting_sdk import *
4.1 获取现货的k线数据 - get_sync_spot_kline_data
函数说明:通过提供Api Key、Api Secret以及相关参数获取指定时间范围的现货K线数据
函数原型:
def def get_sync_spot_kline_data(server_url, port, username, password, exchange, base_symbol, asset_symbol, period, starttime, endtime):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
servel_url | string | 数据库url | |
port | string | 数据库端口号 | |
username | string | 数据库登录名 | |
password | string | 数据库密码 | |
exchange | string | 交易所 | |
base_symbol | string | 基础币种 | |
asset_symbol | string | 计价品种 | 格式为:基础币种/计价币种.交易对简称,如:BTC/USDT.BN |
period | string | k线周期 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
starttime | string | 开始时间 | 时间格式如:'2019-09-09 10:00:00' |
endtime | string | 结束时间 | 时间格式如:'2019-09-09 10:00:00' |
返回参数:list数组,其中每一项为KlineData对象,KlineData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_sync_spot_kline_data('127.0.0.1', '3306', '123', '123','BN', 'BTC', 'USDT', '1m', '2019-08-01 00:00:00', '2019-08-01 04:00:00')
注意:
1、starttime和endtime都不能为空
4.2 获取期货的k线数据 - get_sync_future_kline_data
函数说明:通过提供Api Key、Api Secret以及相关参数获取指定时间范围的现货K线数据
函数原型:
def def get_sync_future_kline_data(server_url, port, username, password, exchange, base_symbol, asset_symbol, future_type, period, starttime, endtime):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
servel_url | string | 数据库url | |
port | string | 数据库端口号 | |
username | string | 数据库登录名 | |
password | string | 数据库密码 | |
exchange | string | 交易所 | |
base_symbol | string | 基础币种 | |
asset_symbol | string | 计价品种 | 格式为:基础币种/计价币种.交易对简称,如:BTC/USDT.BN |
period | string | k线周期 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
starttime | string | 开始时间 | 时间格式如:'2019-09-09 10:00:00' |
endtime | string | 结束时间 | 时间格式如:'2019-09-09 10:00:00' |
返回参数:list数组,其中每一项为KlineData对象,KlineData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_sync_future_kline_data('127.0.0.1', '3306', '123', '123','BN', 'BTC', 'USDT', '1m', '2019-08-01 00:00:00', '2019-08-01 04:00:00')
注意:
1、starttime和endtime都不能为空
5. 数据获取(本地csv)
从数据同步后的本地csv路径中获取k线数据、盘口数据。其相对应的函数命名如下:
- get_spot_kline_data:获取现货的 k线 数据
- get_future_kline_data:获取期货的 k线 数据
- get_spot_depth_data:获取现货的 盘口 数据
在调用以上数据获取方法前,需要先执行下面代码引用相关库
from samdata_terminal_dev.datagetting_sdk import *
5.1 获取现货的k线数据 - get_spot_kline_data
函数说明:从数据同步后的本地csv路径获取指定时间范围的现货K线数据
函数原型:
def def get_spot_kline_data(exchange, base_symbol, asset_symbol, period, starttime, endtime):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
exchange | string | 交易所 | |
base_symbol | string | 基础币种 | |
asset_symbol | string | 计价品种 | |
period | string | k线周期 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
starttime | string | 开始时间 | 时间格式如:'2019-09-09 10:00:00' |
endtime | string | 结束时间 | 时间格式如:'2019-09-09 10:00:00' |
返回参数:list数组,其中每一项为KlineData对象,KlineData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_spot_kline_data('BN', 'BTC', 'USDT', '1m', '2019-08-01 00:00:00', '2019-08-01 04:00:00')
注意:
1、starttime和endtime都不能为空
5.2 获取期货的k线数据 - get_future_kline_data
函数说明:从数据同步后的本地csv路径获取指定时间范围的现货K线数据
函数原型:
def get_future_kline_data(exchange, base_symbol, asset_symbol, future_type, period, starttime, endtime):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
exchange | string | 交易所 | |
base_symbol | string | 基础币种 | |
asset_symbol | string | 计价品种 | |
period | string | k线周期 | 1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、1h(1小时) |
future_type | string | 期货类型 | Q(季度)、TW(当周)、NW(次周) |
starttime | string | 开始时间 | 时间格式如:'2019-09-09 10:00:00' |
endtime | string | 结束时间 | 时间格式如:'2019-09-09 10:00:00' |
返回参数:list数组,其中每一项为KlineData对象,KlineData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_future_kline_data('BN', 'BTC', 'USDT', 'Q','1m', '2019-08-01 00:00:00', '2019-08-01 04:00:00')
注意:
1、starttime和endtime都不能为空
5.3 获取现货的盘口数据 - get_spot_depth_data
函数说明:从数据同步后的本地csv路径获取指定时间范围的现货盘口数据
函数原型:
def def get_spot_depth_data(exchange, base_symbol, asset_symbol, starttime, endtime):
参数说明:
参数名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
exchange | string | 交易所 | |
base_symbol | string | 基础币种 | |
asset_symbol | string | 计价品种 | |
starttime | string | 开始时间 | 时间格式如:'2019-09-09 10:00:00' |
endtime | string | 结束时间 | 时间格式如:'2019-09-09 10:00:00' |
返回参数:list数组,其中每一项为KlineData对象,DepthData类的具体属性请参考 策略回调函数 - on_data 的返回参数
示例代码:
import samdata_terminal_dev.datagetting_sdk
data = get_spot_depth_data('BN', 'BTC', 'USDT', '2019-08-01 00:00:00', '2019-08-01 04:00:00')
注意:
1、starttime和endtime都不能为空