调用方法:
get_money_flow_step(symbol_list, start_date, end_date, fre_step, fields, count=None, is_panel)
释义:
get_money_flow_step函数的主要功能是获取股票的历史资金数据(日线级/半小时级线/分钟级线)。数据字段一共有17个,分为主动或被动、买入或卖出、大单小单或者中单资金,其次还包括了大单净量、资金净流入率数据。
参数:
|
参数 |
含义 |
详细内容 |
|
symbol_list |
获取数据的对象:股票代码(单个、多个) |
单个股票代码,例如:[‘000001.SZ’];多个股票代码,例如['000001.SZ', '000002.SZ','600519.SH']. |
|
start_date |
开始时间 |
时间格式: '%Y%m%d %H:%M'该参数与count参数只能且必须填写其中一个,确定了获取数据的历史长度,就不能再确定开始时间,不然两者冲突.取日级数据时, 传入格式为: '20180104'取分钟数据时, 传入格式为: '20180104 14:30' |
|
end_date |
结束时间 |
时间格式: '%Y%m%d %H:%M'例如:半小时级 '20180104 14:30'。 |
|
fre_step |
时间步长 |
其中'1d'代表1天, '30m'代表30分钟, '5m'代表5分钟例如: fre_step = '1d'表示时间步长为1天 |
|
fields |
数据字段 |
支持以下字段:>'act_buy_xl':主动买入特大单金额(元)>'pas_buy_xl':被动买入特大单金额(元)>'act_buy_l':主动买入大单金额(元)>'pas_buy_l':被动买入大单金额(元)>'act_buy_m':主动买入中单金额(元)>'pas_buy_m':被动买入中单金额(元)>'act_sell_xl':主动卖出特大单金额(元)>'pas_sell_xl':被动卖出特大单金额(元)>'act_sell_l':主动卖出大单金额(元)>'pas_sell_l':被动卖出大单金额(元)>'act_sell_m':主动卖出中单金额(元)>'pas_sell_m':被动卖出中单金额(元)>'buy_l':小单买入金额(元)>'sell_l':小单卖出金额(元)>'dde_l':DDE大单净额(元)>'net_flow_rate':金额流入率(%)>'l_net_value':大单净量 |
|
count |
历史长度 |
该参数与start_date参数只能且必须填写其中一个,确定了获取数据的历史长度,就不能再确定开始时间,不然两者冲突. |
|
is_panel |
返回数据格式 |
默认为dict, 即is_panel = 0is_panel = 1则返回Pandas.Panel格式的数据, key为fieldsis_panel = 0则返回dict格式的数据, key为symbol |
注意事项:
1.该函数有start_date参数,因此bar_count参数与start_date参数只能两者选其一.如果选其一,另一者参数应输入None,不然无法获取相应数据.
2.该函数在历史回测环境中,end_date参数必须设置为回测的前一日,不然整个策略带有未来函数.
3.该函数的symbol_list参数,不能输入字符串,必须是列表格式,例如:['000001.SZ']是对的,'000001.SZ'是错的.
4.大单、中单、小单的标准如下:
A.上证A股、深证主板大单标准:
类型 股数 金额 占流通盘比
小单 1万股以下 或 5万元以下
中单 1万股到6万股 或 5万元—30万元
大单 6万股到20万股 或 30万元—100万元 或 0.1%
特大单 20万股以上 或 100万元以上
B.中小板、创业板大单标准:
类型 金额
小单 5万元以下
中单 5万元—20万元(包括5万,不包括20万)
大单 20万元—50万元(包括20万,不包括50万)
特大单 50万元以上
5.bar_count参数与start_date参数两个参数,如果选bar_count参数,start_date参数应输入None。如果选start_date参数,bar_count参数允许不输入。
返回格式:
1. is_panel = 0: 返回dict对象,其key是symbol即证券代码、值是pandas.Dataframe,行索引是datetime.datetime对象,列索引是字段名称。
2. is_panel = 1: 返回pandas.Panel对象,key为fileds字段(open/high/low/…)。pandas.Panel为pandas.DataFrame的三维结构,选定字段后输出的便是pandas.DataFrame对象。
示例:
【示例1】
def init(context):
pass
def handle_bar(context,bar_dict):
# 选取000001.SZ在2017年1月1日至2017年2月3日主动买入大单的日数据,字典形式输出
df = get_money_flow_step(security_list='000001.SZ',
start_date='20170101',
end_date='20170203',
fre_step='1d',
fields=['act_buy_xl'],
count=None,
is_panel=0)
# 打印数据
log.info(df)
【示例2】
def init(context):
pass
def handle_bar(context,bar_dict):
# 选取000001.SZ在2017年2月3日前19天主动买入大单的日数据,字典形式输出
df = get_money_flow_step(security_list='000001.SZ',
start_date=None,
end_date='20170203',
fre_step='1d',
fields=['act_buy_xl'],
count=19,
is_panel=0)
# 打印数据
log.info(df)
`
【示例3】
def init(context):
pass
def handle_bar(context,bar_dict):
# 选取000001.SZ在2018年5月2日9时35分至2018年5月3日10时30分主动买入大单的5分钟数据,字典形式输出
df = get_money_flow_step(security_list='000001.SZ',
start_date='2026-03-18T23:14:00+00:00',
end_date='2026-03-18T23:14:00+00:00',
fre_step='5m',
fields=['act_buy_xl'],
count=None,
is_panel=0)
# 打印数据
log.info(df)
示例返回结果:
【示例1】
{'000001.SZ': act_buy_xl
2017-01-03 67622563.0
2017-01-04 54301614.0
2017-01-05 21242812.0
.......... ..........
2017-01-25 41299990.0
2017-01-26 81462921.0
2017-02-03 16841371.0}
【示例2】
{'000001.SZ': act_buy_xl
2017-01-03 67622563.0
2017-01-04 54301614.0
2017-01-05 21242812.0
2017-01-06 17759098.0
.......... .........
2017-01-25 41299990.0
2017-01-26 81462921.0
2017-02-03 16841371.0}
【示例3】
{'000001.SZ':
trade_date act_buy_xl
2026-03-18T23:14:00+00:00 2.036655e+07
2026-03-18T23:14:00+00:00 7.195865e+06
2026-03-18T23:14:00+00:00 2.545824e+07
.......... ........ .............
2026-03-18T23:14:00+00:00 1.493539e+06
2026-03-18T23:14:00+00:00 4.561986e+06
2026-03-18T23:14:00+00:00 2.132562e+06
2026-03-18T23:14:00+00:00 8.963091e+06
2026-03-18T23:14:00+00:00 4.291677e+06}