
PTrade
Ptrade获取L2逐笔数据,免费,券商提供
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 105 次浏览 • 2025-05-24 00:22
并且还发现居然可以免费使用L2逐笔数据,分时逐笔委托队列等高频毫秒级的数据
Ptrade接口文档已更新: https://ptradeapi.com
Python 3.5是2015 年发布,Python 3.11是2022 年发布。
性能上来说是有很大的提升,尤其对做回测和高频策略。
如果本身策略很简单或者日线交易的,影响可以忽略不计。
不过这个升级并不是个人可选的,只要你的Ptrade的券商升级了,就只能使用升级后的版本接口格式,旧代码需要做的修改来适配。
性能对比示例(Python 3.5 vs 3.11) By 豆包
以下是部分操作在 Python 3.5 和 3.11 中的性能对比(仅供参考):
并且相应的第三方库版本亦做了升级。
接口变动影响比较大的是pandas在 Python3.11 中,Pandas已不再支持Panel格式。
pandas里的Pannel类型是用于存储三维或以上的矩阵数据。
而升级后就不支持之前的多维行情数据格式。但笔者觉得现在更加统一和简单。
以前不同入参,有时候返回的是dataframe,有时候返回的是panel,比较混乱。
现在统一返回的dataframe. (或者返回dict,可以自己设定)
影响的API有get_history,get_price ,get_individual_transaction ,get_fundamentals等。
比如通过get_history获取的历史日线数据
count = 10
code_list = ['000695.SZ','001367.SZ']
df = get_history(count, frequency='1d', field=['open','close'], security_list=code_list, fq=None, include=False, fill='nan',is_dict=False)
print(type(df))
print(df)
返回的dataframe数据格式如下
<class 'pandas.core.frame.DataFrame'>
code open close
2025-05-15 000695.SZ NaN NaN
2025-05-16 000695.SZ NaN NaN
2025-05-19 000695.SZ 10.34 10.34
2025-05-20 000695.SZ 11.37 11.37
2025-05-21 000695.SZ 12.51 12.51
2025-05-22 000695.SZ 13.76 13.76
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
如果要提取 000695.SZ的数据,只需要
df[df['code']=='000695.SZ']就可以了。
code open close
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
然后dataframe提取收盘价或者开盘价
# 收盘价
df[df['code']=='001367.SZ']['close']
# 开盘价
df[df['code']=='001367.SZ']['open']
再拿收盘价来计算MACD:
# 计算 MACD 值
def MACD(series):
ema_short = series.ewm(span=12).mean()
ema_long = series.ewm(span=26).mean()
macd_series = ema_short - ema_long
return macd_series.iloc[-1]
close_price_series = df[df['code']=='001367.SZ']['close']
macd_val = MACD(close_price_series)
同理get_price,get_individual_transaction ,get_fundamentals与之类似。
并且在get_histroy的入参里面,多了一个is_dict的参数,默认是False,返回的是dataframe数据,如果设置为True,则返回的dict数据。
返回的有序字典(OrderDict)类型数据:(省略了部分类型)
{'001367.SZ', array([(20250509, 29.89, 29.58), (20250512, 29.7 , 29.6 ),
(20250513, 30.11, 29.96), (20250514, 29.96, 29.83),
(20250515, 29.8 , 30.18), (20250516, 30.13, 30.39),
(20250519, 30.46, 30.01), (20250520, 20.25, 20.08),
(20250521, 20.05, 20.7 ), (20250522, 20.98, 22.77)]
}
但感觉这种列表形式下,提取数据反而没有使用dataframe方便和直观,它获取数据时需要用下标提取。
但官网说,返回dict类型数据的速度比DataFrame,Panel类型数据有大幅提升,对速度有要求的,建议使用is_dict=True 读取上述数据格式。
获取L2逐笔数据
L2逐笔委托数据接口函数
get_individual_entrust(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
参数:
data_count: 数据条数,默认为50,最大为200(int);
start_pos: 起始位置,默认为0(int);
虽然一次只能获取200条,但配合start_pos游标可遍历获取全部数据。
示例代码:
获取股票001367.SZ封涨停时的最新的逐笔委托行情。
code_list = ['001367.SZ']
df = get_individual_entrust(code_list)
print(df[['business_time','hq_px','business_amount','order_no']])
输出数据如下,因数据列太多,为了美观只取了其中的4列:
时间戳,委托价格,委托数量,委托编号
因为当前已经是收盘状态,是从14:59:57.020往前取50条数据
business_time(时间戳) hq_px(委托价格) business_amount(委托数量) order_no(委托编号)
20250523145702150 24.60 100 32493957
20250523145714840 24.95 100 32505581
20250523145718430 25.05 1000 32509041
20250523145719840 25.05 1000 32510350
20250523145721750 25.05 400 32512000
20250523145727610 25.05 200 32517007
20250523145730270 25.05 400 32519085
20250523145730330 25.04 1600 32519133
20250523145732330 25.05 2900 32520779
20250523145740780 25.05 500 32527204
20250523145743550 25.05 400 32529290
20250523145743810 25.05 200 32529474
20250523145749460 25.05 4300 32533295
20250523145749910 25.05 1000 32533630
20250523145749960 25.05 300 32533666
# 省略若干.....
20250523145926790 25.05 100 32589496
20250523145927480 25.05 1200 32589844
20250523145936090 25.05 200 32594134
20250523145946600 25.05 300 32601758
20250523145946800 25.05 49100 32601865
20250523145950800 25.05 36800 32607381
20250523145953780 25.05 55200 32611265
20250523145954240 25.05 500 32611713
20250523145956830 25.05 55300 32614479
20250523145957020 25.04 8500 32614683
可以看到上面的有些1秒内有多个的委托单,每单的委托量和委托编号。
逐笔成交
同理,L2的逐笔成交数据函数的用法一样,但返回字段不同,成交的时候有成交方向,可以通过程序计算资金流入或流出。
get_individual_transaction(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
同样用上面的股票例子获取到的数据如下:
business_time hq_px business_amount business_direction
20250523145648440 0.00 2500 1
20250523145648970 0.00 3200 1
20250523145649300 0.00 100 1
20250523145649370 0.00 900 1
20250523145649880 0.00 1800 1
20250523145650150 0.00 800 1
20250523145650360 0.00 200 1
20250523145650400 0.00 500 1
20250523145650420 0.00 100 1
20250523145652050 0.00 800 1
# 省略若干.....
20250523145659220 0.00 24100 1
20250523145659550 0.00 700 1
20250523145659600 0.00 400 1
20250523150000000 25.05 100 0
20250523150000000 25.05 100 0
20250523150000000 25.05 1600 0
20250523150000000 25.05 800 0
20250523150000000 25.05 1730 0
20250523150000000 25.05 670 0
20250523150000000 25.05 2430 0
20250523150000000 25.05 1200 0
20250523150000000 25.05 9270 0
20250523150000000 25.05 148 0
20250523150000000 25.05 100 0
20250523150000000 25.05 200 0
20250523150000000 25.05 1000 0
20250523150000000 25.05 2000 0
business_direction是 成交方向,0是卖出,1是买入,从而判断该笔成交的资金是流入还是流出。
获取分时成交
get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50, is_dict=False)
这个分时成交函数可获取到当前和历史某个毫秒下,该笔总成交量下有多少笔子订单。
比如用上面的涨停股001367.SZ做示例
最后一刻3点的时候,成交了21348股,里面共有14笔成交。
time_stamp hq_px business_amount business_count
20250523143721000 25.05 100 1
20250523143724000 25.05 200 1
20250523143745000 25.05 444 1
20250523143809000 25.05 10000 2
20250523144024000 25.05 100 1
20250523144048000 25.05 1500 1
20250523144106000 25.05 300 1
20250523144112000 25.05 11692 2
20250523144124000 25.05 100 1
20250523144142000 25.05 100 1
20250523144157000 25.05 100 1
20250523144200000 25.05 2360 1
# 省略若干.....
20250523145415000 25.05 1381 1
20250523145421000 25.05 480 1
20250523145439000 25.05 100 1
20250523145451000 25.05 1753 1
20250523145521000 25.05 5384 3
20250523145539000 25.05 3600 2
20250523145557000 25.05 1000 1
20250523145609000 25.05 400 2
20250523145615000 25.05 100 1
20250523150000000 25.05 21348 14
get_gear_price 获取当前时刻的逐笔委托队列
这个函数的功能:获取委买/卖1 至 委买/卖10 10档行情的价格与委托量,但现在发现它可以获取到委托1档下逐笔委托队列。
比如当前的股票是涨停状态,你下了一笔订单有8888股去排板,那么这个函数可以获取当前委1档下的委托队列(前50名),比如下面返回的数据,可以看到你的8888手排在第9个委托队列,还有前后的单子的逐笔数量。
{'bid_grp': {1: [13.68, 15225900, 4905, {1: 33200, 2: 104800, 3: 1000, 4: 100, 5: 51800, 6: 6300, 7: 777800, 8: 184000, 9: 8888, 10: 100, 11: 600, 12: 141800, 13: 100, 14: 141800, 15: 2700,
16: 900, 17: 58600, 18: 2900, 19: 800, 20: 133800, 21: 2800, 22: 900, 23: 2900, 24: 800, 25: 400, 26: 400, 27: 48200, 28: 51800, 29: 99400, 30: 26600, 31: 81800, 32: 493000, 33: 427300, 34: 27700, 35: 2800, 36: 460500,
37: 170200, 38: 166500, 39: 24100, 40: 800, 41: 29300, 42: 500, 43: 500, 44: 500, 45: 2800, 46: 1300, 47: 61700, 48: 27000, 49: 500, 50: 78900}],
2: [13.67, 30200, 32],
3: [13.66, 11100, 16],
4: [13.65, 134400, 11],
5: [13.64, 8500, 7],
6: [13.63, 1000, 3],
7: [13.62, 200, 2],
8: [13.6, 7300, 17],
9: [13.59, 600, 2],
10: [13.58, 10700, 7]},
# 因为是涨停,所以委卖是空的,挂单就立马成交,委托队列是空的
'offer_grp': {1: [0.0, 0, 0, {}],
2: [0.0, 0, 0],
3: [0.0, 0, 0],
4: [0.0, 0, 0],
5: [0.0, 0, 0],
6: [0.0, 0, 0],
7: [0.0, 0, 0],
8: [0.0, 0, 0],
9: [0.0, 0, 0],
10: [0.0, 0, 0]}
}
所以这次ptrade的升级除了python版本的升级,还带来了更多粒度的数据,有利于高频策略的开发。
还有一些新功能的函数就等下次继续更新,记得点赞关注+收藏哦~
待续......
关注公众号: 查看全部
并且还发现居然可以免费使用L2逐笔数据,分时逐笔委托队列等高频毫秒级的数据
Ptrade接口文档已更新: https://ptradeapi.com
Python 3.5是2015 年发布,Python 3.11是2022 年发布。
性能上来说是有很大的提升,尤其对做回测和高频策略。
如果本身策略很简单或者日线交易的,影响可以忽略不计。
不过这个升级并不是个人可选的,只要你的Ptrade的券商升级了,就只能使用升级后的版本接口格式,旧代码需要做的修改来适配。
性能对比示例(Python 3.5 vs 3.11) By 豆包
以下是部分操作在 Python 3.5 和 3.11 中的性能对比(仅供参考):
并且相应的第三方库版本亦做了升级。
接口变动影响比较大的是pandas在 Python3.11 中,Pandas已不再支持Panel格式。
pandas里的Pannel类型是用于存储三维或以上的矩阵数据。
而升级后就不支持之前的多维行情数据格式。但笔者觉得现在更加统一和简单。
以前不同入参,有时候返回的是dataframe,有时候返回的是panel,比较混乱。
现在统一返回的dataframe. (或者返回dict,可以自己设定)
影响的API有get_history,get_price ,get_individual_transaction ,get_fundamentals等。
比如通过get_history获取的历史日线数据
count = 10
code_list = ['000695.SZ','001367.SZ']
df = get_history(count, frequency='1d', field=['open','close'], security_list=code_list, fq=None, include=False, fill='nan',is_dict=False)
print(type(df))
print(df)
返回的dataframe数据格式如下
<class 'pandas.core.frame.DataFrame'>
code open close
2025-05-15 000695.SZ NaN NaN
2025-05-16 000695.SZ NaN NaN
2025-05-19 000695.SZ 10.34 10.34
2025-05-20 000695.SZ 11.37 11.37
2025-05-21 000695.SZ 12.51 12.51
2025-05-22 000695.SZ 13.76 13.76
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
如果要提取 000695.SZ的数据,只需要
df[df['code']=='000695.SZ']就可以了。
code open close
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
然后dataframe提取收盘价或者开盘价
# 收盘价
df[df['code']=='001367.SZ']['close']
# 开盘价
df[df['code']=='001367.SZ']['open']
再拿收盘价来计算MACD:
# 计算 MACD 值
def MACD(series):
ema_short = series.ewm(span=12).mean()
ema_long = series.ewm(span=26).mean()
macd_series = ema_short - ema_long
return macd_series.iloc[-1]
close_price_series = df[df['code']=='001367.SZ']['close']
macd_val = MACD(close_price_series)
同理get_price,get_individual_transaction ,get_fundamentals与之类似。
并且在get_histroy的入参里面,多了一个is_dict的参数,默认是False,返回的是dataframe数据,如果设置为True,则返回的dict数据。
返回的有序字典(OrderDict)类型数据:(省略了部分类型)
{'001367.SZ', array([(20250509, 29.89, 29.58), (20250512, 29.7 , 29.6 ),
(20250513, 30.11, 29.96), (20250514, 29.96, 29.83),
(20250515, 29.8 , 30.18), (20250516, 30.13, 30.39),
(20250519, 30.46, 30.01), (20250520, 20.25, 20.08),
(20250521, 20.05, 20.7 ), (20250522, 20.98, 22.77)]
}
但感觉这种列表形式下,提取数据反而没有使用dataframe方便和直观,它获取数据时需要用下标提取。
但官网说,返回dict类型数据的速度比DataFrame,Panel类型数据有大幅提升,对速度有要求的,建议使用is_dict=True 读取上述数据格式。
获取L2逐笔数据
L2逐笔委托数据接口函数
get_individual_entrust(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
参数:
data_count: 数据条数,默认为50,最大为200(int);
start_pos: 起始位置,默认为0(int);
虽然一次只能获取200条,但配合start_pos游标可遍历获取全部数据。
示例代码:
获取股票001367.SZ封涨停时的最新的逐笔委托行情。
code_list = ['001367.SZ']
df = get_individual_entrust(code_list)
print(df[['business_time','hq_px','business_amount','order_no']])
输出数据如下,因数据列太多,为了美观只取了其中的4列:
时间戳,委托价格,委托数量,委托编号
因为当前已经是收盘状态,是从14:59:57.020往前取50条数据
business_time(时间戳) hq_px(委托价格) business_amount(委托数量) order_no(委托编号)
20250523145702150 24.60 100 32493957
20250523145714840 24.95 100 32505581
20250523145718430 25.05 1000 32509041
20250523145719840 25.05 1000 32510350
20250523145721750 25.05 400 32512000
20250523145727610 25.05 200 32517007
20250523145730270 25.05 400 32519085
20250523145730330 25.04 1600 32519133
20250523145732330 25.05 2900 32520779
20250523145740780 25.05 500 32527204
20250523145743550 25.05 400 32529290
20250523145743810 25.05 200 32529474
20250523145749460 25.05 4300 32533295
20250523145749910 25.05 1000 32533630
20250523145749960 25.05 300 32533666
# 省略若干.....
20250523145926790 25.05 100 32589496
20250523145927480 25.05 1200 32589844
20250523145936090 25.05 200 32594134
20250523145946600 25.05 300 32601758
20250523145946800 25.05 49100 32601865
20250523145950800 25.05 36800 32607381
20250523145953780 25.05 55200 32611265
20250523145954240 25.05 500 32611713
20250523145956830 25.05 55300 32614479
20250523145957020 25.04 8500 32614683
可以看到上面的有些1秒内有多个的委托单,每单的委托量和委托编号。
逐笔成交
同理,L2的逐笔成交数据函数的用法一样,但返回字段不同,成交的时候有成交方向,可以通过程序计算资金流入或流出。
get_individual_transaction(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
同样用上面的股票例子获取到的数据如下:
business_time hq_px business_amount business_direction
20250523145648440 0.00 2500 1
20250523145648970 0.00 3200 1
20250523145649300 0.00 100 1
20250523145649370 0.00 900 1
20250523145649880 0.00 1800 1
20250523145650150 0.00 800 1
20250523145650360 0.00 200 1
20250523145650400 0.00 500 1
20250523145650420 0.00 100 1
20250523145652050 0.00 800 1
# 省略若干.....
20250523145659220 0.00 24100 1
20250523145659550 0.00 700 1
20250523145659600 0.00 400 1
20250523150000000 25.05 100 0
20250523150000000 25.05 100 0
20250523150000000 25.05 1600 0
20250523150000000 25.05 800 0
20250523150000000 25.05 1730 0
20250523150000000 25.05 670 0
20250523150000000 25.05 2430 0
20250523150000000 25.05 1200 0
20250523150000000 25.05 9270 0
20250523150000000 25.05 148 0
20250523150000000 25.05 100 0
20250523150000000 25.05 200 0
20250523150000000 25.05 1000 0
20250523150000000 25.05 2000 0
business_direction是 成交方向,0是卖出,1是买入,从而判断该笔成交的资金是流入还是流出。
获取分时成交
get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50, is_dict=False)
这个分时成交函数可获取到当前和历史某个毫秒下,该笔总成交量下有多少笔子订单。
比如用上面的涨停股001367.SZ做示例
最后一刻3点的时候,成交了21348股,里面共有14笔成交。
time_stamp hq_px business_amount business_count
20250523143721000 25.05 100 1
20250523143724000 25.05 200 1
20250523143745000 25.05 444 1
20250523143809000 25.05 10000 2
20250523144024000 25.05 100 1
20250523144048000 25.05 1500 1
20250523144106000 25.05 300 1
20250523144112000 25.05 11692 2
20250523144124000 25.05 100 1
20250523144142000 25.05 100 1
20250523144157000 25.05 100 1
20250523144200000 25.05 2360 1
# 省略若干.....
20250523145415000 25.05 1381 1
20250523145421000 25.05 480 1
20250523145439000 25.05 100 1
20250523145451000 25.05 1753 1
20250523145521000 25.05 5384 3
20250523145539000 25.05 3600 2
20250523145557000 25.05 1000 1
20250523145609000 25.05 400 2
20250523145615000 25.05 100 1
20250523150000000 25.05 21348 14
get_gear_price 获取当前时刻的逐笔委托队列
这个函数的功能:获取委买/卖1 至 委买/卖10 10档行情的价格与委托量,但现在发现它可以获取到委托1档下逐笔委托队列。
比如当前的股票是涨停状态,你下了一笔订单有8888股去排板,那么这个函数可以获取当前委1档下的委托队列(前50名),比如下面返回的数据,可以看到你的8888手排在第9个委托队列,还有前后的单子的逐笔数量。
{'bid_grp': {1: [13.68, 15225900, 4905, {1: 33200, 2: 104800, 3: 1000, 4: 100, 5: 51800, 6: 6300, 7: 777800, 8: 184000, 9: 8888, 10: 100, 11: 600, 12: 141800, 13: 100, 14: 141800, 15: 2700,
16: 900, 17: 58600, 18: 2900, 19: 800, 20: 133800, 21: 2800, 22: 900, 23: 2900, 24: 800, 25: 400, 26: 400, 27: 48200, 28: 51800, 29: 99400, 30: 26600, 31: 81800, 32: 493000, 33: 427300, 34: 27700, 35: 2800, 36: 460500,
37: 170200, 38: 166500, 39: 24100, 40: 800, 41: 29300, 42: 500, 43: 500, 44: 500, 45: 2800, 46: 1300, 47: 61700, 48: 27000, 49: 500, 50: 78900}],
2: [13.67, 30200, 32],
3: [13.66, 11100, 16],
4: [13.65, 134400, 11],
5: [13.64, 8500, 7],
6: [13.63, 1000, 3],
7: [13.62, 200, 2],
8: [13.6, 7300, 17],
9: [13.59, 600, 2],
10: [13.58, 10700, 7]},
# 因为是涨停,所以委卖是空的,挂单就立马成交,委托队列是空的
'offer_grp': {1: [0.0, 0, 0, {}],
2: [0.0, 0, 0],
3: [0.0, 0, 0],
4: [0.0, 0, 0],
5: [0.0, 0, 0],
6: [0.0, 0, 0],
7: [0.0, 0, 0],
8: [0.0, 0, 0],
9: [0.0, 0, 0],
10: [0.0, 0, 0]}
}
所以这次ptrade的升级除了python版本的升级,还带来了更多粒度的数据,有利于高频策略的开发。
还有一些新功能的函数就等下次继续更新,记得点赞关注+收藏哦~
待续......
关注公众号:

ptrade的python版本升级到3.11, 部分数据返回格式也改变了,无语
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 222 次浏览 • 2025-05-07 14:22
返回数据可以为dataframe,也可以为dict。
为python3.5会根据数据入参不同,返回dataframe,pannel
而新的函数返回,只有dataframe,当然这很好。只是以前的代码需要改动做兼容。
而修改的地方不止这一处。
查看全部
Ptrade LOF跌停抄底T+0 程序
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 272 次浏览 • 2025-04-29 09:02
$黄金主题LOF(SZ161116)$
$港股小盘LOF(SZ161124)$
吃早餐的突然想到,快速写了个监控跌停,封单小于X就买入,冲高后止盈卖出,T+0 ptrade 自动交易。这样抄底就不用自己盯盘啦
查看全部
部署Ptrade deepseek编程AI助手
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 948 次浏览 • 2025-03-22 19:19
(第一行:根本没有ptrade_api这个库)
一个很大的原因,是互联网的残次不齐的语料污染了Deepseek的分析结果。很多不相关的广告或者垃圾内容进入到Deepseek的分析参考对象。三人成虎,Deepseek获取的3个网站都说那个图片里的猫是只老虎,那么它就真的认为它是只老虎。
其实我们可以把API文档作为知识库,提交给Deepseek,让它学习后再替我们编写Ptrade量化程序,代码的完成度会有很大的提升。甚至基本不用修改就可以直接运行。
本文手把手带大家,部署属于自己的量化交易AI编程助手。
当然,不需要高级硬件,也不用付费。0元购。
效果图:
本次依然使用腾讯云提供的Deepseek大模型来运行。
打开链接:https://lke.cloud.tencent.com/
点击大模型知识引擎,如果没有开通就点击开通。个人有免费的token额度可用,不收费。[图片]进去之后点击“新建应用", 名称可以任意填,
在模型这里选择 Deepseek-R1 或者 Deepseek-V3
它支持从本地文档导入和网页URL导入。
我们使用的API文档URL为:https://ptradeapi.com/
但笔者发现,它这个从URL获取数据的工程能力太弱了,获取到的数据只有标题,没有内容。
所以只好手工把网站的内容全选,然后复制保存到本地的word文档。
然后点击导入文档
这里需要几分钟的时间解析,内容审核。因为这个个人定制的知识库,是可以发布出去公开使用的,所以会对问答的内容做审核。
知识库里有对字符限制,免费的可以有个300w的字符可用。本次使用的ptrade api文档用了26w的字符,所以还可以上传更多的个人编写代码库。
知识库的状态变成"待发布"之后,可以点击"发布"按钮。
然后返回到应用配置,可以在提示词里添加一些限制。
比如目前的ptrade是基于python3.5的代码编写的。如果不限制,到时写出来的语法,比如用了诸如f-string的语法,ptrade会报错的。
f'{name}' -- wrong
'{}'.format(name) -- right
如果这里不限制,最后AI写出来的代码大概率在ptrade会报错。
设置完成之后,就完成了你个人专属的ptrade代码AI助手。
现在让它写一个ptrade网格交易程序
至少里面的策略逻辑代码框架整体问题不大,至少不再出现 from ptrade_api import * 这种不存在的包导入的情况。
但细节里还是有些bug的,比如卖出的时候是查enable_amount,而不是amount,因为当日买入的数量不一定能卖出。
run_interval(execute_grid, seconds=3),还有函数的入参不符合。
并没有get_price这个函数,要用get_snapshot
复制到ptrade里面跑下回测验证一下语法。
出现语法错误,依然需要小改一下。run_interval(context,execute_grid, seconds=3) 就好了。
当然上面的代码离实盘依然有一定的距离,依然依赖提问者技术水平,但作为代码辅助工具,对编写代码效率是很大的提升。
一些没写过复杂代码的自媒体经常尬吹,AI完成替代程序员的工作,其实大部分只是满足生成最基础的demo级别的通用任务,对于高度定制的业务,依然依赖提问者的技术广度和深度,对细节的掌控。
同样使用Deepseek,一个家庭主妇和张小龙,张小龙的确可能在完全不写代码的情况下使用Deepseek写出一个微信,而家庭主妇只能用Deepseek绘出一个类似的微信的UI,却无法运行起来。
但AI作为生产力工具,无疑大大减少了很多重复基础性工作,提升效率,让强者恒强。
需要开通Ptrade,QMT,掘金,Matic,BigQuant等量化工具的读者可以在公众号菜单获取联系方式。像BigQuan已经把AI编写实盘和回测的功能集成进去了。将公众号设为星标,第一时间收到笔者的最新文章啦。
查看全部
(第一行:根本没有ptrade_api这个库)
一个很大的原因,是互联网的残次不齐的语料污染了Deepseek的分析结果。很多不相关的广告或者垃圾内容进入到Deepseek的分析参考对象。三人成虎,Deepseek获取的3个网站都说那个图片里的猫是只老虎,那么它就真的认为它是只老虎。
其实我们可以把API文档作为知识库,提交给Deepseek,让它学习后再替我们编写Ptrade量化程序,代码的完成度会有很大的提升。甚至基本不用修改就可以直接运行。
本文手把手带大家,部署属于自己的量化交易AI编程助手。
当然,不需要高级硬件,也不用付费。0元购。
效果图:
本次依然使用腾讯云提供的Deepseek大模型来运行。
打开链接:https://lke.cloud.tencent.com/
点击大模型知识引擎,如果没有开通就点击开通。个人有免费的token额度可用,不收费。[图片]进去之后点击“新建应用", 名称可以任意填,
在模型这里选择 Deepseek-R1 或者 Deepseek-V3
它支持从本地文档导入和网页URL导入。
我们使用的API文档URL为:https://ptradeapi.com/
但笔者发现,它这个从URL获取数据的工程能力太弱了,获取到的数据只有标题,没有内容。
所以只好手工把网站的内容全选,然后复制保存到本地的word文档。
然后点击导入文档
这里需要几分钟的时间解析,内容审核。因为这个个人定制的知识库,是可以发布出去公开使用的,所以会对问答的内容做审核。
知识库里有对字符限制,免费的可以有个300w的字符可用。本次使用的ptrade api文档用了26w的字符,所以还可以上传更多的个人编写代码库。
知识库的状态变成"待发布"之后,可以点击"发布"按钮。
然后返回到应用配置,可以在提示词里添加一些限制。
比如目前的ptrade是基于python3.5的代码编写的。如果不限制,到时写出来的语法,比如用了诸如f-string的语法,ptrade会报错的。
f'{name}' -- wrong
'{}'.format(name) -- right
如果这里不限制,最后AI写出来的代码大概率在ptrade会报错。
设置完成之后,就完成了你个人专属的ptrade代码AI助手。
现在让它写一个ptrade网格交易程序
至少里面的策略逻辑代码框架整体问题不大,至少不再出现 from ptrade_api import * 这种不存在的包导入的情况。
但细节里还是有些bug的,比如卖出的时候是查enable_amount,而不是amount,因为当日买入的数量不一定能卖出。
run_interval(execute_grid, seconds=3),还有函数的入参不符合。
并没有get_price这个函数,要用get_snapshot
复制到ptrade里面跑下回测验证一下语法。
出现语法错误,依然需要小改一下。run_interval(context,execute_grid, seconds=3) 就好了。
当然上面的代码离实盘依然有一定的距离,依然依赖提问者技术水平,但作为代码辅助工具,对编写代码效率是很大的提升。
一些没写过复杂代码的自媒体经常尬吹,AI完成替代程序员的工作,其实大部分只是满足生成最基础的demo级别的通用任务,对于高度定制的业务,依然依赖提问者的技术广度和深度,对细节的掌控。
同样使用Deepseek,一个家庭主妇和张小龙,张小龙的确可能在完全不写代码的情况下使用Deepseek写出一个微信,而家庭主妇只能用Deepseek绘出一个类似的微信的UI,却无法运行起来。
但AI作为生产力工具,无疑大大减少了很多重复基础性工作,提升效率,让强者恒强。
需要开通Ptrade,QMT,掘金,Matic,BigQuant等量化工具的读者可以在公众号菜单获取联系方式。像BigQuan已经把AI编写实盘和回测的功能集成进去了。将公众号设为星标,第一时间收到笔者的最新文章啦。

ptrade支持北交所股票交易吗?
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 475 次浏览 • 2025-03-12 20:25
可以运行下面的代码:
def initialize(context):
# 初始化策略
g.security = "600570.SS"
set_universe(g.security)
run_daily(context, func,'20:13')
def handle_data(context, data):
print('公众号:可转债量化分析')
def func(context):
info = get_Ashares(date=None)
print(info)
它会打印沪深A股的代码:
北交所有83开头的,或者找一个北交所的股票代码,在输出里面找一下:
[code]2025-03-12 20:13:00 - INFO - ['600000.SS', '600004.SS', '600006.SS', '600007.SS', '600008.SS', '600009.SS', '600010.SS', '600011.SS', '600012.SS', '600015.SS', '600016.SS', '600017.SS', '600018.SS', '600019.SS', '600020.SS', '600021.SS', '600022.SS', '600023.SS', '600025.SS', '600026.SS', '600027.SS', '600028.SS', '600029.SS', '600030.SS', '600031.SS', '600032.SS', '600033.SS', '600035.SS', '600036.SS', '600037.SS', '600038.SS', '600039.SS', '600048.SS', '600050.SS', '600051.SS', '600052.SS', '600053.SS', '600054.SS', '600055.SS', '600056.SS', '600057.SS', '600058.SS', '600059.SS', '600060.SS', '600061.SS', '600062.SS', '600063.SS', '600064.SS', '600066.SS', '600067.SS', '600070.SS', '600071.SS', '600072.SS', '600073.SS', '600075.SS', '600076.SS', '600078.SS', '600079.SS', '600080.SS', '600081.SS', '600082.SS', '600084.SS', '600085.SS', '600088.SS', '600089.SS', '600094.SS', '600095.SS', '600096.SS', '600097.SS', '600098.SS', '600099.SS', '600100.SS', '600101.SS', '600103.SS', '600104.SS', '600105.SS', '600106.SS', '600107.SS', '600108.SS', '600109.SS', '600110.SS', '600111.SS', '600113.SS', '600114.SS', '600115.SS', '600116.SS', '600117.SS', '600118.SS', '600119.SS', '600120.SS', '600121.SS', '600123.SS', '600125.SS', '600126.SS', '600127.SS', '600128.SS', '600129.SS', '600130.SS', '600131.SS', '600132.SS', '600133.SS', '600135.SS', '600136.SS', '600137.SS', '600138.SS', '600141.SS', '600143.SS', '600148.SS', '600149.SS', '600150.SS', '600151.SS', '600152.SS', '600153.SS', '600155.SS', '600156.SS', '600157.SS', '600158.SS', '600159.SS', '600160.SS', '600161.SS', '600162.SS', '600163.SS', '600165.SS', '600166.SS', '600167.SS', '600168.SS', '600169.SS', '600170.SS', '600171.SS', '600172.SS', '600173.SS', '600176.SS', '600177.SS', '600178.SS', '600179.SS', '600180.SS', '600182.SS', '600183.SS', '600184.SS', '600185.SS', '600186.SS', '600187.SS', '600188.SS', '600189.SS', '600190.SS', '600191.SS', '600192.SS', '600193.SS', '600195.SS', '600196.SS', '600197.SS', '600198.SS', '600199.SS', '600200.SS', '600201.SS', '600202.SS', '600203.SS', '600206.SS', '600207.SS', '600208.SS', '600210.SS', '600211.SS', '600212.SS', '600215.SS', '600216.SS', '600217.SS', '600218.SS', '600219.SS', '600221.SS', '600222.SS', '600223.SS', '600226.SS', '600227.SS', '600228.SS', '600229.SS', '600230.SS', '600231.SS', '600232.SS', '600233.SS', '600234.SS', '600235.SS', '600236.SS', '600237.SS', '600238.SS', '600239.SS', '600241.SS', '600243.SS', '600246.SS', '600248.SS', '600249.SS', '600250.SS', '600251.SS', '600252.SS', '600255.SS', '600256.SS', '600257.SS', '600258.SS', '600259.SS', '600261.SS', '600262.SS', '600265.SS', '600266.SS', '600267.SS', '600268.SS', '600269.SS', '600271.SS', '600272.SS', '600273.SS', '600276.SS', '600278.SS', '600279.SS', '600280.SS', '600281.SS', '600282.SS', '600283.SS', '600284.SS', '600285.SS', '600287.SS', '600288.SS', '600289.SS', '600292.SS', '600293.SS', '600295.SS', '600298.SS', '600299.SS', '600300.SS', '600301.SS', '600302.SS', '600303.SS', '600305.SS', '600307.SS', '600308.SS', '600309.SS', '600310.SS', '600312.SS', '600313.SS', '600315.SS', '600316.SS', '600318.SS', '600319.SS', '600320.SS', '600322.SS', '600323.SS', '600325.SS', '600326.SS', '600327.SS', '600328.SS', '600329.SS', '600330.SS', '600331.SS', '600332.SS', '600333.SS', '600335.SS', '600336.SS', '600337.SS', '600338.SS', '600339.SS', '600340.SS', '600343.SS', '600345.SS', '600346.SS', '600348.SS', '600350.SS', '600351.SS', '600352.SS', '600353.SS', '600354.SS', '600355.SS', '600356.SS', '600358.SS', '600359.SS', '600360.SS', '600361.SS', '600362.SS', '600363.SS', '600365.SS', '600366.SS', '600367.SS', '600368.SS', '600369.SS', '600370.SS', '600371.SS', '600372.SS', '600373.SS', '600375.SS', '600376.SS', '600377.SS', '600378.SS', '600379.SS', '600380.SS', '600381.SS', '600382.SS', '600383.SS', '600386.SS', '600387.SS', '600388.SS', '600389.SS', '600390.SS', '600391.SS', '600392.SS', '600395.SS', '600396.SS', '600397.SS', '600398.SS', '600399.SS', '600400.SS', '600403.SS', '600405.SS', '600406.SS', '600408.SS', '600409.SS', '600410.SS', '600415.SS', '600416.SS', '600418.SS', '600419.SS', '600420.SS', '600421.SS', '600422.SS', '600423.SS', '600425.SS', '600426.SS', '600428.SS', '600429.SS', '600433.SS', '600435.SS', '600436.SS', '600438.SS', '600439.SS', '600444.SS', '600446.SS', '600448.SS', '600449.SS', '600452.SS', '600455.SS', '600456.SS', '600458.SS', '600459.SS', '600460.SS', '600461.SS', '600462.SS', '600463.SS', '600467.SS', '600468.SS', '600469.SS', '600470.SS', '600475.SS', '600476.SS', '600477.SS', '600478.SS', '600479.SS', '600480.SS', '600481.SS', '600482.SS', '600483.SS', '600486.SS', '600487.SS', '600488.SS', '600489.SS', '600490.SS', '600491.SS', '600493.SS', '600495.SS', '600496.SS', '600497.SS', '600498.SS', '600499.SS', '600500.SS', '600501.SS', '600502.SS', '600503.SS', '600505.SS', '600506.SS', '600507.SS', '600508.SS', '600509.SS', '600510.SS', '600511.SS', '600512.SS', '600513.SS', '600515.SS', '600516.SS', '600517.SS', '600518.SS', '600519.SS', '600520.SS', '600521.SS', '600522.SS', '600523.SS', '600525.SS', '600526.SS', '600527.SS', '600528.SS', '600529.SS', '600530.SS', '600531.SS', '600533.SS', '600535.SS', '600536.SS', '600537.SS', '600538.SS', '600539.SS', '600540.SS', '600543.SS', '600545.SS', '600546.SS', '600547.SS', '600548.SS', '600549.SS', '600550.SS', '600551.SS', '600552.SS', '600556.SS', '600557.SS', '600558.SS', '600559.SS', '600560.SS', '600561.SS', '600562.SS', '600563.SS', '600566.SS', '600567.SS', '600568.SS', '600569.SS', '600570.SS', '600571.SS', '600572.SS', '600573.SS', '600575.SS', '600576.SS', '600577.SS', '600578.SS', '600579.SS', '600580.SS', '600581.SS', '600582.SS', '600583.SS', '600584.SS', '600585.SS', '600586.SS', '600587.SS', '600588.SS', '600589.SS', '600590.SS', '600592.SS', '600593.SS', '600594.SS', '600595.SS', '600596.SS', '600597.SS', '600598.SS', '600599.SS', '600600.SS', '600601.SS', '600602.SS', '600603.SS', '600604.SS', '600605.SS', '600606.SS', '600608.SS', '600609.SS', '600610.SS', '600611.SS', '600612.SS', '600613.SS', '600615.SS', '600616.SS', '600617.SS', '600618.SS', '600619.SS', '600620.SS', '600621.SS', '600622.SS', '600623.SS', '600624.SS', '600626.SS', '600628.SS', '600629.SS', '600630.SS', '600633.SS', '600635.SS', '600636.SS', '600637.SS', '600638.SS', '600639.SS', '600640.SS', '600641.SS', '600642.SS', '600643.SS', '600644.SS', '600645.SS', '600648.SS', '600649.SS', '600650.SS', '600651.SS', '600653.SS', '600654.SS', '600655.SS', '600657.SS', '600658.SS', '600660.SS', '600661.SS', '600662.SS', '600663.SS', '600664.SS', '600665.SS', '600666.SS', '600667.SS', '600668.SS', '600671.SS', '600673.SS', '600674.SS', '600675.SS', '600676.SS', '600678.SS', '600679.SS', '600681.SS', '600682.SS', '600683.SS', '600684.SS', '600685.SS', '600686.SS', '600688.SS', '600689.SS', '600690.SS', '600691.SS', '600692.SS', '600693.SS', '600694.SS', '600696.SS', '600697.SS', '600698.SS', '600699.SS', '600702.SS', '600703.SS', '600704.SS', '600705.SS', '600706.SS', '600707.SS', '600708.SS', '600710.SS', '600711.SS', '600712.SS', '600713.SS', '600714.SS', '600715.SS', '600716.SS', '600717.SS', '600718.SS', '600719.SS', '600720.SS', '600721.SS', '600722.SS', '600724.SS', '600725.SS', '600726.SS', '600727.SS', '600728.SS', '600729.SS', '600730.SS', '600731.SS', '600732.SS', '600733.SS', '600734.SS', '600735.SS', '600736.SS', '600737.SS', '600738.SS', '600739.SS', '600740.SS', '600741.SS', '600742.SS', '600743.SS', '600744.SS', '600745.SS', '600746.SS', '600748.SS', '600749.SS', '600750.SS', '600751.SS', '600753.SS', '600754.SS', '600755.SS', '600756.SS', '600757.SS', '600758.SS', '600759.SS', '600760.SS', '600761.SS', '600763.SS', '600764.SS', '600765.SS', '600768.SS', '600769.SS', '600770.SS', '600771.SS', '600773.SS', '600774.SS', '600775.SS', '600776.SS', '600777.SS', '600778.SS', '600779.SS', '600780.SS', '600782.SS', '600783.SS', '600784.SS', '600785.SS', '600787.SS', '600789.SS', '600790.SS', '600791.SS', '600792.SS', '600793.SS', '600794.SS', '600795.SS', '600796.SS', '600797.SS', '600798.SS', '600800.SS', '600801.SS', '600802.SS', '600803.SS', '600804.SS', '600805.SS', '600807.SS', '600808.SS', '600809.SS', '600810.SS', '600811.SS', '600812.SS', '600814.SS', '600815.SS', '600816.SS', '600817.SS', '600818.SS', '600819.SS', '600820.SS', '600821.SS', '600822.SS', '600824.SS', '600825.SS', '600826.SS', '600827.SS', '600828.SS', '600829.SS', '600830.SS', '600831.SS', '600833.SS', '600834.SS', '600835.SS', '600838.SS', '600839.SS', '600841.SS', '600843.SS', '600844.SS', '600845.SS', '600846.SS', '600847.SS', '600848.SS', '600850.SS', '600851.SS', '600853.SS', '600854.SS', '600855.SS', '600857.SS', '600858.SS', '600859.SS', '600860.SS', '600861.SS', '600862.SS', '600863.SS', '600864.SS', '600865.SS', '600866.SS', '600867.SS', '600868.SS', '600869.SS', '600871.SS', '600872.SS', '600873.SS', '600874.SS', '600875.SS', '600876.SS', '600877.SS', '600879.SS', '600880.SS', '600881.SS', '600882.SS', '600883.SS', '600884.SS', '600885.SS', '600886.SS', '600887.SS', '600888.SS', '600889.SS', '600892.SS', '600893.SS', '600894.SS', '600895.SS', '600897.SS', '600900.SS', '600901.SS', '600903.SS', '600905.SS', '600906.SS', '600908.SS', '600909.SS', '600916.SS', '600917.SS', '600918.SS', '600919.SS', '600925.SS', '600926.SS', '600927.SS', '600928.SS', '600929.SS', '600933.SS', '600935.SS', '600936.SS', '600938.SS', '600939.SS', '600941.SS', '600955.SS', '600956.SS', '600958.SS', '600959.SS', '600960.SS', '600961.SS', '600962.SS', '600963.SS', '600965.SS', '600966.SS', '600967.SS', '600968.SS', '600969.SS', '600970.SS', '600971.SS', '600973.SS', '600975.SS', '600976.SS', '600977.SS', '600979.SS', '600980.SS', '600981.SS', '600982.SS', '600983.SS', '600984.SS', '600985.SS', '600986.SS', '600987.SS', '600988.SS', '600989.SS', '600990.SS', '600992.SS', '600993.SS', '600995.SS', '600996.SS', '600997.SS', '600998.SS', '600999.SS', '601000.SS', '601001.SS', '601002.SS', '601003.SS', '601005.SS', '601006.SS', '601007.SS', '601008.SS', '601009.SS', '601010.SS', '601011.SS', '601012.SS', '601015.SS', '601016.SS', '601018.SS', '601019.SS', '601020.SS', '601021.SS', '601022.SS', '601028.SS', '601033.SS', '601038.SS', '601058.SS', '601059.SS', '601061.SS', '601065.SS', '601066.SS', '601068.SS', '601069.SS', '601077.SS', '601083.SS', '601086.SS', '601088.SS', '601089.SS', '601096.SS', '601098.SS', '601099.SS', '601100.SS', '601101.SS', '601106.SS', '601107.SS', '601108.SS', '601111.SS', '601113.SS', '601116.SS', '601117.SS', '601118.SS', '601121.SS', '601126.SS', '601127.SS', '601128.SS', '601133.SS', '601136.SS', '601137.SS', '601138.SS', '601139.SS', '601155.SS', '601156.SS', '601158.SS', '601162.SS', '601163.SS', '601166.SS', '601168.SS', '601169.SS', '601177.SS', '601179.SS', '601186.SS', '601187.SS', '601188.SS', '601198.SS', '601199.SS', '601200.SS', '601208.SS', '601211.SS', '601212.SS', '601216.SS', '601218.SS', '601222.SS', '601225.SS', '601226.SS', '601228.SS', '601229.SS', '601231.SS', '601233.SS', '601236.SS', '601238.SS', '601279.SS', '601288.SS', '601298.SS', '601311.SS', '601318.SS', '601319.SS', '601326.SS', '601328.SS', '601330.SS', '601333.SS', '601336.SS', '601339.SS', '601360.SS', '601366.SS', '601368.SS', '601369.SS', '601375.SS', '601377.SS', '601388.SS', '601390.SS', '601398.SS', '601399.SS', '601456.SS', '601500.SS', '601512.SS', '601515.SS', '601518.SS', '601519.SS', '601528.SS', '601555.SS', '601566.SS', '601567.SS', '601568.SS', '601577.SS', '601579.SS', '601588.SS', '601595.SS', '601598.SS', '601599.SS', '601600.SS', '601601.SS', '601606.SS', '601607.SS', '601608.SS', '601609.SS', '601611.SS', '601615.SS', '601616.SS', '601618.SS', '601619.SS', '601628.SS', '601633.SS', '601636.SS', '601658.SS', '601665.SS', '601666.SS', '601668.SS', '601669.SS', '601677.SS', '601678.SS', '601686.SS', '601688.SS', '601689.SS', '601696.SS', '601698.SS', '601699.SS', '601700.SS', '601702.SS', '601717.SS', '601718.SS', '601727.SS', '601728.SS', '601766.SS', '601777.SS', '601778.SS', '601788.SS', '601789.SS', '601798.SS', '601799.SS', '601800.SS', '601801.SS', '601808.SS', '601811.SS', '601816.SS', '601818.SS', '601825.SS', '601827.SS', '601828.SS', '601838.SS', '601857.SS', '601858.SS', '601860.SS', '601865.SS', '601866.SS', '601868.SS', '601869.SS', '601872.SS', '601877.SS', '601878.SS', '601880.SS', '601881.SS', '601882.SS', '601886.SS', '601888.SS', '601890.SS', '601898.SS', '601899.SS', '601900.SS', '601901.SS', '601908.SS', '601916.SS', '601918.SS', '601919.SS', '601921.SS', '601928.SS', '601929.SS', '601933.SS', '601939.SS', '601949.SS', '601952.SS', '601956.SS', '601958.SS', '601963.SS', '601965.SS', '601966.SS', '601968.SS', '601969.SS', '601975.SS', '601985.SS', '601988.SS', '601989.SS', '601990.SS', '601991.SS', '601992.SS', '601995.SS', '601996.SS', '601997.SS', '601998.SS', '601999.SS', '603000.SS', '603001.SS', '603002.SS', '603003.SS', '603004.SS', '603005.SS', '603006.SS', '603007.SS', '603008.SS', '603009.SS', '603010.SS', '603011.SS', '603012.SS', '603013.SS', '603015.SS', '603016.SS', '603017.SS', '603018.SS', '603019.SS', '603020.SS', '603021.SS', '603022.SS', '603023.SS', '603025.SS', '603026.SS', '603027.SS', '603028.SS', '603029.SS', '603030.SS', '603031.SS', '603032.SS', '603033.SS', '603035.SS', '603036.SS', '603037.SS', '603038.SS', '603039.SS', '603040.SS', '603041.SS', '603042.SS', '603043.SS', '603045.SS', '603048.SS', '603050.SS', '603051.SS', '603052.SS', '603053.SS', '603055.SS', '603056.SS', '603057.SS', '603058.SS', '603059.SS', '603060.SS', '603061.SS', '603062.SS', '603063.SS', '603065.SS', '603066.SS', '603067.SS', '603068.SS', '603069.SS', '603070.SS', '603071.SS', '603072.SS', '603073.SS', '603075.SS', '603076.SS', '603077.SS', '603078.SS', '603079.SS', '603080.SS', '603081.SS', '603082.SS', '603083.SS', '603085.SS', '603086.SS', '603087.SS', '603088.SS', '603089.SS', '603090.SS', '603091.SS', '603093.SS', '603095.SS', '603096.SS', '603097.SS', '603098.SS', '603099.SS', '603100.SS', '603101.SS', '603102.SS', '603103.SS', '603105.SS', '603106.SS', '603107.SS', '603108.SS', '603109.SS', '603110.SS', '603111.SS', '603112.SS', '603113.SS', '603115.SS', '603116.SS', '603117.SS', '603118.SS', '603119.SS', '603121.SS', '603122.SS', '603123.SS', '603125.SS', '603126.SS', '603127.SS', '603128.SS', '603129.SS', '603130.SS', '603131.SS', '603132.SS', '603135.SS', '603136.SS', '603137.SS', '603138.SS', '603139.SS', '603150.SS', '603151.SS', '603153.SS', '603155.SS', '603156.SS', '603158.SS', '603159.SS', '603160.SS', '603161.SS', '603162.SS', '603163.SS', '603165.SS', '603166.SS', '603167.SS', '603168.SS', '603169.SS', '603170.SS', '603171.SS', '603172.SS', '603173.SS', '603176.SS', '603177.SS', '603178.SS', '603179.SS', '603180.SS', '603181.SS', '603182.SS', '603183.SS', '603185.SS', '603186.SS', '603187.SS', '603188.SS', '603189.SS', '603190.SS', '603191.SS', '603192.SS', '603193.SS', '603194.SS', '603195.SS', '603196.SS', '603197.SS', '603198.SS', '603199.SS', '603200.SS', '603201.SS', '603203.SS', '603205.SS', '603206.SS', '603207.SS', '603208.SS', '603209.SS', '603211.SS', '603212.SS', '603213.SS', '603214.SS', '603215.SS', '603216.SS', '603217.SS', '603218.SS', '603219.SS', '603220.SS', '603221.SS', '603222.SS', '603223.SS', '603225.SS', '603226.SS', '603227.SS', '603228.SS', '603229.SS', '603230.SS', '603231.SS', '603232.SS', '603233.SS', '603235.SS', '603236.SS', '603237.SS', '603238.SS', '603239.SS', '603255.SS', '603256.SS', '603258.SS', '603259.SS', '603260.SS', '603261.SS', '603266.SS', '603267.SS', '603268.SS', '603269.SS', '603270.SS', '603271.SS', '603272.SS', '603273.SS', '603275.SS', '603276.SS', '603277.SS', '603278.SS', '603279.SS', '603280.SS', '603281.SS', '603282.SS', '603283.SS', '603285.SS', '603286.SS', '603288.SS', '603289.SS', '603290.SS', '603291.SS', '603296.SS', '603297.SS', '603298.SS', '603299.SS', '603300.SS', '603301.SS', '603303.SS', '603305.SS', '603306.SS', '603307.SS', '603308.SS', '603309.SS', '603310.SS', '603311.SS', '603312.SS', '603313.SS', '603315.SS', '603316.SS', '603317.SS', '603318.SS', '603319.SS', '603320.SS', '603321.SS', '603322.SS', '603323.SS', '603324.SS', '603325.SS', '603326.SS', '603327.SS', '603328.SS', '603329.SS', '603330.SS', '603331.SS', '603332.SS', '603333.SS', '603335.SS', '603336.SS', '603337.SS', '603338.SS', '603339.SS', '603341.SS', '603344.SS', '603345.SS', '603348.SS', '603350.SS', '603351.SS', '603353.SS', '603355.SS', '603356.SS', '603357.SS', '603358.SS', '603359.SS', '603360.SS', '603363.SS', '603365.SS', '603366.SS', '603367.SS', '603368.SS', '603369.SS', '603373.SS', '603375.SS', '603377.SS', '603378.SS', '603379.SS', '603380.SS', '603381.SS', '603383.SS', '603385.SS', '603386.SS', '603387.SS', '603388.SS', '603389.SS', '603390.SS', '603391.SS', '603392.SS', '603393.SS', '603395.SS', '603396.SS', '603398.SS', '603399.SS', '603408.SS', '603409.SS', '603416.SS', '603421.SS', '603429.SS', '603439.SS', '603444.SS', '603456.SS', '603458.SS', '603466.SS', '603477.SS', '603486.SS', '603488.SS', '603489.SS', '603496.SS', '603499.SS', '603500.SS', '603501.SS', '603505.SS', '603506.SS', '603507.SS', '603508.SS', '603511.SS', '603515.SS', '603516.SS', '603517.SS', '603518.SS', '603519.SS', '603520.SS', '603527.SS', '603528.SS', '603529.SS', '603530.SS', '603533.SS', '603535.SS', '603536.SS', '603538.SS', '603551.SS', '603556.SS', '603557.SS', '603558.SS', '603559.SS', '603565.SS', '603566.SS', '603567.SS', '603568.SS', '603569.SS', '603577.SS', '603578.SS', '603579.SS', '603580.SS', '603583.SS', '603585.SS', '603586.SS', '603587.SS', '603588.SS', '603589.SS', '603590.SS', '603595.SS', '603596.SS', '603598.SS', '603599.SS', '603600.SS', '603601.SS', '603602.SS', '603605.SS', '603606.SS', '603607.SS', '603608.SS', '603609.SS', '603610.SS', '603611.SS', '603612.SS', '603613.SS', '603615.SS', '603616.SS', '603617.SS', '603618.SS', '603619.SS', '603626.SS', '603628.SS', '603629.SS', '603630.SS', '603633.SS', '603636.SS', '603637.SS', '603638.SS', '603639.SS', '603648.SS', '603650.SS', '603655.SS', '603656.SS', '603657.SS', '603658.SS', '603659.SS', '603660.SS', '603661.SS', '603662.SS', '603663.SS', '603665.SS', '603666.SS', '603667.SS', '603668.SS', '603669.SS', '603676.SS', '603677.SS', '603678.SS', '603679.SS', '603680.SS', '603681.SS', '603682.SS', '603683.SS', '603685.SS', '603686.SS', '603687.SS', '603688.SS', '603689.SS', '603690.SS', '603693.SS', '603696.SS', '603697.SS', '603698.SS', '603699.SS', '603700.SS', '603701.SS', '603703.SS', '603706.SS', '603707.SS', '603708.SS', '603709.SS', '603711.SS', '603712.SS', '603713.SS', '603716.SS', '603717.SS', '603718.SS', '603719.SS', '603721.SS', '603722.SS', '603725.SS', '603726.SS', '603727.SS', '603728.SS', '603729.SS', '603730.SS', '603733.SS', '603737.SS', '603738.SS', '603739.SS', '603755.SS', '603757.SS', '603758.SS', '603759.SS', '603766.SS', '603767.SS', '603768.SS', '603773.SS', '603776.SS', '603777.SS', '603778.SS', '603779.SS', '603786.SS', '603787.SS', '603788.SS', '603789.SS', '603790.SS', '603797.SS', '603798.SS', '603799.SS', '603800.SS', '603801.SS', '603803.SS', '603806.SS', '603808.SS', '603809.SS', '603810.SS', '603811.SS', '603813.SS', '603815.SS', '603816.SS', '603817.SS', '603818.SS', '603819.SS', '603822.SS', '603823.SS', '603825.SS', '603826.SS', '603828.SS', '603829.SS', '603833.SS', '603836.SS', '603838.SS', '603839.SS', '603843.SS', '603848.SS', '603855.SS', '603856.SS', '603858.SS', '603859.SS', '603860.SS', '603861.SS', '603863.SS', '603866.SS', '603867.SS', '603868.SS', '603869.SS', '603871.SS', '603876.SS', '603877.SS', '603878.SS', '603879.SS', '603880.SS', '603881.SS', '603882.SS', '603883.SS', '603885.SS', '603886.SS', '603887.SS', '603888.SS', '603889.SS', '603890.SS', '603893.SS', '603895.SS', '603896.SS', '603897.SS', '603898.SS', '603899.SS', '603900.SS', '603901.SS', '603903.SS', '603906.SS', '603908.SS', '603909.SS', '603912.SS', '603915.SS', '603916.SS', '603917.SS', '603918.SS', '603919.SS', '603920.SS', '603922.SS', '603926.SS', '603927.SS', '603928.SS', '603929.SS', '603931.SS', '603933.SS', '603936.SS', '603937.SS', '603938.SS', '603939.SS', '603948.SS', '603949.SS', '603950.SS', '603955.SS', '603956.SS', '603958.SS', '603959.SS', '603960.SS', '603963.SS', '603966.SS', '603967.SS', '603968.SS', '603969.SS', '603970.SS', '603976.SS', '603977.SS', '603978.SS', '603979.SS', '603980.SS', '603982.SS', '603983.SS', '603985.SS', '603986.SS', '603987.SS', '603988.SS', '603989.SS', '603990.SS', '603991.SS', '603992.SS', '603993.SS', '603995.SS', '603997.SS', '603998.SS', '603999.SS', '605001.SS', '605003.SS', '605005.SS', '605006.SS', '605007.SS', '605008.SS', '605009.SS', '605011.SS', '605016.SS', '605018.SS', '605020.SS', '605028.SS', '605033.SS', '605050.SS', '605055.SS', '605056.SS', '605058.SS', '605060.SS', '605066.SS', '605068.SS', '605069.SS', '605077.SS', '605080.SS', '605081.SS', '605086.SS', '605088.SS', '605089.SS', '605090.SS', '605098.SS', '605099.SS', '605100.SS', '605108.SS', '605111.SS', '605116.SS', '605117.SS', '605118.SS', '605122.SS', '605123.SS', '605128.SS', '605133.SS', '605136.SS', '605138.SS', '605151.SS', '605155.SS', '605158.SS', '605162.SS', '605166.SS', '605167.SS', '605168.SS', '605169.SS', '605177.SS', '605178.SS', '605179.SS', '605180.SS', '605183.SS', '605186.SS', '605188.SS', '605189.SS', '605196.SS', '605198.SS', '605199.SS', '605208.SS', '605218.SS', '605222.SS', '605228.SS', '605255.SS', '605258.SS', '605259.SS', '605266.SS', '605268.SS', '605277.SS', '605286.SS', '605287.SS', '605288.SS', '605289.SS', '605296.SS', '605298.SS', '605299.SS', '605300.SS', '605303.SS', '605305.SS', '605318.SS', '605319.SS', '605333.SS', '605336.SS', '605337.SS', '605338.SS', '605339.SS', '605358.SS', '605365.SS', '605366.SS', '605368.SS', '605369.SS', '605376.SS', '605377.SS', '605378.SS', '605388.SS', '605389.SS', '605398.SS', '605399.SS', '605488.SS', '605499.SS', '605500.SS', '605507.SS', '605555.SS', '605566.SS', '605567.SS', '605577.SS', '605580.SS', '605588.SS', '605589.SS', '605598.SS', '605599.SS', '000001.SZ', '000002.SZ', '000004.SZ', '000006.SZ', '000007.SZ', '000008.SZ', '000009.SZ', '000010.SZ', '000011.SZ', '000012.SZ', '000014.SZ', '000016.SZ', '000017.SZ', '000019.SZ', '000020.SZ', '000021.SZ', '000025.SZ', '000026.SZ', '000027.SZ', '000028.SZ', '000029.SZ', '000030.SZ', '000031.SZ', '000032.SZ', '000034.SZ', '000035.SZ', '000036.SZ', '000037.SZ', '000039.SZ', '000040.SZ', '000042.SZ', '000045.SZ', '000048.SZ', '000049.SZ', '000050.SZ', '000055.SZ', '000056.SZ', '000058.SZ', '000059.SZ', '000060.SZ', '000061.SZ', '000062.SZ', '000063.SZ', '000065.SZ', '000066.SZ', '000068.SZ', '000069.SZ', '000070.SZ', '000078.SZ', '000088.SZ', '000089.SZ', '000090.SZ', '000096.SZ', '000099.SZ', '000100.SZ', '000151.SZ', '000153.SZ', '000155.SZ', '000156.SZ', '000157.SZ', '000158.SZ', '000159.SZ', '000166.SZ', '000301.SZ', '000333.SZ', '000338.SZ', '000400.SZ', '000401.SZ', '000402.SZ', '000403.SZ', '000404.SZ', '000407.SZ', '000408.SZ', '000409.SZ', '000410.SZ', '000411.SZ', '000415.SZ', '000417.SZ', '000419.SZ', '000420.SZ', '000421.SZ', '000422.SZ', '000423.SZ', '000425.SZ', '000426.SZ', '000428.SZ', '000429.SZ', '000430.SZ', '000488.SZ', '000498.SZ', '000501.SZ', '000503.SZ', '000504.SZ', '000505.SZ', '000506.SZ', '000507.SZ', '000509.SZ', '000510.SZ', '000513.SZ', '000514.SZ', '000516.SZ', '000517.SZ', '000518.SZ', '000519.SZ', '000520.SZ', '000521.SZ', '000523.SZ', '000524.SZ', '000525.SZ', '000526.SZ', '000528.SZ', '000529.SZ', '000530.SZ', '000531.SZ', '000532.SZ', '000533.SZ', '000534.SZ', '000536.SZ', '000537.SZ', '000538.SZ', '000539.SZ', '000541.SZ', '000543.SZ', '000544.SZ', '000545.SZ', '000546.SZ', '000547.SZ', '000548.SZ', '000550.SZ', '000551.SZ', '000552.SZ', '000553.SZ', '000554.SZ', '000555.SZ', '000557.SZ', '000558.SZ', '000559.SZ', '000560.SZ', '000561.SZ', '000563.SZ', '000564.SZ', '000565.SZ', '000566.SZ', '000567.SZ', '000568.SZ', '000570.SZ', '000571.SZ', '000572.SZ', '000573.SZ', '000576.SZ', '000581.SZ', '000582.SZ', '000584.SZ', '000586.SZ', '000589.SZ', '000590.SZ', '000591.SZ', '000592.SZ', '000593.SZ', '000595.SZ', '000596.SZ', '000597.SZ', '000598.SZ', '000599.SZ', '000600.SZ', '000601.SZ', '000603.SZ', '000605.SZ', '000607.SZ', '000608.SZ', '000609.SZ', '000610.SZ', '000612.SZ', '000615.SZ', '000617.SZ', '000619.SZ', '000620.SZ', '000622.SZ', '000623.SZ', '000625.SZ', '000626.SZ', '000627.SZ', '000628.SZ', '000629.SZ', '000630.SZ', '000631.SZ', '000632.SZ', '000633.SZ', '000635.SZ', '000636.SZ', '000637.SZ', '000638.SZ', '000639.SZ', '000650.SZ', '000651.SZ', '000652.SZ', '000655.SZ', '000656.SZ', '000657.SZ', '000659.SZ', '000661.SZ', '000663.SZ', '000665.SZ', '000668.SZ', '000669.SZ', '000670.SZ', '000672.SZ', '000676.SZ', '000677.SZ', '000678.SZ', '000679.SZ', '000680.SZ', '000681.SZ', '000682.SZ', '000683.SZ', '000685.SZ', '000686.SZ', '000688.SZ', '000690.SZ', '000691.SZ', '000692.SZ', '000695.SZ', '000697.SZ', '000698.SZ', '000700.SZ', '000701.SZ', '000702.SZ', '000703.SZ', '000705.SZ', '000707.SZ', '000708.SZ', '000709.SZ', '000710.SZ', '000711.SZ', '000712.SZ', '000713.SZ', '000715.SZ', '000716.SZ', '000717.SZ', '000718.SZ', '000719.SZ', '000720.SZ', '000721.SZ', '000722.SZ', '000723.SZ', '000725.SZ', '000726.SZ', '000727.SZ', '000728.SZ', '000729.SZ', '000731.SZ', '000733.SZ', '000735.SZ', '000736.SZ', '000737.SZ', '000738.SZ', '000739.SZ', '000750.SZ', '000751.SZ', '000752.SZ', '000753.SZ', '000755.SZ', '000756.SZ', '000757.SZ', '000758.SZ', '000759.SZ', '000761.SZ', '000762.SZ', '000766.SZ', '000767.SZ', '000768.SZ', '000776.SZ', '000777.SZ', '000778.SZ', '000779.SZ', '000782.SZ', '000783.SZ', '000785.SZ', '000786.SZ', '000788.SZ', '000789.SZ', '000790.SZ', '000791.SZ', '000792.SZ', '000793.SZ', '000795.SZ', '000796.SZ', '000797.SZ', '000798.SZ', '000799.SZ', '000800.SZ', '000801.SZ', '000802.SZ', '000803.SZ', '000807.SZ', '000809.SZ', '000810.SZ', '000811.SZ', '000812.SZ', '000813.SZ', '000815.SZ', '000816.SZ', '000818.SZ', '000819.SZ', '000820.SZ', '000821.SZ', '000822.SZ', '000823.SZ', '000825.SZ', '000826.SZ', '000828.SZ', '000829.SZ', '000830.SZ', '000831.SZ', '000833.SZ', '000837.SZ', '000838.SZ', '000839.SZ', '000848.SZ', '000850.SZ', '000851.SZ', '000852.SZ', '000856.SZ', '000858.SZ', '000859.SZ', '000860.SZ', '000862.SZ', '000863.SZ', '000868.SZ', '000869.SZ', '000875.SZ', '000876.SZ', '000877.SZ', '000878.SZ', '000880.SZ', '000881.SZ', '000882.SZ', '000883.SZ', '000885.SZ', '000886.SZ', '000887.SZ', '000888.SZ', '000889.SZ', '000890.SZ', '000892.SZ', '000893.SZ', '000895.SZ', '000897.SZ', '000898.SZ', '000899.SZ', '000900.SZ', '000901.SZ', '000902.SZ', '000903.SZ', '000905.SZ', '000906.SZ', '000908.SZ', '000909.SZ', '000910.SZ', '000911.SZ', '000912.SZ', '000913.SZ', '000915.SZ', '000917.SZ', '000919.SZ', '000920.SZ', '000921.SZ', '000922.SZ', '000923.SZ', '000925.SZ', '000926.SZ', '000927.SZ', '000928.SZ', '000929.SZ', '000930.SZ', '000931.SZ', '000932.SZ', '000933.SZ', '000935.SZ', '000936.SZ', '000937.SZ', '000938.SZ', '000948.SZ', '000949.SZ', '000950.SZ', '000951.SZ', '000952.SZ', '000953.SZ', '000955.SZ', '000957.SZ', '000958.SZ', '000959.SZ', '000960.SZ', '000962.SZ', '000963.SZ', '000965.SZ', '000966.SZ', '000967.SZ', '000968.SZ', '000969.SZ', '000970.SZ', '000972.SZ', '000973.SZ', '000975.SZ', '000977.SZ', '000978.SZ', '000980.SZ', '000981.SZ', '000983.SZ', '000985.SZ', '000987.SZ', '000988.SZ', '000989.SZ', '000990.SZ', '000993.SZ', '000995.SZ', '000997.SZ', '000998.SZ', '000999.SZ', '001201.SZ', '001202.SZ', '001203.SZ', '001205.SZ', '001206.SZ', '001207.SZ', '001208.SZ', '001209.SZ', '001210.SZ', '001211.SZ', '001212.SZ', '001213.SZ', '001215.SZ', '001216.SZ', '001217.SZ', '001218.SZ', '001219.SZ', '001222.SZ', '001223.SZ', '001225.SZ', '001226.SZ', '001227.SZ', '001228.SZ', '001229.SZ', '001230.SZ', '001231.SZ', '001234.SZ', '001236.SZ', '001238.SZ', '001239.SZ', '001255.SZ', '001256.SZ', '001258.SZ', '001259.SZ', '001260.SZ', '001266.SZ', '001267.SZ', '001268.SZ', '001269.SZ', '001270.SZ', '001277.SZ', '001278.SZ', '001279.SZ', '001282.SZ', '001283.SZ', '001286.SZ', '001287.SZ', '001288.SZ', '001289.SZ', '001296.SZ', '001298.SZ', '001299.SZ', '001300.SZ', '001301.SZ', '001306.SZ', '001308.SZ', '001309.SZ', '001311.SZ', '001313.SZ', '001314.SZ', '001316.SZ', '001317.SZ', '001318.SZ', '001319.SZ', '001322.SZ', '001323.SZ', '001324.SZ', '001326.SZ', '001328.SZ', '001330.SZ', '001331.SZ', '001332.SZ', '001333.SZ', '001336.SZ', '001337.SZ', '001338.SZ', '001339.SZ', '001356.SZ', '001358.SZ', '001359.SZ', '001360.SZ', '001366.SZ', '001367.SZ', '001368.SZ', '001373.SZ', '001376.SZ', '001378.SZ', '001379.SZ', '001380.SZ', '001387.SZ', '001389.SZ', '001391.SZ', '001395.SZ', '001696.SZ', '001872.SZ', '001896.SZ', '001914.SZ', '001965.SZ', '001979.SZ', '002001.SZ', '002003.SZ', '002004.SZ', '002005.SZ', '002006.SZ', '002007.SZ', '002008.SZ', '002009.SZ', '002010.SZ', '002011.SZ', '002012.SZ', '002014.SZ', '002015.SZ', '002016.SZ', '002017.SZ', '002019.SZ', '002020.SZ', '002021.SZ', '002022.SZ', '002023.SZ', '002024.SZ', '002025.SZ', '002026.SZ', '002027.SZ', '002028.SZ', '002029.SZ', '002030.SZ', '002031.SZ', '002032.SZ', '002033.SZ', '002034.SZ', '002035.SZ', '002036.SZ', '002037.SZ', '002038.SZ', '002039.SZ', '002040.SZ', '002041.SZ', '002042.SZ', '002043.SZ', '002044.SZ', '002045.SZ', '002046.SZ', '002047.SZ', '002048.SZ', '002049.SZ', '002050.SZ', '002051.SZ', '002052.SZ', '002053.SZ', '002054.SZ', '002055.SZ', '002056.SZ', '002057.SZ', '002058.SZ', '002059.SZ', '002060.SZ', '002061.SZ', '002062.SZ', '002063.SZ', '002064.SZ', '002065.SZ', '002066.SZ', '002067.SZ', '002068.SZ', '002069.SZ', '002072.SZ', '002073.SZ', '002074.SZ', '002075.SZ', '002076.SZ', '002077.SZ', '002078.SZ', '002079.SZ', '002080.SZ', '002081.SZ', '002082.SZ', '002083.SZ', '002084.SZ', '002085.SZ', '002086.SZ', '002088.SZ', '002090.SZ', '002091.SZ', '002092.SZ', '002093.SZ', '002094.SZ', '002095.SZ', '002096.SZ', '002097.SZ', '002098.SZ', '002099.SZ', '002100.SZ', '002101.SZ', '002102.SZ', '002103.SZ', '002104.SZ', '002105.SZ', '002106.SZ', '002107.SZ', '002108.SZ', '002109.SZ', '002110.SZ', '002111.SZ', '002112.SZ', '002114.SZ', '002115.SZ', '002116.SZ', '002117.SZ', '002119.SZ', '002120.SZ', '002121.SZ', '002122.SZ', '002123.SZ', '002124.SZ', '002125.SZ', '002126.SZ', '002127.SZ', '002128.SZ', '002129.SZ', '002130.SZ', '002131.SZ', '002132.SZ', '002133.SZ', '002134.SZ', '002135.SZ', '002136.SZ', '002137.SZ', '002138.SZ', '002139.SZ', '002140.SZ', '002141.SZ', '002142.SZ', '002144.SZ', '002145.SZ', '002146.SZ', '002148.SZ', '002149.SZ', '002150.SZ', '002151.SZ', '002152.SZ', '002153.SZ', '002154.SZ', '002155.SZ', '002156.SZ', '002157.SZ', '002158.SZ', '002159.SZ', '002160.SZ', '002161.SZ', '002162.SZ', '002163.SZ', '002164.SZ', '002165.SZ', '002166.SZ', '002167.SZ', '002168.SZ', '002169.SZ', '002170.SZ', '002171.SZ', '002172.SZ', '002173.SZ', '002174.SZ', '002175.SZ', '002176.SZ', '002177.SZ', '002178.SZ', '002179.SZ', '002180.SZ', '002181.SZ', '002182.SZ', '002183.SZ', '002184.SZ', '002185.SZ', '002186.SZ', '002187.SZ', '002188.SZ', '002189.SZ', '002190.SZ', '002191.SZ', '002192.SZ', '002193.SZ', '002194.SZ', '002195.SZ', '002196.SZ', '002197.SZ', '002198.SZ', '002199.SZ', '002200.SZ', '002201.SZ', '002202.SZ', '002203.SZ', '002204.SZ', '002205.SZ', '002206.SZ', '002207.SZ', '002208.SZ', '002209.SZ', '002210.SZ', '002211.SZ', '002212.SZ', '002213.SZ', '002214.SZ', '002215.SZ', '002216.SZ', '002217.SZ', '002218.SZ', '002219.SZ', '002221.SZ', '002222.SZ', '002223.SZ', '002224.SZ', '002225.SZ', '002226.SZ', '002227.SZ', '002228.SZ', '002229.SZ', '002230.SZ', '002231.SZ', '002232.SZ', '002233.SZ', '002234.SZ', '002235.SZ', '002236.SZ', '002237.SZ', '002238.SZ', '002239.SZ', '002240.SZ', '002241.SZ', '002242.SZ', '002243.SZ', '002244.SZ', '002245.SZ', '002246.SZ', '002247.SZ', '002248.SZ', '002249.SZ', '002250.SZ', '002251.SZ', '002252.SZ', '002253.SZ', '002254.SZ', '002255.SZ', '002256.SZ', '002258.SZ', '002259.SZ', '002261.SZ', '002262.SZ', '002263.SZ', '002264.SZ', '002265.SZ', '002266.SZ', '002267.SZ', '002268.SZ', '002269.SZ', '002270.SZ', '002271.SZ', '002272.SZ', '002273.SZ', '002274.SZ', '002275.SZ', '002276.SZ', '002277.SZ', '002278.SZ', '002279.SZ', '002281.SZ', '002282.SZ', '002283.SZ', '002284.SZ', '002285.SZ', '002286.SZ', '002287.SZ', '002289.SZ', '002290.SZ', '002291.SZ', '002292.SZ', '002293.SZ', '002294.SZ', '002295.SZ', '002296.SZ', '002297.SZ', '002298.SZ', '002299.SZ', '002300.SZ', '002301.SZ', '002302.SZ', '002303.SZ', '002304.SZ', '002305.SZ', '002306.SZ', '002307.SZ', '002309.SZ', '002310.SZ', '002311.SZ', '002312.SZ', '002313.SZ', '002314.SZ', '002315.SZ', '002316.SZ', '002317.SZ', '002318.SZ', '002319.SZ', '002320.SZ', '002321.SZ', '002322.SZ', '002323.SZ', '002324.SZ', '002326.SZ', '002327.SZ', '002328.SZ', '002329.SZ', '002330.SZ', '002331.SZ', '002332.SZ', '002333.SZ', '002334.SZ', '002335.SZ', '002336.SZ', '002337.SZ', '002338.SZ', '002339.SZ', '002340.SZ', '002342.SZ', '002343.SZ', '002344.SZ', '002345.SZ', '002346.SZ', '002347.SZ', '002348.SZ', '002349.SZ', '002350.SZ', '002351.SZ', '002352.SZ', '002353.SZ', '002354.SZ', '002355.SZ', '002356.SZ', '002357.SZ', '002358.SZ', '002360.SZ', '002361.SZ', '002362.SZ', '002363.SZ', '002364.SZ', '002365.SZ', '002366.SZ', '002367.SZ', '002368.SZ', '002369.SZ', '002370.SZ', '002371.SZ', '002372.SZ', '002373.SZ', '002374.SZ', '002375.SZ', '002376.SZ', '002377.SZ', '002378.SZ', '002379.SZ', '002380.SZ', '002381.SZ', '002382.SZ', '002383.SZ', '002384.SZ', '002385.SZ', '002386.SZ', '002387.SZ', '002388.SZ', '002389.SZ', '002390.SZ', '002391.SZ', '002392.SZ', '002393.SZ', '002394.SZ', '002395.SZ', '002396.SZ', '002397.SZ', '002398.SZ', '002399.SZ', '002400.SZ', '002401.SZ', '002402.SZ', '002403.SZ', '002404.SZ', '002405.SZ', '002406.SZ', '002407.SZ', '002408.SZ', '002409.SZ', '002410.SZ', '002412.SZ', '002413.SZ', '002414.SZ', '002415.SZ', '002416.SZ', '002418.SZ', '002419.SZ', '002420.SZ', '002421.SZ', '002422.SZ', '002423.SZ', '002424.SZ', '002425.SZ', '002426.SZ', '002427.SZ', '002428.SZ', '002429.SZ', '002430.SZ', '002431.SZ', '002432.SZ', '002434.SZ', '002436.SZ', '002437.SZ', '002438.SZ', '002439.SZ', '002440.SZ', '002441.SZ', '002442.SZ', '002443.SZ', '002444.SZ', '002445.SZ', '002446.SZ', '002448.SZ', '002449.SZ', '002451.SZ', '002452.SZ', '002453.SZ', '002454.SZ', '002455.SZ', '002456.SZ', '002457.SZ', '002458.SZ', '002459.SZ', '002460.SZ', '002461.SZ', '002462.SZ', '002463.SZ', '002465.SZ', '002466.SZ', '002467.SZ', '002468.SZ', '002469.SZ', '002470.SZ', '002471.SZ', '002472.SZ', '002474.SZ', '002475.SZ', '002476.SZ', '002478.SZ', '002479.SZ', '002480.SZ', '002481.SZ', '002482.SZ', '002483.SZ', '002484.SZ', '002485.SZ', '002486.SZ', '002487.SZ', '002488.SZ', '002489.SZ', '002490.SZ', '002491.SZ', '002492.SZ', '002493.SZ', '002494.SZ', '002495.SZ', '002496.SZ', '002497.SZ', '002498.SZ', '002500.SZ', '002501.SZ', '002506.SZ', '002507.SZ', '002508.SZ', '002510.SZ', '002511.SZ', '002512.SZ', '002513.SZ', '002514.SZ', '002515.SZ', '002516.SZ', '002517.SZ', '002518.SZ', '002519.SZ', '002520.SZ', '002521.SZ', '002522.SZ', '002523.SZ', '002524.SZ', '002526.SZ', '002527.SZ', '002528.SZ', '002529.SZ', '002530.SZ', '002531.SZ', '002532.SZ', '002533.SZ', '002534.SZ', '002535.SZ', '002536.SZ', '002537.SZ', '002538.SZ', '002539.SZ', '002540.SZ', '002541.SZ', '002542.SZ', '002543.SZ', '002544.SZ', '002545.SZ', '002546.SZ', '002547.SZ', '002548.SZ', '002549.SZ', '002550.SZ', '002551.SZ', '002552.SZ', '002553.SZ', '002554.SZ', '002555.SZ', '002556.SZ', '002557.SZ', '002558.SZ', '002559.SZ', '002560.SZ', '002561.SZ', '002562.SZ', '002563.SZ', '002564.SZ', '002565.SZ', '002566.SZ', '002567.SZ', '002568.SZ', '002569.SZ', '002570.SZ', '002571.SZ', '002572.SZ', '002573.SZ', '002574.SZ', '002575.SZ', '002576.SZ', '002577.SZ', '002578.SZ', '002579.SZ', '002580.SZ', '002581.SZ', '002582.SZ', '002583.SZ', '002584.SZ', '002585.SZ', '002586.SZ', '002587.SZ', '002588.SZ', '002589.SZ', '002590.SZ', '002591.SZ', '002592.SZ', '002593.SZ', '002594.SZ', '002595.SZ', '002596.SZ', '002597.SZ', '002598.SZ', '002599.SZ', '002600.SZ', '002601.SZ', '002602.SZ', '002603.SZ', '002605.SZ', '002606.SZ', '002607.SZ', '002608.SZ', '002609.SZ', '002611.SZ', '002612.SZ', '002613.SZ', '002614.SZ', '002615.SZ', '002616.SZ', '002617.SZ', '002620.SZ', '002622.SZ', '002623.SZ', '002624.SZ', '002625.SZ', '002626.SZ', '002627.SZ', '002628.SZ', '002629.SZ', '002630.SZ', '002631.SZ', '002632.SZ', '002633.SZ', '002634.SZ', '002635.SZ', '002636.SZ', '002637.SZ', '002638.SZ', '002639.SZ', '002640.SZ', '002641.SZ', '002642.SZ', '002643.SZ', '002644.SZ', '002645.SZ', '002646.SZ', '002647.SZ', '002648.SZ', '002649.SZ', '002650.SZ', '002651.SZ', '002652.SZ', '002653.SZ', '002654.SZ', '002655.SZ', '002656.SZ', '002657.SZ', '002658.SZ', '002659.SZ', '002660.SZ', '002661.SZ', '002662.SZ', '002663.SZ', '002664.SZ', '002666.SZ', '002667.SZ', '002668.SZ', '002669.SZ', '002670.SZ', '002671.SZ', '002672.SZ', '002673.SZ', '002674.SZ', '002675.SZ', '002676.SZ', '002677.SZ', '002678.SZ', '002679.SZ', '002681.SZ', '002682.SZ', '002683.SZ', '002685.SZ', '002686.SZ', '002687.SZ', '002688.SZ', '002689.SZ', '002690.SZ', '002691.SZ', '002692.SZ', '002693.SZ', '002694.SZ', '002695.SZ', '002696.SZ', '002697.SZ', '002698.SZ', '002700.SZ', '002701.SZ', '002702.SZ', '002703.SZ', '002705.SZ', '002706.SZ', '002707.SZ', '002708.SZ', '002709.SZ', '002712.SZ', '002713.SZ', '002714.SZ', '002715.SZ', '002716.SZ', '002717.SZ', '002718.SZ', '002719.SZ', '002721.SZ', '002722.SZ', '002723.SZ', '002724.SZ', '002725.SZ', '002726.SZ', '002727.SZ', '002728.SZ', '002729.SZ', '002730.SZ', '002731.SZ', '002732.SZ', '002733.SZ', '002734.SZ', '002735.SZ', '002736.SZ', '002737.SZ', '002738.SZ', '002739.SZ', '002741.SZ', '002742.SZ', '002743.SZ', '002745.SZ', '002746.SZ', '002747.SZ', '002748.SZ', '002749.SZ', '002750.SZ', '002752.SZ', '002753.SZ', '002755.SZ', '002756.SZ', '002757.SZ', '002758.SZ', '002759.SZ', '002760.SZ', '002761.SZ', '002762.SZ', '002763.SZ', '002765.SZ', '002766.SZ', '002767.SZ', '002768.SZ', '002769.SZ', '002771.SZ', '002772.SZ', '002773.SZ', '002774.SZ', '002775.SZ', '002777.SZ', '002778.SZ', '002779.SZ', '002780.SZ', '002782.SZ', '002783.SZ', '002785.SZ', '002786.SZ', '002787.SZ', '002788.SZ', '002789.SZ', '002790.SZ', '002791.SZ', '002792.SZ', '002793.SZ', '002795.SZ', '002796.SZ', '002797.SZ', '002798.SZ', '002799.SZ', '002800.SZ', '002801.SZ', '002802.SZ', '002803.SZ', '002805.SZ', '002806.SZ', '002807.SZ', '002808.SZ', '002809.SZ', '002810.SZ', '002811.SZ', '002812.SZ', '002813.SZ', '002815.SZ', '002816.SZ', '002817.SZ', '002818.SZ', '002819.SZ', '002820.SZ', '002821.SZ', '002822.SZ', '002823.SZ', '002824.SZ', '002825.SZ', '002826.SZ', '002827.SZ', '002828.SZ', '002829.SZ', '002830.SZ', '002831.SZ', '002832.SZ', '002833.SZ', '002835.SZ', '002836.SZ', '002837.SZ', '002838.SZ', '002839.SZ', '002840.SZ', '002841.SZ', '002842.SZ', '002843.SZ', '002845.SZ', '002846.SZ', '002847.SZ', '002848.SZ', '002849.SZ', '002850.SZ', '002851.SZ', '002852.SZ', '002853.SZ', '002855.SZ', '002856.SZ', '002857.SZ', '002858.SZ', '002859.SZ', '002860.SZ', '002861.SZ', '002862.SZ', '002863.SZ', '002864.SZ', '002865.SZ', '002866.SZ', '002867.SZ', '002868.SZ', '002869.SZ', '002870.SZ', '002871.SZ', '002872.SZ', '002873.SZ', '002875.SZ', '002876.SZ', '002877.SZ', '002878.SZ', '002879.SZ', '002880.SZ', '002881.SZ', '002882.SZ', '002883.SZ', '002884.SZ', '002885.SZ', '002886.SZ', '002887.SZ', '002888.SZ', '002889.SZ', '002890.SZ', '002891.SZ', '002892.SZ', '002893.SZ', '002895.SZ', '002896.SZ', '002897.SZ', '002898.SZ', '002899.SZ', '002900.SZ', '002901.SZ', '002902.SZ', '002903.SZ', '002905.SZ', '002906.SZ', '002907.SZ', '002908.SZ', '002909.SZ', '002910.SZ', '002911.SZ', '002912.SZ', '002913.SZ', '002915.SZ', '002916.SZ', '002917.SZ', '002918.SZ', '002919.SZ', '002920.SZ', '002921.SZ', '002922.SZ', '002923.SZ', '002925.SZ', '002926.SZ', '002927.SZ', '002928.SZ', '002929.SZ', '002930.SZ', '002931.SZ', '002932.SZ', '002933.SZ', '002935.SZ', '002936.SZ', '002937.SZ', '002938.SZ', '002939.SZ', '002940.SZ', '002941.SZ', '002942.SZ', '002943.SZ', '002945.SZ', '002946.SZ', '002947.SZ', '002948.SZ', '002949.SZ', '002950.SZ', '002951.SZ', '002952.SZ', '002953.SZ', '002955.SZ', '002956.SZ', '002957.SZ', '002958.SZ', '002959.SZ', '002960.SZ', '002961.SZ', '002962.SZ', '002963.SZ', '002965.SZ', '002966.SZ', '002967.SZ', '002968.SZ', '002969.SZ', '002970.SZ', '002971.SZ', '002972.SZ', '002973.SZ', '002975.SZ', '002976.SZ', '002977.SZ', '002978.SZ', '002979.SZ', '002980.SZ', '002981.SZ', '002982.SZ', '002983.SZ', '002984.SZ', '002985.SZ', '002986.SZ', '002987.SZ', '002988.SZ', '002989.SZ', '002990.SZ', '002991.SZ', '002992.SZ', '002993.SZ', '002995.SZ', '002996.SZ', '002997.SZ', '002998.SZ', '002999.SZ', '003000.SZ', '003001.SZ', '003002.SZ', '003003.SZ', '003004.SZ', '003005.SZ', '003006.SZ', '003007.SZ', '003008.SZ', '003009.SZ', '003010.SZ', '003011.SZ', '003012.SZ', '003013.SZ', '003015.SZ', '003016.SZ', '003017.SZ', '003018.SZ', '003019.SZ', '003020.SZ', '003021.SZ', '003022.SZ', '003023.SZ', '003025.SZ', '003026.SZ', '003027.SZ', '003028.SZ', '003029.SZ', '003030.SZ', '003031.SZ', '003032.SZ', '003033.SZ', '003035.SZ', '003036.SZ', '003037.SZ', '003038.SZ', '003039.SZ', '003040.SZ', '003041.SZ', '003042.SZ', '003043.SZ', '003816.SZ', '688001.SS', '688002.SS', '688003.SS', '688004.SS', '688005.SS', '688006.SS', '688007.SS', '688008.SS', '688009.SS', '688010.SS', '688011.SS', '688012.SS', '688013.SS', '688015.SS', '688016.SS', '688017.SS', '688018.SS', '688019.SS', '688020.SS', '688021.SS', '688022.SS', '688023.SS', '688025.SS', '688026.SS', '688027.SS', '688028.SS', '688029.SS', '688030.SS', '688031.SS', '688032.SS', '688033.SS', '688035.SS', '688036.SS', '688037.SS', '688038.SS', '688039.SS', '688041.SS', '688045.SS', '688046.SS', '688047.SS', '688048.SS', '688049.SS', '688050.SS', '688051.SS', '688052.SS', '688053.SS', '688055.SS', '688056.SS', '688057.SS', '688058.SS', '688059.SS', '688060.SS', '688061.SS', '688062.SS', '688063.SS', '688065.SS', '688066.SS', '688067.SS', '688068.SS', '688069.SS', '688070.SS', '688071.SS', '688072.SS', '688073.SS', '688075.SS', '688076.SS', '688077.SS', '688078.SS', '688079.SS', '688080.SS', '688081.SS', '688082.SS', '688083.SS', '688084.SS', '688085.SS', '688087.SS', '688088.SS', '688089.SS', '688090.SS', '688091.SS', '688092.SS', '688093.SS', '688095.SS', '688096.SS', '688097.SS', '688098.SS', '688099.SS', '688100.SS', '688101.SS', '688102.SS', '688103.SS', '688105.SS', '688106.SS', '688107.SS', '688108.SS', '688109.SS', '688110.SS', '688111.SS', '688112.SS', '688113.SS', '688114.SS', '688115.SS', '688116.SS', '688117.SS', '688118.SS', '688119.SS', '688120.SS', '688121.SS', '688122.SS', '688123.SS', '688125.SS', '688126.SS', '688127.SS', '688128.SS', '688129.SS', '688130.SS', '688131.SS', '688132.SS', '688133.SS', '688135.SS', '688136.SS', '688137.SS', '688138.SS', '688139.SS', '688141.SS', '688143.SS', '688146.SS', '688147.SS', '688148.SS', '688150.SS', '688151.SS', '688152.SS', '688153.SS', '688155.SS', '688156.SS', '688157.SS', '688158.SS', '688159.SS', '688160.SS', '688161.SS', '688162.SS', '688163.SS', '688165.SS', '688166.SS', '688167.SS', '688168.SS', '688169.SS', '688170.SS', '688171.SS', '688172.SS', '688173.SS', '688175.SS', '688176.SS', '688177.SS', '688178.SS', '688179.SS', '688180.SS', '688181.SS', '688182.SS', '688183.SS', '688184.SS', '688185.SS', '688186.SS', '688187.SS', '688188.SS', '688189.SS', '688190.SS', '688191.SS', '688192.SS', '688193.SS', '688195.SS', '688196.SS', '688197.SS', '688198.SS', '688199.SS', '688200.SS', '688201.SS', '688202.SS', '688203.SS', '688205.SS', '688206.SS', '688207.SS', '688208.SS', '688209.SS', '688210.SS', '688211.SS', '688212.SS', '688213.SS', '688215.SS', '688216.SS', '688217.SS', '688218.SS', '688219.SS', '688220.SS', '688221.SS', '688222.SS', '688223.SS', '688225.SS', '688226.SS', '688227.SS', '688228.SS', '688229.SS', '688230.SS', '688231.SS', '688232.SS', '688233.SS', '688234.SS', '688235.SS', '688236.SS', '688237.SS', '688238.SS', '688239.SS', '688244.SS', '688246.SS', '688247.SS', '688248.SS', '688249.SS', '688251.SS', '688252.SS', '688253.SS', '688255.SS', '688256.SS', '688257.SS', '688258.SS', '688259.SS', '688260.SS', '688261.SS', '688262.SS', '688265.SS', '688266.SS', '688267.SS', '688268.SS', '688269.SS', '688270.SS', '688271.SS', '688272.SS', '688273.SS', '688275.SS', '688276.SS', '688277.SS', '688278.SS', '688279.SS', '688280.SS', '688281.SS', '688282.SS', '688283.SS', '688285.SS', '688286.SS', '688287.SS', '688288.SS', '688289.SS', '688290.SS', '688291.SS', '688292.SS', '688293.SS', '688295.SS', '688296.SS', '688297.SS', '688298.SS', '688299.SS', '688300.SS', '688301.SS', '688302.SS', '688303.SS', '688305.SS', '688306.SS', '688307.SS', '688308.SS', '688309.SS', '688310.SS', '688311.SS', '688312.SS', '688313.SS', '688314.SS', '688315.SS', '688316.SS', '688317.SS', '688318.SS', '688319.SS', '688320.SS', '688321.SS', '688322.SS', '688323.SS', '688325.SS', '688326.SS', '688327.SS', '688328.SS', '688329.SS', '688330.SS', '688331.SS', '688332.SS', '688333.SS', '688334.SS', '688335.SS', '688336.SS', '688337.SS', '688338.SS', '688339.SS', '688343.SS', '688345.SS', '688347.SS', '688348.SS', '688349.SS', '688350.SS', '688351.SS', '688352.SS', '688353.SS', '688355.SS', '688356.SS', '688357.SS', '688358.SS', '688359.SS', '688360.SS', '688361.SS', '688362.SS', '688363.SS', '688365.SS', '688366.SS', '688367.SS', '688368.SS', '688369.SS', '688370.SS', '688371.SS', '688372.SS', '688373.SS', '688375.SS', '688376.SS', '688377.SS', '688378.SS', '688379.SS', '688380.SS', '688381.SS', '688382.SS', '688383.SS', '688385.SS', '688386.SS', '688387.SS', '688388.SS', '688389.SS', '688390.SS', '688391.SS', '688392.SS', '688393.SS', '688395.SS', '688396.SS', '688398.SS', '688399.SS', '688400.SS', '688401.SS', '688403.SS', '688408.SS', '688409.SS', '688410.SS', '688411.SS', '688416.SS', '688418.SS', '688419.SS', '688420.SS', '688425.SS', '688426.SS', '688428.SS', '688429.SS', '688432.SS', '688433.SS', '688435.SS', '688439.SS', '688443.SS', '688448.SS', '688449.SS', '688450.SS', '688455.SS', '688456.SS', '688458.SS', '688459.SS', '688466.SS', '688468.SS', '688469.SS', '688472.SS', '688475.SS', '688478.SS', '688479.SS', '688480.SS', '688484.SS', '688485.SS', '688486.SS', '688488.SS', '688489.SS', '688496.SS', '688498.SS', '688499.SS', '688500.SS', '688501.SS', '688502.SS', '688503.SS', '688505.SS', '688506.SS', '688507.SS', '688508.SS', '688509.SS', '688510.SS', '688511.SS', '688512.SS', '688513.SS', '688515.SS', '688516.SS', '688517.SS', '688518.SS', '688519.SS', '688520.SS', '688521.SS', '688522.SS', '688523.SS', '688525.SS', '688526.SS', '688528.SS', '688529.SS', '688530.SS', '688531.SS', '688533.SS', '688535.SS', '688536.SS', '688538.SS', '688539.SS', '688543.SS', '688545.SS', '688548.SS', '688549.SS', '688550.SS', '688551.SS', '688552.SS', '688553.SS', '688556.SS', '688557.SS', '688558.SS', '688559.SS', '688560.SS', '688561.SS', '688562.SS', '688563.SS', '688565.SS', '688566.SS', '688567.SS', '688568.SS', '688569.SS', '688570.SS', '688571.SS', '688573.SS', '688575.SS', '688576.SS', '688577.SS', '688578.SS', '688579.SS', '688580.SS', '688581.SS', '688582.SS', '688583.SS', '688584.SS', '688585.SS', '688586.SS', '688588.SS', '688589.SS', '688590.SS', '688591.SS', '688592.SS', '688593.SS', '688595.SS', '688596.SS', '688597.SS', '688598.SS', '688599.SS', '688600.SS', '688601.SS', '688602.SS', '688603.SS', '688605.SS', '688606.SS', '688607.SS', '688608.SS', '688609.SS', '688610.SS', '688611.SS', '688612.SS', '688613.SS', '688615.SS', '688616.SS', '688617.SS', '688618.SS', '688619.SS', '688620.SS', '688621.SS', '688622.SS', '688623.SS', '688625.SS', '688626.SS', '688627.SS', '688628.SS', '688629.SS', '688630.SS', '688631.SS', '688633.SS', '688636.SS', '688638.SS', '688639.SS', '688646.SS', '688648.SS', '688651.SS', '688652.SS', '688653.SS', '688655.SS', '688656.SS', '688657.SS', '688658.SS', '688659.SS', '688660.SS', '688661.SS', '688662.SS', '688663.SS', '688665.SS', '688667.SS', '688668.SS', '688669.SS', '688670.SS', '688671.SS', '688676.SS', '688677.SS', '688678.SS', '688679.SS', '688680.SS', '688681.SS', '688682.SS', '688683.SS', '688685.SS', '688686.SS', '688687.SS', '688689.SS', '688690.SS', '688691.SS', '688692.SS', '688693.SS', '688695.SS', '688696.SS', '688697.SS', '688698.SS', '688699.SS', '688700.SS', '688701.SS', '688702.SS', '688707.SS', '688708.SS', '688709.SS', '688710.SS', '688711.SS', '688716.SS', '688717.SS', '688718.SS', '688719.SS', '688720.SS', '688721.SS', '688722.SS', '688726.SS', '688728.SS', '688733.SS', '688737.SS', '688739.SS', '688750.SS', '688758.SS', '688766.SS', '688767.SS', '688768.SS', '688772.SS', '688776.SS', '688777.SS', '688778.SS', '688779.SS', '688786.SS', '688787.SS', '688788.SS', '688789.SS', '688793.SS', '688798.SS', '688799.SS', '688800.SS', '688819.SS', '688981.SS', '689009.SS', '300001.SZ', '300002.SZ', '300003.SZ', '300004.SZ', '300005.SZ', '300006.SZ', '300007.SZ', '300008.SZ', '300009.SZ', '300010.SZ', '300011.SZ', '300012.SZ', '300013.SZ', '300014.SZ', '300015.SZ', '300016.SZ', '300017.SZ', '300018.SZ', '300019.SZ', '300020.SZ', '300021.SZ', '300022.SZ', '300024.SZ', '300025.SZ', '300026.SZ', '300027.SZ', '300029.SZ', '300030.SZ', '300031.SZ', '300032.SZ', '300033.SZ', '300034.SZ', '300035.SZ', '300036.SZ', '300037.SZ', '300039.SZ', '300040.SZ', '300041.SZ', '300042.SZ', '300043.SZ', '300044.SZ', '300045.SZ', '300046.SZ', '300047.SZ', '300048.SZ', '300049.SZ', '300050.SZ', '300051.SZ', '300052.SZ', '300053.SZ', '300054.SZ', '300055.SZ', '300056.SZ', '300057.SZ', '300058.SZ', '300059.SZ', '300061.SZ', '300062.SZ', '300063.SZ', '300065.SZ', '300066.SZ', '300067.SZ', '300068.SZ', '300069.SZ', '300070.SZ', '300071.SZ', '300072.SZ', '300073.SZ', '300074.SZ', '300075.SZ', '300076.SZ', '300077.SZ', '300078.SZ', '300079.SZ', '300080.SZ', '300081.SZ', '300082.SZ', '300083.SZ', '300084.SZ', '300085.SZ', '300086.SZ', '300087.SZ', '300088.SZ', '300091.SZ', '300092.SZ', '300093.SZ', '300094.SZ', '300095.SZ', '300096.SZ', '300097.SZ', '300098.SZ', '300099.SZ', '300100.SZ', '300101.SZ', '300102.SZ', '300103.SZ', '300105.SZ', '300106.SZ', '300107.SZ', '300108.SZ', '300109.SZ', '300110.SZ', '300111.SZ', '300112.SZ', '300113.SZ', '300115.SZ', '300117.SZ', '300118.SZ', '300119.SZ', '300120.SZ', '300121.SZ', '300122.SZ', '300123.SZ', '300124.SZ', '300125.SZ', '300126.SZ', '300127.SZ', '300128.SZ', '300129.SZ', '300130.SZ', '300131.SZ', '300132.SZ', '300133.SZ', '300134.SZ', '300135.SZ', '300136.SZ', '300137.SZ', '300138.SZ', '300139.SZ', '300140.SZ', '300141.SZ', '300142.SZ', '300143.SZ', '300144.SZ', '300145.SZ', '300146.SZ', '300147.SZ', '300148.SZ', '300149.SZ', '300150.SZ', '300151.SZ', '300152.SZ', '300153.SZ', '300154.SZ', '300155.SZ', '300157.SZ', '300158.SZ', '300159.SZ', '300160.SZ', '300161.SZ', '300162.SZ', '300163.SZ', '300164.SZ', '300165.SZ', '300166.SZ', '300167.SZ', '300168.SZ', '300169.SZ', '300170.SZ', '300171.SZ', '300172.SZ', '300173.SZ', '300174.SZ', '300175.SZ', '300176.SZ', '300177.SZ', '300179.SZ', '300180.SZ', '300181.SZ', '300182.SZ', '300183.SZ', '300184.SZ', '300185.SZ', '300187.SZ', '300188.SZ', '300189.SZ', '300190.SZ', '300191.SZ', '300192.SZ', '300193.SZ', '300194.SZ', '300195.SZ', '300196.SZ', '300197.SZ', '300198.SZ', '300199.SZ', '300200.SZ', '300201.SZ', '300203.SZ', '300204.SZ', '300205.SZ', '300206.SZ', '300207.SZ', '300208.SZ', '300209.SZ', '300210.SZ', '300211.SZ', '300212.SZ', '300213.SZ', '300214.SZ', '300215.SZ', '300217.SZ', '300218.SZ', '300219.SZ', '300220.SZ', '300221.SZ', '300222.SZ', '300223.SZ', '300224.SZ', '300225.SZ', '300226.SZ', '300227.SZ', '300228.SZ', '300229.SZ', '300230.SZ', '300231.SZ', '300232.SZ', '300233.SZ', '300234.SZ', '300235.SZ', '300236.SZ', '300237.SZ', '300238.SZ', '300239.SZ', '300240.SZ', '300241.SZ', '300242.SZ', '300243.SZ', '300244.SZ', '300245.SZ', '300246.SZ', '300247.SZ', '300248.SZ', '300249.SZ', '300250.SZ', '300251.SZ', '300252.SZ', '300253.SZ', '300254.SZ', '300255.SZ', '300256.SZ', '300257.SZ', '300258.SZ', '300259.SZ', '300260.SZ', '300261.SZ', '300263.SZ', '300264.SZ', '300265.SZ', '300266.SZ', '300267.SZ', '300268.SZ', '300269.SZ', '300270.SZ', '300271.SZ', '300272.SZ', '300274.SZ', '300275.SZ', '300276.SZ', '300277.SZ', '300278.SZ', '300279.SZ', '300280.SZ', '300281.SZ', '300283.SZ', '300284.SZ', '300285.SZ', '300286.SZ', '300287.SZ', '300288.SZ', '300289.SZ', '300290.SZ', '300291.SZ', '300292.SZ', '300293.SZ', '300294.SZ', '300295.SZ', '300296.SZ', '300298.SZ', '300299.SZ', '300300.SZ', '300301.SZ', '300302.SZ', '300303.SZ', '300304.SZ', '300305.SZ', '300306.SZ', '300307.SZ', '300308.SZ', '300310.SZ', '300311.SZ', '300313.SZ', '300314.SZ', '300315.SZ', '300316.SZ', '300317.SZ', '300318.SZ', '300319.SZ', '300320.SZ', '300321.SZ', '300322.SZ', '300323.SZ', '300324.SZ', '300326.SZ', '300327.SZ', '300328.SZ', '300329.SZ', '300331.SZ', '300332.SZ', '300333.SZ', '300334.SZ', '300335.SZ', '300337.SZ', '300338.SZ', '300339.SZ', '300340.SZ', '300341.SZ', '300342.SZ', '300343.SZ', '300344.SZ', '300345.SZ', '300346.SZ', '300347.SZ', '300348.SZ', '300349.SZ', '300350.SZ', '300351.SZ', '300352.SZ', '300353.SZ', '300354.SZ', '300355.SZ', '300357.SZ', '300358.SZ', '300359.SZ', '300360.SZ', '300363.SZ', '300364.SZ', '300365.SZ', '300366.SZ', '300368.SZ', '300369.SZ', '300370.SZ', '300371.SZ', '300373.SZ', '300374.SZ', '300375.SZ', '300376.SZ', '300377.SZ', '300378.SZ', '300379.SZ', '300380.SZ', '300381.SZ', '300382.SZ', '300383.SZ', '300384.SZ', '300385.SZ', '300386.SZ', '300387.SZ', '300388.SZ', '300389.SZ', '300390.SZ', '300391.SZ', '300393.SZ', '300394.SZ', '300395.SZ', '300396.SZ', '300397.SZ', '300398.SZ', '300399.SZ', '300400.SZ', '300401.SZ', '300402.SZ', '300403.SZ', '300404.SZ', '300405.SZ', '300406.SZ', '300407.SZ', '300408.SZ', '300409.SZ', '300410.SZ', '300411.SZ', '300412.SZ', '300413.SZ', '300414.SZ', '300415.SZ', '300416.SZ', '300417.SZ', '300418.SZ', '300419.SZ', '300420.SZ', '300421.SZ', '300422.SZ', '300423.SZ', '300424.SZ', '300425.SZ', '300426.SZ', '300427.SZ', '300428.SZ', '300429.SZ', '300430.SZ', '300432.SZ', '300433.SZ', '300434.SZ', '300435.SZ', '300436.SZ', '300437.SZ', '300438.SZ', '300439.SZ', '300440.SZ', '300441.SZ', '300442.SZ', '300443.SZ', '300444.SZ', '300445.SZ', '300446.SZ', '300447.SZ', '300448.SZ', '300449.SZ', '300450.SZ', '300451.SZ', '300452.SZ', '300453.SZ', '300454.SZ', '300455.SZ', '300456.SZ', '300457.SZ', '300458.SZ', '300459.SZ', '300460.SZ', '300461.SZ', '300462.SZ', '300463.SZ', '300464.SZ', '300465.SZ', '300466.SZ', '300467.SZ', '300468.SZ', '300469.SZ', '300470.SZ', '300471.SZ', '300472.SZ', '300473.SZ', '300474.SZ', '300475.SZ', '300476.SZ', '300477.SZ', '300478.SZ', '300479.SZ', '300480.SZ', '300481.SZ', '300482.SZ', '300483.SZ', '300484.SZ', '300485.SZ', '300486.SZ', '300487.SZ', '300488.SZ', '300489.SZ', '300490.SZ', '300491.SZ', '300492.SZ', '300493.SZ', '300494.SZ', '300496.SZ', '300497.SZ', '300498.SZ', '300499.SZ', '300500.SZ', '300501.SZ', '300502.SZ', '300503.SZ', '300504.SZ', '300505.SZ', '300506.SZ', '300507.SZ', '300508.SZ', '300509.SZ', '300510.SZ', '300511.SZ', '300512.SZ', '300513.SZ', '300514.SZ', '300515.SZ', '300516.SZ', '300517.SZ', '300518.SZ', '300519.SZ', '300520.SZ', '300521.SZ', '300522.SZ', '300523.SZ', '300525.SZ', '300527.SZ', '300528.SZ', '300529.SZ', '300530.SZ', '300531.SZ', '300532.SZ', '300533.SZ', '300534.SZ', '300535.SZ', '300536.SZ', '300537.SZ', '300538.SZ', '300539.SZ', '300540.SZ', '300541.SZ', '300542.SZ', '300543.SZ', '300545.SZ', '300546.SZ', '300547.SZ', '300548.SZ', '300549.SZ', '300550.SZ', '300551.SZ', '300552.SZ', '300553.SZ', '300554.SZ', '300555.SZ', '300556.SZ', '300557.SZ', '300558.SZ', '300559.SZ', '300560.SZ', '300561.SZ', '300562.SZ', '300563.SZ', '300564.SZ', '300565.SZ', '300566.SZ', '300567.SZ', '300568.SZ', '300569.SZ', '300570.SZ', '300571.SZ', '300572.SZ', '300573.SZ', '300575.SZ', '300576.SZ', '300577.SZ', '300578.SZ', '300579.SZ', '300580.SZ', '300581.SZ', '300582.SZ', '300583.SZ', '300584.SZ', '300585.SZ', '300586.SZ', '300587.SZ', '300588.SZ', '300589.SZ', '300590.SZ', '300591.SZ', '300592.SZ', '300593.SZ', '300594.SZ', '300595.SZ', '300596.SZ', '300597.SZ', '300598.SZ', '300599.SZ', '300600.SZ', '300601.SZ', '300602.SZ', '300603.SZ', '300604.SZ', '300605.SZ', '300606.SZ', '300607.SZ', '300608.SZ', '300609.SZ', '300610.SZ', '300611.SZ', '300612.SZ', '300613.SZ', '300614.SZ', '300615.SZ', '300616.SZ', '300617.SZ', '300618.SZ', '300619.SZ', '300620.SZ', '300621.SZ', '300622.SZ', '300623.SZ', '300624.SZ', '300625.SZ', '300626.SZ', '300627.SZ', '300628.SZ', '300629.SZ', '300630.SZ', '300631.SZ', '300632.SZ', '300633.SZ', '300634.SZ', '300635.SZ', '300636.SZ', '300637.SZ', '300638.SZ', '300639.SZ', '300640.SZ', '300641.SZ', '300642.SZ', '300643.SZ', '300644.SZ', '300645.SZ', '300647.SZ', '300648.SZ', '300649.SZ', '300650.SZ', '300651.SZ', '300652.SZ', '300653.SZ', '300654.SZ', '300655.SZ', '300656.SZ', '300657.SZ', '300658.SZ', '300659.SZ', '300660.SZ', '300661.SZ', '300662.SZ', '300663.SZ', '300664.SZ', '300665.SZ', '300666.SZ', '300667.SZ', '300668.SZ', '300669.SZ', '300670.SZ', '300671.SZ', '300672.SZ', '300673.SZ', '300674.SZ', '300675.SZ', '300676.SZ', '300677.SZ', '300678.SZ', '300679.SZ', '300680.SZ', '300681.SZ', '300682.SZ', '300683.SZ', '300684.SZ', '300685.SZ', '300686.SZ', '300687.SZ', '300688.SZ', '300689.SZ', '300690.SZ', '300691.SZ', '300692.SZ', '300693.SZ', '300694.SZ', '300695.SZ', '300696.SZ', '300697.SZ', '300698.SZ', '300699.SZ', '300700.SZ', '300701.SZ', '300702.SZ', '300703.SZ', '300705.SZ', '300706.SZ', '300707.SZ', '300708.SZ', '300709.SZ', '300710.SZ', '300711.SZ', '300712.SZ', '300713.SZ', '300715.SZ', '300716.SZ', '300717.SZ', '300718.SZ', '300719.SZ', '300720.SZ', '300721.SZ', '300722.SZ', '300723.SZ', '300724.SZ', '300725.SZ', '300726.SZ', '300727.SZ', '300729.SZ', '300730.SZ', '300731.SZ', '300732.SZ', '300733.SZ', '300735.SZ', '300736.SZ', '300737.SZ', '300738.SZ', '300739.SZ', '300740.SZ', '300741.SZ', '300743.SZ', '300745.SZ', '300746.SZ', '300747.SZ', '300748.SZ', '300749.SZ', '300750.SZ', '300751.SZ', '300752.SZ', '300753.SZ', '300755.SZ', '300756.SZ', '300757.SZ', '300758.SZ', '300759.SZ', '300760.SZ', '300761.SZ', '300762.SZ', '300763.SZ', '300765.SZ', '300766.SZ', '300767.SZ', '300768.SZ', '300769.SZ', '300770.SZ', '300771.SZ', '300772.SZ', '300773.SZ', '300774.SZ', '300775.SZ', '300776.SZ', '300777.SZ', '300778.SZ', '300779.SZ', '300780.SZ', '300781.SZ', '300782.SZ', '300783.SZ', '300784.SZ', '300785.SZ', '300786.SZ', '300787.SZ', '300788.SZ', '300789.SZ', '300790.SZ', '300791.SZ', '300792.SZ', '300793.SZ', '300795.SZ', '300796.SZ', '300797.SZ', '300798.SZ', '300800.SZ', '300801.SZ', '300802.SZ', '300803.SZ', '300804.SZ', '300805.SZ', '300806.SZ', '300807.SZ', '300808.SZ', '300809.SZ', '300810.SZ', '300811.SZ', '300812.SZ', '300813.SZ', '300814.SZ', '300815.SZ', '300816.SZ', '300817.SZ', '300818.SZ', '300819.SZ', '300820.SZ', '300821.SZ', '300822.SZ', '300823.SZ', '300824.SZ', '300825.SZ', '300826.SZ', '300827.SZ', '300828.SZ', '300829.SZ', '300830.SZ', '300831.SZ', '300832.SZ', '300833.SZ', '300834.SZ', '300835.SZ', '300836.SZ', '300837.SZ', '300838.SZ', '300839.SZ', '300840.SZ', '300841.SZ', '300842.SZ', '300843.SZ', '300844.SZ', '300845.SZ', '300846.SZ', '300847.SZ', '300848.SZ', '300849.SZ', '300850.SZ', '300851.SZ', '300852.SZ', '300853.SZ', '300854.SZ', '300855.SZ', '300856.SZ', '300857.SZ', '300858.SZ', '300859.SZ', '300860.SZ', '300861.SZ', '300862.SZ', '300863.SZ', '300864.SZ', '300865.SZ', '300866.SZ', '300867.SZ', '300868.SZ', '300869.SZ', '300870.SZ', '300871.SZ', '300872.SZ', '300873.SZ', '300875.SZ', '300876.SZ', '300877.SZ', '300878.SZ', '300879.SZ', '300880.SZ', '300881.SZ', '300882.SZ', '300883.SZ', '300884.SZ', '300885.SZ', '300886.SZ', '300887.SZ', '300888.SZ', '300889.SZ', '300890.SZ', '300891.SZ', '300892.SZ', '300893.SZ', '300894.SZ', '300895.SZ', '300896.SZ', '300897.SZ', '300898.SZ', '300899.SZ', '300900.SZ', '300901.SZ', '300902.SZ', '300903.SZ', '300904.SZ', '300905.SZ', '300906.SZ', '300907.SZ', '300908.SZ', '300909.SZ', '300910.SZ', '300911.SZ', '300912.SZ', '300913.SZ', '300915.SZ', '300916.SZ', '300917.SZ', '300918.SZ', '300919.SZ', '300920.SZ', '300921.SZ', '300922.SZ', '300923.SZ', '300925.SZ', '300926.SZ', '300927.SZ', '300928.SZ', '300929.SZ', '300930.SZ', '300931.SZ', '300932.SZ', '300933.SZ', '300935.SZ', '300936.SZ', '300937.SZ', '300938.SZ', '300939.SZ', '300940.SZ', '300941.SZ', '300942.SZ', '300943.SZ', '300945.SZ', '300946.SZ', '300947.SZ', '300948.SZ', '300949.SZ', '300950.SZ', '300951.SZ', '300952.SZ', '300953.SZ', '300955.SZ', '300956.SZ', '300957.SZ', '300958.SZ', '300959.SZ', '300960.SZ', '300961.SZ', '300962.SZ', '300963.SZ', '300964.SZ', '300965.SZ', '300966.SZ', '300967.SZ', '300968.SZ', '300969.SZ', '300970.SZ', '300971.SZ', '300972.SZ', '300973.SZ', '300975.SZ', '300976.SZ', '300977.SZ', '300978.SZ', '300979.SZ', '300980.SZ', '300981.SZ', '300982.SZ', '300983.SZ', '300984.SZ', '300985.SZ', '300986.SZ', '300987.SZ', '300988.SZ', '300989.SZ', '300990.SZ', '300991.SZ', '300992.SZ', '300993.SZ', '300994.SZ', '300995.SZ', '300996.SZ', '300997.SZ', '300998.SZ', '300999.SZ', '301000.SZ', '301001.SZ', '301002.SZ', '301003.SZ', '301004.SZ', '301005.SZ', '301006.SZ', '301007.SZ', '301008.SZ', '301009.SZ', '301010.SZ', '301011.SZ', '301012.SZ', '301013.SZ', '301015.SZ', '301016.SZ', '301017.SZ', '301018.SZ', '301019.SZ', '301020.SZ', '301021.SZ', '301022.SZ', '301023.SZ', '301024.SZ', '301025.SZ', '301026.SZ', '301027.SZ', '301028.SZ', '301029.SZ', '301030.SZ', '301031.SZ', '301032.SZ', '301033.SZ', '301035.SZ', '301036.SZ', '301037.SZ', '301038.SZ', '301039.SZ', '301040.SZ', '301041.SZ', '301042.SZ', '301043.SZ', '301045.SZ', '301046.SZ', '301047.SZ', '301048.SZ', '301049.SZ', '301050.SZ', '301051.SZ', '301052.SZ', '301053.SZ', '301055.SZ', '301056.SZ', '301057.SZ', '301058.SZ', '301059.SZ', '301060.SZ', '301061.SZ', '301062.SZ', '301063.SZ', '301065.SZ', '301066.SZ', '301067.SZ', '301068.SZ', '301069.SZ', '301070.SZ', '301071.SZ', '301072.SZ', '301073.SZ', '301075.SZ', '301076.SZ', '301077.SZ', '301078.SZ', '301079.SZ', '301080.SZ', '301081.SZ', '301082.SZ', '301083.SZ', '301085.SZ', '301086.SZ', '301087.SZ', '301088.SZ', '301089.SZ', '301090.SZ', '301091.SZ', '301092.SZ', '301093.SZ', '301095.SZ', '301096.SZ', '301097.SZ', '301098.SZ', '301099.SZ', '301100.SZ', '301101.SZ', '301102.SZ', '301103.SZ', '301105.SZ', '301106.SZ', '301107.SZ', '301108.SZ', '301109.SZ', '301110.SZ', '301111.SZ', '301112.SZ', '301113.SZ', '301115.SZ', '301116.SZ', '301117.SZ', '301118.SZ', '301119.SZ', '301120.SZ', '301121.SZ', '301122.SZ', '301123.SZ', '301125.SZ', '301126.SZ', '301127.SZ', '301128.SZ', '301129.SZ', '301130.SZ', '301131.SZ', '301132.SZ', '301133.SZ', '301135.SZ', '301136.SZ', '301137.SZ', '301138.SZ', '301139.SZ', '301141.SZ', '301148.SZ', '301149.SZ', '301150.SZ', '301151.SZ', '301152.SZ', '301153.SZ', '301155.SZ', '301156.SZ', '301157.SZ', '301158.SZ', '301159.SZ', '301160.SZ', '301161.SZ', '301162.SZ', '301163.SZ', '301165.SZ', '301166.SZ', '301167.SZ', '301168.SZ', '301169.SZ', '301170.SZ', '301171.SZ', '301172.SZ', '301173.SZ', '301175.SZ', '301176.SZ', '301177.SZ', '301178.SZ', '301179.SZ', '301180.SZ', '301181.SZ', '301182.SZ', '301183.SZ', '301185.SZ', '301186.SZ', '301187.SZ', '301188.SZ', '301189.SZ', '301190.SZ', '301191.SZ', '301192.SZ', '301193.SZ', '301195.SZ', '301196.SZ', '301197.SZ', '301198.SZ', '301199.SZ', '301200.SZ', '301201.SZ', '301202.SZ', '301203.SZ', '301205.SZ', '301206.SZ', '301207.SZ', '301208.SZ', '301209.SZ', '301210.SZ', '301211.SZ', '301212.SZ', '301213.SZ', '301215.SZ', '301216.SZ', '301217.SZ', '301218.SZ', '301219.SZ', '301220.SZ', '301221.SZ', '301222.SZ', '301223.SZ', '301225.SZ', '301226.SZ', '301227.SZ', '301228.SZ', '301229.SZ', '301230.SZ', '301231.SZ', '301232.SZ', '301233.SZ', '301234.SZ', '301235.SZ', '301236.SZ', '301237.SZ', '301238.SZ', '301239.SZ', '301246.SZ', '301248.SZ', '301251.SZ', '301252.SZ', '301255.SZ', '301256.SZ', '301257.SZ', '301258.SZ', '301259.SZ', '301260.SZ', '301261.SZ', '301262.SZ', '301263.SZ', '301265.SZ', '301266.SZ', '301267.SZ', '301268.SZ', '301269.SZ', '301270.SZ', '301272.SZ', '301273.SZ', '301275.SZ', '301276.SZ', '301277.SZ', '301278.SZ', '301279.SZ', '301280.SZ', '301281.SZ', '301282.SZ', '301283.SZ', '301285.SZ', '301286.SZ', '301287.SZ', '301288.SZ', '301289.SZ', '301290.SZ', '301291.SZ', '301292.SZ', '301293.SZ', '301295.SZ', '301296.SZ', '301297.SZ', '301298.SZ', '301299.SZ', '301300.SZ', '301301.SZ', '301302.SZ', '301303.SZ', '301305.SZ', '301306.SZ', '301307.SZ', '301308.SZ', '301309.SZ', '301310.SZ', '301311.SZ', '301312.SZ', '301313.SZ', '301314.SZ', '301315.SZ', '301316.SZ', '301317.SZ', '301318.SZ', '301319.SZ', '301320.SZ', '301321.SZ', '301322.SZ', '301323.SZ', '301325.SZ', '301326.SZ', '301327.SZ', '301328.SZ', '301329.SZ', '301330.SZ', '301331.SZ', '301332.SZ', '301333.SZ', '301335.SZ', '301336.SZ', '3013 查看全部
可以运行下面的代码:
def initialize(context):
# 初始化策略
g.security = "600570.SS"
set_universe(g.security)
run_daily(context, func,'20:13')
def handle_data(context, data):
print('公众号:可转债量化分析')
def func(context):
info = get_Ashares(date=None)
print(info)
它会打印沪深A股的代码:
北交所有83开头的,或者找一个北交所的股票代码,在输出里面找一下:
[code]2025-03-12 20:13:00 - INFO - ['600000.SS', '600004.SS', '600006.SS', '600007.SS', '600008.SS', '600009.SS', '600010.SS', '600011.SS', '600012.SS', '600015.SS', '600016.SS', '600017.SS', '600018.SS', '600019.SS', '600020.SS', '600021.SS', '600022.SS', '600023.SS', '600025.SS', '600026.SS', '600027.SS', '600028.SS', '600029.SS', '600030.SS', '600031.SS', '600032.SS', '600033.SS', '600035.SS', '600036.SS', '600037.SS', '600038.SS', '600039.SS', '600048.SS', '600050.SS', '600051.SS', '600052.SS', '600053.SS', '600054.SS', '600055.SS', '600056.SS', '600057.SS', '600058.SS', '600059.SS', '600060.SS', '600061.SS', '600062.SS', '600063.SS', '600064.SS', '600066.SS', '600067.SS', '600070.SS', '600071.SS', '600072.SS', '600073.SS', '600075.SS', '600076.SS', '600078.SS', '600079.SS', '600080.SS', '600081.SS', '600082.SS', '600084.SS', '600085.SS', '600088.SS', '600089.SS', '600094.SS', '600095.SS', '600096.SS', '600097.SS', '600098.SS', '600099.SS', '600100.SS', '600101.SS', '600103.SS', '600104.SS', '600105.SS', '600106.SS', '600107.SS', '600108.SS', '600109.SS', '600110.SS', '600111.SS', '600113.SS', '600114.SS', '600115.SS', '600116.SS', '600117.SS', '600118.SS', '600119.SS', '600120.SS', '600121.SS', '600123.SS', '600125.SS', '600126.SS', '600127.SS', '600128.SS', '600129.SS', '600130.SS', '600131.SS', '600132.SS', '600133.SS', '600135.SS', '600136.SS', '600137.SS', '600138.SS', '600141.SS', '600143.SS', '600148.SS', '600149.SS', '600150.SS', '600151.SS', '600152.SS', '600153.SS', '600155.SS', '600156.SS', '600157.SS', '600158.SS', '600159.SS', '600160.SS', '600161.SS', '600162.SS', '600163.SS', '600165.SS', '600166.SS', '600167.SS', '600168.SS', '600169.SS', '600170.SS', '600171.SS', '600172.SS', '600173.SS', '600176.SS', '600177.SS', '600178.SS', '600179.SS', '600180.SS', '600182.SS', '600183.SS', '600184.SS', '600185.SS', '600186.SS', '600187.SS', '600188.SS', '600189.SS', '600190.SS', '600191.SS', '600192.SS', '600193.SS', '600195.SS', '600196.SS', '600197.SS', '600198.SS', '600199.SS', '600200.SS', '600201.SS', '600202.SS', '600203.SS', '600206.SS', '600207.SS', '600208.SS', '600210.SS', '600211.SS', '600212.SS', '600215.SS', '600216.SS', '600217.SS', '600218.SS', '600219.SS', '600221.SS', '600222.SS', '600223.SS', '600226.SS', '600227.SS', '600228.SS', '600229.SS', '600230.SS', '600231.SS', '600232.SS', '600233.SS', '600234.SS', '600235.SS', '600236.SS', '600237.SS', '600238.SS', '600239.SS', '600241.SS', '600243.SS', '600246.SS', '600248.SS', '600249.SS', '600250.SS', '600251.SS', '600252.SS', '600255.SS', '600256.SS', '600257.SS', '600258.SS', '600259.SS', '600261.SS', '600262.SS', '600265.SS', '600266.SS', '600267.SS', '600268.SS', '600269.SS', '600271.SS', '600272.SS', '600273.SS', '600276.SS', '600278.SS', '600279.SS', '600280.SS', '600281.SS', '600282.SS', '600283.SS', '600284.SS', '600285.SS', '600287.SS', '600288.SS', '600289.SS', '600292.SS', '600293.SS', '600295.SS', '600298.SS', '600299.SS', '600300.SS', '600301.SS', '600302.SS', '600303.SS', '600305.SS', '600307.SS', '600308.SS', '600309.SS', '600310.SS', '600312.SS', '600313.SS', '600315.SS', '600316.SS', '600318.SS', '600319.SS', '600320.SS', '600322.SS', '600323.SS', '600325.SS', '600326.SS', '600327.SS', '600328.SS', '600329.SS', '600330.SS', '600331.SS', '600332.SS', '600333.SS', '600335.SS', '600336.SS', '600337.SS', '600338.SS', '600339.SS', '600340.SS', '600343.SS', '600345.SS', '600346.SS', '600348.SS', '600350.SS', '600351.SS', '600352.SS', '600353.SS', '600354.SS', '600355.SS', '600356.SS', '600358.SS', '600359.SS', '600360.SS', '600361.SS', '600362.SS', '600363.SS', '600365.SS', '600366.SS', '600367.SS', '600368.SS', '600369.SS', '600370.SS', '600371.SS', '600372.SS', '600373.SS', '600375.SS', '600376.SS', '600377.SS', '600378.SS', '600379.SS', '600380.SS', '600381.SS', '600382.SS', '600383.SS', '600386.SS', '600387.SS', '600388.SS', '600389.SS', '600390.SS', '600391.SS', '600392.SS', '600395.SS', '600396.SS', '600397.SS', '600398.SS', '600399.SS', '600400.SS', '600403.SS', '600405.SS', '600406.SS', '600408.SS', '600409.SS', '600410.SS', '600415.SS', '600416.SS', '600418.SS', '600419.SS', '600420.SS', '600421.SS', '600422.SS', '600423.SS', '600425.SS', '600426.SS', '600428.SS', '600429.SS', '600433.SS', '600435.SS', '600436.SS', '600438.SS', '600439.SS', '600444.SS', '600446.SS', '600448.SS', '600449.SS', '600452.SS', '600455.SS', '600456.SS', '600458.SS', '600459.SS', '600460.SS', '600461.SS', '600462.SS', '600463.SS', '600467.SS', '600468.SS', '600469.SS', '600470.SS', '600475.SS', '600476.SS', '600477.SS', '600478.SS', '600479.SS', '600480.SS', '600481.SS', '600482.SS', '600483.SS', '600486.SS', '600487.SS', '600488.SS', '600489.SS', '600490.SS', '600491.SS', '600493.SS', '600495.SS', '600496.SS', '600497.SS', '600498.SS', '600499.SS', '600500.SS', '600501.SS', '600502.SS', '600503.SS', '600505.SS', '600506.SS', '600507.SS', '600508.SS', '600509.SS', '600510.SS', '600511.SS', '600512.SS', '600513.SS', '600515.SS', '600516.SS', '600517.SS', '600518.SS', '600519.SS', '600520.SS', '600521.SS', '600522.SS', '600523.SS', '600525.SS', '600526.SS', '600527.SS', '600528.SS', '600529.SS', '600530.SS', '600531.SS', '600533.SS', '600535.SS', '600536.SS', '600537.SS', '600538.SS', '600539.SS', '600540.SS', '600543.SS', '600545.SS', '600546.SS', '600547.SS', '600548.SS', '600549.SS', '600550.SS', '600551.SS', '600552.SS', '600556.SS', '600557.SS', '600558.SS', '600559.SS', '600560.SS', '600561.SS', '600562.SS', '600563.SS', '600566.SS', '600567.SS', '600568.SS', '600569.SS', '600570.SS', '600571.SS', '600572.SS', '600573.SS', '600575.SS', '600576.SS', '600577.SS', '600578.SS', '600579.SS', '600580.SS', '600581.SS', '600582.SS', '600583.SS', '600584.SS', '600585.SS', '600586.SS', '600587.SS', '600588.SS', '600589.SS', '600590.SS', '600592.SS', '600593.SS', '600594.SS', '600595.SS', '600596.SS', '600597.SS', '600598.SS', '600599.SS', '600600.SS', '600601.SS', '600602.SS', '600603.SS', '600604.SS', '600605.SS', '600606.SS', '600608.SS', '600609.SS', '600610.SS', '600611.SS', '600612.SS', '600613.SS', '600615.SS', '600616.SS', '600617.SS', '600618.SS', '600619.SS', '600620.SS', '600621.SS', '600622.SS', '600623.SS', '600624.SS', '600626.SS', '600628.SS', '600629.SS', '600630.SS', '600633.SS', '600635.SS', '600636.SS', '600637.SS', '600638.SS', '600639.SS', '600640.SS', '600641.SS', '600642.SS', '600643.SS', '600644.SS', '600645.SS', '600648.SS', '600649.SS', '600650.SS', '600651.SS', '600653.SS', '600654.SS', '600655.SS', '600657.SS', '600658.SS', '600660.SS', '600661.SS', '600662.SS', '600663.SS', '600664.SS', '600665.SS', '600666.SS', '600667.SS', '600668.SS', '600671.SS', '600673.SS', '600674.SS', '600675.SS', '600676.SS', '600678.SS', '600679.SS', '600681.SS', '600682.SS', '600683.SS', '600684.SS', '600685.SS', '600686.SS', '600688.SS', '600689.SS', '600690.SS', '600691.SS', '600692.SS', '600693.SS', '600694.SS', '600696.SS', '600697.SS', '600698.SS', '600699.SS', '600702.SS', '600703.SS', '600704.SS', '600705.SS', '600706.SS', '600707.SS', '600708.SS', '600710.SS', '600711.SS', '600712.SS', '600713.SS', '600714.SS', '600715.SS', '600716.SS', '600717.SS', '600718.SS', '600719.SS', '600720.SS', '600721.SS', '600722.SS', '600724.SS', '600725.SS', '600726.SS', '600727.SS', '600728.SS', '600729.SS', '600730.SS', '600731.SS', '600732.SS', '600733.SS', '600734.SS', '600735.SS', '600736.SS', '600737.SS', '600738.SS', '600739.SS', '600740.SS', '600741.SS', '600742.SS', '600743.SS', '600744.SS', '600745.SS', '600746.SS', '600748.SS', '600749.SS', '600750.SS', '600751.SS', '600753.SS', '600754.SS', '600755.SS', '600756.SS', '600757.SS', '600758.SS', '600759.SS', '600760.SS', '600761.SS', '600763.SS', '600764.SS', '600765.SS', '600768.SS', '600769.SS', '600770.SS', '600771.SS', '600773.SS', '600774.SS', '600775.SS', '600776.SS', '600777.SS', '600778.SS', '600779.SS', '600780.SS', '600782.SS', '600783.SS', '600784.SS', '600785.SS', '600787.SS', '600789.SS', '600790.SS', '600791.SS', '600792.SS', '600793.SS', '600794.SS', '600795.SS', '600796.SS', '600797.SS', '600798.SS', '600800.SS', '600801.SS', '600802.SS', '600803.SS', '600804.SS', '600805.SS', '600807.SS', '600808.SS', '600809.SS', '600810.SS', '600811.SS', '600812.SS', '600814.SS', '600815.SS', '600816.SS', '600817.SS', '600818.SS', '600819.SS', '600820.SS', '600821.SS', '600822.SS', '600824.SS', '600825.SS', '600826.SS', '600827.SS', '600828.SS', '600829.SS', '600830.SS', '600831.SS', '600833.SS', '600834.SS', '600835.SS', '600838.SS', '600839.SS', '600841.SS', '600843.SS', '600844.SS', '600845.SS', '600846.SS', '600847.SS', '600848.SS', '600850.SS', '600851.SS', '600853.SS', '600854.SS', '600855.SS', '600857.SS', '600858.SS', '600859.SS', '600860.SS', '600861.SS', '600862.SS', '600863.SS', '600864.SS', '600865.SS', '600866.SS', '600867.SS', '600868.SS', '600869.SS', '600871.SS', '600872.SS', '600873.SS', '600874.SS', '600875.SS', '600876.SS', '600877.SS', '600879.SS', '600880.SS', '600881.SS', '600882.SS', '600883.SS', '600884.SS', '600885.SS', '600886.SS', '600887.SS', '600888.SS', '600889.SS', '600892.SS', '600893.SS', '600894.SS', '600895.SS', '600897.SS', '600900.SS', '600901.SS', '600903.SS', '600905.SS', '600906.SS', '600908.SS', '600909.SS', '600916.SS', '600917.SS', '600918.SS', '600919.SS', '600925.SS', '600926.SS', '600927.SS', '600928.SS', '600929.SS', '600933.SS', '600935.SS', '600936.SS', '600938.SS', '600939.SS', '600941.SS', '600955.SS', '600956.SS', '600958.SS', '600959.SS', '600960.SS', '600961.SS', '600962.SS', '600963.SS', '600965.SS', '600966.SS', '600967.SS', '600968.SS', '600969.SS', '600970.SS', '600971.SS', '600973.SS', '600975.SS', '600976.SS', '600977.SS', '600979.SS', '600980.SS', '600981.SS', '600982.SS', '600983.SS', '600984.SS', '600985.SS', '600986.SS', '600987.SS', '600988.SS', '600989.SS', '600990.SS', '600992.SS', '600993.SS', '600995.SS', '600996.SS', '600997.SS', '600998.SS', '600999.SS', '601000.SS', '601001.SS', '601002.SS', '601003.SS', '601005.SS', '601006.SS', '601007.SS', '601008.SS', '601009.SS', '601010.SS', '601011.SS', '601012.SS', '601015.SS', '601016.SS', '601018.SS', '601019.SS', '601020.SS', '601021.SS', '601022.SS', '601028.SS', '601033.SS', '601038.SS', '601058.SS', '601059.SS', '601061.SS', '601065.SS', '601066.SS', '601068.SS', '601069.SS', '601077.SS', '601083.SS', '601086.SS', '601088.SS', '601089.SS', '601096.SS', '601098.SS', '601099.SS', '601100.SS', '601101.SS', '601106.SS', '601107.SS', '601108.SS', '601111.SS', '601113.SS', '601116.SS', '601117.SS', '601118.SS', '601121.SS', '601126.SS', '601127.SS', '601128.SS', '601133.SS', '601136.SS', '601137.SS', '601138.SS', '601139.SS', '601155.SS', '601156.SS', '601158.SS', '601162.SS', '601163.SS', '601166.SS', '601168.SS', '601169.SS', '601177.SS', '601179.SS', '601186.SS', '601187.SS', '601188.SS', '601198.SS', '601199.SS', '601200.SS', '601208.SS', '601211.SS', '601212.SS', '601216.SS', '601218.SS', '601222.SS', '601225.SS', '601226.SS', '601228.SS', '601229.SS', '601231.SS', '601233.SS', '601236.SS', '601238.SS', '601279.SS', '601288.SS', '601298.SS', '601311.SS', '601318.SS', '601319.SS', '601326.SS', '601328.SS', '601330.SS', '601333.SS', '601336.SS', '601339.SS', '601360.SS', '601366.SS', '601368.SS', '601369.SS', '601375.SS', '601377.SS', '601388.SS', '601390.SS', '601398.SS', '601399.SS', '601456.SS', '601500.SS', '601512.SS', '601515.SS', '601518.SS', '601519.SS', '601528.SS', '601555.SS', '601566.SS', '601567.SS', '601568.SS', '601577.SS', '601579.SS', '601588.SS', '601595.SS', '601598.SS', '601599.SS', '601600.SS', '601601.SS', '601606.SS', '601607.SS', '601608.SS', '601609.SS', '601611.SS', '601615.SS', '601616.SS', '601618.SS', '601619.SS', '601628.SS', '601633.SS', '601636.SS', '601658.SS', '601665.SS', '601666.SS', '601668.SS', '601669.SS', '601677.SS', '601678.SS', '601686.SS', '601688.SS', '601689.SS', '601696.SS', '601698.SS', '601699.SS', '601700.SS', '601702.SS', '601717.SS', '601718.SS', '601727.SS', '601728.SS', '601766.SS', '601777.SS', '601778.SS', '601788.SS', '601789.SS', '601798.SS', '601799.SS', '601800.SS', '601801.SS', '601808.SS', '601811.SS', '601816.SS', '601818.SS', '601825.SS', '601827.SS', '601828.SS', '601838.SS', '601857.SS', '601858.SS', '601860.SS', '601865.SS', '601866.SS', '601868.SS', '601869.SS', '601872.SS', '601877.SS', '601878.SS', '601880.SS', '601881.SS', '601882.SS', '601886.SS', '601888.SS', '601890.SS', '601898.SS', '601899.SS', '601900.SS', '601901.SS', '601908.SS', '601916.SS', '601918.SS', '601919.SS', '601921.SS', '601928.SS', '601929.SS', '601933.SS', '601939.SS', '601949.SS', '601952.SS', '601956.SS', '601958.SS', '601963.SS', '601965.SS', '601966.SS', '601968.SS', '601969.SS', '601975.SS', '601985.SS', '601988.SS', '601989.SS', '601990.SS', '601991.SS', '601992.SS', '601995.SS', '601996.SS', '601997.SS', '601998.SS', '601999.SS', '603000.SS', '603001.SS', '603002.SS', '603003.SS', '603004.SS', '603005.SS', '603006.SS', '603007.SS', '603008.SS', '603009.SS', '603010.SS', '603011.SS', '603012.SS', '603013.SS', '603015.SS', '603016.SS', '603017.SS', '603018.SS', '603019.SS', '603020.SS', '603021.SS', '603022.SS', '603023.SS', '603025.SS', '603026.SS', '603027.SS', '603028.SS', '603029.SS', '603030.SS', '603031.SS', '603032.SS', '603033.SS', '603035.SS', '603036.SS', '603037.SS', '603038.SS', '603039.SS', '603040.SS', '603041.SS', '603042.SS', '603043.SS', '603045.SS', '603048.SS', '603050.SS', '603051.SS', '603052.SS', '603053.SS', '603055.SS', '603056.SS', '603057.SS', '603058.SS', '603059.SS', '603060.SS', '603061.SS', '603062.SS', '603063.SS', '603065.SS', '603066.SS', '603067.SS', '603068.SS', '603069.SS', '603070.SS', '603071.SS', '603072.SS', '603073.SS', '603075.SS', '603076.SS', '603077.SS', '603078.SS', '603079.SS', '603080.SS', '603081.SS', '603082.SS', '603083.SS', '603085.SS', '603086.SS', '603087.SS', '603088.SS', '603089.SS', '603090.SS', '603091.SS', '603093.SS', '603095.SS', '603096.SS', '603097.SS', '603098.SS', '603099.SS', '603100.SS', '603101.SS', '603102.SS', '603103.SS', '603105.SS', '603106.SS', '603107.SS', '603108.SS', '603109.SS', '603110.SS', '603111.SS', '603112.SS', '603113.SS', '603115.SS', '603116.SS', '603117.SS', '603118.SS', '603119.SS', '603121.SS', '603122.SS', '603123.SS', '603125.SS', '603126.SS', '603127.SS', '603128.SS', '603129.SS', '603130.SS', '603131.SS', '603132.SS', '603135.SS', '603136.SS', '603137.SS', '603138.SS', '603139.SS', '603150.SS', '603151.SS', '603153.SS', '603155.SS', '603156.SS', '603158.SS', '603159.SS', '603160.SS', '603161.SS', '603162.SS', '603163.SS', '603165.SS', '603166.SS', '603167.SS', '603168.SS', '603169.SS', '603170.SS', '603171.SS', '603172.SS', '603173.SS', '603176.SS', '603177.SS', '603178.SS', '603179.SS', '603180.SS', '603181.SS', '603182.SS', '603183.SS', '603185.SS', '603186.SS', '603187.SS', '603188.SS', '603189.SS', '603190.SS', '603191.SS', '603192.SS', '603193.SS', '603194.SS', '603195.SS', '603196.SS', '603197.SS', '603198.SS', '603199.SS', '603200.SS', '603201.SS', '603203.SS', '603205.SS', '603206.SS', '603207.SS', '603208.SS', '603209.SS', '603211.SS', '603212.SS', '603213.SS', '603214.SS', '603215.SS', '603216.SS', '603217.SS', '603218.SS', '603219.SS', '603220.SS', '603221.SS', '603222.SS', '603223.SS', '603225.SS', '603226.SS', '603227.SS', '603228.SS', '603229.SS', '603230.SS', '603231.SS', '603232.SS', '603233.SS', '603235.SS', '603236.SS', '603237.SS', '603238.SS', '603239.SS', '603255.SS', '603256.SS', '603258.SS', '603259.SS', '603260.SS', '603261.SS', '603266.SS', '603267.SS', '603268.SS', '603269.SS', '603270.SS', '603271.SS', '603272.SS', '603273.SS', '603275.SS', '603276.SS', '603277.SS', '603278.SS', '603279.SS', '603280.SS', '603281.SS', '603282.SS', '603283.SS', '603285.SS', '603286.SS', '603288.SS', '603289.SS', '603290.SS', '603291.SS', '603296.SS', '603297.SS', '603298.SS', '603299.SS', '603300.SS', '603301.SS', '603303.SS', '603305.SS', '603306.SS', '603307.SS', '603308.SS', '603309.SS', '603310.SS', '603311.SS', '603312.SS', '603313.SS', '603315.SS', '603316.SS', '603317.SS', '603318.SS', '603319.SS', '603320.SS', '603321.SS', '603322.SS', '603323.SS', '603324.SS', '603325.SS', '603326.SS', '603327.SS', '603328.SS', '603329.SS', '603330.SS', '603331.SS', '603332.SS', '603333.SS', '603335.SS', '603336.SS', '603337.SS', '603338.SS', '603339.SS', '603341.SS', '603344.SS', '603345.SS', '603348.SS', '603350.SS', '603351.SS', '603353.SS', '603355.SS', '603356.SS', '603357.SS', '603358.SS', '603359.SS', '603360.SS', '603363.SS', '603365.SS', '603366.SS', '603367.SS', '603368.SS', '603369.SS', '603373.SS', '603375.SS', '603377.SS', '603378.SS', '603379.SS', '603380.SS', '603381.SS', '603383.SS', '603385.SS', '603386.SS', '603387.SS', '603388.SS', '603389.SS', '603390.SS', '603391.SS', '603392.SS', '603393.SS', '603395.SS', '603396.SS', '603398.SS', '603399.SS', '603408.SS', '603409.SS', '603416.SS', '603421.SS', '603429.SS', '603439.SS', '603444.SS', '603456.SS', '603458.SS', '603466.SS', '603477.SS', '603486.SS', '603488.SS', '603489.SS', '603496.SS', '603499.SS', '603500.SS', '603501.SS', '603505.SS', '603506.SS', '603507.SS', '603508.SS', '603511.SS', '603515.SS', '603516.SS', '603517.SS', '603518.SS', '603519.SS', '603520.SS', '603527.SS', '603528.SS', '603529.SS', '603530.SS', '603533.SS', '603535.SS', '603536.SS', '603538.SS', '603551.SS', '603556.SS', '603557.SS', '603558.SS', '603559.SS', '603565.SS', '603566.SS', '603567.SS', '603568.SS', '603569.SS', '603577.SS', '603578.SS', '603579.SS', '603580.SS', '603583.SS', '603585.SS', '603586.SS', '603587.SS', '603588.SS', '603589.SS', '603590.SS', '603595.SS', '603596.SS', '603598.SS', '603599.SS', '603600.SS', '603601.SS', '603602.SS', '603605.SS', '603606.SS', '603607.SS', '603608.SS', '603609.SS', '603610.SS', '603611.SS', '603612.SS', '603613.SS', '603615.SS', '603616.SS', '603617.SS', '603618.SS', '603619.SS', '603626.SS', '603628.SS', '603629.SS', '603630.SS', '603633.SS', '603636.SS', '603637.SS', '603638.SS', '603639.SS', '603648.SS', '603650.SS', '603655.SS', '603656.SS', '603657.SS', '603658.SS', '603659.SS', '603660.SS', '603661.SS', '603662.SS', '603663.SS', '603665.SS', '603666.SS', '603667.SS', '603668.SS', '603669.SS', '603676.SS', '603677.SS', '603678.SS', '603679.SS', '603680.SS', '603681.SS', '603682.SS', '603683.SS', '603685.SS', '603686.SS', '603687.SS', '603688.SS', '603689.SS', '603690.SS', '603693.SS', '603696.SS', '603697.SS', '603698.SS', '603699.SS', '603700.SS', '603701.SS', '603703.SS', '603706.SS', '603707.SS', '603708.SS', '603709.SS', '603711.SS', '603712.SS', '603713.SS', '603716.SS', '603717.SS', '603718.SS', '603719.SS', '603721.SS', '603722.SS', '603725.SS', '603726.SS', '603727.SS', '603728.SS', '603729.SS', '603730.SS', '603733.SS', '603737.SS', '603738.SS', '603739.SS', '603755.SS', '603757.SS', '603758.SS', '603759.SS', '603766.SS', '603767.SS', '603768.SS', '603773.SS', '603776.SS', '603777.SS', '603778.SS', '603779.SS', '603786.SS', '603787.SS', '603788.SS', '603789.SS', '603790.SS', '603797.SS', '603798.SS', '603799.SS', '603800.SS', '603801.SS', '603803.SS', '603806.SS', '603808.SS', '603809.SS', '603810.SS', '603811.SS', '603813.SS', '603815.SS', '603816.SS', '603817.SS', '603818.SS', '603819.SS', '603822.SS', '603823.SS', '603825.SS', '603826.SS', '603828.SS', '603829.SS', '603833.SS', '603836.SS', '603838.SS', '603839.SS', '603843.SS', '603848.SS', '603855.SS', '603856.SS', '603858.SS', '603859.SS', '603860.SS', '603861.SS', '603863.SS', '603866.SS', '603867.SS', '603868.SS', '603869.SS', '603871.SS', '603876.SS', '603877.SS', '603878.SS', '603879.SS', '603880.SS', '603881.SS', '603882.SS', '603883.SS', '603885.SS', '603886.SS', '603887.SS', '603888.SS', '603889.SS', '603890.SS', '603893.SS', '603895.SS', '603896.SS', '603897.SS', '603898.SS', '603899.SS', '603900.SS', '603901.SS', '603903.SS', '603906.SS', '603908.SS', '603909.SS', '603912.SS', '603915.SS', '603916.SS', '603917.SS', '603918.SS', '603919.SS', '603920.SS', '603922.SS', '603926.SS', '603927.SS', '603928.SS', '603929.SS', '603931.SS', '603933.SS', '603936.SS', '603937.SS', '603938.SS', '603939.SS', '603948.SS', '603949.SS', '603950.SS', '603955.SS', '603956.SS', '603958.SS', '603959.SS', '603960.SS', '603963.SS', '603966.SS', '603967.SS', '603968.SS', '603969.SS', '603970.SS', '603976.SS', '603977.SS', '603978.SS', '603979.SS', '603980.SS', '603982.SS', '603983.SS', '603985.SS', '603986.SS', '603987.SS', '603988.SS', '603989.SS', '603990.SS', '603991.SS', '603992.SS', '603993.SS', '603995.SS', '603997.SS', '603998.SS', '603999.SS', '605001.SS', '605003.SS', '605005.SS', '605006.SS', '605007.SS', '605008.SS', '605009.SS', '605011.SS', '605016.SS', '605018.SS', '605020.SS', '605028.SS', '605033.SS', '605050.SS', '605055.SS', '605056.SS', '605058.SS', '605060.SS', '605066.SS', '605068.SS', '605069.SS', '605077.SS', '605080.SS', '605081.SS', '605086.SS', '605088.SS', '605089.SS', '605090.SS', '605098.SS', '605099.SS', '605100.SS', '605108.SS', '605111.SS', '605116.SS', '605117.SS', '605118.SS', '605122.SS', '605123.SS', '605128.SS', '605133.SS', '605136.SS', '605138.SS', '605151.SS', '605155.SS', '605158.SS', '605162.SS', '605166.SS', '605167.SS', '605168.SS', '605169.SS', '605177.SS', '605178.SS', '605179.SS', '605180.SS', '605183.SS', '605186.SS', '605188.SS', '605189.SS', '605196.SS', '605198.SS', '605199.SS', '605208.SS', '605218.SS', '605222.SS', '605228.SS', '605255.SS', '605258.SS', '605259.SS', '605266.SS', '605268.SS', '605277.SS', '605286.SS', '605287.SS', '605288.SS', '605289.SS', '605296.SS', '605298.SS', '605299.SS', '605300.SS', '605303.SS', '605305.SS', '605318.SS', '605319.SS', '605333.SS', '605336.SS', '605337.SS', '605338.SS', '605339.SS', '605358.SS', '605365.SS', '605366.SS', '605368.SS', '605369.SS', '605376.SS', '605377.SS', '605378.SS', '605388.SS', '605389.SS', '605398.SS', '605399.SS', '605488.SS', '605499.SS', '605500.SS', '605507.SS', '605555.SS', '605566.SS', '605567.SS', '605577.SS', '605580.SS', '605588.SS', '605589.SS', '605598.SS', '605599.SS', '000001.SZ', '000002.SZ', '000004.SZ', '000006.SZ', '000007.SZ', '000008.SZ', '000009.SZ', '000010.SZ', '000011.SZ', '000012.SZ', '000014.SZ', '000016.SZ', '000017.SZ', '000019.SZ', '000020.SZ', '000021.SZ', '000025.SZ', '000026.SZ', '000027.SZ', '000028.SZ', '000029.SZ', '000030.SZ', '000031.SZ', '000032.SZ', '000034.SZ', '000035.SZ', '000036.SZ', '000037.SZ', '000039.SZ', '000040.SZ', '000042.SZ', '000045.SZ', '000048.SZ', '000049.SZ', '000050.SZ', '000055.SZ', '000056.SZ', '000058.SZ', '000059.SZ', '000060.SZ', '000061.SZ', '000062.SZ', '000063.SZ', '000065.SZ', '000066.SZ', '000068.SZ', '000069.SZ', '000070.SZ', '000078.SZ', '000088.SZ', '000089.SZ', '000090.SZ', '000096.SZ', '000099.SZ', '000100.SZ', '000151.SZ', '000153.SZ', '000155.SZ', '000156.SZ', '000157.SZ', '000158.SZ', '000159.SZ', '000166.SZ', '000301.SZ', '000333.SZ', '000338.SZ', '000400.SZ', '000401.SZ', '000402.SZ', '000403.SZ', '000404.SZ', '000407.SZ', '000408.SZ', '000409.SZ', '000410.SZ', '000411.SZ', '000415.SZ', '000417.SZ', '000419.SZ', '000420.SZ', '000421.SZ', '000422.SZ', '000423.SZ', '000425.SZ', '000426.SZ', '000428.SZ', '000429.SZ', '000430.SZ', '000488.SZ', '000498.SZ', '000501.SZ', '000503.SZ', '000504.SZ', '000505.SZ', '000506.SZ', '000507.SZ', '000509.SZ', '000510.SZ', '000513.SZ', '000514.SZ', '000516.SZ', '000517.SZ', '000518.SZ', '000519.SZ', '000520.SZ', '000521.SZ', '000523.SZ', '000524.SZ', '000525.SZ', '000526.SZ', '000528.SZ', '000529.SZ', '000530.SZ', '000531.SZ', '000532.SZ', '000533.SZ', '000534.SZ', '000536.SZ', '000537.SZ', '000538.SZ', '000539.SZ', '000541.SZ', '000543.SZ', '000544.SZ', '000545.SZ', '000546.SZ', '000547.SZ', '000548.SZ', '000550.SZ', '000551.SZ', '000552.SZ', '000553.SZ', '000554.SZ', '000555.SZ', '000557.SZ', '000558.SZ', '000559.SZ', '000560.SZ', '000561.SZ', '000563.SZ', '000564.SZ', '000565.SZ', '000566.SZ', '000567.SZ', '000568.SZ', '000570.SZ', '000571.SZ', '000572.SZ', '000573.SZ', '000576.SZ', '000581.SZ', '000582.SZ', '000584.SZ', '000586.SZ', '000589.SZ', '000590.SZ', '000591.SZ', '000592.SZ', '000593.SZ', '000595.SZ', '000596.SZ', '000597.SZ', '000598.SZ', '000599.SZ', '000600.SZ', '000601.SZ', '000603.SZ', '000605.SZ', '000607.SZ', '000608.SZ', '000609.SZ', '000610.SZ', '000612.SZ', '000615.SZ', '000617.SZ', '000619.SZ', '000620.SZ', '000622.SZ', '000623.SZ', '000625.SZ', '000626.SZ', '000627.SZ', '000628.SZ', '000629.SZ', '000630.SZ', '000631.SZ', '000632.SZ', '000633.SZ', '000635.SZ', '000636.SZ', '000637.SZ', '000638.SZ', '000639.SZ', '000650.SZ', '000651.SZ', '000652.SZ', '000655.SZ', '000656.SZ', '000657.SZ', '000659.SZ', '000661.SZ', '000663.SZ', '000665.SZ', '000668.SZ', '000669.SZ', '000670.SZ', '000672.SZ', '000676.SZ', '000677.SZ', '000678.SZ', '000679.SZ', '000680.SZ', '000681.SZ', '000682.SZ', '000683.SZ', '000685.SZ', '000686.SZ', '000688.SZ', '000690.SZ', '000691.SZ', '000692.SZ', '000695.SZ', '000697.SZ', '000698.SZ', '000700.SZ', '000701.SZ', '000702.SZ', '000703.SZ', '000705.SZ', '000707.SZ', '000708.SZ', '000709.SZ', '000710.SZ', '000711.SZ', '000712.SZ', '000713.SZ', '000715.SZ', '000716.SZ', '000717.SZ', '000718.SZ', '000719.SZ', '000720.SZ', '000721.SZ', '000722.SZ', '000723.SZ', '000725.SZ', '000726.SZ', '000727.SZ', '000728.SZ', '000729.SZ', '000731.SZ', '000733.SZ', '000735.SZ', '000736.SZ', '000737.SZ', '000738.SZ', '000739.SZ', '000750.SZ', '000751.SZ', '000752.SZ', '000753.SZ', '000755.SZ', '000756.SZ', '000757.SZ', '000758.SZ', '000759.SZ', '000761.SZ', '000762.SZ', '000766.SZ', '000767.SZ', '000768.SZ', '000776.SZ', '000777.SZ', '000778.SZ', '000779.SZ', '000782.SZ', '000783.SZ', '000785.SZ', '000786.SZ', '000788.SZ', '000789.SZ', '000790.SZ', '000791.SZ', '000792.SZ', '000793.SZ', '000795.SZ', '000796.SZ', '000797.SZ', '000798.SZ', '000799.SZ', '000800.SZ', '000801.SZ', '000802.SZ', '000803.SZ', '000807.SZ', '000809.SZ', '000810.SZ', '000811.SZ', '000812.SZ', '000813.SZ', '000815.SZ', '000816.SZ', '000818.SZ', '000819.SZ', '000820.SZ', '000821.SZ', '000822.SZ', '000823.SZ', '000825.SZ', '000826.SZ', '000828.SZ', '000829.SZ', '000830.SZ', '000831.SZ', '000833.SZ', '000837.SZ', '000838.SZ', '000839.SZ', '000848.SZ', '000850.SZ', '000851.SZ', '000852.SZ', '000856.SZ', '000858.SZ', '000859.SZ', '000860.SZ', '000862.SZ', '000863.SZ', '000868.SZ', '000869.SZ', '000875.SZ', '000876.SZ', '000877.SZ', '000878.SZ', '000880.SZ', '000881.SZ', '000882.SZ', '000883.SZ', '000885.SZ', '000886.SZ', '000887.SZ', '000888.SZ', '000889.SZ', '000890.SZ', '000892.SZ', '000893.SZ', '000895.SZ', '000897.SZ', '000898.SZ', '000899.SZ', '000900.SZ', '000901.SZ', '000902.SZ', '000903.SZ', '000905.SZ', '000906.SZ', '000908.SZ', '000909.SZ', '000910.SZ', '000911.SZ', '000912.SZ', '000913.SZ', '000915.SZ', '000917.SZ', '000919.SZ', '000920.SZ', '000921.SZ', '000922.SZ', '000923.SZ', '000925.SZ', '000926.SZ', '000927.SZ', '000928.SZ', '000929.SZ', '000930.SZ', '000931.SZ', '000932.SZ', '000933.SZ', '000935.SZ', '000936.SZ', '000937.SZ', '000938.SZ', '000948.SZ', '000949.SZ', '000950.SZ', '000951.SZ', '000952.SZ', '000953.SZ', '000955.SZ', '000957.SZ', '000958.SZ', '000959.SZ', '000960.SZ', '000962.SZ', '000963.SZ', '000965.SZ', '000966.SZ', '000967.SZ', '000968.SZ', '000969.SZ', '000970.SZ', '000972.SZ', '000973.SZ', '000975.SZ', '000977.SZ', '000978.SZ', '000980.SZ', '000981.SZ', '000983.SZ', '000985.SZ', '000987.SZ', '000988.SZ', '000989.SZ', '000990.SZ', '000993.SZ', '000995.SZ', '000997.SZ', '000998.SZ', '000999.SZ', '001201.SZ', '001202.SZ', '001203.SZ', '001205.SZ', '001206.SZ', '001207.SZ', '001208.SZ', '001209.SZ', '001210.SZ', '001211.SZ', '001212.SZ', '001213.SZ', '001215.SZ', '001216.SZ', '001217.SZ', '001218.SZ', '001219.SZ', '001222.SZ', '001223.SZ', '001225.SZ', '001226.SZ', '001227.SZ', '001228.SZ', '001229.SZ', '001230.SZ', '001231.SZ', '001234.SZ', '001236.SZ', '001238.SZ', '001239.SZ', '001255.SZ', '001256.SZ', '001258.SZ', '001259.SZ', '001260.SZ', '001266.SZ', '001267.SZ', '001268.SZ', '001269.SZ', '001270.SZ', '001277.SZ', '001278.SZ', '001279.SZ', '001282.SZ', '001283.SZ', '001286.SZ', '001287.SZ', '001288.SZ', '001289.SZ', '001296.SZ', '001298.SZ', '001299.SZ', '001300.SZ', '001301.SZ', '001306.SZ', '001308.SZ', '001309.SZ', '001311.SZ', '001313.SZ', '001314.SZ', '001316.SZ', '001317.SZ', '001318.SZ', '001319.SZ', '001322.SZ', '001323.SZ', '001324.SZ', '001326.SZ', '001328.SZ', '001330.SZ', '001331.SZ', '001332.SZ', '001333.SZ', '001336.SZ', '001337.SZ', '001338.SZ', '001339.SZ', '001356.SZ', '001358.SZ', '001359.SZ', '001360.SZ', '001366.SZ', '001367.SZ', '001368.SZ', '001373.SZ', '001376.SZ', '001378.SZ', '001379.SZ', '001380.SZ', '001387.SZ', '001389.SZ', '001391.SZ', '001395.SZ', '001696.SZ', '001872.SZ', '001896.SZ', '001914.SZ', '001965.SZ', '001979.SZ', '002001.SZ', '002003.SZ', '002004.SZ', '002005.SZ', '002006.SZ', '002007.SZ', '002008.SZ', '002009.SZ', '002010.SZ', '002011.SZ', '002012.SZ', '002014.SZ', '002015.SZ', '002016.SZ', '002017.SZ', '002019.SZ', '002020.SZ', '002021.SZ', '002022.SZ', '002023.SZ', '002024.SZ', '002025.SZ', '002026.SZ', '002027.SZ', '002028.SZ', '002029.SZ', '002030.SZ', '002031.SZ', '002032.SZ', '002033.SZ', '002034.SZ', '002035.SZ', '002036.SZ', '002037.SZ', '002038.SZ', '002039.SZ', '002040.SZ', '002041.SZ', '002042.SZ', '002043.SZ', '002044.SZ', '002045.SZ', '002046.SZ', '002047.SZ', '002048.SZ', '002049.SZ', '002050.SZ', '002051.SZ', '002052.SZ', '002053.SZ', '002054.SZ', '002055.SZ', '002056.SZ', '002057.SZ', '002058.SZ', '002059.SZ', '002060.SZ', '002061.SZ', '002062.SZ', '002063.SZ', '002064.SZ', '002065.SZ', '002066.SZ', '002067.SZ', '002068.SZ', '002069.SZ', '002072.SZ', '002073.SZ', '002074.SZ', '002075.SZ', '002076.SZ', '002077.SZ', '002078.SZ', '002079.SZ', '002080.SZ', '002081.SZ', '002082.SZ', '002083.SZ', '002084.SZ', '002085.SZ', '002086.SZ', '002088.SZ', '002090.SZ', '002091.SZ', '002092.SZ', '002093.SZ', '002094.SZ', '002095.SZ', '002096.SZ', '002097.SZ', '002098.SZ', '002099.SZ', '002100.SZ', '002101.SZ', '002102.SZ', '002103.SZ', '002104.SZ', '002105.SZ', '002106.SZ', '002107.SZ', '002108.SZ', '002109.SZ', '002110.SZ', '002111.SZ', '002112.SZ', '002114.SZ', '002115.SZ', '002116.SZ', '002117.SZ', '002119.SZ', '002120.SZ', '002121.SZ', '002122.SZ', '002123.SZ', '002124.SZ', '002125.SZ', '002126.SZ', '002127.SZ', '002128.SZ', '002129.SZ', '002130.SZ', '002131.SZ', '002132.SZ', '002133.SZ', '002134.SZ', '002135.SZ', '002136.SZ', '002137.SZ', '002138.SZ', '002139.SZ', '002140.SZ', '002141.SZ', '002142.SZ', '002144.SZ', '002145.SZ', '002146.SZ', '002148.SZ', '002149.SZ', '002150.SZ', '002151.SZ', '002152.SZ', '002153.SZ', '002154.SZ', '002155.SZ', '002156.SZ', '002157.SZ', '002158.SZ', '002159.SZ', '002160.SZ', '002161.SZ', '002162.SZ', '002163.SZ', '002164.SZ', '002165.SZ', '002166.SZ', '002167.SZ', '002168.SZ', '002169.SZ', '002170.SZ', '002171.SZ', '002172.SZ', '002173.SZ', '002174.SZ', '002175.SZ', '002176.SZ', '002177.SZ', '002178.SZ', '002179.SZ', '002180.SZ', '002181.SZ', '002182.SZ', '002183.SZ', '002184.SZ', '002185.SZ', '002186.SZ', '002187.SZ', '002188.SZ', '002189.SZ', '002190.SZ', '002191.SZ', '002192.SZ', '002193.SZ', '002194.SZ', '002195.SZ', '002196.SZ', '002197.SZ', '002198.SZ', '002199.SZ', '002200.SZ', '002201.SZ', '002202.SZ', '002203.SZ', '002204.SZ', '002205.SZ', '002206.SZ', '002207.SZ', '002208.SZ', '002209.SZ', '002210.SZ', '002211.SZ', '002212.SZ', '002213.SZ', '002214.SZ', '002215.SZ', '002216.SZ', '002217.SZ', '002218.SZ', '002219.SZ', '002221.SZ', '002222.SZ', '002223.SZ', '002224.SZ', '002225.SZ', '002226.SZ', '002227.SZ', '002228.SZ', '002229.SZ', '002230.SZ', '002231.SZ', '002232.SZ', '002233.SZ', '002234.SZ', '002235.SZ', '002236.SZ', '002237.SZ', '002238.SZ', '002239.SZ', '002240.SZ', '002241.SZ', '002242.SZ', '002243.SZ', '002244.SZ', '002245.SZ', '002246.SZ', '002247.SZ', '002248.SZ', '002249.SZ', '002250.SZ', '002251.SZ', '002252.SZ', '002253.SZ', '002254.SZ', '002255.SZ', '002256.SZ', '002258.SZ', '002259.SZ', '002261.SZ', '002262.SZ', '002263.SZ', '002264.SZ', '002265.SZ', '002266.SZ', '002267.SZ', '002268.SZ', '002269.SZ', '002270.SZ', '002271.SZ', '002272.SZ', '002273.SZ', '002274.SZ', '002275.SZ', '002276.SZ', '002277.SZ', '002278.SZ', '002279.SZ', '002281.SZ', '002282.SZ', '002283.SZ', '002284.SZ', '002285.SZ', '002286.SZ', '002287.SZ', '002289.SZ', '002290.SZ', '002291.SZ', '002292.SZ', '002293.SZ', '002294.SZ', '002295.SZ', '002296.SZ', '002297.SZ', '002298.SZ', '002299.SZ', '002300.SZ', '002301.SZ', '002302.SZ', '002303.SZ', '002304.SZ', '002305.SZ', '002306.SZ', '002307.SZ', '002309.SZ', '002310.SZ', '002311.SZ', '002312.SZ', '002313.SZ', '002314.SZ', '002315.SZ', '002316.SZ', '002317.SZ', '002318.SZ', '002319.SZ', '002320.SZ', '002321.SZ', '002322.SZ', '002323.SZ', '002324.SZ', '002326.SZ', '002327.SZ', '002328.SZ', '002329.SZ', '002330.SZ', '002331.SZ', '002332.SZ', '002333.SZ', '002334.SZ', '002335.SZ', '002336.SZ', '002337.SZ', '002338.SZ', '002339.SZ', '002340.SZ', '002342.SZ', '002343.SZ', '002344.SZ', '002345.SZ', '002346.SZ', '002347.SZ', '002348.SZ', '002349.SZ', '002350.SZ', '002351.SZ', '002352.SZ', '002353.SZ', '002354.SZ', '002355.SZ', '002356.SZ', '002357.SZ', '002358.SZ', '002360.SZ', '002361.SZ', '002362.SZ', '002363.SZ', '002364.SZ', '002365.SZ', '002366.SZ', '002367.SZ', '002368.SZ', '002369.SZ', '002370.SZ', '002371.SZ', '002372.SZ', '002373.SZ', '002374.SZ', '002375.SZ', '002376.SZ', '002377.SZ', '002378.SZ', '002379.SZ', '002380.SZ', '002381.SZ', '002382.SZ', '002383.SZ', '002384.SZ', '002385.SZ', '002386.SZ', '002387.SZ', '002388.SZ', '002389.SZ', '002390.SZ', '002391.SZ', '002392.SZ', '002393.SZ', '002394.SZ', '002395.SZ', '002396.SZ', '002397.SZ', '002398.SZ', '002399.SZ', '002400.SZ', '002401.SZ', '002402.SZ', '002403.SZ', '002404.SZ', '002405.SZ', '002406.SZ', '002407.SZ', '002408.SZ', '002409.SZ', '002410.SZ', '002412.SZ', '002413.SZ', '002414.SZ', '002415.SZ', '002416.SZ', '002418.SZ', '002419.SZ', '002420.SZ', '002421.SZ', '002422.SZ', '002423.SZ', '002424.SZ', '002425.SZ', '002426.SZ', '002427.SZ', '002428.SZ', '002429.SZ', '002430.SZ', '002431.SZ', '002432.SZ', '002434.SZ', '002436.SZ', '002437.SZ', '002438.SZ', '002439.SZ', '002440.SZ', '002441.SZ', '002442.SZ', '002443.SZ', '002444.SZ', '002445.SZ', '002446.SZ', '002448.SZ', '002449.SZ', '002451.SZ', '002452.SZ', '002453.SZ', '002454.SZ', '002455.SZ', '002456.SZ', '002457.SZ', '002458.SZ', '002459.SZ', '002460.SZ', '002461.SZ', '002462.SZ', '002463.SZ', '002465.SZ', '002466.SZ', '002467.SZ', '002468.SZ', '002469.SZ', '002470.SZ', '002471.SZ', '002472.SZ', '002474.SZ', '002475.SZ', '002476.SZ', '002478.SZ', '002479.SZ', '002480.SZ', '002481.SZ', '002482.SZ', '002483.SZ', '002484.SZ', '002485.SZ', '002486.SZ', '002487.SZ', '002488.SZ', '002489.SZ', '002490.SZ', '002491.SZ', '002492.SZ', '002493.SZ', '002494.SZ', '002495.SZ', '002496.SZ', '002497.SZ', '002498.SZ', '002500.SZ', '002501.SZ', '002506.SZ', '002507.SZ', '002508.SZ', '002510.SZ', '002511.SZ', '002512.SZ', '002513.SZ', '002514.SZ', '002515.SZ', '002516.SZ', '002517.SZ', '002518.SZ', '002519.SZ', '002520.SZ', '002521.SZ', '002522.SZ', '002523.SZ', '002524.SZ', '002526.SZ', '002527.SZ', '002528.SZ', '002529.SZ', '002530.SZ', '002531.SZ', '002532.SZ', '002533.SZ', '002534.SZ', '002535.SZ', '002536.SZ', '002537.SZ', '002538.SZ', '002539.SZ', '002540.SZ', '002541.SZ', '002542.SZ', '002543.SZ', '002544.SZ', '002545.SZ', '002546.SZ', '002547.SZ', '002548.SZ', '002549.SZ', '002550.SZ', '002551.SZ', '002552.SZ', '002553.SZ', '002554.SZ', '002555.SZ', '002556.SZ', '002557.SZ', '002558.SZ', '002559.SZ', '002560.SZ', '002561.SZ', '002562.SZ', '002563.SZ', '002564.SZ', '002565.SZ', '002566.SZ', '002567.SZ', '002568.SZ', '002569.SZ', '002570.SZ', '002571.SZ', '002572.SZ', '002573.SZ', '002574.SZ', '002575.SZ', '002576.SZ', '002577.SZ', '002578.SZ', '002579.SZ', '002580.SZ', '002581.SZ', '002582.SZ', '002583.SZ', '002584.SZ', '002585.SZ', '002586.SZ', '002587.SZ', '002588.SZ', '002589.SZ', '002590.SZ', '002591.SZ', '002592.SZ', '002593.SZ', '002594.SZ', '002595.SZ', '002596.SZ', '002597.SZ', '002598.SZ', '002599.SZ', '002600.SZ', '002601.SZ', '002602.SZ', '002603.SZ', '002605.SZ', '002606.SZ', '002607.SZ', '002608.SZ', '002609.SZ', '002611.SZ', '002612.SZ', '002613.SZ', '002614.SZ', '002615.SZ', '002616.SZ', '002617.SZ', '002620.SZ', '002622.SZ', '002623.SZ', '002624.SZ', '002625.SZ', '002626.SZ', '002627.SZ', '002628.SZ', '002629.SZ', '002630.SZ', '002631.SZ', '002632.SZ', '002633.SZ', '002634.SZ', '002635.SZ', '002636.SZ', '002637.SZ', '002638.SZ', '002639.SZ', '002640.SZ', '002641.SZ', '002642.SZ', '002643.SZ', '002644.SZ', '002645.SZ', '002646.SZ', '002647.SZ', '002648.SZ', '002649.SZ', '002650.SZ', '002651.SZ', '002652.SZ', '002653.SZ', '002654.SZ', '002655.SZ', '002656.SZ', '002657.SZ', '002658.SZ', '002659.SZ', '002660.SZ', '002661.SZ', '002662.SZ', '002663.SZ', '002664.SZ', '002666.SZ', '002667.SZ', '002668.SZ', '002669.SZ', '002670.SZ', '002671.SZ', '002672.SZ', '002673.SZ', '002674.SZ', '002675.SZ', '002676.SZ', '002677.SZ', '002678.SZ', '002679.SZ', '002681.SZ', '002682.SZ', '002683.SZ', '002685.SZ', '002686.SZ', '002687.SZ', '002688.SZ', '002689.SZ', '002690.SZ', '002691.SZ', '002692.SZ', '002693.SZ', '002694.SZ', '002695.SZ', '002696.SZ', '002697.SZ', '002698.SZ', '002700.SZ', '002701.SZ', '002702.SZ', '002703.SZ', '002705.SZ', '002706.SZ', '002707.SZ', '002708.SZ', '002709.SZ', '002712.SZ', '002713.SZ', '002714.SZ', '002715.SZ', '002716.SZ', '002717.SZ', '002718.SZ', '002719.SZ', '002721.SZ', '002722.SZ', '002723.SZ', '002724.SZ', '002725.SZ', '002726.SZ', '002727.SZ', '002728.SZ', '002729.SZ', '002730.SZ', '002731.SZ', '002732.SZ', '002733.SZ', '002734.SZ', '002735.SZ', '002736.SZ', '002737.SZ', '002738.SZ', '002739.SZ', '002741.SZ', '002742.SZ', '002743.SZ', '002745.SZ', '002746.SZ', '002747.SZ', '002748.SZ', '002749.SZ', '002750.SZ', '002752.SZ', '002753.SZ', '002755.SZ', '002756.SZ', '002757.SZ', '002758.SZ', '002759.SZ', '002760.SZ', '002761.SZ', '002762.SZ', '002763.SZ', '002765.SZ', '002766.SZ', '002767.SZ', '002768.SZ', '002769.SZ', '002771.SZ', '002772.SZ', '002773.SZ', '002774.SZ', '002775.SZ', '002777.SZ', '002778.SZ', '002779.SZ', '002780.SZ', '002782.SZ', '002783.SZ', '002785.SZ', '002786.SZ', '002787.SZ', '002788.SZ', '002789.SZ', '002790.SZ', '002791.SZ', '002792.SZ', '002793.SZ', '002795.SZ', '002796.SZ', '002797.SZ', '002798.SZ', '002799.SZ', '002800.SZ', '002801.SZ', '002802.SZ', '002803.SZ', '002805.SZ', '002806.SZ', '002807.SZ', '002808.SZ', '002809.SZ', '002810.SZ', '002811.SZ', '002812.SZ', '002813.SZ', '002815.SZ', '002816.SZ', '002817.SZ', '002818.SZ', '002819.SZ', '002820.SZ', '002821.SZ', '002822.SZ', '002823.SZ', '002824.SZ', '002825.SZ', '002826.SZ', '002827.SZ', '002828.SZ', '002829.SZ', '002830.SZ', '002831.SZ', '002832.SZ', '002833.SZ', '002835.SZ', '002836.SZ', '002837.SZ', '002838.SZ', '002839.SZ', '002840.SZ', '002841.SZ', '002842.SZ', '002843.SZ', '002845.SZ', '002846.SZ', '002847.SZ', '002848.SZ', '002849.SZ', '002850.SZ', '002851.SZ', '002852.SZ', '002853.SZ', '002855.SZ', '002856.SZ', '002857.SZ', '002858.SZ', '002859.SZ', '002860.SZ', '002861.SZ', '002862.SZ', '002863.SZ', '002864.SZ', '002865.SZ', '002866.SZ', '002867.SZ', '002868.SZ', '002869.SZ', '002870.SZ', '002871.SZ', '002872.SZ', '002873.SZ', '002875.SZ', '002876.SZ', '002877.SZ', '002878.SZ', '002879.SZ', '002880.SZ', '002881.SZ', '002882.SZ', '002883.SZ', '002884.SZ', '002885.SZ', '002886.SZ', '002887.SZ', '002888.SZ', '002889.SZ', '002890.SZ', '002891.SZ', '002892.SZ', '002893.SZ', '002895.SZ', '002896.SZ', '002897.SZ', '002898.SZ', '002899.SZ', '002900.SZ', '002901.SZ', '002902.SZ', '002903.SZ', '002905.SZ', '002906.SZ', '002907.SZ', '002908.SZ', '002909.SZ', '002910.SZ', '002911.SZ', '002912.SZ', '002913.SZ', '002915.SZ', '002916.SZ', '002917.SZ', '002918.SZ', '002919.SZ', '002920.SZ', '002921.SZ', '002922.SZ', '002923.SZ', '002925.SZ', '002926.SZ', '002927.SZ', '002928.SZ', '002929.SZ', '002930.SZ', '002931.SZ', '002932.SZ', '002933.SZ', '002935.SZ', '002936.SZ', '002937.SZ', '002938.SZ', '002939.SZ', '002940.SZ', '002941.SZ', '002942.SZ', '002943.SZ', '002945.SZ', '002946.SZ', '002947.SZ', '002948.SZ', '002949.SZ', '002950.SZ', '002951.SZ', '002952.SZ', '002953.SZ', '002955.SZ', '002956.SZ', '002957.SZ', '002958.SZ', '002959.SZ', '002960.SZ', '002961.SZ', '002962.SZ', '002963.SZ', '002965.SZ', '002966.SZ', '002967.SZ', '002968.SZ', '002969.SZ', '002970.SZ', '002971.SZ', '002972.SZ', '002973.SZ', '002975.SZ', '002976.SZ', '002977.SZ', '002978.SZ', '002979.SZ', '002980.SZ', '002981.SZ', '002982.SZ', '002983.SZ', '002984.SZ', '002985.SZ', '002986.SZ', '002987.SZ', '002988.SZ', '002989.SZ', '002990.SZ', '002991.SZ', '002992.SZ', '002993.SZ', '002995.SZ', '002996.SZ', '002997.SZ', '002998.SZ', '002999.SZ', '003000.SZ', '003001.SZ', '003002.SZ', '003003.SZ', '003004.SZ', '003005.SZ', '003006.SZ', '003007.SZ', '003008.SZ', '003009.SZ', '003010.SZ', '003011.SZ', '003012.SZ', '003013.SZ', '003015.SZ', '003016.SZ', '003017.SZ', '003018.SZ', '003019.SZ', '003020.SZ', '003021.SZ', '003022.SZ', '003023.SZ', '003025.SZ', '003026.SZ', '003027.SZ', '003028.SZ', '003029.SZ', '003030.SZ', '003031.SZ', '003032.SZ', '003033.SZ', '003035.SZ', '003036.SZ', '003037.SZ', '003038.SZ', '003039.SZ', '003040.SZ', '003041.SZ', '003042.SZ', '003043.SZ', '003816.SZ', '688001.SS', '688002.SS', '688003.SS', '688004.SS', '688005.SS', '688006.SS', '688007.SS', '688008.SS', '688009.SS', '688010.SS', '688011.SS', '688012.SS', '688013.SS', '688015.SS', '688016.SS', '688017.SS', '688018.SS', '688019.SS', '688020.SS', '688021.SS', '688022.SS', '688023.SS', '688025.SS', '688026.SS', '688027.SS', '688028.SS', '688029.SS', '688030.SS', '688031.SS', '688032.SS', '688033.SS', '688035.SS', '688036.SS', '688037.SS', '688038.SS', '688039.SS', '688041.SS', '688045.SS', '688046.SS', '688047.SS', '688048.SS', '688049.SS', '688050.SS', '688051.SS', '688052.SS', '688053.SS', '688055.SS', '688056.SS', '688057.SS', '688058.SS', '688059.SS', '688060.SS', '688061.SS', '688062.SS', '688063.SS', '688065.SS', '688066.SS', '688067.SS', '688068.SS', '688069.SS', '688070.SS', '688071.SS', '688072.SS', '688073.SS', '688075.SS', '688076.SS', '688077.SS', '688078.SS', '688079.SS', '688080.SS', '688081.SS', '688082.SS', '688083.SS', '688084.SS', '688085.SS', '688087.SS', '688088.SS', '688089.SS', '688090.SS', '688091.SS', '688092.SS', '688093.SS', '688095.SS', '688096.SS', '688097.SS', '688098.SS', '688099.SS', '688100.SS', '688101.SS', '688102.SS', '688103.SS', '688105.SS', '688106.SS', '688107.SS', '688108.SS', '688109.SS', '688110.SS', '688111.SS', '688112.SS', '688113.SS', '688114.SS', '688115.SS', '688116.SS', '688117.SS', '688118.SS', '688119.SS', '688120.SS', '688121.SS', '688122.SS', '688123.SS', '688125.SS', '688126.SS', '688127.SS', '688128.SS', '688129.SS', '688130.SS', '688131.SS', '688132.SS', '688133.SS', '688135.SS', '688136.SS', '688137.SS', '688138.SS', '688139.SS', '688141.SS', '688143.SS', '688146.SS', '688147.SS', '688148.SS', '688150.SS', '688151.SS', '688152.SS', '688153.SS', '688155.SS', '688156.SS', '688157.SS', '688158.SS', '688159.SS', '688160.SS', '688161.SS', '688162.SS', '688163.SS', '688165.SS', '688166.SS', '688167.SS', '688168.SS', '688169.SS', '688170.SS', '688171.SS', '688172.SS', '688173.SS', '688175.SS', '688176.SS', '688177.SS', '688178.SS', '688179.SS', '688180.SS', '688181.SS', '688182.SS', '688183.SS', '688184.SS', '688185.SS', '688186.SS', '688187.SS', '688188.SS', '688189.SS', '688190.SS', '688191.SS', '688192.SS', '688193.SS', '688195.SS', '688196.SS', '688197.SS', '688198.SS', '688199.SS', '688200.SS', '688201.SS', '688202.SS', '688203.SS', '688205.SS', '688206.SS', '688207.SS', '688208.SS', '688209.SS', '688210.SS', '688211.SS', '688212.SS', '688213.SS', '688215.SS', '688216.SS', '688217.SS', '688218.SS', '688219.SS', '688220.SS', '688221.SS', '688222.SS', '688223.SS', '688225.SS', '688226.SS', '688227.SS', '688228.SS', '688229.SS', '688230.SS', '688231.SS', '688232.SS', '688233.SS', '688234.SS', '688235.SS', '688236.SS', '688237.SS', '688238.SS', '688239.SS', '688244.SS', '688246.SS', '688247.SS', '688248.SS', '688249.SS', '688251.SS', '688252.SS', '688253.SS', '688255.SS', '688256.SS', '688257.SS', '688258.SS', '688259.SS', '688260.SS', '688261.SS', '688262.SS', '688265.SS', '688266.SS', '688267.SS', '688268.SS', '688269.SS', '688270.SS', '688271.SS', '688272.SS', '688273.SS', '688275.SS', '688276.SS', '688277.SS', '688278.SS', '688279.SS', '688280.SS', '688281.SS', '688282.SS', '688283.SS', '688285.SS', '688286.SS', '688287.SS', '688288.SS', '688289.SS', '688290.SS', '688291.SS', '688292.SS', '688293.SS', '688295.SS', '688296.SS', '688297.SS', '688298.SS', '688299.SS', '688300.SS', '688301.SS', '688302.SS', '688303.SS', '688305.SS', '688306.SS', '688307.SS', '688308.SS', '688309.SS', '688310.SS', '688311.SS', '688312.SS', '688313.SS', '688314.SS', '688315.SS', '688316.SS', '688317.SS', '688318.SS', '688319.SS', '688320.SS', '688321.SS', '688322.SS', '688323.SS', '688325.SS', '688326.SS', '688327.SS', '688328.SS', '688329.SS', '688330.SS', '688331.SS', '688332.SS', '688333.SS', '688334.SS', '688335.SS', '688336.SS', '688337.SS', '688338.SS', '688339.SS', '688343.SS', '688345.SS', '688347.SS', '688348.SS', '688349.SS', '688350.SS', '688351.SS', '688352.SS', '688353.SS', '688355.SS', '688356.SS', '688357.SS', '688358.SS', '688359.SS', '688360.SS', '688361.SS', '688362.SS', '688363.SS', '688365.SS', '688366.SS', '688367.SS', '688368.SS', '688369.SS', '688370.SS', '688371.SS', '688372.SS', '688373.SS', '688375.SS', '688376.SS', '688377.SS', '688378.SS', '688379.SS', '688380.SS', '688381.SS', '688382.SS', '688383.SS', '688385.SS', '688386.SS', '688387.SS', '688388.SS', '688389.SS', '688390.SS', '688391.SS', '688392.SS', '688393.SS', '688395.SS', '688396.SS', '688398.SS', '688399.SS', '688400.SS', '688401.SS', '688403.SS', '688408.SS', '688409.SS', '688410.SS', '688411.SS', '688416.SS', '688418.SS', '688419.SS', '688420.SS', '688425.SS', '688426.SS', '688428.SS', '688429.SS', '688432.SS', '688433.SS', '688435.SS', '688439.SS', '688443.SS', '688448.SS', '688449.SS', '688450.SS', '688455.SS', '688456.SS', '688458.SS', '688459.SS', '688466.SS', '688468.SS', '688469.SS', '688472.SS', '688475.SS', '688478.SS', '688479.SS', '688480.SS', '688484.SS', '688485.SS', '688486.SS', '688488.SS', '688489.SS', '688496.SS', '688498.SS', '688499.SS', '688500.SS', '688501.SS', '688502.SS', '688503.SS', '688505.SS', '688506.SS', '688507.SS', '688508.SS', '688509.SS', '688510.SS', '688511.SS', '688512.SS', '688513.SS', '688515.SS', '688516.SS', '688517.SS', '688518.SS', '688519.SS', '688520.SS', '688521.SS', '688522.SS', '688523.SS', '688525.SS', '688526.SS', '688528.SS', '688529.SS', '688530.SS', '688531.SS', '688533.SS', '688535.SS', '688536.SS', '688538.SS', '688539.SS', '688543.SS', '688545.SS', '688548.SS', '688549.SS', '688550.SS', '688551.SS', '688552.SS', '688553.SS', '688556.SS', '688557.SS', '688558.SS', '688559.SS', '688560.SS', '688561.SS', '688562.SS', '688563.SS', '688565.SS', '688566.SS', '688567.SS', '688568.SS', '688569.SS', '688570.SS', '688571.SS', '688573.SS', '688575.SS', '688576.SS', '688577.SS', '688578.SS', '688579.SS', '688580.SS', '688581.SS', '688582.SS', '688583.SS', '688584.SS', '688585.SS', '688586.SS', '688588.SS', '688589.SS', '688590.SS', '688591.SS', '688592.SS', '688593.SS', '688595.SS', '688596.SS', '688597.SS', '688598.SS', '688599.SS', '688600.SS', '688601.SS', '688602.SS', '688603.SS', '688605.SS', '688606.SS', '688607.SS', '688608.SS', '688609.SS', '688610.SS', '688611.SS', '688612.SS', '688613.SS', '688615.SS', '688616.SS', '688617.SS', '688618.SS', '688619.SS', '688620.SS', '688621.SS', '688622.SS', '688623.SS', '688625.SS', '688626.SS', '688627.SS', '688628.SS', '688629.SS', '688630.SS', '688631.SS', '688633.SS', '688636.SS', '688638.SS', '688639.SS', '688646.SS', '688648.SS', '688651.SS', '688652.SS', '688653.SS', '688655.SS', '688656.SS', '688657.SS', '688658.SS', '688659.SS', '688660.SS', '688661.SS', '688662.SS', '688663.SS', '688665.SS', '688667.SS', '688668.SS', '688669.SS', '688670.SS', '688671.SS', '688676.SS', '688677.SS', '688678.SS', '688679.SS', '688680.SS', '688681.SS', '688682.SS', '688683.SS', '688685.SS', '688686.SS', '688687.SS', '688689.SS', '688690.SS', '688691.SS', '688692.SS', '688693.SS', '688695.SS', '688696.SS', '688697.SS', '688698.SS', '688699.SS', '688700.SS', '688701.SS', '688702.SS', '688707.SS', '688708.SS', '688709.SS', '688710.SS', '688711.SS', '688716.SS', '688717.SS', '688718.SS', '688719.SS', '688720.SS', '688721.SS', '688722.SS', '688726.SS', '688728.SS', '688733.SS', '688737.SS', '688739.SS', '688750.SS', '688758.SS', '688766.SS', '688767.SS', '688768.SS', '688772.SS', '688776.SS', '688777.SS', '688778.SS', '688779.SS', '688786.SS', '688787.SS', '688788.SS', '688789.SS', '688793.SS', '688798.SS', '688799.SS', '688800.SS', '688819.SS', '688981.SS', '689009.SS', '300001.SZ', '300002.SZ', '300003.SZ', '300004.SZ', '300005.SZ', '300006.SZ', '300007.SZ', '300008.SZ', '300009.SZ', '300010.SZ', '300011.SZ', '300012.SZ', '300013.SZ', '300014.SZ', '300015.SZ', '300016.SZ', '300017.SZ', '300018.SZ', '300019.SZ', '300020.SZ', '300021.SZ', '300022.SZ', '300024.SZ', '300025.SZ', '300026.SZ', '300027.SZ', '300029.SZ', '300030.SZ', '300031.SZ', '300032.SZ', '300033.SZ', '300034.SZ', '300035.SZ', '300036.SZ', '300037.SZ', '300039.SZ', '300040.SZ', '300041.SZ', '300042.SZ', '300043.SZ', '300044.SZ', '300045.SZ', '300046.SZ', '300047.SZ', '300048.SZ', '300049.SZ', '300050.SZ', '300051.SZ', '300052.SZ', '300053.SZ', '300054.SZ', '300055.SZ', '300056.SZ', '300057.SZ', '300058.SZ', '300059.SZ', '300061.SZ', '300062.SZ', '300063.SZ', '300065.SZ', '300066.SZ', '300067.SZ', '300068.SZ', '300069.SZ', '300070.SZ', '300071.SZ', '300072.SZ', '300073.SZ', '300074.SZ', '300075.SZ', '300076.SZ', '300077.SZ', '300078.SZ', '300079.SZ', '300080.SZ', '300081.SZ', '300082.SZ', '300083.SZ', '300084.SZ', '300085.SZ', '300086.SZ', '300087.SZ', '300088.SZ', '300091.SZ', '300092.SZ', '300093.SZ', '300094.SZ', '300095.SZ', '300096.SZ', '300097.SZ', '300098.SZ', '300099.SZ', '300100.SZ', '300101.SZ', '300102.SZ', '300103.SZ', '300105.SZ', '300106.SZ', '300107.SZ', '300108.SZ', '300109.SZ', '300110.SZ', '300111.SZ', '300112.SZ', '300113.SZ', '300115.SZ', '300117.SZ', '300118.SZ', '300119.SZ', '300120.SZ', '300121.SZ', '300122.SZ', '300123.SZ', '300124.SZ', '300125.SZ', '300126.SZ', '300127.SZ', '300128.SZ', '300129.SZ', '300130.SZ', '300131.SZ', '300132.SZ', '300133.SZ', '300134.SZ', '300135.SZ', '300136.SZ', '300137.SZ', '300138.SZ', '300139.SZ', '300140.SZ', '300141.SZ', '300142.SZ', '300143.SZ', '300144.SZ', '300145.SZ', '300146.SZ', '300147.SZ', '300148.SZ', '300149.SZ', '300150.SZ', '300151.SZ', '300152.SZ', '300153.SZ', '300154.SZ', '300155.SZ', '300157.SZ', '300158.SZ', '300159.SZ', '300160.SZ', '300161.SZ', '300162.SZ', '300163.SZ', '300164.SZ', '300165.SZ', '300166.SZ', '300167.SZ', '300168.SZ', '300169.SZ', '300170.SZ', '300171.SZ', '300172.SZ', '300173.SZ', '300174.SZ', '300175.SZ', '300176.SZ', '300177.SZ', '300179.SZ', '300180.SZ', '300181.SZ', '300182.SZ', '300183.SZ', '300184.SZ', '300185.SZ', '300187.SZ', '300188.SZ', '300189.SZ', '300190.SZ', '300191.SZ', '300192.SZ', '300193.SZ', '300194.SZ', '300195.SZ', '300196.SZ', '300197.SZ', '300198.SZ', '300199.SZ', '300200.SZ', '300201.SZ', '300203.SZ', '300204.SZ', '300205.SZ', '300206.SZ', '300207.SZ', '300208.SZ', '300209.SZ', '300210.SZ', '300211.SZ', '300212.SZ', '300213.SZ', '300214.SZ', '300215.SZ', '300217.SZ', '300218.SZ', '300219.SZ', '300220.SZ', '300221.SZ', '300222.SZ', '300223.SZ', '300224.SZ', '300225.SZ', '300226.SZ', '300227.SZ', '300228.SZ', '300229.SZ', '300230.SZ', '300231.SZ', '300232.SZ', '300233.SZ', '300234.SZ', '300235.SZ', '300236.SZ', '300237.SZ', '300238.SZ', '300239.SZ', '300240.SZ', '300241.SZ', '300242.SZ', '300243.SZ', '300244.SZ', '300245.SZ', '300246.SZ', '300247.SZ', '300248.SZ', '300249.SZ', '300250.SZ', '300251.SZ', '300252.SZ', '300253.SZ', '300254.SZ', '300255.SZ', '300256.SZ', '300257.SZ', '300258.SZ', '300259.SZ', '300260.SZ', '300261.SZ', '300263.SZ', '300264.SZ', '300265.SZ', '300266.SZ', '300267.SZ', '300268.SZ', '300269.SZ', '300270.SZ', '300271.SZ', '300272.SZ', '300274.SZ', '300275.SZ', '300276.SZ', '300277.SZ', '300278.SZ', '300279.SZ', '300280.SZ', '300281.SZ', '300283.SZ', '300284.SZ', '300285.SZ', '300286.SZ', '300287.SZ', '300288.SZ', '300289.SZ', '300290.SZ', '300291.SZ', '300292.SZ', '300293.SZ', '300294.SZ', '300295.SZ', '300296.SZ', '300298.SZ', '300299.SZ', '300300.SZ', '300301.SZ', '300302.SZ', '300303.SZ', '300304.SZ', '300305.SZ', '300306.SZ', '300307.SZ', '300308.SZ', '300310.SZ', '300311.SZ', '300313.SZ', '300314.SZ', '300315.SZ', '300316.SZ', '300317.SZ', '300318.SZ', '300319.SZ', '300320.SZ', '300321.SZ', '300322.SZ', '300323.SZ', '300324.SZ', '300326.SZ', '300327.SZ', '300328.SZ', '300329.SZ', '300331.SZ', '300332.SZ', '300333.SZ', '300334.SZ', '300335.SZ', '300337.SZ', '300338.SZ', '300339.SZ', '300340.SZ', '300341.SZ', '300342.SZ', '300343.SZ', '300344.SZ', '300345.SZ', '300346.SZ', '300347.SZ', '300348.SZ', '300349.SZ', '300350.SZ', '300351.SZ', '300352.SZ', '300353.SZ', '300354.SZ', '300355.SZ', '300357.SZ', '300358.SZ', '300359.SZ', '300360.SZ', '300363.SZ', '300364.SZ', '300365.SZ', '300366.SZ', '300368.SZ', '300369.SZ', '300370.SZ', '300371.SZ', '300373.SZ', '300374.SZ', '300375.SZ', '300376.SZ', '300377.SZ', '300378.SZ', '300379.SZ', '300380.SZ', '300381.SZ', '300382.SZ', '300383.SZ', '300384.SZ', '300385.SZ', '300386.SZ', '300387.SZ', '300388.SZ', '300389.SZ', '300390.SZ', '300391.SZ', '300393.SZ', '300394.SZ', '300395.SZ', '300396.SZ', '300397.SZ', '300398.SZ', '300399.SZ', '300400.SZ', '300401.SZ', '300402.SZ', '300403.SZ', '300404.SZ', '300405.SZ', '300406.SZ', '300407.SZ', '300408.SZ', '300409.SZ', '300410.SZ', '300411.SZ', '300412.SZ', '300413.SZ', '300414.SZ', '300415.SZ', '300416.SZ', '300417.SZ', '300418.SZ', '300419.SZ', '300420.SZ', '300421.SZ', '300422.SZ', '300423.SZ', '300424.SZ', '300425.SZ', '300426.SZ', '300427.SZ', '300428.SZ', '300429.SZ', '300430.SZ', '300432.SZ', '300433.SZ', '300434.SZ', '300435.SZ', '300436.SZ', '300437.SZ', '300438.SZ', '300439.SZ', '300440.SZ', '300441.SZ', '300442.SZ', '300443.SZ', '300444.SZ', '300445.SZ', '300446.SZ', '300447.SZ', '300448.SZ', '300449.SZ', '300450.SZ', '300451.SZ', '300452.SZ', '300453.SZ', '300454.SZ', '300455.SZ', '300456.SZ', '300457.SZ', '300458.SZ', '300459.SZ', '300460.SZ', '300461.SZ', '300462.SZ', '300463.SZ', '300464.SZ', '300465.SZ', '300466.SZ', '300467.SZ', '300468.SZ', '300469.SZ', '300470.SZ', '300471.SZ', '300472.SZ', '300473.SZ', '300474.SZ', '300475.SZ', '300476.SZ', '300477.SZ', '300478.SZ', '300479.SZ', '300480.SZ', '300481.SZ', '300482.SZ', '300483.SZ', '300484.SZ', '300485.SZ', '300486.SZ', '300487.SZ', '300488.SZ', '300489.SZ', '300490.SZ', '300491.SZ', '300492.SZ', '300493.SZ', '300494.SZ', '300496.SZ', '300497.SZ', '300498.SZ', '300499.SZ', '300500.SZ', '300501.SZ', '300502.SZ', '300503.SZ', '300504.SZ', '300505.SZ', '300506.SZ', '300507.SZ', '300508.SZ', '300509.SZ', '300510.SZ', '300511.SZ', '300512.SZ', '300513.SZ', '300514.SZ', '300515.SZ', '300516.SZ', '300517.SZ', '300518.SZ', '300519.SZ', '300520.SZ', '300521.SZ', '300522.SZ', '300523.SZ', '300525.SZ', '300527.SZ', '300528.SZ', '300529.SZ', '300530.SZ', '300531.SZ', '300532.SZ', '300533.SZ', '300534.SZ', '300535.SZ', '300536.SZ', '300537.SZ', '300538.SZ', '300539.SZ', '300540.SZ', '300541.SZ', '300542.SZ', '300543.SZ', '300545.SZ', '300546.SZ', '300547.SZ', '300548.SZ', '300549.SZ', '300550.SZ', '300551.SZ', '300552.SZ', '300553.SZ', '300554.SZ', '300555.SZ', '300556.SZ', '300557.SZ', '300558.SZ', '300559.SZ', '300560.SZ', '300561.SZ', '300562.SZ', '300563.SZ', '300564.SZ', '300565.SZ', '300566.SZ', '300567.SZ', '300568.SZ', '300569.SZ', '300570.SZ', '300571.SZ', '300572.SZ', '300573.SZ', '300575.SZ', '300576.SZ', '300577.SZ', '300578.SZ', '300579.SZ', '300580.SZ', '300581.SZ', '300582.SZ', '300583.SZ', '300584.SZ', '300585.SZ', '300586.SZ', '300587.SZ', '300588.SZ', '300589.SZ', '300590.SZ', '300591.SZ', '300592.SZ', '300593.SZ', '300594.SZ', '300595.SZ', '300596.SZ', '300597.SZ', '300598.SZ', '300599.SZ', '300600.SZ', '300601.SZ', '300602.SZ', '300603.SZ', '300604.SZ', '300605.SZ', '300606.SZ', '300607.SZ', '300608.SZ', '300609.SZ', '300610.SZ', '300611.SZ', '300612.SZ', '300613.SZ', '300614.SZ', '300615.SZ', '300616.SZ', '300617.SZ', '300618.SZ', '300619.SZ', '300620.SZ', '300621.SZ', '300622.SZ', '300623.SZ', '300624.SZ', '300625.SZ', '300626.SZ', '300627.SZ', '300628.SZ', '300629.SZ', '300630.SZ', '300631.SZ', '300632.SZ', '300633.SZ', '300634.SZ', '300635.SZ', '300636.SZ', '300637.SZ', '300638.SZ', '300639.SZ', '300640.SZ', '300641.SZ', '300642.SZ', '300643.SZ', '300644.SZ', '300645.SZ', '300647.SZ', '300648.SZ', '300649.SZ', '300650.SZ', '300651.SZ', '300652.SZ', '300653.SZ', '300654.SZ', '300655.SZ', '300656.SZ', '300657.SZ', '300658.SZ', '300659.SZ', '300660.SZ', '300661.SZ', '300662.SZ', '300663.SZ', '300664.SZ', '300665.SZ', '300666.SZ', '300667.SZ', '300668.SZ', '300669.SZ', '300670.SZ', '300671.SZ', '300672.SZ', '300673.SZ', '300674.SZ', '300675.SZ', '300676.SZ', '300677.SZ', '300678.SZ', '300679.SZ', '300680.SZ', '300681.SZ', '300682.SZ', '300683.SZ', '300684.SZ', '300685.SZ', '300686.SZ', '300687.SZ', '300688.SZ', '300689.SZ', '300690.SZ', '300691.SZ', '300692.SZ', '300693.SZ', '300694.SZ', '300695.SZ', '300696.SZ', '300697.SZ', '300698.SZ', '300699.SZ', '300700.SZ', '300701.SZ', '300702.SZ', '300703.SZ', '300705.SZ', '300706.SZ', '300707.SZ', '300708.SZ', '300709.SZ', '300710.SZ', '300711.SZ', '300712.SZ', '300713.SZ', '300715.SZ', '300716.SZ', '300717.SZ', '300718.SZ', '300719.SZ', '300720.SZ', '300721.SZ', '300722.SZ', '300723.SZ', '300724.SZ', '300725.SZ', '300726.SZ', '300727.SZ', '300729.SZ', '300730.SZ', '300731.SZ', '300732.SZ', '300733.SZ', '300735.SZ', '300736.SZ', '300737.SZ', '300738.SZ', '300739.SZ', '300740.SZ', '300741.SZ', '300743.SZ', '300745.SZ', '300746.SZ', '300747.SZ', '300748.SZ', '300749.SZ', '300750.SZ', '300751.SZ', '300752.SZ', '300753.SZ', '300755.SZ', '300756.SZ', '300757.SZ', '300758.SZ', '300759.SZ', '300760.SZ', '300761.SZ', '300762.SZ', '300763.SZ', '300765.SZ', '300766.SZ', '300767.SZ', '300768.SZ', '300769.SZ', '300770.SZ', '300771.SZ', '300772.SZ', '300773.SZ', '300774.SZ', '300775.SZ', '300776.SZ', '300777.SZ', '300778.SZ', '300779.SZ', '300780.SZ', '300781.SZ', '300782.SZ', '300783.SZ', '300784.SZ', '300785.SZ', '300786.SZ', '300787.SZ', '300788.SZ', '300789.SZ', '300790.SZ', '300791.SZ', '300792.SZ', '300793.SZ', '300795.SZ', '300796.SZ', '300797.SZ', '300798.SZ', '300800.SZ', '300801.SZ', '300802.SZ', '300803.SZ', '300804.SZ', '300805.SZ', '300806.SZ', '300807.SZ', '300808.SZ', '300809.SZ', '300810.SZ', '300811.SZ', '300812.SZ', '300813.SZ', '300814.SZ', '300815.SZ', '300816.SZ', '300817.SZ', '300818.SZ', '300819.SZ', '300820.SZ', '300821.SZ', '300822.SZ', '300823.SZ', '300824.SZ', '300825.SZ', '300826.SZ', '300827.SZ', '300828.SZ', '300829.SZ', '300830.SZ', '300831.SZ', '300832.SZ', '300833.SZ', '300834.SZ', '300835.SZ', '300836.SZ', '300837.SZ', '300838.SZ', '300839.SZ', '300840.SZ', '300841.SZ', '300842.SZ', '300843.SZ', '300844.SZ', '300845.SZ', '300846.SZ', '300847.SZ', '300848.SZ', '300849.SZ', '300850.SZ', '300851.SZ', '300852.SZ', '300853.SZ', '300854.SZ', '300855.SZ', '300856.SZ', '300857.SZ', '300858.SZ', '300859.SZ', '300860.SZ', '300861.SZ', '300862.SZ', '300863.SZ', '300864.SZ', '300865.SZ', '300866.SZ', '300867.SZ', '300868.SZ', '300869.SZ', '300870.SZ', '300871.SZ', '300872.SZ', '300873.SZ', '300875.SZ', '300876.SZ', '300877.SZ', '300878.SZ', '300879.SZ', '300880.SZ', '300881.SZ', '300882.SZ', '300883.SZ', '300884.SZ', '300885.SZ', '300886.SZ', '300887.SZ', '300888.SZ', '300889.SZ', '300890.SZ', '300891.SZ', '300892.SZ', '300893.SZ', '300894.SZ', '300895.SZ', '300896.SZ', '300897.SZ', '300898.SZ', '300899.SZ', '300900.SZ', '300901.SZ', '300902.SZ', '300903.SZ', '300904.SZ', '300905.SZ', '300906.SZ', '300907.SZ', '300908.SZ', '300909.SZ', '300910.SZ', '300911.SZ', '300912.SZ', '300913.SZ', '300915.SZ', '300916.SZ', '300917.SZ', '300918.SZ', '300919.SZ', '300920.SZ', '300921.SZ', '300922.SZ', '300923.SZ', '300925.SZ', '300926.SZ', '300927.SZ', '300928.SZ', '300929.SZ', '300930.SZ', '300931.SZ', '300932.SZ', '300933.SZ', '300935.SZ', '300936.SZ', '300937.SZ', '300938.SZ', '300939.SZ', '300940.SZ', '300941.SZ', '300942.SZ', '300943.SZ', '300945.SZ', '300946.SZ', '300947.SZ', '300948.SZ', '300949.SZ', '300950.SZ', '300951.SZ', '300952.SZ', '300953.SZ', '300955.SZ', '300956.SZ', '300957.SZ', '300958.SZ', '300959.SZ', '300960.SZ', '300961.SZ', '300962.SZ', '300963.SZ', '300964.SZ', '300965.SZ', '300966.SZ', '300967.SZ', '300968.SZ', '300969.SZ', '300970.SZ', '300971.SZ', '300972.SZ', '300973.SZ', '300975.SZ', '300976.SZ', '300977.SZ', '300978.SZ', '300979.SZ', '300980.SZ', '300981.SZ', '300982.SZ', '300983.SZ', '300984.SZ', '300985.SZ', '300986.SZ', '300987.SZ', '300988.SZ', '300989.SZ', '300990.SZ', '300991.SZ', '300992.SZ', '300993.SZ', '300994.SZ', '300995.SZ', '300996.SZ', '300997.SZ', '300998.SZ', '300999.SZ', '301000.SZ', '301001.SZ', '301002.SZ', '301003.SZ', '301004.SZ', '301005.SZ', '301006.SZ', '301007.SZ', '301008.SZ', '301009.SZ', '301010.SZ', '301011.SZ', '301012.SZ', '301013.SZ', '301015.SZ', '301016.SZ', '301017.SZ', '301018.SZ', '301019.SZ', '301020.SZ', '301021.SZ', '301022.SZ', '301023.SZ', '301024.SZ', '301025.SZ', '301026.SZ', '301027.SZ', '301028.SZ', '301029.SZ', '301030.SZ', '301031.SZ', '301032.SZ', '301033.SZ', '301035.SZ', '301036.SZ', '301037.SZ', '301038.SZ', '301039.SZ', '301040.SZ', '301041.SZ', '301042.SZ', '301043.SZ', '301045.SZ', '301046.SZ', '301047.SZ', '301048.SZ', '301049.SZ', '301050.SZ', '301051.SZ', '301052.SZ', '301053.SZ', '301055.SZ', '301056.SZ', '301057.SZ', '301058.SZ', '301059.SZ', '301060.SZ', '301061.SZ', '301062.SZ', '301063.SZ', '301065.SZ', '301066.SZ', '301067.SZ', '301068.SZ', '301069.SZ', '301070.SZ', '301071.SZ', '301072.SZ', '301073.SZ', '301075.SZ', '301076.SZ', '301077.SZ', '301078.SZ', '301079.SZ', '301080.SZ', '301081.SZ', '301082.SZ', '301083.SZ', '301085.SZ', '301086.SZ', '301087.SZ', '301088.SZ', '301089.SZ', '301090.SZ', '301091.SZ', '301092.SZ', '301093.SZ', '301095.SZ', '301096.SZ', '301097.SZ', '301098.SZ', '301099.SZ', '301100.SZ', '301101.SZ', '301102.SZ', '301103.SZ', '301105.SZ', '301106.SZ', '301107.SZ', '301108.SZ', '301109.SZ', '301110.SZ', '301111.SZ', '301112.SZ', '301113.SZ', '301115.SZ', '301116.SZ', '301117.SZ', '301118.SZ', '301119.SZ', '301120.SZ', '301121.SZ', '301122.SZ', '301123.SZ', '301125.SZ', '301126.SZ', '301127.SZ', '301128.SZ', '301129.SZ', '301130.SZ', '301131.SZ', '301132.SZ', '301133.SZ', '301135.SZ', '301136.SZ', '301137.SZ', '301138.SZ', '301139.SZ', '301141.SZ', '301148.SZ', '301149.SZ', '301150.SZ', '301151.SZ', '301152.SZ', '301153.SZ', '301155.SZ', '301156.SZ', '301157.SZ', '301158.SZ', '301159.SZ', '301160.SZ', '301161.SZ', '301162.SZ', '301163.SZ', '301165.SZ', '301166.SZ', '301167.SZ', '301168.SZ', '301169.SZ', '301170.SZ', '301171.SZ', '301172.SZ', '301173.SZ', '301175.SZ', '301176.SZ', '301177.SZ', '301178.SZ', '301179.SZ', '301180.SZ', '301181.SZ', '301182.SZ', '301183.SZ', '301185.SZ', '301186.SZ', '301187.SZ', '301188.SZ', '301189.SZ', '301190.SZ', '301191.SZ', '301192.SZ', '301193.SZ', '301195.SZ', '301196.SZ', '301197.SZ', '301198.SZ', '301199.SZ', '301200.SZ', '301201.SZ', '301202.SZ', '301203.SZ', '301205.SZ', '301206.SZ', '301207.SZ', '301208.SZ', '301209.SZ', '301210.SZ', '301211.SZ', '301212.SZ', '301213.SZ', '301215.SZ', '301216.SZ', '301217.SZ', '301218.SZ', '301219.SZ', '301220.SZ', '301221.SZ', '301222.SZ', '301223.SZ', '301225.SZ', '301226.SZ', '301227.SZ', '301228.SZ', '301229.SZ', '301230.SZ', '301231.SZ', '301232.SZ', '301233.SZ', '301234.SZ', '301235.SZ', '301236.SZ', '301237.SZ', '301238.SZ', '301239.SZ', '301246.SZ', '301248.SZ', '301251.SZ', '301252.SZ', '301255.SZ', '301256.SZ', '301257.SZ', '301258.SZ', '301259.SZ', '301260.SZ', '301261.SZ', '301262.SZ', '301263.SZ', '301265.SZ', '301266.SZ', '301267.SZ', '301268.SZ', '301269.SZ', '301270.SZ', '301272.SZ', '301273.SZ', '301275.SZ', '301276.SZ', '301277.SZ', '301278.SZ', '301279.SZ', '301280.SZ', '301281.SZ', '301282.SZ', '301283.SZ', '301285.SZ', '301286.SZ', '301287.SZ', '301288.SZ', '301289.SZ', '301290.SZ', '301291.SZ', '301292.SZ', '301293.SZ', '301295.SZ', '301296.SZ', '301297.SZ', '301298.SZ', '301299.SZ', '301300.SZ', '301301.SZ', '301302.SZ', '301303.SZ', '301305.SZ', '301306.SZ', '301307.SZ', '301308.SZ', '301309.SZ', '301310.SZ', '301311.SZ', '301312.SZ', '301313.SZ', '301314.SZ', '301315.SZ', '301316.SZ', '301317.SZ', '301318.SZ', '301319.SZ', '301320.SZ', '301321.SZ', '301322.SZ', '301323.SZ', '301325.SZ', '301326.SZ', '301327.SZ', '301328.SZ', '301329.SZ', '301330.SZ', '301331.SZ', '301332.SZ', '301333.SZ', '301335.SZ', '301336.SZ', '3013
ptrade python最新版本支持3.11
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 770 次浏览 • 2025-02-27 17:42
国金证券 PTRADE智能策略交易终端预期3月底4月中做实盘版本升级。
操作手册和开发手册请登录测试客户端后点击右上角帮助和量化菜单下帮助获取。
量化接口升级说明下载链接:https:/pan.baidu.com/s/1S5xXHpOLFVDYdJrOgYDBqA 提取码:gjz9。
本次主干版本升级涉及的问题修复、功能优化和需求实现较多,策略量化AP变动较大,python版本升级311。
如您有在运行的策略程序、工具功能等,请务必进行测试环境验证调整,确认策略程序在python311环境、工具功能等可正常运行。
实盘确认升级完成后,您需要将测试环境验证后策略迁移实盘后重新启用。
如您需新开通测试环境账户,可与我司服务老师联系获取。感谢各位长期以来对我公司的信任和支持,由此给各位带来的不便敬请谅解。谢谢!
需要开通的可以联系: 查看全部
国金证券 PTRADE智能策略交易终端预期3月底4月中做实盘版本升级。
操作手册和开发手册请登录测试客户端后点击右上角帮助和量化菜单下帮助获取。
量化接口升级说明下载链接:https:/pan.baidu.com/s/1S5xXHpOLFVDYdJrOgYDBqA 提取码:gjz9。
本次主干版本升级涉及的问题修复、功能优化和需求实现较多,策略量化AP变动较大,python版本升级311。
如您有在运行的策略程序、工具功能等,请务必进行测试环境验证调整,确认策略程序在python311环境、工具功能等可正常运行。
实盘确认升级完成后,您需要将测试环境验证后策略迁移实盘后重新启用。
如您需新开通测试环境账户,可与我司服务老师联系获取。感谢各位长期以来对我公司的信任和支持,由此给各位带来的不便敬请谅解。谢谢!
需要开通的可以联系:

QMT获取北交所市场代码
QMT • 李魔佛 发表了文章 • 0 个评论 • 514 次浏览 • 2025-02-21 11:30
现在的券商只要你开了科创板,可以直接开通北交所,不再需要20交易日,50w的要求。
QMT获取北交所代码:
运行输出结果:
需要开通量化api权限的券商,可以扫码关注并咨询 查看全部
ptrade支持外网,mysql 远程数据库的券商
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 645 次浏览 • 2025-02-17 14:16
比如如果你要获取可转债的一些强赎数据,内置数据是不支持的。
那么如果你想要获取集思录的数据,那么就会无能为力。
不过有一个券商可以支持访问外部数据的。因为ptrade内置了pymysq,redis,zeromq,wsocket等第三方库,
所以你可以在ptrade内部,直接范围mysql的数据,zeromq的数据,甚至直接和外部的api进行双向通信。
实例中直接用requests访问的百度
实盘,模拟盘中均可操作。
需要开通的朋友可以公众号联系:
费率也支持万0.854 免5哦~ 查看全部
比如如果你要获取可转债的一些强赎数据,内置数据是不支持的。
那么如果你想要获取集思录的数据,那么就会无能为力。
不过有一个券商可以支持访问外部数据的。因为ptrade内置了pymysq,redis,zeromq,wsocket等第三方库,
所以你可以在ptrade内部,直接范围mysql的数据,zeromq的数据,甚至直接和外部的api进行双向通信。
实例中直接用requests访问的百度
实盘,模拟盘中均可操作。

需要开通的朋友可以公众号联系:
费率也支持万0.854 免5哦~

江海证券支持QMT,miniQMT,且低门槛开通
QMT • 李魔佛 发表了文章 • 0 个评论 • 1015 次浏览 • 2025-02-12 00:46
江海证券有限公司于2003年12月15日在哈尔滨市市场监督管理局登记成立。法定代表人孙名扬,公司经营范围包括证券经纪,证券承销与保荐,证券投资咨询,证券自营等。
这logo看起来有点像银河呢。
江海证券现有分支机构75家,其中17家分公司,58家营业部,遍布北京、上海、广州、深圳、厦门、青岛、大连、成都、武汉、长沙、合肥及黑龙江省内等主要城市,形成了“覆盖龙江、辐射沿海、布局全国”的业务发展格局。
不过上面的是2018年的数据,最新的可能会少一些。因为现在很多营业部都更加注重线上业务。也就是通过线上就可以开通账号。
目前江海证券能够开通量化QMT,和miniQMT的自动化交易权限。
下载地址:
江海证券QMT实盘_实盘_1.0.0.36190.exe
或者直接到官网:
https://www.jhzq.com.cn/main/home/software/index.shtml
选择QMT下载即可
江海证券也支持无限易量化平台。
需要的可以咨询公众号: 查看全部
江海证券有限公司于2003年12月15日在哈尔滨市市场监督管理局登记成立。法定代表人孙名扬,公司经营范围包括证券经纪,证券承销与保荐,证券投资咨询,证券自营等。
这logo看起来有点像银河呢。
江海证券现有分支机构75家,其中17家分公司,58家营业部,遍布北京、上海、广州、深圳、厦门、青岛、大连、成都、武汉、长沙、合肥及黑龙江省内等主要城市,形成了“覆盖龙江、辐射沿海、布局全国”的业务发展格局。
不过上面的是2018年的数据,最新的可能会少一些。因为现在很多营业部都更加注重线上业务。也就是通过线上就可以开通账号。
目前江海证券能够开通量化QMT,和miniQMT的自动化交易权限。
下载地址:
江海证券QMT实盘_实盘_1.0.0.36190.exe
或者直接到官网:
https://www.jhzq.com.cn/main/home/software/index.shtml
选择QMT下载即可
江海证券也支持无限易量化平台。
需要的可以咨询公众号:

聚宽打板策略代码转为ptrade代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1076 次浏览 • 2025-02-02 17:42
根据昨日涨停 或最近N天的股票出现连板的数量,然后选股。
高开X之后进入股票池。
然后加入均线,热度,板块等因子,盘中买入。
PS: 现在的ptrade回测速度是越来越慢的了。 估计是用户越来越多的缘故了。。。
比我刚开始用的那个时候,简直慢了有100倍.....
查看全部
ptrade一个策略里可以同时执行多少个run_daily?
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 870 次浏览 • 2025-01-17 10:28
run_daily 可以在0-24小时都能够执行,并没有限制要求交易时间09:30到15:00.
因此如果需要执行集合竞价的部分,那么就需要用run_daily 去操作了。
比如开盘打新,尾盘逆回购,
而ptrade里面也对run_daily做了限制,就是一个策略里面同时只能设置5个run_daily
对于一般人而已,应该够用的了。如果不够,那么就用handle_data处理,也是可以。handle_data,里面可以加一个时间判断的语句,那么你可以一天在指定时间执行多少个任务都没有问题,随意突破5个。
更多技术问题,可以关注公众号:可转债量化分析 查看全部
run_daily 可以在0-24小时都能够执行,并没有限制要求交易时间09:30到15:00.
因此如果需要执行集合竞价的部分,那么就需要用run_daily 去操作了。
比如开盘打新,尾盘逆回购,
而ptrade里面也对run_daily做了限制,就是一个策略里面同时只能设置5个run_daily
对于一般人而已,应该够用的了。如果不够,那么就用handle_data处理,也是可以。handle_data,里面可以加一个时间判断的语句,那么你可以一天在指定时间执行多少个任务都没有问题,随意突破5个。
更多技术问题,可以关注公众号:可转债量化分析

不同券商的ptrade实盘客户端的回测时间
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1399 次浏览 • 2024-12-03 15:41
而券商的实盘客户端的回测时间会有做限制。
1. 国金:实盘客户端不允许回测。
2. 国盛:实盘客户端回测时间为收盘后15:30之后
3. 湘财:实盘客户端回测时间为收盘后15:30之后
需要开通量化账号的读者朋友,可以关注公众号:
查看全部
而券商的实盘客户端的回测时间会有做限制。
1. 国金:实盘客户端不允许回测。
2. 国盛:实盘客户端回测时间为收盘后15:30之后
3. 湘财:实盘客户端回测时间为收盘后15:30之后
需要开通量化账号的读者朋友,可以关注公众号:

ptrade上的get_cb_info函数无法使用
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1011 次浏览 • 2024-11-20 10:32
def initialize(context):
pass
def handle_data(context, data):
df = get_cb_info()
log.info(df)
最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined
说明这个函数就根本没有做进去了。
目前我试的券商,国盛ptrade是无法使用的。
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。
查看全部
def initialize(context):
pass
def handle_data(context, data):
df = get_cb_info()
log.info(df)
最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined
说明这个函数就根本没有做进去了。
目前我试的券商,国盛ptrade是无法使用的。
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。

QMT获取市场可转债代码
可转债 • 李魔佛 发表了文章 • 0 个评论 • 1159 次浏览 • 2024-11-14 11:12
#encoding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
index = ContextInfo.barpos
realtime = ContextInfo.get_bar_timetag(index)
print(ContextInfo.get_stock_list_in_sector('沪深转债', realtime))
欢迎关注公众号:可转债量化分析 查看全部
ptrade:登录请求失败,服务器状态400
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 954 次浏览 • 2024-11-11 10:03
ptrade:登录请求失败,服务器状态400
用户数多,占用了资源多了,服务器没有扩容,导致资源不够用了。
周一一大早就崩了。
券商ptrade的运营工作人员只能重启。 但不增加资源,不优化隔离资源分配,一旦内存不够,cpu负载占满,全部人一起陪葬,这样好么?
查看全部
Ptrade获取历史涨停的股票|python代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1200 次浏览 • 2024-11-01 18:41
下面的程序用于监控可转债的正股,在过去10天里是否出现涨停。
下面的ptrade的代码片段。需要完整代码,可关注公众号私信获取。
def hit_limit_recent():
# 选出最近N天正股有涨停的可转债
N =10
scale = 5
latest_price = 160
bond_name_dict, bond_zg_dict = get_all_bond_info(scale=scale,latest_price=latest_price)
zg_list = list(bond_zg_dict.values())
panel_info = get_history(N, frequency='1d', field=['close','high_limit'], security_list=zg_list, fq='pre', include=False, fill='nan')
df = panel_info.swapaxes("minor_axis", "items")
target_list = []
for code in zg_list:
stock_df = df[code]
hit_high = stock_df[stock_df['close']==stock_df['high_limit']]
if len(hit_high) > 0:
# print(hit_high.index)
target_list.append(code)
zz_target_list = []
for code,zg_code in bond_zg_dict.items():
if zg_code in target_list:
print(code, bond_name_dict[code])
zz_target_list.append(code)
return zz_target_list当然,会有一个情形,就是实际最后是开板状态,但是收盘价格和涨停价格一样。
这种属于涨停开板状态,需要利用tick的委卖买来判断。
查看全部
下面的程序用于监控可转债的正股,在过去10天里是否出现涨停。
下面的ptrade的代码片段。需要完整代码,可关注公众号私信获取。
def hit_limit_recent():当然,会有一个情形,就是实际最后是开板状态,但是收盘价格和涨停价格一样。
# 选出最近N天正股有涨停的可转债
N =10
scale = 5
latest_price = 160
bond_name_dict, bond_zg_dict = get_all_bond_info(scale=scale,latest_price=latest_price)
zg_list = list(bond_zg_dict.values())
panel_info = get_history(N, frequency='1d', field=['close','high_limit'], security_list=zg_list, fq='pre', include=False, fill='nan')
df = panel_info.swapaxes("minor_axis", "items")
target_list = []
for code in zg_list:
stock_df = df[code]
hit_high = stock_df[stock_df['close']==stock_df['high_limit']]
if len(hit_high) > 0:
# print(hit_high.index)
target_list.append(code)
zz_target_list = []
for code,zg_code in bond_zg_dict.items():
if zg_code in target_list:
print(code, bond_name_dict[code])
zz_target_list.append(code)
return zz_target_list
这种属于涨停开板状态,需要利用tick的委卖买来判断。

可转债现金替代策略 | QMT | Ptrade
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1282 次浏览 • 2024-10-15 11:05
适合大资金,求稳。
挑选低价格的AAA可转债,比如 正股是 银行,高分红的国企股,比如 大秦铁路的转债,大秦转债等,且到期收益为正。作为标的池。
然后 先 在标的池里挑选出一个价格最低的转债,1/3 仓位 买入,其余仓位买入银华日利。
程序每分钟监控。或者不用那么频繁,可以设置每小时,每天都可以。
如果转债价格下跌了X,就卖出银华日利(1/10仓位),买入转债; (这里仓位随意举例)
如果转债价格上涨了Y,就卖出转债(1/5仓位),买入银华日利;(这里仓位随意举例)
一般AAA的大规模转债,其波动比较小,很少会遇到趋势上涨。 所以大部分的时间是做有波动的高抛低吸。
但,一旦遇到趋势上涨,或者突破,那么按照策略 会不断卖出转债;
一旦转债仓位为0,就可以在标的池买入另外一只标的(1/3仓位),从而继续下一轮的高抛低吸。
如果转债价格一直跌,但由于AAA的转债有保底,且有回售,转股,下修等各种手段,来兜底,
所以一般遇到跌幅行情,下跌不会超过10%,所以策略可以一直在卖出银华日利,买入转债;
如果中途,出现了其他好的标的,你需要手动交易,那么可以手动卖出银华日利或者可转债,腾出仓位,来操作。
也就是这个策略的可转债,纯粹当做现金来替代来使用。
接着就是使用QMT和Ptrade实现。
待续............
查看全部
适合大资金,求稳。
挑选低价格的AAA可转债,比如 正股是 银行,高分红的国企股,比如 大秦铁路的转债,大秦转债等,且到期收益为正。作为标的池。
然后 先 在标的池里挑选出一个价格最低的转债,1/3 仓位 买入,其余仓位买入银华日利。
程序每分钟监控。或者不用那么频繁,可以设置每小时,每天都可以。
如果转债价格下跌了X,就卖出银华日利(1/10仓位),买入转债; (这里仓位随意举例)
如果转债价格上涨了Y,就卖出转债(1/5仓位),买入银华日利;(这里仓位随意举例)
一般AAA的大规模转债,其波动比较小,很少会遇到趋势上涨。 所以大部分的时间是做有波动的高抛低吸。
但,一旦遇到趋势上涨,或者突破,那么按照策略 会不断卖出转债;
一旦转债仓位为0,就可以在标的池买入另外一只标的(1/3仓位),从而继续下一轮的高抛低吸。
如果转债价格一直跌,但由于AAA的转债有保底,且有回售,转股,下修等各种手段,来兜底,
所以一般遇到跌幅行情,下跌不会超过10%,所以策略可以一直在卖出银华日利,买入转债;
如果中途,出现了其他好的标的,你需要手动交易,那么可以手动卖出银华日利或者可转债,腾出仓位,来操作。
也就是这个策略的可转债,纯粹当做现金来替代来使用。
接着就是使用QMT和Ptrade实现。
待续............

QMT获取不到行情,一般是什么原因?或者获取行情有中断的情况
QMT • 李魔佛 发表了文章 • 0 个评论 • 1497 次浏览 • 2024-09-29 10:27
或者你获取的5档tick行情,但是你的行情菜单那里,选择的是 最新价,这样你也是无法获取到 5档tick数据的。
然后还有一个问题,如果你用get_market_data 或者get_market_data_ex 这个函数,获取的股票数量很多(比如全市场的股票),那么第一次的启动数据会非常的慢,并且你的内存消耗非常大,整个QMT像死机了一样。
如何解决? 下回分解
查看全部
Ptrade回测模式下获取实时的分钟数据:只能使用handle_data,数据不能用get_snapshot
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1592 次浏览 • 2024-09-21 17:32
发现有点蛋疼,记录一下。
因为回测模式下,不能使用run_interval 函数;
而run_daily模式,只能在固定时间运行,无法分钟级别。
所以只能使用 handle_data
而在handle_data 里面获取当前的分钟价格数据,也无法使用 get_snapshot ,get_gear_price,函数。
所以只能使用handle_data(Context,data) 里面的data里。
而handle_data 里面的data数据,使用方法如下:
import datetime
target_list = [
'600000.SS',
'000333.SZ'
]
def execution(context, data):
now = context.current_dt.strftime('%H:%M')
for code in target_list:
tick_info = data[code]
price = tick_info['price']
print('now: {} code : {} price:{}'.format(now,code ,price))
# 标准
def initialize(context):
log.info("公众号:可转债量化分析 ---- start ----")
def handle_data(context, data):
execution(context, data)
获取数据结果:2024-09-20 14:42:00 - INFO - now: 14:42 code : 000333.SZ price:66.22
2024-09-20 14:43:00 - INFO - now: 14:43 code : 000333.SZ price:66.26
2024-09-20 14:44:00 - INFO - now: 14:44 code : 000333.SZ price:66.19
2024-09-20 14:45:00 - INFO - now: 14:45 code : 000333.SZ price:66.2
2024-09-20 14:46:00 - INFO - now: 14:46 code : 000333.SZ price:66.19
2024-09-20 14:47:00 - INFO - now: 14:47 code : 000333.SZ price:66.18
2024-09-20 14:48:00 - INFO - now: 14:48 code : 000333.SZ price:66.14
2024-09-20 14:49:00 - INFO - now: 14:49 code : 000333.SZ price:66.25
2024-09-20 14:50:00 - INFO - now: 14:50 code : 000333.SZ price:66.19
2024-09-20 14:51:00 - INFO - now: 14:51 code : 000333.SZ price:66.18
2024-09-20 14:52:00 - INFO - now: 14:52 code : 000333.SZ price:66.19
2024-09-20 14:53:00 - INFO - now: 14:53 code : 000333.SZ price:66.2
2024-09-20 14:54:00 - INFO - now: 14:54 code : 000333.SZ price:66.19
2024-09-20 14:55:00 - INFO - now: 14:55 code : 000333.SZ price:66.25
2024-09-20 14:56:00 - INFO - now: 14:56 code : 000333.SZ price:66.27
2024-09-20 14:57:00 - INFO - now: 14:57 code : 000333.SZ price:66.28
2024-09-20 14:58:00 - INFO - now: 14:58 code : 000333.SZ price:66.28
2024-09-20 14:59:00 - INFO - now: 14:59 code : 000333.SZ price:66.28
2024-09-20 15:00:00 - INFO - now: 15:00 code : 000333.SZ price:66.06
用同花顺,对了一下结果,是满足的了。
查看全部
发现有点蛋疼,记录一下。
因为回测模式下,不能使用run_interval 函数;
而run_daily模式,只能在固定时间运行,无法分钟级别。
所以只能使用 handle_data
而在handle_data 里面获取当前的分钟价格数据,也无法使用 get_snapshot ,get_gear_price,函数。
所以只能使用handle_data(Context,data) 里面的data里。
而handle_data 里面的data数据,使用方法如下:
import datetime
target_list = [
'600000.SS',
'000333.SZ'
]
def execution(context, data):
now = context.current_dt.strftime('%H:%M')
for code in target_list:
tick_info = data[code]
price = tick_info['price']
print('now: {} code : {} price:{}'.format(now,code ,price))
# 标准
def initialize(context):
log.info("公众号:可转债量化分析 ---- start ----")
def handle_data(context, data):
execution(context, data)
获取数据结果:
2024-09-20 14:42:00 - INFO - now: 14:42 code : 000333.SZ price:66.22
2024-09-20 14:43:00 - INFO - now: 14:43 code : 000333.SZ price:66.26
2024-09-20 14:44:00 - INFO - now: 14:44 code : 000333.SZ price:66.19
2024-09-20 14:45:00 - INFO - now: 14:45 code : 000333.SZ price:66.2
2024-09-20 14:46:00 - INFO - now: 14:46 code : 000333.SZ price:66.19
2024-09-20 14:47:00 - INFO - now: 14:47 code : 000333.SZ price:66.18
2024-09-20 14:48:00 - INFO - now: 14:48 code : 000333.SZ price:66.14
2024-09-20 14:49:00 - INFO - now: 14:49 code : 000333.SZ price:66.25
2024-09-20 14:50:00 - INFO - now: 14:50 code : 000333.SZ price:66.19
2024-09-20 14:51:00 - INFO - now: 14:51 code : 000333.SZ price:66.18
2024-09-20 14:52:00 - INFO - now: 14:52 code : 000333.SZ price:66.19
2024-09-20 14:53:00 - INFO - now: 14:53 code : 000333.SZ price:66.2
2024-09-20 14:54:00 - INFO - now: 14:54 code : 000333.SZ price:66.19
2024-09-20 14:55:00 - INFO - now: 14:55 code : 000333.SZ price:66.25
2024-09-20 14:56:00 - INFO - now: 14:56 code : 000333.SZ price:66.27
2024-09-20 14:57:00 - INFO - now: 14:57 code : 000333.SZ price:66.28
2024-09-20 14:58:00 - INFO - now: 14:58 code : 000333.SZ price:66.28
2024-09-20 14:59:00 - INFO - now: 14:59 code : 000333.SZ price:66.28
2024-09-20 15:00:00 - INFO - now: 15:00 code : 000333.SZ price:66.06
用同花顺,对了一下结果,是满足的了。

QMT的handlebar设置成一分钟周期的时候,运行是3秒一次的
QMT • 李魔佛 发表了文章 • 0 个评论 • 1740 次浏览 • 2024-09-13 11:46
刚好有个策略是一分钟周期运行的,所以就用了handle驱动。
结果发现,经常查询重复买入。
调试后发现,原来这个handlebar是3m触发一次的。
如果要一分钟运行一次,还是用
ContextInfo.run_time("execution", INTERVAL_STRING, running_time)
INTERVAL_STRING 用1分钟表示。
示例代码:
一分钟打印当前时间:
# -*-coding:gbk-*-
# 作者公众号:可转债量化分析
import datetime
import json
import redis
####### 以下为固定配置,请勿随意修改 ##########
# 注意:程序需要在9:30前启动
START_TIME = '09:30' # 启动时间,可以修改为开盘任意时间9:30-14:57
STOCK_ACCOUNT = '' # 股票账户
INTERVAL_SECOND = 60 # 交易间隔
INTERVAL_STRING = "{}nSecond".format(INTERVAL_SECOND)
def today_date():
return datetime.datetime.now().strftime('%Y%m%d')
def init(ContextInfo):
now = datetime.datetime.now()
print('策略初始化 {}'.format(now))
now = datetime.datetime.now()
running_time = '{} {}'.format(today_date(), START_TIME)
print('策略初始化 {} , 程序启动时间 {}'.format(now, START_TIME))
ContextInfo.run_time("execution", INTERVAL_STRING, running_time)
def handlebar(ContextInfo):
pass
def execution(ContextInfo):
if not ContextInfo.is_last_bar():
return
now = datetime.datetime.now()
print(now)
公众号: 查看全部
刚好有个策略是一分钟周期运行的,所以就用了handle驱动。
结果发现,经常查询重复买入。
调试后发现,原来这个handlebar是3m触发一次的。
如果要一分钟运行一次,还是用
ContextInfo.run_time("execution", INTERVAL_STRING, running_time)
INTERVAL_STRING 用1分钟表示。
示例代码:
一分钟打印当前时间:
# -*-coding:gbk-*-
# 作者公众号:可转债量化分析
import datetime
import json
import redis
####### 以下为固定配置,请勿随意修改 ##########
# 注意:程序需要在9:30前启动
START_TIME = '09:30' # 启动时间,可以修改为开盘任意时间9:30-14:57
STOCK_ACCOUNT = '' # 股票账户
INTERVAL_SECOND = 60 # 交易间隔
INTERVAL_STRING = "{}nSecond".format(INTERVAL_SECOND)
def today_date():
return datetime.datetime.now().strftime('%Y%m%d')
def init(ContextInfo):
now = datetime.datetime.now()
print('策略初始化 {}'.format(now))
now = datetime.datetime.now()
running_time = '{} {}'.format(today_date(), START_TIME)
print('策略初始化 {} , 程序启动时间 {}'.format(now, START_TIME))
ContextInfo.run_time("execution", INTERVAL_STRING, running_time)
def handlebar(ContextInfo):
pass
def execution(ContextInfo):
if not ContextInfo.is_last_bar():
return
now = datetime.datetime.now()
print(now)
公众号:

QMT/iQuant居然禁止redis获取股票行情数据,如何破解
QMT • 李魔佛 发表了文章 • 0 个评论 • 1817 次浏览 • 2024-09-10 11:26
因为QMT没有转债的规模,而国信iquant本身又把requests 库给封禁了,它无法通过requests 获取任何外部数据,比如访问东财,tushare都会提示访问超时。(后面发现它修改了requests的源码)
于是发现iquant的redis是内置库,不需要pip安装,所以第一时间就想到使用redis获取转债数据。
简单测试了一下,redis是可以获取数据的。比如随便丢一个字符到redis,然后QMT可以获取到这个字符数据
于是就把原来的策略里,使用requests 调用API的部分,改成redis。
可是运行后发现报错:
2024-09-10 10:05:19,851 [INFO] [0x00000e24] [msg service] msg: 0C:\iquant\python\新建策略文件.py_SH00030021
DataError:Sensitive Data Detected, Forbidden!
报错信息说的很明显,敏感信息检测到,禁止!
居然对redis的数据进行检验,很明显这部分是QMT对redis的源码进行了修改。
于是根据报错的提示,找到 目录:
D:\tool\gjzq_qmt_simulation\bin.x64\Lib\site-packages\redis,下面的client.py
找到对应的行:
的确有一个check_response 的函数用于检测 redis的内容,看正则表达式和变量命名(search_stock),类似股票代码的数据传输被阻止了,检测到之后直接raise Error,程序会停止的。
解决办法,也很简单,直接把这一段 代码删除就好了。
然后需要重启你的QMT,不然修改的代码不会生效。
然后重新运行的你的策略,发现一起正常了。
需要开通QMT和代写量化策略,可以关注公众号: 查看全部
因为QMT没有转债的规模,而国信iquant本身又把requests 库给封禁了,它无法通过requests 获取任何外部数据,比如访问东财,tushare都会提示访问超时。(后面发现它修改了requests的源码)
于是发现iquant的redis是内置库,不需要pip安装,所以第一时间就想到使用redis获取转债数据。
简单测试了一下,redis是可以获取数据的。比如随便丢一个字符到redis,然后QMT可以获取到这个字符数据
于是就把原来的策略里,使用requests 调用API的部分,改成redis。
可是运行后发现报错:
2024-09-10 10:05:19,851 [INFO] [0x00000e24] [msg service] msg: 0C:\iquant\python\新建策略文件.py_SH00030021
DataError:Sensitive Data Detected, Forbidden!
报错信息说的很明显,敏感信息检测到,禁止!
居然对redis的数据进行检验,很明显这部分是QMT对redis的源码进行了修改。
于是根据报错的提示,找到 目录:
D:\tool\gjzq_qmt_simulation\bin.x64\Lib\site-packages\redis,下面的client.py
找到对应的行:
的确有一个check_response 的函数用于检测 redis的内容,看正则表达式和变量命名(search_stock),类似股票代码的数据传输被阻止了,检测到之后直接raise Error,程序会停止的。
解决办法,也很简单,直接把这一段 代码删除就好了。
然后需要重启你的QMT,不然修改的代码不会生效。
然后重新运行的你的策略,发现一起正常了。
需要开通QMT和代写量化策略,可以关注公众号:

低门槛入金2W开通QMT miniQMT,股票费率免5,0.1元起
券商万一免五 • 李魔佛 发表了文章 • 0 个评论 • 2140 次浏览 • 2024-08-31 14:29
而且费率是直接可以调到 万0.754,免五,0.1元起。 简直比万一免五还要低!
目前属于活动期间才有的低费率。
需要开户的,可以联系公众号,开户后有QMT技术支持交流群
######### 最新更新, 此券商活动已停止 #############
查看全部
国信iquant requests 爬虫 获取数据 还有使用 tushare,akshare 无法连接,提示超时
QMT • 李魔佛 发表了文章 • 0 个评论 • 1795 次浏览 • 2024-08-28 14:29
#encoding:gbk
import requests
def get_baidu():
url = 'https://www.baidu.com'
req = requests.get(url,headers={'User-Agent':'Mozilla/5.0'})
print(req.text)
def init(ContextInfo):
get_baidu()
def handlebar(ContextInfo):
pass
会报错,同时访问baidu.com 超时:
明显是国信的iquant内部设置了proxy,导致request出去的时候走了proxy。
所以连baidu都访问不了。
而tushare,akshare底层是周的爬虫 (requests), 所以对于iquant,底层走http requests的库,或者获取数据的手段是失效了的。
不过也有其他的手段可以实现获取外部数据。
笔者亲测了redis可以访问外部的redis数据库,为啥用redis,因为iquant没有内置pymysql,需要自己安装,客户也不懂怎么安装,(到iquant的安装文件路径下的python 包路径下,运行 pip install pymysq)
而iquant内置了redis 的库,所以可以直接import redis
redis测试代码:
def base_usage():
print('start')
r = RedisCls()
data = {'name': 'zhangsan', 'age': 18}
key = 'test_key'
r.push(key, json.dumps(data))
print('push')
print(r.delete('key')) # reutrn 1 if delete success, else return 0
start_time = time.time()
ret_data = r.pop(key)
end_time = time.time()
print('cost time: ', end_time - start_time)
print(ret_data)
base_usage()
上面的代码是正常运行,不报错,就说明正常的了。
PS:
r = RedisCls() 只是封装了
r = redis.Redis 连接的ip和端口,密码 而已。
按照网上的redis连接教程使用就好了。
查看全部
#encoding:gbk
import requests
def get_baidu():
url = 'https://www.baidu.com'
req = requests.get(url,headers={'User-Agent':'Mozilla/5.0'})
print(req.text)
def init(ContextInfo):
get_baidu()
def handlebar(ContextInfo):
pass
会报错,同时访问baidu.com 超时:
明显是国信的iquant内部设置了proxy,导致request出去的时候走了proxy。
所以连baidu都访问不了。
而tushare,akshare底层是周的爬虫 (requests), 所以对于iquant,底层走http requests的库,或者获取数据的手段是失效了的。
不过也有其他的手段可以实现获取外部数据。
笔者亲测了redis可以访问外部的redis数据库,为啥用redis,因为iquant没有内置pymysql,需要自己安装,客户也不懂怎么安装,(到iquant的安装文件路径下的python 包路径下,运行 pip install pymysq)
而iquant内置了redis 的库,所以可以直接import redis
redis测试代码:
def base_usage():
print('start')
r = RedisCls()
data = {'name': 'zhangsan', 'age': 18}
key = 'test_key'
r.push(key, json.dumps(data))
print('push')
print(r.delete('key')) # reutrn 1 if delete success, else return 0
start_time = time.time()
ret_data = r.pop(key)
end_time = time.time()
print('cost time: ', end_time - start_time)
print(ret_data)
base_usage()
上面的代码是正常运行,不报错,就说明正常的了。
PS:
r = RedisCls() 只是封装了
r = redis.Redis 连接的ip和端口,密码 而已。
按照网上的redis连接教程使用就好了。

QMT如何获取持仓成本 盈亏比例
QMT • 李魔佛 发表了文章 • 0 个评论 • 1777 次浏览 • 2024-08-25 07:50
那么QMT有没有内置的可以获取持仓成本的函数呢?
position 持仓对象 里面有一个字段:
m_dOpenPrice: 持仓成本
可以用来获取当前的持仓成本:
具体代码如下:
# encoding:gbk
ACCOUNT = 'xxxxxxx' # 填入你的QMT账户ID, 如果没有,可以联系我开通 QMT权限
def init(ContextInfo):
# hs300成分股中sh和sz市场各自流通市值最大的前3只股票
pass
def handlebar(ContextInfo):
# 计算当前主图的cci
position_info = get_trade_detail_data(ACCOUNT, 'stock', 'position')
for i in position_info:
print('股票', i.m_strInstrumentID, '持仓数',
i.m_nVolume, '持有成本', round(i.m_dOpenPrice, 2),
'持仓盈亏', round(i.m_dPositionProfit, 2),
'持仓盈亏比例', round(i.m_dProfitRate*100, 2)
)
得到的输出结果:
扫码免费开通QMT:
查看全部
那么QMT有没有内置的可以获取持仓成本的函数呢?
position 持仓对象 里面有一个字段:
m_dOpenPrice: 持仓成本
可以用来获取当前的持仓成本:
具体代码如下:
# encoding:gbk
ACCOUNT = 'xxxxxxx' # 填入你的QMT账户ID, 如果没有,可以联系我开通 QMT权限
def init(ContextInfo):
# hs300成分股中sh和sz市场各自流通市值最大的前3只股票
pass
def handlebar(ContextInfo):
# 计算当前主图的cci
position_info = get_trade_detail_data(ACCOUNT, 'stock', 'position')
for i in position_info:
print('股票', i.m_strInstrumentID, '持仓数',
i.m_nVolume, '持有成本', round(i.m_dOpenPrice, 2),
'持仓盈亏', round(i.m_dPositionProfit, 2),
'持仓盈亏比例', round(i.m_dProfitRate*100, 2)
)
得到的输出结果:
扫码免费开通QMT:

python Ptrade获取热门板块,连板股票 python代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2350 次浏览 • 2024-08-23 16:57
Ptrade API文档:https://ptradeapi.com/#get_sort_msg
get_sort_msg – 获取板块、行业的涨幅排名
get_sort_msg(sort_type_grp=None, sort_field_name=None, sort_type=1, data_count=100)
接口说明
该接口用于获取板块、行业的涨幅排名。
参数 sort_type_grp: 板块或行业的代码(list[str]/str);
(暂时只支持XBHS.DY地域、XBHS.GN概念、XBHS.ZJHHY证监会行业、XBHS.ZS指数、XBHS.HY行业等)
示例代码:按概念板块涨幅倒序排名
import datetime
START_TIME = (datetime.datetime.now() + datetime.timedelta(minutes=1)).strftime('%H:%M')
def execution(context):
#获取XBHS.GN的概念排名信息
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='px_change_rate', sort_type=1, data_count=100)
for data in sort_data:
log.info('板块: {} '.format(data['prod_name']))
for sub_stock in data['rise_first_grp']:
log.info('{} 涨幅 :{}'.format(sub_stock['prod_name'],sub_stock['px_change_rate']))
log.info('\n')
def initialize(context):
# 初始化策略
run_daily(context, execution, time=START_TIME) # 扫描
log.info("公众号:可转债量化分析\n")
def handle_data(context, data):
pass
上面代码在ptrade启动后一分钟拿到结果。不限制要求开盘时间的。其实Ptrade可以在24小时任意时刻启动。
get_sort_msg 返回的数据结构体如下:
具体字段的含义:
prod_code: 行业代码(str:str);
prod_name: 行业名称(str:str);
hq_type_code: 行业板块代码(str:str);
time_stamp: 时间戳毫秒级(str:int);
trade_mins: 交易分钟数(str:int);
trade_status: 交易状态(str:str);
preclose_px: 昨日收盘价(str:float);
open_px: 今日开盘价(str:float);
last_px: 最新价(str:float);
high_px: 最高价(str:float);
low_px: 最低价(str:float);
wavg_px: 加权平均价(str:float);
business_amount: 总成交量(str:int);
business_balance: 总成交额(str:int);
px_change: 涨跌额(str:float);
amplitude: 振幅(str:int);
px_change_rate: 涨跌幅(str:float);
circulation_amount: 流通股本(str:int);
total_shares: 总股本(str:int);
market_value: 市值(str:int);
circulation_value: 流通市值(str:int);
vol_ratio: 量比(str:float);
shares_per_hand: 每手股数(str:int);
rise_count: 上涨家数(str:int);
fall_count: 下跌家数(str:int);
member_count: 成员个数(str:int);
rise_first_grp: 领涨股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
fall_first_grp: 领跌股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
这个返回数据是实时的,可以用来选股,选择热门股,热门板块,涨停板块,昨日涨停,昨日连板板块。
比如上面运行结果里就有 昨日连板的板块个股,有9个,在rise_first_grp 字段里面:
需要开通Ptrade的读者朋友可以后天联系哦,提供不同券商ptrade,低门槛,低费率,还有技术支持群!
查看全部
Ptrade API文档:https://ptradeapi.com/#get_sort_msg
get_sort_msg – 获取板块、行业的涨幅排名
get_sort_msg(sort_type_grp=None, sort_field_name=None, sort_type=1, data_count=100)
接口说明
该接口用于获取板块、行业的涨幅排名。
参数 sort_type_grp: 板块或行业的代码(list[str]/str);
(暂时只支持XBHS.DY地域、XBHS.GN概念、XBHS.ZJHHY证监会行业、XBHS.ZS指数、XBHS.HY行业等)
示例代码:按概念板块涨幅倒序排名
import datetime
START_TIME = (datetime.datetime.now() + datetime.timedelta(minutes=1)).strftime('%H:%M')
def execution(context):
#获取XBHS.GN的概念排名信息
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='px_change_rate', sort_type=1, data_count=100)
for data in sort_data:
log.info('板块: {} '.format(data['prod_name']))
for sub_stock in data['rise_first_grp']:
log.info('{} 涨幅 :{}'.format(sub_stock['prod_name'],sub_stock['px_change_rate']))
log.info('\n')
def initialize(context):
# 初始化策略
run_daily(context, execution, time=START_TIME) # 扫描
log.info("公众号:可转债量化分析\n")
def handle_data(context, data):
pass
上面代码在ptrade启动后一分钟拿到结果。不限制要求开盘时间的。其实Ptrade可以在24小时任意时刻启动。
get_sort_msg 返回的数据结构体如下:
具体字段的含义:
prod_code: 行业代码(str:str);
prod_name: 行业名称(str:str);
hq_type_code: 行业板块代码(str:str);
time_stamp: 时间戳毫秒级(str:int);
trade_mins: 交易分钟数(str:int);
trade_status: 交易状态(str:str);
preclose_px: 昨日收盘价(str:float);
open_px: 今日开盘价(str:float);
last_px: 最新价(str:float);
high_px: 最高价(str:float);
low_px: 最低价(str:float);
wavg_px: 加权平均价(str:float);
business_amount: 总成交量(str:int);
business_balance: 总成交额(str:int);
px_change: 涨跌额(str:float);
amplitude: 振幅(str:int);
px_change_rate: 涨跌幅(str:float);
circulation_amount: 流通股本(str:int);
total_shares: 总股本(str:int);
market_value: 市值(str:int);
circulation_value: 流通市值(str:int);
vol_ratio: 量比(str:float);
shares_per_hand: 每手股数(str:int);
rise_count: 上涨家数(str:int);
fall_count: 下跌家数(str:int);
member_count: 成员个数(str:int);
rise_first_grp: 领涨股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
fall_first_grp: 领跌股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
这个返回数据是实时的,可以用来选股,选择热门股,热门板块,涨停板块,昨日涨停,昨日连板板块。
比如上面运行结果里就有 昨日连板的板块个股,有9个,在rise_first_grp 字段里面:
需要开通Ptrade的读者朋友可以后天联系哦,提供不同券商ptrade,低门槛,低费率,还有技术支持群!

【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1908 次浏览 • 2024-08-08 14:01
主要框架如下:
盘前我们先去读取数据库的数据:
格式很简单,就记录了代码和名字:
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
def initialize(context):
# 初始化策略
engine = DBSelector().get_engine()
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
df['code']=df['code'].astype(str)
result = {}
for index, row in df.iterrows():
code = add_code_postfix(row['code'])
result[code] = {'name': row['name'], 'source': row['source']}
g.holding_stock_dict = result
g.holding_stock_list = list(result.keys())
g.__cache = Cache()
run_interval(context, execution, seconds=INTERVAL) # 扫描
def handle_data(context, data):
pass
def tick_data(context, data):
pass
def before_trading_start(context, data):
'''
盘前
'''
if DEBUG:
log.info('盘前运行开始', str(context.blotter.current_dt))
def after_trading_end(context, data):
'''
盘后
'''
if DEBUG:
log.info('盘后时间 ', str(context.blotter.current_dt))
然后主要部分在 execution 这个监控函数这里。
def execution(context):
tick_info = get_snapshot(g.holding_stock_list)
for code, tick in tick_info.items():
px_change_rate = tick['px_change_rate']
if px_change_rate > abs(HIT_TARGET):
if g.__cache.check(code):
# 通知
name = g.holding_stock_dict.get(code)['name']
source = g.holding_stock_dict.get(code)['source']
msg = '{}-{} 涨幅-{},{}'.format(code,
name, px_change_rate, source)
send_message_via_wechat(msg)
send_message_via_wechat 这个函数是发送微信消息的。
然后基本完成了整体的代码编写,里面一些自定义的函数为了判断 下一次通知要等待多久。
因为不能因为同一个股票满足条件了,然后每隔3秒发一次微信消息。你手机会一直滴滴滴地响的。
而且很容易把其他刚出现的提示给覆盖了。
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
查看全部
主要框架如下:
盘前我们先去读取数据库的数据:
格式很简单,就记录了代码和名字:
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
def initialize(context):
# 初始化策略
engine = DBSelector().get_engine()
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
df['code']=df['code'].astype(str)
result = {}
for index, row in df.iterrows():
code = add_code_postfix(row['code'])
result[code] = {'name': row['name'], 'source': row['source']}
g.holding_stock_dict = result
g.holding_stock_list = list(result.keys())
g.__cache = Cache()
run_interval(context, execution, seconds=INTERVAL) # 扫描
def handle_data(context, data):
pass
def tick_data(context, data):
pass
def before_trading_start(context, data):
'''
盘前
'''
if DEBUG:
log.info('盘前运行开始', str(context.blotter.current_dt))
def after_trading_end(context, data):
'''
盘后
'''
if DEBUG:
log.info('盘后时间 ', str(context.blotter.current_dt))
然后主要部分在 execution 这个监控函数这里。
def execution(context):
tick_info = get_snapshot(g.holding_stock_list)
for code, tick in tick_info.items():
px_change_rate = tick['px_change_rate']
if px_change_rate > abs(HIT_TARGET):
if g.__cache.check(code):
# 通知
name = g.holding_stock_dict.get(code)['name']
source = g.holding_stock_dict.get(code)['source']
msg = '{}-{} 涨幅-{},{}'.format(code,
name, px_change_rate, source)
send_message_via_wechat(msg)
send_message_via_wechat 这个函数是发送微信消息的。
然后基本完成了整体的代码编写,里面一些自定义的函数为了判断 下一次通知要等待多久。
因为不能因为同一个股票满足条件了,然后每隔3秒发一次微信消息。你手机会一直滴滴滴地响的。
而且很容易把其他刚出现的提示给覆盖了。
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2163 次浏览 • 2024-08-07 10:23
因为有多个券商,比如银河,华宝,国金,国盛等。 而且也有家人的账户,可能一个银河就有5-6个账户。
所以如果持仓比较多的话,没有时间管得过来。 设置条件单比较繁琐,也不一定能管得过来。
要求:
把所有的持仓股Excel导出,输入的数据库(这里选择mysql),然后Ptrade读取了股票池,每隔3s扫描一次行情,如果遇到大涨或者大跌的个股,转债,ETF,就发送微信消息提醒(涨幅/跌幅大于7%)
这个是某个客户的简单需求。
后面就按照上面的需求做一个客户端,除了可以录入上述资料,还能提供web服务,输入,删除持仓股,做到实时更新。
最后提醒效果如下:
国金QMT的字样,用来区分我这个标的是哪一个券商的持仓。比如 有可能是 家人1-银河,家人2-国盛,这样的哈
下一篇:
【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
欢迎关注公众号:可转债量化分析 查看全部
因为有多个券商,比如银河,华宝,国金,国盛等。 而且也有家人的账户,可能一个银河就有5-6个账户。
所以如果持仓比较多的话,没有时间管得过来。 设置条件单比较繁琐,也不一定能管得过来。
要求:
把所有的持仓股Excel导出,输入的数据库(这里选择mysql),然后Ptrade读取了股票池,每隔3s扫描一次行情,如果遇到大涨或者大跌的个股,转债,ETF,就发送微信消息提醒(涨幅/跌幅大于7%)
这个是某个客户的简单需求。
后面就按照上面的需求做一个客户端,除了可以录入上述资料,还能提供web服务,输入,删除持仓股,做到实时更新。
最后提醒效果如下:
国金QMT的字样,用来区分我这个标的是哪一个券商的持仓。比如 有可能是 家人1-银河,家人2-国盛,这样的哈
下一篇:
【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
欢迎关注公众号:可转债量化分析

ptrade获取的历史数据最长到哪一年?ptrade如何获取上证指数
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1589 次浏览 • 2024-06-30 13:48
文档里面也有说明:
7、该接口只能获取2005年后的数据。
ptrade官网api接口文档:
https://ptradeapi.com/#
实测也是符合要求的:
ptrade如何获取上证指数, 代码是 000001.SS
test_data = data = get_price(security='000001.SS',start_date='20050201',end_date='20050630',frequency='1d')
ptrade获取上证指数2005年的数据:
需要低佣,低门槛开通ptrade的朋友,可以扫描关注关注号: 查看全部
文档里面也有说明:
7、该接口只能获取2005年后的数据。
ptrade官网api接口文档:
https://ptradeapi.com/#
实测也是符合要求的:
ptrade如何获取上证指数, 代码是 000001.SS
test_data = data = get_price(security='000001.SS',start_date='20050201',end_date='20050630',frequency='1d')
ptrade获取上证指数2005年的数据:
需要低佣,低门槛开通ptrade的朋友,可以扫描关注关注号:

QMT股票两融对冲建仓实盘
QMT • 李魔佛 发表了文章 • 0 个评论 • 2071 次浏览 • 2024-05-29 12:02
成交了多少量,就融券多少量。达到指标即可停止。
代写量化程序,可以关注公众号,后台联系。 价格比QMT官网低的多了。实战性选手,选过N多QMT,ptrade实盘代码。
查看全部
QMT实时获取涨停股,筛选流通盘大于X的股票
QMT • 李魔佛 发表了文章 • 0 个评论 • 2774 次浏览 • 2024-02-07 18:28
直接上代码:# coding:gbk
import time
class G():
pass
g = G()
def init(ContextInfo):
g.hsa = [item for item in ContextInfo.get_stock_list_in_sector('沪深A股') if not item.endswith('BJ')]
g.vol_dict = {}
for stock in g.hsa:
g.vol_dict[stock] = ContextInfo.get_last_volume(stock)
ContextInfo.run_time("execution", "1nSecond", "2019-10-14 13:20:00")
def execution(ContextInfo):
t0 = time.time()
full_tick = ContextInfo.get_full_tick(g.hsa)
total_market_value = 0
total_ratio = 0
count = 0
for stock in g.hsa:
if full_tick[stock]['lastClose'] == 0:
continue
ratio = full_tick[stock]['lastPrice'] / full_tick[stock]['lastClose'] - 1
rise_price = round(full_tick[stock]['lastClose'] * 1.2, 2) if stock[0] == '3' or stock[:3] == '688' else round(
full_tick[stock]['lastClose'] * 1.1, 2)
# 如果要打印涨停品种
if abs(full_tick[stock]['lastPrice'] - rise_price) <0.01:
print(f"涨停股票 {stock} {ContextInfo.get_stock_name(stock)}")
market_value = full_tick[stock]['lastPrice'] * g.vol_dict[stock]
total_ratio += ratio * market_value
total_market_value += market_value
count += 1
# print(count)
total_ratio /= total_market_value
total_ratio *= 100
print(f'A股加权涨幅 {round(total_ratio, 2)}% 函数运行耗时{round(time.time() - t0, 5)}秒')
欢迎关注公众号:
可转债量化分析 查看全部
直接上代码:
# coding:gbk
import time
class G():
pass
g = G()
def init(ContextInfo):
g.hsa = [item for item in ContextInfo.get_stock_list_in_sector('沪深A股') if not item.endswith('BJ')]
g.vol_dict = {}
for stock in g.hsa:
g.vol_dict[stock] = ContextInfo.get_last_volume(stock)
ContextInfo.run_time("execution", "1nSecond", "2019-10-14 13:20:00")
def execution(ContextInfo):
t0 = time.time()
full_tick = ContextInfo.get_full_tick(g.hsa)
total_market_value = 0
total_ratio = 0
count = 0
for stock in g.hsa:
if full_tick[stock]['lastClose'] == 0:
continue
ratio = full_tick[stock]['lastPrice'] / full_tick[stock]['lastClose'] - 1
rise_price = round(full_tick[stock]['lastClose'] * 1.2, 2) if stock[0] == '3' or stock[:3] == '688' else round(
full_tick[stock]['lastClose'] * 1.1, 2)
# 如果要打印涨停品种
if abs(full_tick[stock]['lastPrice'] - rise_price) <0.01:
print(f"涨停股票 {stock} {ContextInfo.get_stock_name(stock)}")
market_value = full_tick[stock]['lastPrice'] * g.vol_dict[stock]
total_ratio += ratio * market_value
total_market_value += market_value
count += 1
# print(count)
total_ratio /= total_market_value
total_ratio *= 100
print(f'A股加权涨幅 {round(total_ratio, 2)}% 函数运行耗时{round(time.time() - t0, 5)}秒')
欢迎关注公众号:
可转债量化分析

QMT | Ptrade 量化策略代写服务
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 3263 次浏览 • 2023-11-01 10:43
多年交易经验,量化交易与开发经验。所以很多策略,其实用户大体描述,就知道要注意哪些地方,会提出一些建议,用户要注意,需不需要添加一些判读条件等等。(当然,策略的具体参数都是设置可以调节的,你不需要把实际的参数告诉我,代码给你后,你自己运行策略的时候把你策略的真正参数填上去就好了。)
有偿,收费,价格美丽。根据策略实际的复杂程度与预估的工时,收费。(不根据代码数量,因为我写代码很精简)
我也帮你们咨询过了迅投的客服。 因为他们官网也有提供策略代写服务。他们是不问你策略,直接是5000起步哦。然后根据策略,在5000的基础上不断加。
咨询完,我都感觉我自己以前的报价太低了,呜。
PS: 之前还有迅投的前员工私底下接单写策略,然后到我的星球里面白嫖我的代码,调用我接口数据,被我发现后举报到星球的。后面那个客户发现代码里面藏有我的公众号信息哈,找到我让我修改接口数据哈。
需要的代写策略的盆友,可以关注公众号,在菜单栏那里的“代写量化程序”或者 后台回复:策略代写,获取联系方式哦
扫码关注公众号:
查看全部
迅投的QMT和恒生电子的Ptrade, 还有掘金, 量化策略编程, 实盘和回测都行。只要你的需求明确,白纸黑字描述清楚,都可以做。股票,ETF,可转债都行。
多年交易经验,量化交易与开发经验。所以很多策略,其实用户大体描述,就知道要注意哪些地方,会提出一些建议,用户要注意,需不需要添加一些判读条件等等。(当然,策略的具体参数都是设置可以调节的,你不需要把实际的参数告诉我,代码给你后,你自己运行策略的时候把你策略的真正参数填上去就好了。)
有偿,收费,价格美丽。根据策略实际的复杂程度与预估的工时,收费。(不根据代码数量,因为我写代码很精简)
我也帮你们咨询过了迅投的客服。 因为他们官网也有提供策略代写服务。他们是不问你策略,直接是5000起步哦。然后根据策略,在5000的基础上不断加。
咨询完,我都感觉我自己以前的报价太低了,呜。
PS: 之前还有迅投的前员工私底下接单写策略,然后到我的星球里面白嫖我的代码,调用我接口数据,被我发现后举报到星球的。后面那个客户发现代码里面藏有我的公众号信息哈,找到我让我修改接口数据哈。
需要的代写策略的盆友,可以关注公众号,在菜单栏那里的“代写量化程序”或者 后台回复:策略代写,获取联系方式哦
扫码关注公众号:

小市值轮动-量化交易-程序化交易-Ptrade实盘
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 3133 次浏览 • 2023-10-07 14:14
当前策略持有30只。
点击查看大图
点击查看大图
基于股票的策略不敢多买,属于试验阶段,后期仍然会不断根据市场调仓; 主仓依然在可转债。
公众号:可转债量化分析
如果需要策略代写,(ptrade、qmt,其他量化平台)
可以公众号后台回复:
策略代写
查看全部
ptrade qmt无法登录问题
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 2896 次浏览 • 2023-08-08 14:44
实际上这是在周五晚上和周末出现的问题,这是计划内的维护。部分券商没有技术服务支持,用户可能连服务器日常维护服务通知都无法及时得到通知。
PS:其实,大部分券商基本也就那样,ptrade和qmt的技术支持基本等于0,不敢说全部,至少90%的情况是这样的。 以至于我自己维护了一个ptrade,qmt的技术群(审核才可以加),日常有空就在里面解决群友的问题。基本都是些基础问题,部分可能是券商数据问题,大部分是用户的代码问题。 查看全部
ptrade批量获取股票的昨天的收盘价,转为字典json【一】
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2649 次浏览 • 2023-07-17 19:50
ptrade接口文档:https://ptradeapi.com
笔者这里接写几个最简单的方式,供读者朋友参考。
下面代码适用于实盘,回测。
code_list = ['113578.SS','123014.SZ'] # 股票池,这里可以填几千个股票也没问题的
zz_df_price = get_price(code_list, start_date=None, end_date=None, frequency='1d', fields='close', fq=None, count=1)
yesterday_price_dict = zz_df_price.iloc[0].to_json()
讲解:
1.
code_list = ['113578.SS','123014.SZ'] # 股票池,这里可以填几千个股票也没问题的,比如你可以先拿沪深300指数的成分股,然后传入这个函数。
2.
zz_df_price = get_price(code_list, start_date=None, end_date=None, frequency='1d', fields='close', fq=None, count=1)
get_price: 获取历史数据。 这里不用get_history,因为这个函数太多bug了,主要是券商数据可能是缺的。拿历史数据我基本不敢用get_history。
因为我拿昨天的收盘价,所以我就不指定日期,只用count=1,获取1条数据,因为数据是从最新开始的,那么这一条数据肯定是上一个交易日的。
正常情况返回的数据是一个Pannel,三维的。不过因为filed=‘close',单个字段,特殊情况,这里返回的是一个dataframe
输出:
zz_df_price.iloc[0].to_json()
index 113578.SS 123014.SZ
2023-07-14 93.036 118.36
所以接下来要做的是,获取dataframe的第一行数据,直接转为json
得到:
'{"113578.SS":93.036,"123014.SZ":118.36}'
更多技术支持与解答,欢迎加入星球。
查看全部
ptrade接口文档:https://ptradeapi.com
笔者这里接写几个最简单的方式,供读者朋友参考。
下面代码适用于实盘,回测。
code_list = ['113578.SS','123014.SZ'] # 股票池,这里可以填几千个股票也没问题的
zz_df_price = get_price(code_list, start_date=None, end_date=None, frequency='1d', fields='close', fq=None, count=1)
yesterday_price_dict = zz_df_price.iloc[0].to_json()
讲解:
1.
code_list = ['113578.SS','123014.SZ'] # 股票池,这里可以填几千个股票也没问题的,比如你可以先拿沪深300指数的成分股,然后传入这个函数。
2.
zz_df_price = get_price(code_list, start_date=None, end_date=None, frequency='1d', fields='close', fq=None, count=1)
get_price: 获取历史数据。 这里不用get_history,因为这个函数太多bug了,主要是券商数据可能是缺的。拿历史数据我基本不敢用get_history。
因为我拿昨天的收盘价,所以我就不指定日期,只用count=1,获取1条数据,因为数据是从最新开始的,那么这一条数据肯定是上一个交易日的。
正常情况返回的数据是一个Pannel,三维的。不过因为filed=‘close',单个字段,特殊情况,这里返回的是一个dataframe
输出:
zz_df_price.iloc[0].to_json()
index 113578.SS 123014.SZ
2023-07-14 93.036 118.36
所以接下来要做的是,获取dataframe的第一行数据,直接转为json
得到:
'{"113578.SS":93.036,"123014.SZ":118.36}'
更多技术支持与解答,欢迎加入星球。

目前支持量化接口的万一免五的券商有哪些?
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 4743 次浏览 • 2023-07-04 22:52
其中能够股票免五的有国金证券,国盛证券,国信证券,安信证券。
其中,国金证券,国盛证券支持QMT、MiniQMT、Ptrade。
国信证券,安信证券支持QMT。
东莞证券支持Ptrade
可转债默认免五。
开户后可加入量化技术交流群,可获得编程技术指导。
【提问者需要把问题描述清楚即可,PS: 有些人动不动就说:“Ptrade不行呀”,“QMT垃圾呀”,结果让他贴代码上来瞅瞅,是他本身代码写的拉垮,目前贴出来的已知的问题,90%是个人代码问题。】
扫码添加微信咨询开户:
查看全部
Ptrade/QMT 可转债转股操作 python代码
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 3367 次浏览 • 2023-06-19 18:14
而这个转股操作是要在交易时间,也就是盘中时间下一个债转股的命令,然后盘后交易所会更会你盘中下的转股指令,将对应的可转债转为对应的股票,这是,持仓里面的可转债会消失,变成该可转债对应的正股。
(当然这是在全部转股的前提下的情况,也有可能有部分人转债只转一部分,这样持仓里面还仍然会有部分可转债没有被转为股票)
那么在Ptrade和QMT里面,如何调用API接口进行可转债转股呢?
Ptrade:
def initialize(context):
g.security = "600570.SS"
set_universe(g.security)
def before_trading_start(context, data):
g.count = 0
def handle_data(context, data):
if g.count == 0:
# 对持仓内的贝斯进行转股操作
debt_to_stock_order("123075.SZ", -1000)
g.count += 1
# 查看委托状态
log.info(get_orders())
g.count += 1
主要是上面的函数,
debt_to_stock_order 传入可转债代码和转股的数量,注意数量用加一个负号。
QMT可转债转股操作
#coding:gbk
c = True
account = '11111111' # 个人账户
def init(ContextInfo):
pass
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
#历史k线不应该发出实盘信号 跳过
return
if c:
passorder(80,1101,account,s,5,0,-100,'1',2,'tzbz',ContextInfo)
c=False
passorder 里面的 80是 普通账户可转债转股
更多Ptrade,qmt知识,可以关注公众号
查看全部
而这个转股操作是要在交易时间,也就是盘中时间下一个债转股的命令,然后盘后交易所会更会你盘中下的转股指令,将对应的可转债转为对应的股票,这是,持仓里面的可转债会消失,变成该可转债对应的正股。
(当然这是在全部转股的前提下的情况,也有可能有部分人转债只转一部分,这样持仓里面还仍然会有部分可转债没有被转为股票)
那么在Ptrade和QMT里面,如何调用API接口进行可转债转股呢?
Ptrade:
def initialize(context):
g.security = "600570.SS"
set_universe(g.security)
def before_trading_start(context, data):
g.count = 0
def handle_data(context, data):
if g.count == 0:
# 对持仓内的贝斯进行转股操作
debt_to_stock_order("123075.SZ", -1000)
g.count += 1
# 查看委托状态
log.info(get_orders())
g.count += 1
主要是上面的函数,
debt_to_stock_order 传入可转债代码和转股的数量,注意数量用加一个负号。
QMT可转债转股操作
#coding:gbk
c = True
account = '11111111' # 个人账户
def init(ContextInfo):
pass
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
#历史k线不应该发出实盘信号 跳过
return
if c:
passorder(80,1101,account,s,5,0,-100,'1',2,'tzbz',ContextInfo)
c=False
passorder 里面的 80是 普通账户可转债转股
更多Ptrade,qmt知识,可以关注公众号

国金证券QMT量化新人培训教程
QMT • 李魔佛 发表了文章 • 0 个评论 • 6700 次浏览 • 2023-05-29 00:37
视频已经整理放到B站:
https://space.bilibili.com/73827743/channel/seriesdetail?sid=3326385&ctype=0
视频目录:
量化新人用QMT+chat GPT快速上手量化策略(一)QMT基础介绍
量化新人用QMT+chat GPT快速上手量化策略(二)QMT均线盘后选股
量化新人用QMT+chat GPT快速上手量化策略(三)一个基本的回测策略代码
量化新人用QMT+chat GPT快速上手量化策略(四) QMT运行一个策略的整体流程
量化新人用QMT+chat GPT快速上手量化策略(五) 获取股票数据
量化新人用QMT+chat GPT快速上手量化策略(六) tablib计算指标
量化新人用QMT+chat GPT快速上手量化策略(七) 下单代码编写
欢迎观看并提出疑问。
公众号:可转债量化分析 查看全部
视频已经整理放到B站:
https://space.bilibili.com/73827743/channel/seriesdetail?sid=3326385&ctype=0
视频目录:
量化新人用QMT+chat GPT快速上手量化策略(一)QMT基础介绍
量化新人用QMT+chat GPT快速上手量化策略(二)QMT均线盘后选股
量化新人用QMT+chat GPT快速上手量化策略(三)一个基本的回测策略代码
量化新人用QMT+chat GPT快速上手量化策略(四) QMT运行一个策略的整体流程
量化新人用QMT+chat GPT快速上手量化策略(五) 获取股票数据
量化新人用QMT+chat GPT快速上手量化策略(六) tablib计算指标
量化新人用QMT+chat GPT快速上手量化策略(七) 下单代码编写
欢迎观看并提出疑问。
公众号:可转债量化分析

用户问的比较多的关于ptrade基础问题
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 3774 次浏览 • 2023-05-04 01:19
1. 国金的Ptrade 实盘交易客户端是无法进行回测的,在任何时间段;
而模拟客户端可以,可以找自己的经理申请一个Ptrade模拟客户端账户;
2. 国盛的Ptrade实盘交易客户端仅在交易时间无法回测,但非交易时间可以回测;
主要是因为实盘回测和交易在同一个服务器,回测占用过多资源会影响实盘交易;模拟客户端没有这个问题;
任何时间段均可以回测; (之前某个券商的ptrade实盘服务器,因为某个用户开了40多个回测策略,一直在后台运行,而且是关于运算密集型的,导致实盘交易的程序也崩溃了)
3. 国金Ptrade无法回测星球上面的可转债实盘代码,实盘代码是基于当前的实时数据,用来进行回测没有意义,因为获取不到可转债的历史数据(溢价率,规模等),只有历史的价格数据;
4. 国金Ptrade无法使用星球上的可转债代码进行实盘,因为无法访问外网,无法访问我部署的接口数据; 而国盛的Ptrade可以;如果国金Ptrade需要实盘交易可转债,需要手工上传一些基础数据,Ptrade提供上传功能,具体操作可查找星球相关文章;
5. 在共享的Ptrade模拟试用账户上,不要保留个人代码记录,跑完后记得删除,否则其他共有同一个账户的人可以进去修改复制你的策略和代码;如果是单独的个人模拟账户,则没有这个问题。
查看全部
1. 国金的Ptrade 实盘交易客户端是无法进行回测的,在任何时间段;
而模拟客户端可以,可以找自己的经理申请一个Ptrade模拟客户端账户;
2. 国盛的Ptrade实盘交易客户端仅在交易时间无法回测,但非交易时间可以回测;
主要是因为实盘回测和交易在同一个服务器,回测占用过多资源会影响实盘交易;模拟客户端没有这个问题;
任何时间段均可以回测; (之前某个券商的ptrade实盘服务器,因为某个用户开了40多个回测策略,一直在后台运行,而且是关于运算密集型的,导致实盘交易的程序也崩溃了)
3. 国金Ptrade无法回测星球上面的可转债实盘代码,实盘代码是基于当前的实时数据,用来进行回测没有意义,因为获取不到可转债的历史数据(溢价率,规模等),只有历史的价格数据;
4. 国金Ptrade无法使用星球上的可转债代码进行实盘,因为无法访问外网,无法访问我部署的接口数据; 而国盛的Ptrade可以;如果国金Ptrade需要实盘交易可转债,需要手工上传一些基础数据,Ptrade提供上传功能,具体操作可查找星球相关文章;
5. 在共享的Ptrade模拟试用账户上,不要保留个人代码记录,跑完后记得删除,否则其他共有同一个账户的人可以进去修改复制你的策略和代码;如果是单独的个人模拟账户,则没有这个问题。

Ptrade QMT实盘策略记录 - 不定期更新
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 3217 次浏览 • 2023-04-03 15:27
写出来的是已经实现且实盘稳定运行的;
涨停板;依赖ptrade的高速行情自动配合手动;两融账户的股票日内做T,持有底仓;股票小市值轮动+多因子可转债多因子(有N个版本+不同的排除因子 组合)可转债日内高频股票趋势动量ETF轮动套利脉冲卖出扫描
纯粹自己做的记录,便于自己平时复盘。
有兴趣的朋友可以关注公众号交流。 查看全部
Ptrade担保品买入卖出
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2232 次浏览 • 2023-03-31 01:31
实际上是买卖股票,但在信用账户上,用只有资金买卖股票。
ptrade支持两融操作。
比如下面的示例代告诉我们,担保品买入股票的3个不同参数的效果:def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 以系统最新价委托
margin_trade(g.security, 100)
# 以72块价格下一个限价单
margin_trade(g.security, 100, limit_price=72)
# 以最优五档即时成交剩余撤销委托
margin_trade(g.security, 200, market_type=4) security:股票代码(str);
amount:交易数量,正数表示买入,负数表示卖出(int);
limit_price:买卖限价(float);
market_type:市价委托类型,上证非科创板股票支持参数1、4,上证科创板股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5(int);
0:对手方最优价格;
1:最优五档即时成交剩余转限价;
2:本方最优价格;
3:即时成交剩余撤销;
4:最优五档即时成交剩余撤销;
5:全额成交或撤单; 查看全部
担保品卖出指的是融资融券交易当中,用自有资金进行买卖的行为
实际上是买卖股票,但在信用账户上,用只有资金买卖股票。
ptrade支持两融操作。
比如下面的示例代告诉我们,担保品买入股票的3个不同参数的效果:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 以系统最新价委托
margin_trade(g.security, 100)
# 以72块价格下一个限价单
margin_trade(g.security, 100, limit_price=72)
# 以最优五档即时成交剩余撤销委托
margin_trade(g.security, 200, market_type=4)
security:股票代码(str);
amount:交易数量,正数表示买入,负数表示卖出(int);
limit_price:买卖限价(float);
market_type:市价委托类型,上证非科创板股票支持参数1、4,上证科创板股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5(int);
0:对手方最优价格;
1:最优五档即时成交剩余转限价;
2:本方最优价格;
3:即时成交剩余撤销;
4:最优五档即时成交剩余撤销;
5:全额成交或撤单;

qmt 可转债 双低(阈值)轮动 实盘代码
QMT • 李魔佛 发表了文章 • 0 个评论 • 3356 次浏览 • 2023-02-26 15:18
用已有的ptrade的代码,然后部分获取行情和交易接口按照qmt的接口文档(http://qmt.ptradeapi.com )重写,就给了一版。(对,很早以前就有一版ptrade的转债双低的了)
无论是qmt还是ptrade,都只是一个工具,用熟悉了,都无所哪个好哪个不好。
完整代码在个人星球。
觉得之前星球太便宜了,不仅给了代码,还部署了接口免费使用,通过接口获取可转债的实时数据,强赎天数,规模,溢价率,评级等等一系列数据。 而且随着时间的推移,里面积累的数据,代码也越来越多,感觉这样对前面进去并不断续费的星友有点公平,尽管以后他们续费都直接打折扣。所以还是按照一些大v运营的意见,逐年涨价策略。
越往后的朋友,因为前面积累的内容越多,因此价格也随之增长。
当然有能力可以自己写接口,部署,实盘,获取三方数据的大v,就没必要加了。
查看全部
用已有的ptrade的代码,然后部分获取行情和交易接口按照qmt的接口文档(http://qmt.ptradeapi.com )重写,就给了一版。(对,很早以前就有一版ptrade的转债双低的了)
无论是qmt还是ptrade,都只是一个工具,用熟悉了,都无所哪个好哪个不好。
完整代码在个人星球。
觉得之前星球太便宜了,不仅给了代码,还部署了接口免费使用,通过接口获取可转债的实时数据,强赎天数,规模,溢价率,评级等等一系列数据。 而且随着时间的推移,里面积累的数据,代码也越来越多,感觉这样对前面进去并不断续费的星友有点公平,尽管以后他们续费都直接打折扣。所以还是按照一些大v运营的意见,逐年涨价策略。
越往后的朋友,因为前面积累的内容越多,因此价格也随之增长。
当然有能力可以自己写接口,部署,实盘,获取三方数据的大v,就没必要加了。

qmt iquant最新接口文档
QMT • 李魔佛 发表了文章 • 0 个评论 • 2522 次浏览 • 2023-02-19 15:16
http://qmt.ptradeapi.com
除了官方的接口文档,还加入了一些个人平时编写的写法与回测,实盘代码。 不定期更新。
欢迎关注收藏。 查看全部
http://qmt.ptradeapi.com
除了官方的接口文档,还加入了一些个人平时编写的写法与回测,实盘代码。 不定期更新。
欢迎关注收藏。
迅投qmt入门教程(一)
QMT • 李魔佛 发表了文章 • 0 个评论 • 14851 次浏览 • 2023-02-06 19:43
1. 准备:
首先得开一个支持qmt的券商,目前市面上支持qmt的券商越来越丰富了。
初学者可以开一个门槛第一点的,一般入金1w-2w 不等,就可以申请开通了。
鉴于以学习为目的,真正投入到实盘中的资金不会很大,所以初始阶段也不一定就找万一免五的券商,毕竟目前要给免五,资金门槛比较高,一般要100w甚至以上。
笔者推荐国信,国金的qmt, 门槛只要1-2w就足够了,股票费率在万一,可转债万0.4-万0.5。适合初学者,这两家也可以在虚拟机运行,适合苹果mac的用户。 需要的朋友也可以在公众号后台留言: qmt开通
2. 假设已经在券商那里开通了qmt功能,接下来就开始进入教学:
这里以国信的qmt(iquant)为例:
首先要做的就是下载python库。 这个python库指的是qmt的python库,它的版本是3.6.8; 如果你只用qmt内置的python,你就不用自己到网上下载python安装程序,只需要在qmt的设置里面,点一下按钮,就可以安装python库。这里用默认的系统路径就可以了。
3. 第一个量化程序 hello world
新建策略后:
在编辑器里面输入下面的代码:#encoding:gbk
def init(ContextInfo):
print('hello world')
def handlebar(ContextInfo):
#计算当前主图的cci
print("handle bar")
点击回测:
得到输出结果
这里介绍2个概念:(3)Handlebar
handlebar 是整个 Python 模型中的核心执行函数。当模型从数据层获取到运行所需要的数据之后,会对数据集上的每一根 bar,调用一次 handlebar 函数,处理当前这根 bar 上的数据。也就是说,用户模型的核心逻辑都是写在该函数中的,如获取数据,设置下单条件等。在 handlebar 中处理完数据后,用户可以通过 paint 方法将需要绘图输出的结果返回给界面。界面会将输出结果如实的展示出来。 (4)ContextInfo
ContextInfo 是整个 Python 框架中的一个核心对象。它包含了各种与 Python 底层框架交互的 API 方法,也是一个全局的上下文环境,可以在 init 以及 handlebar 这两个函数中自由地传递用户创建的各种自定义数据。
文绉绉的,实际写一个策略,必须包含下面两个函数,而且参数也要一致,参数名随意,不过用默认的就好了。你随便改成没有意义的字符,后面自己看代码也是很麻烦。def init(ContextInfo):
pass
def handlebar(ContextInfo):
pass
init 和 handlebar 是 Python 模型中最重要的方法,也是唯二由 C++ 直接调用的方法,所有的执行代码都尽量写在这两个方法中或由其中的函数调用。【个人不太喜欢这样】
回测时间设置,在右边的菜单栏,有个回测参数,里面设置时间;在菜单“基本信息”里面 ,可以设置回测的时间间隔,可以使用分钟线,日线,小时等等不同周期,不过无法做到tick的回测。最小的只能到分钟。
但是如果你有秒的tick数据,自己写个回测框架也是可以做到秒级的tick级别的回测。很早前笔者就在星球上提供了完整的源码和数据,初学者也可以拿着去改,只要后续更新tick数据,就可以不断的回测策略的最新状态。
你写的回测实盘python代码,是保存在本地的文件夹的:
C:\iquant_gx\python, 前面的C:\iquant_gx 是你的iquant安装路径。
而且底下也有很多的现成的代码:
部分代码可以直接用pycharm就可以打开,没有加密的,但也有一些是加密了的。
比如这个自动逆回购是现成的:
对,这里就有,很多人还到处找人写;# encoding:gbk
import logging
from datetime import datetime, timedelta
from decimal import Decimal as D
from decimal import InvalidOperation
logging.basicConfig(level=logging.INFO)
# 挂单失败后的等待时长,以秒计
TIMEOUT_ON_FAIL_SEC = 30
# 等待account_callback的时长
# RUN_TIME_DELAY = 30
# how is this not defined in package??
MORNING_START = datetime.strptime(datetime.now().strftime('%Y%m%d') + '093000', '%Y%m%d%H%M%S')
MORNING_END = datetime.strptime(datetime.now().strftime('%Y%m%d') + '113000', '%Y%m%d%H%M%S')
NOON_START = datetime.strptime(datetime.now().strftime('%Y%m%d') + '130000', '%Y%m%d%H%M%S')
NOON_END = datetime.strptime(datetime.now().strftime('%Y%m%d') + '153000', '%Y%m%d%H%M%S')
# for SH only
TRANS_COST_1D = D('5e-6')
TRANS_COST_LONG = D('1.5e-7')
TRANS_COST_MAX = 100
# ORDER LIMITS
SH_UPPER = 1e7
SH_LOWER = 1e5
SZ_UPPER = 1e8
SZ_LOWER = 1e3
# ASSET NAME DICT
SH_REV_REPO = {'上交所1天': '204001.SH', '上交所2天': '204002.SH', '上交所3天': '204003.SH',
'上交所4天': '204004.SH', '上交所7天': '204007.SH', '上交所14天': '204014.SH',
'上交所28天': '204028.SH', '上交所91天': '204091.SH', '上交所182天': '204182.SH',
}
SZ_REV_REPO = {'深交所3天': '131800.SZ', '深交所7天': '131801.SZ', '深交所14天': '131802.SZ',
'深交所28天': '131803.SZ', '深交所91天': '131805.SZ', '深交所182天': '131806.SZ',
'深交所4天': '131809.SZ', '深交所1天': '131810.SZ', '深交所2天': '131811.SZ',
}
def init(ContextInfo):
ContextInfo.accID = account
ContextInfo.set_account(ContextInfo.accID)
ContextInfo.use_all_cap = False if ALL_CAP == '否' else True
# global trading control, set to False if detected error on user's side
# stop() does not halt strat
ContextInfo.order_control = False
if not ContextInfo.use_all_cap:
try:
ContextInfo.dollar_vol = float(D(DOLLAR_VOL))
except InvalidOperation:
ContextInfo.order_control = True
raise ValueError('读取资金量失败')
else:
if DOLLAR_VOL != '':
logging.warning('已设定使用全部账户资金,忽略所设置资金量')
try:
ContextInfo.start_time = datetime.strptime(datetime.now().strftime('%Y%m%d') + str(START_TIME), '%Y%m%d%H%M%S')
ContextInfo.asset_name = SH_REV_REPO[ASSET_NAME]
except KeyError:
ContextInfo.asset_name = SZ_REV_REPO[ASSET_NAME]
except ValueError as error:
if 'unconverted data remains' in str(error):
ContextInfo.order_control = True
raise ValueError('读取挂单时间失败')
if not (MORNING_END > ContextInfo.start_time >= MORNING_START) \
and not (NOON_END > ContextInfo.start_time >= NOON_START):
ContextInfo.order_control = True
raise ValueError('挂单时间不在可交易时间内')
ContextInfo.can_order = False
ContextInfo.order_done = False
if not ContextInfo.order_control:
ContextInfo.run_time("place_order", "{0}nSecond".format(TIMEOUT_ON_FAIL_SEC),
ContextInfo.start_time.strftime('%Y-%m-%d %H:%M:%S'), 'SH')
def account_callback(ContextInfo, accountInfo):
if not ContextInfo.can_order:
ContextInfo.can_order = True
if ContextInfo.use_all_cap:
ContextInfo.dollar_vol = accountInfo.m_dAvailable
else:
if ContextInfo.dollar_vol > accountInfo.m_dAvailable:
ContextInfo.order_control = True
raise ValueError('下单额度大于账户可用资金')
# check if order satisfies lower limit for each exchange
if ('SH' in ContextInfo.asset_name and ContextInfo.dollar_vol < SH_LOWER) \
or ('SZ' in ContextInfo.asset_name and ContextInfo.dollar_vol < SZ_LOWER):
ContextInfo.order_control = True
raise ValueError('下单额度低于交易所最低限额')
# checks dollar_vol and rounds the total amount
if 'SH' in ContextInfo.asset_name and ContextInfo.dollar_vol % SH_LOWER != 0:
ContextInfo.dollar_vol = (ContextInfo.dollar_vol // SH_LOWER) * SH_LOWER
logging.warning('下单额度已规整为:{0}'.format(ContextInfo.dollar_vol))
elif 'SZ' in ContextInfo.asset_name and ContextInfo.dollar_vol % SZ_LOWER != 0:
ContextInfo.dollar_vol = (ContextInfo.dollar_vol // SZ_LOWER) * SZ_LOWER
logging.warning('下单额度已规整为:{0}'.format(ContextInfo.dollar_vol))
'''
if 'SH' in ContextInfo.asset_name:
num_batch_order = int(ContextInfo.dollar_vol // SH_UPPER)
remain_order = ContextInfo.dollar_vol - num_batch_order * SH_UPPER
if ContextInfo.asset_name == '204001.SH':
transaction_cost = TRANS_COST_MAX * num_batch_order + remain_order * TRANS_COST_1D
else:
transaction_cost = TRANS_COST_MAX * num_batch_order + remain_order * TRANS_COST_LONG
if transaction_cost + ContextInfo.dollar_vol > accountInfo.m_dAvailable:
ContextInfo.order_control = True
raise ValueError('可用资金不足以垫付交易金额与手续费')
'''
ContextInfo.remain_vol = ContextInfo.dollar_vol
def handlebar(ContextInfo):
return
def place_order(ContextInfo):
if not ContextInfo.can_order or ContextInfo.order_control:
return
if not ContextInfo.order_done:
if 'SH' in ContextInfo.asset_name:
num_batch_order = int(ContextInfo.remain_vol // SH_UPPER)
remain_order = ContextInfo.remain_vol - num_batch_order * SH_UPPER
for _ in range(num_batch_order):
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(SH_UPPER, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, SH_UPPER, order_remark, 1,
order_remark, ContextInfo)
else:
num_batch_order = int(ContextInfo.remain_vol // SZ_UPPER)
remain_order = ContextInfo.remain_vol - num_batch_order * SZ_UPPER
for _ in range(num_batch_order):
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(SZ_UPPER, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, SZ_UPPER, order_remark, 1,
order_remark, ContextInfo)
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(remain_order, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, remain_order, order_remark, 1,
order_remark, ContextInfo)
ContextInfo.remain_vol = 0
ContextInfo.order_done = True
def order_callback(ContextInfo, orderInfo):
curr_remark = orderInfo.m_strRemark
curr_status = orderInfo.m_nOrderStatus
if '国债逆回购' in curr_remark and ContextInfo.asset_name in curr_remark and curr_status == 57:
ContextInfo.order_done = False
# up the leftover dollar vol by failed amount
# logging.info('reported trade amount:{0}, reported_trade_volume:{1}'.format(orderInfo.m_dTradeAmount, orderInfo.m_nVolumeTotal))
# 单张100元
ContextInfo.remain_vol += orderInfo.m_nVolumeTotal * 100
if '交易时间不合法' in orderInfo.m_strCancelInfo:
ContextInfo.order_control = True
raise ValueError('国债逆回购:未能在交易时间内完成下单,停止报单。余量{0}元未报'.format(ContextInfo.remain_vol))
logging.warning('国债逆回购:报单废单,原因:\"{0}\",尝试重报'.format(orderInfo.m_strCancelInfo))
elif '国债逆回购' in curr_remark and ContextInfo.asset_name in curr_remark and curr_status == 50:
logging.info('国债逆回购:报单{0}元成功'.format(orderInfo.m_nVolumeTotal * 100))
return
待续,不定期更新
公众号:
星球:
查看全部
1. 准备:
首先得开一个支持qmt的券商,目前市面上支持qmt的券商越来越丰富了。
初学者可以开一个门槛第一点的,一般入金1w-2w 不等,就可以申请开通了。
鉴于以学习为目的,真正投入到实盘中的资金不会很大,所以初始阶段也不一定就找万一免五的券商,毕竟目前要给免五,资金门槛比较高,一般要100w甚至以上。
笔者推荐国信,国金的qmt, 门槛只要1-2w就足够了,股票费率在万一,可转债万0.4-万0.5。适合初学者,这两家也可以在虚拟机运行,适合苹果mac的用户。 需要的朋友也可以在公众号后台留言: qmt开通
2. 假设已经在券商那里开通了qmt功能,接下来就开始进入教学:
这里以国信的qmt(iquant)为例:
首先要做的就是下载python库。 这个python库指的是qmt的python库,它的版本是3.6.8; 如果你只用qmt内置的python,你就不用自己到网上下载python安装程序,只需要在qmt的设置里面,点一下按钮,就可以安装python库。这里用默认的系统路径就可以了。
3. 第一个量化程序 hello world
新建策略后:
在编辑器里面输入下面的代码:
#encoding:gbk
def init(ContextInfo):
print('hello world')
def handlebar(ContextInfo):
#计算当前主图的cci
print("handle bar")
点击回测:
得到输出结果
这里介绍2个概念:
(3)Handlebar
handlebar 是整个 Python 模型中的核心执行函数。当模型从数据层获取到运行所需要的数据之后,会对数据集上的每一根 bar,调用一次 handlebar 函数,处理当前这根 bar 上的数据。也就是说,用户模型的核心逻辑都是写在该函数中的,如获取数据,设置下单条件等。在 handlebar 中处理完数据后,用户可以通过 paint 方法将需要绘图输出的结果返回给界面。界面会将输出结果如实的展示出来。
(4)ContextInfo
ContextInfo 是整个 Python 框架中的一个核心对象。它包含了各种与 Python 底层框架交互的 API 方法,也是一个全局的上下文环境,可以在 init 以及 handlebar 这两个函数中自由地传递用户创建的各种自定义数据。
文绉绉的,实际写一个策略,必须包含下面两个函数,而且参数也要一致,参数名随意,不过用默认的就好了。你随便改成没有意义的字符,后面自己看代码也是很麻烦。
def init(ContextInfo):
pass
def handlebar(ContextInfo):
pass
init 和 handlebar 是 Python 模型中最重要的方法,也是唯二由 C++ 直接调用的方法,所有的执行代码都尽量写在这两个方法中或由其中的函数调用。【个人不太喜欢这样】
回测时间设置,在右边的菜单栏,有个回测参数,里面设置时间;在菜单“基本信息”里面 ,可以设置回测的时间间隔,可以使用分钟线,日线,小时等等不同周期,不过无法做到tick的回测。最小的只能到分钟。
但是如果你有秒的tick数据,自己写个回测框架也是可以做到秒级的tick级别的回测。很早前笔者就在星球上提供了完整的源码和数据,初学者也可以拿着去改,只要后续更新tick数据,就可以不断的回测策略的最新状态。
你写的回测实盘python代码,是保存在本地的文件夹的:
C:\iquant_gx\python, 前面的C:\iquant_gx 是你的iquant安装路径。
而且底下也有很多的现成的代码:
部分代码可以直接用pycharm就可以打开,没有加密的,但也有一些是加密了的。
比如这个自动逆回购是现成的:
对,这里就有,很多人还到处找人写;
# encoding:gbk
import logging
from datetime import datetime, timedelta
from decimal import Decimal as D
from decimal import InvalidOperation
logging.basicConfig(level=logging.INFO)
# 挂单失败后的等待时长,以秒计
TIMEOUT_ON_FAIL_SEC = 30
# 等待account_callback的时长
# RUN_TIME_DELAY = 30
# how is this not defined in package??
MORNING_START = datetime.strptime(datetime.now().strftime('%Y%m%d') + '093000', '%Y%m%d%H%M%S')
MORNING_END = datetime.strptime(datetime.now().strftime('%Y%m%d') + '113000', '%Y%m%d%H%M%S')
NOON_START = datetime.strptime(datetime.now().strftime('%Y%m%d') + '130000', '%Y%m%d%H%M%S')
NOON_END = datetime.strptime(datetime.now().strftime('%Y%m%d') + '153000', '%Y%m%d%H%M%S')
# for SH only
TRANS_COST_1D = D('5e-6')
TRANS_COST_LONG = D('1.5e-7')
TRANS_COST_MAX = 100
# ORDER LIMITS
SH_UPPER = 1e7
SH_LOWER = 1e5
SZ_UPPER = 1e8
SZ_LOWER = 1e3
# ASSET NAME DICT
SH_REV_REPO = {'上交所1天': '204001.SH', '上交所2天': '204002.SH', '上交所3天': '204003.SH',
'上交所4天': '204004.SH', '上交所7天': '204007.SH', '上交所14天': '204014.SH',
'上交所28天': '204028.SH', '上交所91天': '204091.SH', '上交所182天': '204182.SH',
}
SZ_REV_REPO = {'深交所3天': '131800.SZ', '深交所7天': '131801.SZ', '深交所14天': '131802.SZ',
'深交所28天': '131803.SZ', '深交所91天': '131805.SZ', '深交所182天': '131806.SZ',
'深交所4天': '131809.SZ', '深交所1天': '131810.SZ', '深交所2天': '131811.SZ',
}
def init(ContextInfo):
ContextInfo.accID = account
ContextInfo.set_account(ContextInfo.accID)
ContextInfo.use_all_cap = False if ALL_CAP == '否' else True
# global trading control, set to False if detected error on user's side
# stop() does not halt strat
ContextInfo.order_control = False
if not ContextInfo.use_all_cap:
try:
ContextInfo.dollar_vol = float(D(DOLLAR_VOL))
except InvalidOperation:
ContextInfo.order_control = True
raise ValueError('读取资金量失败')
else:
if DOLLAR_VOL != '':
logging.warning('已设定使用全部账户资金,忽略所设置资金量')
try:
ContextInfo.start_time = datetime.strptime(datetime.now().strftime('%Y%m%d') + str(START_TIME), '%Y%m%d%H%M%S')
ContextInfo.asset_name = SH_REV_REPO[ASSET_NAME]
except KeyError:
ContextInfo.asset_name = SZ_REV_REPO[ASSET_NAME]
except ValueError as error:
if 'unconverted data remains' in str(error):
ContextInfo.order_control = True
raise ValueError('读取挂单时间失败')
if not (MORNING_END > ContextInfo.start_time >= MORNING_START) \
and not (NOON_END > ContextInfo.start_time >= NOON_START):
ContextInfo.order_control = True
raise ValueError('挂单时间不在可交易时间内')
ContextInfo.can_order = False
ContextInfo.order_done = False
if not ContextInfo.order_control:
ContextInfo.run_time("place_order", "{0}nSecond".format(TIMEOUT_ON_FAIL_SEC),
ContextInfo.start_time.strftime('%Y-%m-%d %H:%M:%S'), 'SH')
def account_callback(ContextInfo, accountInfo):
if not ContextInfo.can_order:
ContextInfo.can_order = True
if ContextInfo.use_all_cap:
ContextInfo.dollar_vol = accountInfo.m_dAvailable
else:
if ContextInfo.dollar_vol > accountInfo.m_dAvailable:
ContextInfo.order_control = True
raise ValueError('下单额度大于账户可用资金')
# check if order satisfies lower limit for each exchange
if ('SH' in ContextInfo.asset_name and ContextInfo.dollar_vol < SH_LOWER) \
or ('SZ' in ContextInfo.asset_name and ContextInfo.dollar_vol < SZ_LOWER):
ContextInfo.order_control = True
raise ValueError('下单额度低于交易所最低限额')
# checks dollar_vol and rounds the total amount
if 'SH' in ContextInfo.asset_name and ContextInfo.dollar_vol % SH_LOWER != 0:
ContextInfo.dollar_vol = (ContextInfo.dollar_vol // SH_LOWER) * SH_LOWER
logging.warning('下单额度已规整为:{0}'.format(ContextInfo.dollar_vol))
elif 'SZ' in ContextInfo.asset_name and ContextInfo.dollar_vol % SZ_LOWER != 0:
ContextInfo.dollar_vol = (ContextInfo.dollar_vol // SZ_LOWER) * SZ_LOWER
logging.warning('下单额度已规整为:{0}'.format(ContextInfo.dollar_vol))
'''
if 'SH' in ContextInfo.asset_name:
num_batch_order = int(ContextInfo.dollar_vol // SH_UPPER)
remain_order = ContextInfo.dollar_vol - num_batch_order * SH_UPPER
if ContextInfo.asset_name == '204001.SH':
transaction_cost = TRANS_COST_MAX * num_batch_order + remain_order * TRANS_COST_1D
else:
transaction_cost = TRANS_COST_MAX * num_batch_order + remain_order * TRANS_COST_LONG
if transaction_cost + ContextInfo.dollar_vol > accountInfo.m_dAvailable:
ContextInfo.order_control = True
raise ValueError('可用资金不足以垫付交易金额与手续费')
'''
ContextInfo.remain_vol = ContextInfo.dollar_vol
def handlebar(ContextInfo):
return
def place_order(ContextInfo):
if not ContextInfo.can_order or ContextInfo.order_control:
return
if not ContextInfo.order_done:
if 'SH' in ContextInfo.asset_name:
num_batch_order = int(ContextInfo.remain_vol // SH_UPPER)
remain_order = ContextInfo.remain_vol - num_batch_order * SH_UPPER
for _ in range(num_batch_order):
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(SH_UPPER, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, SH_UPPER, order_remark, 1,
order_remark, ContextInfo)
else:
num_batch_order = int(ContextInfo.remain_vol // SZ_UPPER)
remain_order = ContextInfo.remain_vol - num_batch_order * SZ_UPPER
for _ in range(num_batch_order):
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(SZ_UPPER, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, SZ_UPPER, order_remark, 1,
order_remark, ContextInfo)
order_remark = '国债逆回购:尝试报单{0}元 {1}'.format(remain_order, ContextInfo.asset_name)
passorder(24, 1102, ContextInfo.accID, ContextInfo.asset_name, 5, -1, remain_order, order_remark, 1,
order_remark, ContextInfo)
ContextInfo.remain_vol = 0
ContextInfo.order_done = True
def order_callback(ContextInfo, orderInfo):
curr_remark = orderInfo.m_strRemark
curr_status = orderInfo.m_nOrderStatus
if '国债逆回购' in curr_remark and ContextInfo.asset_name in curr_remark and curr_status == 57:
ContextInfo.order_done = False
# up the leftover dollar vol by failed amount
# logging.info('reported trade amount:{0}, reported_trade_volume:{1}'.format(orderInfo.m_dTradeAmount, orderInfo.m_nVolumeTotal))
# 单张100元
ContextInfo.remain_vol += orderInfo.m_nVolumeTotal * 100
if '交易时间不合法' in orderInfo.m_strCancelInfo:
ContextInfo.order_control = True
raise ValueError('国债逆回购:未能在交易时间内完成下单,停止报单。余量{0}元未报'.format(ContextInfo.remain_vol))
logging.warning('国债逆回购:报单废单,原因:\"{0}\",尝试重报'.format(orderInfo.m_strCancelInfo))
elif '国债逆回购' in curr_remark and ContextInfo.asset_name in curr_remark and curr_status == 50:
logging.info('国债逆回购:报单{0}元成功'.format(orderInfo.m_nVolumeTotal * 100))
return
待续,不定期更新
公众号:

星球:

ptrade获取分时成交数据-LEVEL2数据逐笔数据
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 4002 次浏览 • 2023-02-04 12:27
中提供了获取分时成交的数据。
使用场景
该函数在交易模块可用
接口说明
该接口用于获取当日分时成交行情数据。
注意事项:
1、沪深市场都有分时成交数据;
2、分时成交数据需开通level2行情才有数据推送,否则无数据返回;
返回字段:
返回
返回一个OrderedDict对象,包含每只代码的分时成交行情数据。(OrderedDict([(),()...]))
返回结果字段介绍:
time_stamp: 时间戳毫秒级(str:numpy.int64);
hq_px: 价格(str:numpy.float64);
hq_px64: 价格(str:numpy.int64)(行情暂不支持,返回均为0);
business_amount: 成交数量(str:numpy.int64);
business_balance: 成交金额(str:numpy.int64);
business_count: 成交笔数(str:numpy.int64);
business_direction: 成交方向(0:卖,1:买,2:平盘)(str:numpy.int64);
amount: 持仓量(str:numpy.int64)(行情暂不支持,返回均为0);
start_index: 分笔关联的逐笔开始序号(str:numpy.int64)(行情暂不支持,返回均为0);
end_index: 分笔关联的逐笔结束序号(str:numpy.int64)(行情暂不支持,返回均为0);
示例代码:
def initialize(context):
g.security = '000001.SZ'
set_universe(g.security)
def handle_data(context, data):
#获取000001.SZ的分时成交数据
direction_data = get_tick_direction(g.security)
log.info(direction_data)
#获取指定股票列表分时成交数据
direction_data = get_tick_direction(['000002.SZ','000032.SZ'])
log.info(direction_data)
#获取成交量
business_amount = direction_data['000002.SZ']['business_amount']
log.info('分时成交的成交量为:%s' % business_amount)
不过在handle_bar中或者tick_data中,实际行情推送最快也要3s,所以拿到的level2的是切片数据,即使拿到很多数据,可是行情获取时间间隔还是3s, 无法做到和qmt那样的level2逐笔订阅驱动。还有level2数据需要收费。ptrade目前常用的几个券商都不支持level2的。
目前有万一免五的qmt ptrade量化交易接口的券商吗?
查看全部
中提供了获取分时成交的数据。
使用场景
该函数在交易模块可用
接口说明
该接口用于获取当日分时成交行情数据。
注意事项:
1、沪深市场都有分时成交数据;
2、分时成交数据需开通level2行情才有数据推送,否则无数据返回;
返回字段:
返回
返回一个OrderedDict对象,包含每只代码的分时成交行情数据。(OrderedDict([(),()...]))
返回结果字段介绍:
time_stamp: 时间戳毫秒级(str:numpy.int64);
hq_px: 价格(str:numpy.float64);
hq_px64: 价格(str:numpy.int64)(行情暂不支持,返回均为0);
business_amount: 成交数量(str:numpy.int64);
business_balance: 成交金额(str:numpy.int64);
business_count: 成交笔数(str:numpy.int64);
business_direction: 成交方向(0:卖,1:买,2:平盘)(str:numpy.int64);
amount: 持仓量(str:numpy.int64)(行情暂不支持,返回均为0);
start_index: 分笔关联的逐笔开始序号(str:numpy.int64)(行情暂不支持,返回均为0);
end_index: 分笔关联的逐笔结束序号(str:numpy.int64)(行情暂不支持,返回均为0);
示例代码:
def initialize(context):
g.security = '000001.SZ'
set_universe(g.security)
def handle_data(context, data):
#获取000001.SZ的分时成交数据
direction_data = get_tick_direction(g.security)
log.info(direction_data)
#获取指定股票列表分时成交数据
direction_data = get_tick_direction(['000002.SZ','000032.SZ'])
log.info(direction_data)
#获取成交量
business_amount = direction_data['000002.SZ']['business_amount']
log.info('分时成交的成交量为:%s' % business_amount)
不过在handle_bar中或者tick_data中,实际行情推送最快也要3s,所以拿到的level2的是切片数据,即使拿到很多数据,可是行情获取时间间隔还是3s, 无法做到和qmt那样的level2逐笔订阅驱动。还有level2数据需要收费。ptrade目前常用的几个券商都不支持level2的。
目前有万一免五的qmt ptrade量化交易接口的券商吗?

国信可以使用miniqmt吗?
QMT • 李魔佛 发表了文章 • 0 个评论 • 5682 次浏览 • 2023-01-21 15:52
所以笔者特意去问了下国信的好友兼营业部经理,但他回复说,个人只要申请,就可以开通mini qmt。如果不申请,是无法使用的,无法连接上去。
但因为开通这个是不用门槛的,可能会有部分不懂的或者不愿意的经理会和客户说不支持,或者需要机构这样话语。
具体情况,具体分析。
1. 国信证券iQuant策略交易平台精简版是指国信证券iQuant策略交易平台更专业快速且简洁的版本,满足股票、期货、期权、基金等全品种交易需求。
2. 风险等级:R4
投资期限:0-1年
投资品种:权益类投资品种如股票、混合型基金、偏股型基金、股票型基金等。
3. 平台使用不收取费用。
具体的申请表如下:
不过申请了这个权限后,只能进行拉取数据,并没有交易权限。。交易权限需要机构才能开通。郁闷,看来国信的miniqmt是无法进行交易的了,只能白嫖点数据。
如果需要文字word版本,
可以到公众号后台回复: 国信mini申请
获取word版本。
或者加微信开通指定的营业部的国信qmt(iquant), 也可以帮你开通mini qmt。
查看全部
之前群里有国信的小伙伴说,国信的mini qmt无法使用的。
所以笔者特意去问了下国信的好友兼营业部经理,但他回复说,个人只要申请,就可以开通mini qmt。如果不申请,是无法使用的,无法连接上去。
但因为开通这个是不用门槛的,可能会有部分不懂的或者不愿意的经理会和客户说不支持,或者需要机构这样话语。
具体情况,具体分析。
1. 国信证券iQuant策略交易平台精简版是指国信证券iQuant策略交易平台更专业快速且简洁的版本,满足股票、期货、期权、基金等全品种交易需求。
2. 风险等级:R4
投资期限:0-1年
投资品种:权益类投资品种如股票、混合型基金、偏股型基金、股票型基金等。
3. 平台使用不收取费用。
具体的申请表如下:
不过申请了这个权限后,只能进行拉取数据,并没有交易权限。。交易权限需要机构才能开通。郁闷,看来国信的miniqmt是无法进行交易的了,只能白嫖点数据。
如果需要文字word版本,
可以到公众号后台回复: 国信mini申请
获取word版本。

或者加微信开通指定的营业部的国信qmt(iquant), 也可以帮你开通mini qmt。

Ptrade获取可转债强赎数据
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2619 次浏览 • 2022-12-21 15:50
所以在可转债的策略里面,把强赎的转债排除掉,是一个不错的因子。
但内置的ptrade接口数据并无提供任何转债相关的数据。
不过笔者这里提供了一个自研的数据接口。
http://ptradeapi.com/#%E5%8F%AF%E8%BD%AC%E5%80%BA%E5%BC%BA%E8%B5%8E%E4%B8%8E%E6%95%B0%E6%97%A5%E5%AD%90
方便在ptrade里面调用。
查看全部
所以在可转债的策略里面,把强赎的转债排除掉,是一个不错的因子。
但内置的ptrade接口数据并无提供任何转债相关的数据。
不过笔者这里提供了一个自研的数据接口。
http://ptradeapi.com/#%E5%8F%AF%E8%BD%AC%E5%80%BA%E5%BC%BA%E8%B5%8E%E4%B8%8E%E6%95%B0%E6%97%A5%E5%AD%90
方便在ptrade里面调用。

Ptrade QMT 哪家费率最便宜,门槛最低?
券商万一免五 • 绫波丽 发表了文章 • 0 个评论 • 5374 次浏览 • 2022-11-27 19:09
笔者只会推荐合适的券商和量化接口给你,而不会推荐坑爹的券商给你。
如果你不信任,绕路即可,莫浪费大家时间。或者你有好的资源或者券商,你也可以推荐给我,可以给你发红包,奖励你提供有用的情报信息。
目前支持ptrade,qmt可以股票可以免五(0.1元起步)的券商,只有国盛,需要的可以找我开。 但是有入金门槛,ptrade门槛30w, qmt 的门槛50w。 国盛的ptrade可以链接外网。其他家的不行。但国盛的qmt不支持运行在云服务器。
其他家的qmt是支持的云服务器的,但国金的qmt会每天自动退出,需要每次手动点击登录,我也写了一个自动登录的小脚本,开完户的朋友可以拿去用用。
门槛低的国信,适合新手使用,但是没有miniqmt,这个东西也不一定适合你。 真的需要这个功能,在qmt里面可以写一段代码,让它把下单接口变成http指令,把下单功能独立出来,也是可以的。不过这个属于进阶功能。 需要的也可以把代码给你。
笔者用过大部分券商的ptrade qmt,所以个人的指导与推荐还是很有指导意见的。 写过的策略也大部分人(99%)多, 平台好坏,坑的多寡,哪里有雷,都已经摸清摸楚。 可以大大节省你们的时间。 当然你也可以忽略,自己去折腾折腾。选ptrade 还是qmt,然后哪个券商,什么费率。
需要开通ptrade - qmt 低门槛 低费率 的 或者可以提供更低费用的资源的可以加微信:
ptrade 接口文档: http://ptradeapi.com
查看全部
笔者只会推荐合适的券商和量化接口给你,而不会推荐坑爹的券商给你。
如果你不信任,绕路即可,莫浪费大家时间。或者你有好的资源或者券商,你也可以推荐给我,可以给你发红包,奖励你提供有用的情报信息。
目前支持ptrade,qmt可以股票可以免五(0.1元起步)的券商,只有国盛,需要的可以找我开。 但是有入金门槛,ptrade门槛30w, qmt 的门槛50w。 国盛的ptrade可以链接外网。其他家的不行。但国盛的qmt不支持运行在云服务器。
其他家的qmt是支持的云服务器的,但国金的qmt会每天自动退出,需要每次手动点击登录,我也写了一个自动登录的小脚本,开完户的朋友可以拿去用用。
门槛低的国信,适合新手使用,但是没有miniqmt,这个东西也不一定适合你。 真的需要这个功能,在qmt里面可以写一段代码,让它把下单接口变成http指令,把下单功能独立出来,也是可以的。不过这个属于进阶功能。 需要的也可以把代码给你。
笔者用过大部分券商的ptrade qmt,所以个人的指导与推荐还是很有指导意见的。 写过的策略也大部分人(99%)多, 平台好坏,坑的多寡,哪里有雷,都已经摸清摸楚。 可以大大节省你们的时间。 当然你也可以忽略,自己去折腾折腾。选ptrade 还是qmt,然后哪个券商,什么费率。
需要开通ptrade - qmt 低门槛 低费率 的 或者可以提供更低费用的资源的可以加微信:

ptrade 接口文档: http://ptradeapi.com
不同券商的ptrade的异同
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 3697 次浏览 • 2022-06-17 16:36
1. 湘财无法访问外网,国盛的可以
2.
get_cb_list 获取可转债列表 的 国盛没有
get_history 获取历史数据函数
get_history(5, frequency='1d', field='close', security_list=['123084.SZ'], fq=None, include=False, fill='nan')国盛是没有fill参数的。
持续更新。。。待续
Ptrade开户联系:
查看全部
ptrade qmt量化平台收费吗?
券商万一免五 • 李魔佛 回复了问题 • 2 人关注 • 1 个回复 • 5431 次浏览 • 2022-07-13 17:04
开通Ptrade Python量化接口 国金证券/国盛证券
股票 • 绫波丽 发表了文章 • 0 个评论 • 22671 次浏览 • 2021-07-06 08:40
而退而求其次使用按键精灵,模拟点击交易软件进行点击下单,非常不稳定,无法判断下单后是否成交,也无法实时获取行情数据。如果使用tushare或者新浪接口数据,扫描一次全市场的行情用时很久且不稳定,等扫描结束,再下单,此时价格可能已经是几分钟前的了,且此类接口调用次数多是会被封IP的。
笔者使用的是券商提供的量化软件:Ptrade。是恒生电子研发的提供给机构使用的程序化交易软件。提供策略回测,下单API接口,实时行情获取,并且使用的开发语言python,易于上手。
策略回测与实盘交易
研究页面
研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。
研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。
回测策略
实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。
条件满足后下单
可视化量化
同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。
接口文档也非常详细:
一些常见策略代码:
集合竞价追涨停策略def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每天9:23分运行集合竞价处理函数
run_daily(context, aggregate_auction_func, time='9:23')
def aggregate_auction_func(context):
stock = g.security
#最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
#涨停价
up_limit = snapshot[stock]['up_px']
#如果最新价不小于涨停价,买入
if float(price) >= float(up_limit):
order(g.security, 100, limit_price=up_limit)
def handle_data(context, data):
pass
双均线策略def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
pass
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security
#得到十日历史价格
df = get_history(10, '1d', 'close', security, fq=None, include=False)
# 得到五日均线价格
ma5 = round(df['close'][-5:].mean(), 3)
# 得到十日均线价格
ma10 = round(df['close'][-10:].mean(), 3)
# 取得昨天收盘价
price = data[security]['close']
# 得到当前资金余额
cash = context.portfolio.cash
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(security).amount > 0:
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
tick级别均线策略
通俗点就是按照秒级别进行操作。def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每3秒运行一次主函数
run_interval(context, func, seconds=3)
#盘前准备历史数据
def before_trading_start(context, data):
history = get_history(10, '1d', 'close', g.security, fq='pre', include=False)
g.close_array = history['close'].values
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def func(context):
stock = g.security
#获取最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
# 得到五日均线价格
days = 5
ma5 = get_MA_day(stock, days, g.close_array[-4:], price)
# 得到十日均线价格
days = 10
ma10 = get_MA_day(stock, days, g.close_array[-9:], price)
# 得到当前资金余额
cash = context.portfolio.cash
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(stock, cash)
# 记录这次买入
log.info("Buying %s" % (stock))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(stock).amount > 0:
# 全部卖出
order_target(stock, 0)
# 记录这次卖出
log.info("Selling %s" % (stock))
#计算实时均线函数
def get_MA_day(stock,days,close_array,current_price):
close_sum = close_array[-(days-1):].sum()
MA = (current_price + close_sum)/days
return MA
def handle_data(context, data):
pass
macd策略def f_expma(N,m,EXPMA1,price):
a = m/(N+1)
EXPMA2 = a * price + (1 - a)*EXPMA1
return EXPMA2 #2为后一天值
#定义macd函数,输入平滑系数参数、前一日值,输出当日值
def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
DIF2 = EXPMA12_2 - EXPMA26_2
a = m/(N3+1)
DEA2 = a * DIF2 + (1 - a)*DEA1
BAR2=2*(DIF2-DEA2)
return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2
def initialize(context):
global init_price
init_price = None
# 获取沪深300股票
g.security = get_index_stocks('000300.SS')
#g.security = ['600570.SS']
# 设置我们要操作的股票池, 这里我们只操作一支股票
set_universe(g.security)
def handle_data(context, data):
# 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
# 从股票上市至今的所有历史数据,即增加获取的天数
close_price = get_history(2, '1d', field='close', security_list=g.security)
#如果是停牌不进行计算
for security in g.security:
if data[security].is_open >0:
global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
if init_price is None:
init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
EXPMA12_1 = init_price
EXPMA26_1 = init_price
DIF1 = init_price
DEA1 = init_price
# m用于计算平滑系数a=m/(N+1)
m = 2.0
#设定指数平滑基期数
N1 = 12
N2 = 26
N3 = 9
EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
# 取得当前价格
current_price = data[security].price
# 取得当前的现金
cash = context.portfolio.cash
# DIF、DEA均为正,DIF向上突破DEA,买入信号参考
if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
# 计算可以买多少只股票
number_of_shares = int(cash/current_price)
# 购买量大于0时,下单
if number_of_shares > 0:
# 以市单价买入股票,日回测时即是开盘价
order(security, +number_of_shares)
# 记录这次买入
log.info("Buying %s" % (security))
# DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
# 将今日的值赋给全局变量作为下一次前一日的值
DEA1 = DEA2
DIF1 = DIF2
EXPMA12_1 = EXPMA12_2
EXPMA26_1 = EXPMA26_2
软件与交易接口开通条件:
开通该券商后,存入资金指定资金即可开通。开通后股票交易费率万一
本身券商的交易费率为股票万一,可转债沪百万分之五,深十万分之五,基金万0.5,非常厚道。
不太了解量化行业的可以了解下,不少面向机构的量化交易软件的佣金是万2.5的,且开户门槛高,基本是500W以上,比如华泰的matic量化的门槛是1千万元起步。
所以笔者还是很推荐目前该券商的量化交易接口。
需要开通咨询了解的朋友可以扫码联系:
开通券商账户后可以 可以先试用,再考虑是否开通量化接口权限 查看全部
而退而求其次使用按键精灵,模拟点击交易软件进行点击下单,非常不稳定,无法判断下单后是否成交,也无法实时获取行情数据。如果使用tushare或者新浪接口数据,扫描一次全市场的行情用时很久且不稳定,等扫描结束,再下单,此时价格可能已经是几分钟前的了,且此类接口调用次数多是会被封IP的。
笔者使用的是券商提供的量化软件:Ptrade。是恒生电子研发的提供给机构使用的程序化交易软件。提供策略回测,下单API接口,实时行情获取,并且使用的开发语言python,易于上手。
策略回测与实盘交易
研究页面
研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。
研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。
回测策略
实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。
条件满足后下单
可视化量化
同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。
接口文档也非常详细:
一些常见策略代码:
集合竞价追涨停策略
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每天9:23分运行集合竞价处理函数
run_daily(context, aggregate_auction_func, time='9:23')
def aggregate_auction_func(context):
stock = g.security
#最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
#涨停价
up_limit = snapshot[stock]['up_px']
#如果最新价不小于涨停价,买入
if float(price) >= float(up_limit):
order(g.security, 100, limit_price=up_limit)
def handle_data(context, data):
pass
双均线策略
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
pass
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security
#得到十日历史价格
df = get_history(10, '1d', 'close', security, fq=None, include=False)
# 得到五日均线价格
ma5 = round(df['close'][-5:].mean(), 3)
# 得到十日均线价格
ma10 = round(df['close'][-10:].mean(), 3)
# 取得昨天收盘价
price = data[security]['close']
# 得到当前资金余额
cash = context.portfolio.cash
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(security).amount > 0:
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
tick级别均线策略
通俗点就是按照秒级别进行操作。
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每3秒运行一次主函数
run_interval(context, func, seconds=3)
#盘前准备历史数据
def before_trading_start(context, data):
history = get_history(10, '1d', 'close', g.security, fq='pre', include=False)
g.close_array = history['close'].values
#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def func(context):
stock = g.security
#获取最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
# 得到五日均线价格
days = 5
ma5 = get_MA_day(stock, days, g.close_array[-4:], price)
# 得到十日均线价格
days = 10
ma10 = get_MA_day(stock, days, g.close_array[-9:], price)
# 得到当前资金余额
cash = context.portfolio.cash
# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(stock, cash)
# 记录这次买入
log.info("Buying %s" % (stock))
# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(stock).amount > 0:
# 全部卖出
order_target(stock, 0)
# 记录这次卖出
log.info("Selling %s" % (stock))
#计算实时均线函数
def get_MA_day(stock,days,close_array,current_price):
close_sum = close_array[-(days-1):].sum()
MA = (current_price + close_sum)/days
return MA
def handle_data(context, data):
pass
macd策略
def f_expma(N,m,EXPMA1,price):
a = m/(N+1)
EXPMA2 = a * price + (1 - a)*EXPMA1
return EXPMA2 #2为后一天值
#定义macd函数,输入平滑系数参数、前一日值,输出当日值
def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
DIF2 = EXPMA12_2 - EXPMA26_2
a = m/(N3+1)
DEA2 = a * DIF2 + (1 - a)*DEA1
BAR2=2*(DIF2-DEA2)
return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2
def initialize(context):
global init_price
init_price = None
# 获取沪深300股票
g.security = get_index_stocks('000300.SS')
#g.security = ['600570.SS']
# 设置我们要操作的股票池, 这里我们只操作一支股票
set_universe(g.security)
def handle_data(context, data):
# 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
# 从股票上市至今的所有历史数据,即增加获取的天数
close_price = get_history(2, '1d', field='close', security_list=g.security)
#如果是停牌不进行计算
for security in g.security:
if data[security].is_open >0:
global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
if init_price is None:
init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
EXPMA12_1 = init_price
EXPMA26_1 = init_price
DIF1 = init_price
DEA1 = init_price
# m用于计算平滑系数a=m/(N+1)
m = 2.0
#设定指数平滑基期数
N1 = 12
N2 = 26
N3 = 9
EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
# 取得当前价格
current_price = data[security].price
# 取得当前的现金
cash = context.portfolio.cash
# DIF、DEA均为正,DIF向上突破DEA,买入信号参考
if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
# 计算可以买多少只股票
number_of_shares = int(cash/current_price)
# 购买量大于0时,下单
if number_of_shares > 0:
# 以市单价买入股票,日回测时即是开盘价
order(security, +number_of_shares)
# 记录这次买入
log.info("Buying %s" % (security))
# DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
# 将今日的值赋给全局变量作为下一次前一日的值
DEA1 = DEA2
DIF1 = DIF2
EXPMA12_1 = EXPMA12_2
EXPMA26_1 = EXPMA26_2
软件与交易接口开通条件:
开通该券商后,存入资金指定资金即可开通。开通后股票交易费率万一
本身券商的交易费率为股票万一,可转债沪百万分之五,深十万分之五,基金万0.5,非常厚道。
不太了解量化行业的可以了解下,不少面向机构的量化交易软件的佣金是万2.5的,且开户门槛高,基本是500W以上,比如华泰的matic量化的门槛是1千万元起步。
所以笔者还是很推荐目前该券商的量化交易接口。
需要开通咨询了解的朋友可以扫码联系:

开通券商账户后可以 可以先试用,再考虑是否开通量化接口权限
量化交易接口python A股
股票 • 绫波丽 发表了文章 • 0 个评论 • 8702 次浏览 • 2021-07-01 11:22
实际操作也好,几乎没见几个人教你怎么用程序下单,实盘交易。
稍微好点的easytrader使用的是模拟点击交易软件进行点击下单,基本无法判断下单后是否成交,也无法实时获取行情数据。别跟我说用tushare或者新浪这些接口数据,除非你做的是低频交易。
试试扫描一次全市场的行情看看用时多少?等得到满足条件了,再下单,此时价格可能已经在涨停板上封住了。
笔者使用的是券商提供的量化软件:Ptrade。
是恒生电子研发的提供给券商机构使用的程序化交易软件。提供策略回测,自动下单功能,使用的开发语言python。
策略回测与实盘交易
研究页面
研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。
研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。
回测策略
实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。
如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。
实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。
条件满足后下单
可视化量化
同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。
接口文档也非常详细:
一些常见策略代码:
双均线策略 def initialize(context):
2 # 初始化此策略
3 # 设置我们要操作的股票池, 这里我们只操作一支股票
4 g.security = '600570.SS'
5 set_universe(g.security)
6 pass
7
8 #当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
9 def handle_data(context, data):
10 security = g.security
11
12 #得到十日历史价格
13 df = get_history(10, '1d', 'close', security, fq=None, include=False)
14
15 # 得到五日均线价格
16 ma5 = round(df['close'][-5:].mean(), 3)
17
18 # 得到十日均线价格
19 ma10 = round(df['close'][-10:].mean(), 3)
20
21 # 取得昨天收盘价
22 price = data[security]['close']
23
24 # 得到当前资金余额
25 cash = context.portfolio.cash
26
27 # 如果当前有余额,并且五日均线大于十日均线
28 if ma5 > ma10:
29 # 用所有 cash 买入股票
30 order_value(security, cash)
31 # 记录这次买入
32 log.info("Buying %s" % (security))
33
34 # 如果五日均线小于十日均线,并且目前有头寸
35 elif ma5 < ma10 and get_position(security).amount > 0:
36 # 全部卖出
37 order_target(security, 0)
38 # 记录这次卖出
39 log.info("Selling %s" % (security))
macd策略
指数平滑均线函数,以price计算,可以选择收盘、开盘价等价格,N为时间周期,m用于计算平滑系数a=m/(N+1),EXPMA1为前一日值 def f_expma(N,m,EXPMA1,price):
2 a = m/(N+1)
3 EXPMA2 = a * price + (1 - a)*EXPMA1
4 return EXPMA2 #2为后一天值
5
6 #定义macd函数,输入平滑系数参数、前一日值,输出当日值
7 def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
8 EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
9 EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
10 DIF2 = EXPMA12_2 - EXPMA26_2
11 a = m/(N3+1)
12 DEA2 = a * DIF2 + (1 - a)*DEA1
13 BAR2=2*(DIF2-DEA2)
14 return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2
15
16 def initialize(context):
17 global init_price
18 init_price = None
19 # 获取沪深300股票
20 g.security = get_index_stocks('000300.SS')
21 #g.security = ['600570.SS']
22 # 设置我们要操作的股票池, 这里我们只操作一支股票
23 set_universe(g.security)
24
25 def handle_data(context, data):
26 # 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
27 # 从股票上市至今的所有历史数据,即增加获取的天数
28 close_price = get_history(2, '1d', field='close', security_list=g.security)
29 #如果是停牌不进行计算
30 for security in g.security:
31 if data[security].is_open >0:
32 global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
33 if init_price is None:
34 init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
35 EXPMA12_1 = init_price
36 EXPMA26_1 = init_price
37 DIF1 = init_price
38 DEA1 = init_price
39 # m用于计算平滑系数a=m/(N+1)
40 m = 2.0
41 #设定指数平滑基期数
42 N1 = 12
43 N2 = 26
44 N3 = 9
45 EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
46 # 取得当前价格
47 current_price = data[security].price
48 # 取得当前的现金
49 cash = context.portfolio.cash
50 # DIF、DEA均为正,DIF向上突破DEA,买入信号参考
51 if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
52 # 计算可以买多少只股票
53 number_of_shares = int(cash/current_price)
54 # 购买量大于0时,下单
55 if number_of_shares > 0:
56 # 以市单价买入股票,日回测时即是开盘价
57 order(security, +number_of_shares)
58 # 记录这次买入
59 log.info("Buying %s" % (security))
60 # DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
61 elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
62 # 卖出所有股票,使这只股票的最终持有量为0
63 order_target(security, 0)
64 # 记录这次卖出
65 log.info("Selling %s" % (security))
66 # 将今日的值赋给全局变量作为下一次前一日的值
67 DEA1 = DEA2
68 DIF1 = DIF2
69 EXPMA12_1 = EXPMA12_2
70 EXPMA26_1 = EXPMA26_2
同时也支持可转债T+0交易,笔者平时也主要是进行的可转债的交易。
软件与交易接口开通条件,
开通改券商后,存入资金50W放2周即可开通,开通后可取出。
本身券商的交易费率为股票万一免五,可转债百万分之二,非常厚道,因为不少面向机构的量化交易软件的佣金是万2.5的,笔者之前在国金渠道开的就是,坑的一比。所以笔者还是很推荐目前该券商的量化交易接口。
需要可以关注公众号获取开通链接: 查看全部
实际操作也好,几乎没见几个人教你怎么用程序下单,实盘交易。
稍微好点的easytrader使用的是模拟点击交易软件进行点击下单,基本无法判断下单后是否成交,也无法实时获取行情数据。别跟我说用tushare或者新浪这些接口数据,除非你做的是低频交易。
试试扫描一次全市场的行情看看用时多少?等得到满足条件了,再下单,此时价格可能已经在涨停板上封住了。
笔者使用的是券商提供的量化软件:Ptrade。
是恒生电子研发的提供给券商机构使用的程序化交易软件。提供策略回测,自动下单功能,使用的开发语言python。
策略回测与实盘交易
研究页面
研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。
研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。
回测策略
实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。
如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。
实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。
条件满足后下单
可视化量化
同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。
接口文档也非常详细:
一些常见策略代码:
双均线策略
def initialize(context):
2 # 初始化此策略
3 # 设置我们要操作的股票池, 这里我们只操作一支股票
4 g.security = '600570.SS'
5 set_universe(g.security)
6 pass
7
8 #当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
9 def handle_data(context, data):
10 security = g.security
11
12 #得到十日历史价格
13 df = get_history(10, '1d', 'close', security, fq=None, include=False)
14
15 # 得到五日均线价格
16 ma5 = round(df['close'][-5:].mean(), 3)
17
18 # 得到十日均线价格
19 ma10 = round(df['close'][-10:].mean(), 3)
20
21 # 取得昨天收盘价
22 price = data[security]['close']
23
24 # 得到当前资金余额
25 cash = context.portfolio.cash
26
27 # 如果当前有余额,并且五日均线大于十日均线
28 if ma5 > ma10:
29 # 用所有 cash 买入股票
30 order_value(security, cash)
31 # 记录这次买入
32 log.info("Buying %s" % (security))
33
34 # 如果五日均线小于十日均线,并且目前有头寸
35 elif ma5 < ma10 and get_position(security).amount > 0:
36 # 全部卖出
37 order_target(security, 0)
38 # 记录这次卖出
39 log.info("Selling %s" % (security))
macd策略
指数平滑均线函数,以price计算,可以选择收盘、开盘价等价格,N为时间周期,m用于计算平滑系数a=m/(N+1),EXPMA1为前一日值
def f_expma(N,m,EXPMA1,price):
2 a = m/(N+1)
3 EXPMA2 = a * price + (1 - a)*EXPMA1
4 return EXPMA2 #2为后一天值
5
6 #定义macd函数,输入平滑系数参数、前一日值,输出当日值
7 def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
8 EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
9 EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
10 DIF2 = EXPMA12_2 - EXPMA26_2
11 a = m/(N3+1)
12 DEA2 = a * DIF2 + (1 - a)*DEA1
13 BAR2=2*(DIF2-DEA2)
14 return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2
15
16 def initialize(context):
17 global init_price
18 init_price = None
19 # 获取沪深300股票
20 g.security = get_index_stocks('000300.SS')
21 #g.security = ['600570.SS']
22 # 设置我们要操作的股票池, 这里我们只操作一支股票
23 set_universe(g.security)
24
25 def handle_data(context, data):
26 # 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
27 # 从股票上市至今的所有历史数据,即增加获取的天数
28 close_price = get_history(2, '1d', field='close', security_list=g.security)
29 #如果是停牌不进行计算
30 for security in g.security:
31 if data[security].is_open >0:
32 global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
33 if init_price is None:
34 init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
35 EXPMA12_1 = init_price
36 EXPMA26_1 = init_price
37 DIF1 = init_price
38 DEA1 = init_price
39 # m用于计算平滑系数a=m/(N+1)
40 m = 2.0
41 #设定指数平滑基期数
42 N1 = 12
43 N2 = 26
44 N3 = 9
45 EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
46 # 取得当前价格
47 current_price = data[security].price
48 # 取得当前的现金
49 cash = context.portfolio.cash
50 # DIF、DEA均为正,DIF向上突破DEA,买入信号参考
51 if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
52 # 计算可以买多少只股票
53 number_of_shares = int(cash/current_price)
54 # 购买量大于0时,下单
55 if number_of_shares > 0:
56 # 以市单价买入股票,日回测时即是开盘价
57 order(security, +number_of_shares)
58 # 记录这次买入
59 log.info("Buying %s" % (security))
60 # DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
61 elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
62 # 卖出所有股票,使这只股票的最终持有量为0
63 order_target(security, 0)
64 # 记录这次卖出
65 log.info("Selling %s" % (security))
66 # 将今日的值赋给全局变量作为下一次前一日的值
67 DEA1 = DEA2
68 DIF1 = DIF2
69 EXPMA12_1 = EXPMA12_2
70 EXPMA26_1 = EXPMA26_2
同时也支持可转债T+0交易,笔者平时也主要是进行的可转债的交易。
软件与交易接口开通条件,
开通改券商后,存入资金50W放2周即可开通,开通后可取出。
本身券商的交易费率为股票万一免五,可转债百万分之二,非常厚道,因为不少面向机构的量化交易软件的佣金是万2.5的,笔者之前在国金渠道开的就是,坑的一比。所以笔者还是很推荐目前该券商的量化交易接口。
需要可以关注公众号获取开通链接:

python判断可转债是否强赎
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 3099 次浏览 • 2021-04-02 13:41
更新:
制作好了一个接口,用户可以直接调用。
数据来源与集思录。
获取 排除满足强赎天数剩余N天的可转债,排除强赎可转债。
比如:DAY=4 ,那么假设强赎满足天数为15天,那么返回市场上强赎强赎倒数天数大于4天的可转债,即返回小于或者等于11天以下的转债。把满足条件还差4天的转债排除掉了,当然,已经公告强赎的也会被排除。
import requests
URL = 'http://11.11.11.11/api/redeem/'
# DAY 强赎倒数剩余天数小于 DAY (4)天, 已经公告强赎的也是被排除的
DAY = 4
SIGN = '私信星主获取' # sign和以前一致
data = {'day': DAY,
'sign': SIGN}
r = requests.post(URL, data=data)
print(r.json())
具体用户可以关注知识星球: 查看全部
更新:
制作好了一个接口,用户可以直接调用。
数据来源与集思录。
获取 排除满足强赎天数剩余N天的可转债,排除强赎可转债。
比如:DAY=4 ,那么假设强赎满足天数为15天,那么返回市场上强赎强赎倒数天数大于4天的可转债,即返回小于或者等于11天以下的转债。把满足条件还差4天的转债排除掉了,当然,已经公告强赎的也会被排除。
import requests
URL = 'http://11.11.11.11/api/redeem/'
# DAY 强赎倒数剩余天数小于 DAY (4)天, 已经公告强赎的也是被排除的
DAY = 4
SIGN = '私信星主获取' # sign和以前一致
data = {'day': DAY,
'sign': SIGN}
r = requests.post(URL, data=data)
print(r.json())
具体用户可以关注知识星球:

PTrade使用教程 新手入门
股票 • 李魔佛 发表了文章 • 0 个评论 • 14854 次浏览 • 2021-03-18 08:55
记录一下曾经的入门经验与使用心得:
好像PTrade有几个版本,本人使用的界面如下,基于python写交易策略和回测:
1. 仿真系统的回测可以在交易时间运行,交易系统的回测无法在交易时间运行回测。
2. 在研究板块中,API函数带有研究字样的,可以直接使用,不需要import 导入任何库。比如:#获取当日的股票池
g.stock_list = get_Ashares(g.current_date)可以自己使用。
而get_history(70, '1d', ['close','volume'], g.stock_list, fq='dypre', include=False)
没有带研究字样的,是无法直接在研究板块使用,只能在回测或者实盘使用。
3. 内置的python版本是:
'3.5.1 (default, Nov 1 2016, 01:53:03) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]'
也就是无法使用fstring的方式格式化字符串
name='jack'
a=f'{name}'
4. log.debug log.error 等调试标记符不会有任何输出,bug!
只能使用log.info 或者print输出,还害我调试了半天,以为程序哪里的问题,导致我的输出不显示。
PTrade新手入门教程 二
需要开通Ptrade的朋友,可以扫描二维码开户,并可开通PTrade交易功能。
股票费率万分之一,转债十万分之二。
非诚勿扰。
原创文章,转载请注明出处
http://30daydo.com/article/44151
查看全部
记录一下曾经的入门经验与使用心得:
好像PTrade有几个版本,本人使用的界面如下,基于python写交易策略和回测:
1. 仿真系统的回测可以在交易时间运行,交易系统的回测无法在交易时间运行回测。
2. 在研究板块中,API函数带有研究字样的,可以直接使用,不需要import 导入任何库。比如:
#获取当日的股票池可以自己使用。
g.stock_list = get_Ashares(g.current_date)
而
get_history(70, '1d', ['close','volume'], g.stock_list, fq='dypre', include=False)
没有带研究字样的,是无法直接在研究板块使用,只能在回测或者实盘使用。
3. 内置的python版本是:
'3.5.1 (default, Nov 1 2016, 01:53:03) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]'
也就是无法使用fstring的方式格式化字符串
name='jack'
a=f'{name}'
4. log.debug log.error 等调试标记符不会有任何输出,bug!
只能使用log.info 或者print输出,还害我调试了半天,以为程序哪里的问题,导致我的输出不显示。
PTrade新手入门教程 二
需要开通Ptrade的朋友,可以扫描二维码开户,并可开通PTrade交易功能。
股票费率万分之一,转债十万分之二。
非诚勿扰。

原创文章,转载请注明出处
http://30daydo.com/article/44151
a股券商开户 万1免五 没有最低消费
券商万一免五 • 李魔佛 发表了文章 • 0 个评论 • 13825 次浏览 • 2021-03-07 17:51
不过之前还找到一家万一免五的,没有最低费率,用多少算多少,比如买了1000元股票,那么费率只有1000*万分之一,等于1分钱,略等于不用钱哈。
优势杠杆的。
需要的点击下面链接即可开户: 注意:当前默认的免五已经取消了,需要开通量化交易权限后可以进行免五操作。
开通ptrade和qmt量化交易接口的条件,入金30万,过3天左右可以开通,开通后可以免五!
交割单:
心动不,赶紧心动吧。
该券商也支持同花顺客户端登录,做量化的使用easytrader也可以友好支持。
如果有疑问,可以扫码咨询。备注:开户
查看全部
可转债如何配债
股票 • 李魔佛 发表了文章 • 0 个评论 • 13407 次浏览 • 2019-03-29 16:24
1、如果你在登记日也就是12月11日收盘时还持有一定数量歌尔声学正股的话,那么你在配债日也就是12月12日就会看到账户里有相应数量的歌尔配债。注意这里的单位是张,如图,
由于我只有800股歌尔声学,因此获得了13张配债,1张对应100元,这时双击它,左侧出现了卖出菜单,价格和配债代码都自动填好了,输入13张或者点击全部,然后点“卖出”。(需要注意的是:有些券商这里是买入。)
2、不管是卖出还是买入,然后检查下委托情况和扣款情况,如下图:
可以看到我已经被扣款1300元,这样就算成功完成了这次的13张配债.
可转债低佣金开户,沪市转债费率百分之二,全市场最低。
有兴趣的朋友可以扫描开户:
查看全部
1、如果你在登记日也就是12月11日收盘时还持有一定数量歌尔声学正股的话,那么你在配债日也就是12月12日就会看到账户里有相应数量的歌尔配债。注意这里的单位是张,如图,
由于我只有800股歌尔声学,因此获得了13张配债,1张对应100元,这时双击它,左侧出现了卖出菜单,价格和配债代码都自动填好了,输入13张或者点击全部,然后点“卖出”。(需要注意的是:有些券商这里是买入。)
2、不管是卖出还是买入,然后检查下委托情况和扣款情况,如下图:
可以看到我已经被扣款1300元,这样就算成功完成了这次的13张配债.
可转债低佣金开户,沪市转债费率百分之二,全市场最低。
有兴趣的朋友可以扫描开户:

可转债价格分布堆叠图 绘制 可视化 python+pyecharts
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 8375 次浏览 • 2019-01-30 10:59
即使你有很多数据,可是,你无法直观地看到数据的总体趋势。使用可视化的绘图,可以帮助我们看到数据背后看不到的数据。 比如我已经有每一个可转债的价格,评级。数据如下:
点击查看大图
如果我用下面的图形就可以看出规律:
点击查看大图
横坐标是价格,纵坐标是落在该价格的可转债数量,不同颜色代表不同评级的可转债。
可以看到大部分AA-评级(浅橙色)的可转债价格都在100元以下,而AA(浅蓝色)的可转债价格分布较为平均,从90到110都有。而AA+和AAA的一般都在100以上。
那么如何使用代码实现呢?from setting import get_mysql_conn,get_engine
import pandas as pd
import pymongo
from pyecharts import Geo,Style,Map
engine = get_engine('db_stock',local='local')
# 堆叠图
from pyecharts import Bar
df = pd.read_sql('tb_bond_jisilu',con=engine)
result ={}
for name,grades in df.groupby('评级'):
# print(name,grades[['可转债名称','可转债价格']])
for each in grades['可转债价格']:
result.setdefault(name,)
result[name].append(each)
# 确定价格的范围
value = [str(i) for i in range(85,140)]
ret = [0]*len(value)
ret1 = dict(zip(value,ret))
ret_A_add = ret1.copy()
for item in result['A+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
ret_A_add[k]+=1
retAA_ = ret1.copy()
for item in result['']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_[k]+=1
retAA = ret1.copy()
for item in result['AA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA[k]+=1
retAA_add = ret1.copy()
for item in result['AA+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_add[k]+=1
retAAA = ret1.copy()
for item in result['AAA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAAA[k]+=1
bar = Bar('可转债价格分布')
bar.add('A+',value,list(ret_A_add.values()),is_stack=True,yaxis_max=11)
bar.add('',value,list(retAA_.values()),is_stack=True,yaxis_max=11)
bar.add('AA',value,list(retAA.values()),is_stack=True,yaxis_max=11)
bar.add('AA+',value,list(retAA_add.values()),is_stack=True,yaxis_max=11)
bar.add('AAA',value,list(retAAA.values()),is_stack=True,yaxis_max=11)
如果没有安装pyecharts,需要用pip安装即可。
原创文章
转载请注明出处:
http://30daydo.com/article/400
查看全部
即使你有很多数据,可是,你无法直观地看到数据的总体趋势。使用可视化的绘图,可以帮助我们看到数据背后看不到的数据。 比如我已经有每一个可转债的价格,评级。数据如下:
点击查看大图
如果我用下面的图形就可以看出规律:
点击查看大图
横坐标是价格,纵坐标是落在该价格的可转债数量,不同颜色代表不同评级的可转债。
可以看到大部分AA-评级(浅橙色)的可转债价格都在100元以下,而AA(浅蓝色)的可转债价格分布较为平均,从90到110都有。而AA+和AAA的一般都在100以上。
那么如何使用代码实现呢?
from setting import get_mysql_conn,get_engine
import pandas as pd
import pymongo
from pyecharts import Geo,Style,Map
engine = get_engine('db_stock',local='local')
# 堆叠图
from pyecharts import Bar
df = pd.read_sql('tb_bond_jisilu',con=engine)
result ={}
for name,grades in df.groupby('评级'):
# print(name,grades[['可转债名称','可转债价格']])
for each in grades['可转债价格']:
result.setdefault(name,)
result[name].append(each)
# 确定价格的范围
value = [str(i) for i in range(85,140)]
ret = [0]*len(value)
ret1 = dict(zip(value,ret))
ret_A_add = ret1.copy()
for item in result['A+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
ret_A_add[k]+=1
retAA_ = ret1.copy()
for item in result['']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_[k]+=1
retAA = ret1.copy()
for item in result['AA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA[k]+=1
retAA_add = ret1.copy()
for item in result['AA+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_add[k]+=1
retAAA = ret1.copy()
for item in result['AAA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAAA[k]+=1
bar = Bar('可转债价格分布')
bar.add('A+',value,list(ret_A_add.values()),is_stack=True,yaxis_max=11)
bar.add('',value,list(retAA_.values()),is_stack=True,yaxis_max=11)
bar.add('AA',value,list(retAA.values()),is_stack=True,yaxis_max=11)
bar.add('AA+',value,list(retAA_add.values()),is_stack=True,yaxis_max=11)
bar.add('AAA',value,list(retAAA.values()),is_stack=True,yaxis_max=11)
如果没有安装pyecharts,需要用pip安装即可。
原创文章
转载请注明出处:
http://30daydo.com/article/400
Ptrade的回测程序是在本地运行还是远程服务器? 关闭ptrade后原来运行的回测还可以继续运行吗?
回复量化交易-Ptrade-QMT • 李魔佛 回复了问题 • 1 人关注 • 1 个回复 • 3451 次浏览 • 2022-09-11 21:07
Ptrade获取L2逐笔数据,免费,券商提供
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 105 次浏览 • 2025-05-24 00:22
并且还发现居然可以免费使用L2逐笔数据,分时逐笔委托队列等高频毫秒级的数据
Ptrade接口文档已更新: https://ptradeapi.com
Python 3.5是2015 年发布,Python 3.11是2022 年发布。
性能上来说是有很大的提升,尤其对做回测和高频策略。
如果本身策略很简单或者日线交易的,影响可以忽略不计。
不过这个升级并不是个人可选的,只要你的Ptrade的券商升级了,就只能使用升级后的版本接口格式,旧代码需要做的修改来适配。
性能对比示例(Python 3.5 vs 3.11) By 豆包
以下是部分操作在 Python 3.5 和 3.11 中的性能对比(仅供参考):
并且相应的第三方库版本亦做了升级。
接口变动影响比较大的是pandas在 Python3.11 中,Pandas已不再支持Panel格式。
pandas里的Pannel类型是用于存储三维或以上的矩阵数据。
而升级后就不支持之前的多维行情数据格式。但笔者觉得现在更加统一和简单。
以前不同入参,有时候返回的是dataframe,有时候返回的是panel,比较混乱。
现在统一返回的dataframe. (或者返回dict,可以自己设定)
影响的API有get_history,get_price ,get_individual_transaction ,get_fundamentals等。
比如通过get_history获取的历史日线数据
count = 10
code_list = ['000695.SZ','001367.SZ']
df = get_history(count, frequency='1d', field=['open','close'], security_list=code_list, fq=None, include=False, fill='nan',is_dict=False)
print(type(df))
print(df)
返回的dataframe数据格式如下
<class 'pandas.core.frame.DataFrame'>
code open close
2025-05-15 000695.SZ NaN NaN
2025-05-16 000695.SZ NaN NaN
2025-05-19 000695.SZ 10.34 10.34
2025-05-20 000695.SZ 11.37 11.37
2025-05-21 000695.SZ 12.51 12.51
2025-05-22 000695.SZ 13.76 13.76
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
如果要提取 000695.SZ的数据,只需要
df[df['code']=='000695.SZ']就可以了。
code open close
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
然后dataframe提取收盘价或者开盘价
# 收盘价
df[df['code']=='001367.SZ']['close']
# 开盘价
df[df['code']=='001367.SZ']['open']
再拿收盘价来计算MACD:
# 计算 MACD 值
def MACD(series):
ema_short = series.ewm(span=12).mean()
ema_long = series.ewm(span=26).mean()
macd_series = ema_short - ema_long
return macd_series.iloc[-1]
close_price_series = df[df['code']=='001367.SZ']['close']
macd_val = MACD(close_price_series)
同理get_price,get_individual_transaction ,get_fundamentals与之类似。
并且在get_histroy的入参里面,多了一个is_dict的参数,默认是False,返回的是dataframe数据,如果设置为True,则返回的dict数据。
返回的有序字典(OrderDict)类型数据:(省略了部分类型)
{'001367.SZ', array([(20250509, 29.89, 29.58), (20250512, 29.7 , 29.6 ),
(20250513, 30.11, 29.96), (20250514, 29.96, 29.83),
(20250515, 29.8 , 30.18), (20250516, 30.13, 30.39),
(20250519, 30.46, 30.01), (20250520, 20.25, 20.08),
(20250521, 20.05, 20.7 ), (20250522, 20.98, 22.77)]
}
但感觉这种列表形式下,提取数据反而没有使用dataframe方便和直观,它获取数据时需要用下标提取。
但官网说,返回dict类型数据的速度比DataFrame,Panel类型数据有大幅提升,对速度有要求的,建议使用is_dict=True 读取上述数据格式。
获取L2逐笔数据
L2逐笔委托数据接口函数
get_individual_entrust(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
参数:
data_count: 数据条数,默认为50,最大为200(int);
start_pos: 起始位置,默认为0(int);
虽然一次只能获取200条,但配合start_pos游标可遍历获取全部数据。
示例代码:
获取股票001367.SZ封涨停时的最新的逐笔委托行情。
code_list = ['001367.SZ']
df = get_individual_entrust(code_list)
print(df[['business_time','hq_px','business_amount','order_no']])
输出数据如下,因数据列太多,为了美观只取了其中的4列:
时间戳,委托价格,委托数量,委托编号
因为当前已经是收盘状态,是从14:59:57.020往前取50条数据
business_time(时间戳) hq_px(委托价格) business_amount(委托数量) order_no(委托编号)
20250523145702150 24.60 100 32493957
20250523145714840 24.95 100 32505581
20250523145718430 25.05 1000 32509041
20250523145719840 25.05 1000 32510350
20250523145721750 25.05 400 32512000
20250523145727610 25.05 200 32517007
20250523145730270 25.05 400 32519085
20250523145730330 25.04 1600 32519133
20250523145732330 25.05 2900 32520779
20250523145740780 25.05 500 32527204
20250523145743550 25.05 400 32529290
20250523145743810 25.05 200 32529474
20250523145749460 25.05 4300 32533295
20250523145749910 25.05 1000 32533630
20250523145749960 25.05 300 32533666
# 省略若干.....
20250523145926790 25.05 100 32589496
20250523145927480 25.05 1200 32589844
20250523145936090 25.05 200 32594134
20250523145946600 25.05 300 32601758
20250523145946800 25.05 49100 32601865
20250523145950800 25.05 36800 32607381
20250523145953780 25.05 55200 32611265
20250523145954240 25.05 500 32611713
20250523145956830 25.05 55300 32614479
20250523145957020 25.04 8500 32614683
可以看到上面的有些1秒内有多个的委托单,每单的委托量和委托编号。
逐笔成交
同理,L2的逐笔成交数据函数的用法一样,但返回字段不同,成交的时候有成交方向,可以通过程序计算资金流入或流出。
get_individual_transaction(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
同样用上面的股票例子获取到的数据如下:
business_time hq_px business_amount business_direction
20250523145648440 0.00 2500 1
20250523145648970 0.00 3200 1
20250523145649300 0.00 100 1
20250523145649370 0.00 900 1
20250523145649880 0.00 1800 1
20250523145650150 0.00 800 1
20250523145650360 0.00 200 1
20250523145650400 0.00 500 1
20250523145650420 0.00 100 1
20250523145652050 0.00 800 1
# 省略若干.....
20250523145659220 0.00 24100 1
20250523145659550 0.00 700 1
20250523145659600 0.00 400 1
20250523150000000 25.05 100 0
20250523150000000 25.05 100 0
20250523150000000 25.05 1600 0
20250523150000000 25.05 800 0
20250523150000000 25.05 1730 0
20250523150000000 25.05 670 0
20250523150000000 25.05 2430 0
20250523150000000 25.05 1200 0
20250523150000000 25.05 9270 0
20250523150000000 25.05 148 0
20250523150000000 25.05 100 0
20250523150000000 25.05 200 0
20250523150000000 25.05 1000 0
20250523150000000 25.05 2000 0
business_direction是 成交方向,0是卖出,1是买入,从而判断该笔成交的资金是流入还是流出。
获取分时成交
get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50, is_dict=False)
这个分时成交函数可获取到当前和历史某个毫秒下,该笔总成交量下有多少笔子订单。
比如用上面的涨停股001367.SZ做示例
最后一刻3点的时候,成交了21348股,里面共有14笔成交。
time_stamp hq_px business_amount business_count
20250523143721000 25.05 100 1
20250523143724000 25.05 200 1
20250523143745000 25.05 444 1
20250523143809000 25.05 10000 2
20250523144024000 25.05 100 1
20250523144048000 25.05 1500 1
20250523144106000 25.05 300 1
20250523144112000 25.05 11692 2
20250523144124000 25.05 100 1
20250523144142000 25.05 100 1
20250523144157000 25.05 100 1
20250523144200000 25.05 2360 1
# 省略若干.....
20250523145415000 25.05 1381 1
20250523145421000 25.05 480 1
20250523145439000 25.05 100 1
20250523145451000 25.05 1753 1
20250523145521000 25.05 5384 3
20250523145539000 25.05 3600 2
20250523145557000 25.05 1000 1
20250523145609000 25.05 400 2
20250523145615000 25.05 100 1
20250523150000000 25.05 21348 14
get_gear_price 获取当前时刻的逐笔委托队列
这个函数的功能:获取委买/卖1 至 委买/卖10 10档行情的价格与委托量,但现在发现它可以获取到委托1档下逐笔委托队列。
比如当前的股票是涨停状态,你下了一笔订单有8888股去排板,那么这个函数可以获取当前委1档下的委托队列(前50名),比如下面返回的数据,可以看到你的8888手排在第9个委托队列,还有前后的单子的逐笔数量。
{'bid_grp': {1: [13.68, 15225900, 4905, {1: 33200, 2: 104800, 3: 1000, 4: 100, 5: 51800, 6: 6300, 7: 777800, 8: 184000, 9: 8888, 10: 100, 11: 600, 12: 141800, 13: 100, 14: 141800, 15: 2700,
16: 900, 17: 58600, 18: 2900, 19: 800, 20: 133800, 21: 2800, 22: 900, 23: 2900, 24: 800, 25: 400, 26: 400, 27: 48200, 28: 51800, 29: 99400, 30: 26600, 31: 81800, 32: 493000, 33: 427300, 34: 27700, 35: 2800, 36: 460500,
37: 170200, 38: 166500, 39: 24100, 40: 800, 41: 29300, 42: 500, 43: 500, 44: 500, 45: 2800, 46: 1300, 47: 61700, 48: 27000, 49: 500, 50: 78900}],
2: [13.67, 30200, 32],
3: [13.66, 11100, 16],
4: [13.65, 134400, 11],
5: [13.64, 8500, 7],
6: [13.63, 1000, 3],
7: [13.62, 200, 2],
8: [13.6, 7300, 17],
9: [13.59, 600, 2],
10: [13.58, 10700, 7]},
# 因为是涨停,所以委卖是空的,挂单就立马成交,委托队列是空的
'offer_grp': {1: [0.0, 0, 0, {}],
2: [0.0, 0, 0],
3: [0.0, 0, 0],
4: [0.0, 0, 0],
5: [0.0, 0, 0],
6: [0.0, 0, 0],
7: [0.0, 0, 0],
8: [0.0, 0, 0],
9: [0.0, 0, 0],
10: [0.0, 0, 0]}
}
所以这次ptrade的升级除了python版本的升级,还带来了更多粒度的数据,有利于高频策略的开发。
还有一些新功能的函数就等下次继续更新,记得点赞关注+收藏哦~
待续......
关注公众号: 查看全部
并且还发现居然可以免费使用L2逐笔数据,分时逐笔委托队列等高频毫秒级的数据
Ptrade接口文档已更新: https://ptradeapi.com
Python 3.5是2015 年发布,Python 3.11是2022 年发布。
性能上来说是有很大的提升,尤其对做回测和高频策略。
如果本身策略很简单或者日线交易的,影响可以忽略不计。
不过这个升级并不是个人可选的,只要你的Ptrade的券商升级了,就只能使用升级后的版本接口格式,旧代码需要做的修改来适配。
性能对比示例(Python 3.5 vs 3.11) By 豆包
以下是部分操作在 Python 3.5 和 3.11 中的性能对比(仅供参考):
并且相应的第三方库版本亦做了升级。
接口变动影响比较大的是pandas在 Python3.11 中,Pandas已不再支持Panel格式。
pandas里的Pannel类型是用于存储三维或以上的矩阵数据。
而升级后就不支持之前的多维行情数据格式。但笔者觉得现在更加统一和简单。
以前不同入参,有时候返回的是dataframe,有时候返回的是panel,比较混乱。
现在统一返回的dataframe. (或者返回dict,可以自己设定)
影响的API有get_history,get_price ,get_individual_transaction ,get_fundamentals等。
比如通过get_history获取的历史日线数据
count = 10
code_list = ['000695.SZ','001367.SZ']
df = get_history(count, frequency='1d', field=['open','close'], security_list=code_list, fq=None, include=False, fill='nan',is_dict=False)
print(type(df))
print(df)
返回的dataframe数据格式如下
<class 'pandas.core.frame.DataFrame'>
code open close
2025-05-15 000695.SZ NaN NaN
2025-05-16 000695.SZ NaN NaN
2025-05-19 000695.SZ 10.34 10.34
2025-05-20 000695.SZ 11.37 11.37
2025-05-21 000695.SZ 12.51 12.51
2025-05-22 000695.SZ 13.76 13.76
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
如果要提取 000695.SZ的数据,只需要
df[df['code']=='000695.SZ']就可以了。
code open close
2025-05-09 001367.SZ 29.89 29.58
2025-05-12 001367.SZ 29.70 29.60
2025-05-13 001367.SZ 30.11 29.96
2025-05-14 001367.SZ 29.96 29.83
2025-05-15 001367.SZ 29.80 30.18
2025-05-16 001367.SZ 30.13 30.39
2025-05-19 001367.SZ 30.46 30.01
2025-05-20 001367.SZ 20.25 20.08
2025-05-21 001367.SZ 20.05 20.70
2025-05-22 001367.SZ 20.98 22.77
然后dataframe提取收盘价或者开盘价
# 收盘价
df[df['code']=='001367.SZ']['close']
# 开盘价
df[df['code']=='001367.SZ']['open']
再拿收盘价来计算MACD:
# 计算 MACD 值
def MACD(series):
ema_short = series.ewm(span=12).mean()
ema_long = series.ewm(span=26).mean()
macd_series = ema_short - ema_long
return macd_series.iloc[-1]
close_price_series = df[df['code']=='001367.SZ']['close']
macd_val = MACD(close_price_series)
同理get_price,get_individual_transaction ,get_fundamentals与之类似。
并且在get_histroy的入参里面,多了一个is_dict的参数,默认是False,返回的是dataframe数据,如果设置为True,则返回的dict数据。
返回的有序字典(OrderDict)类型数据:(省略了部分类型)
{'001367.SZ', array([(20250509, 29.89, 29.58), (20250512, 29.7 , 29.6 ),
(20250513, 30.11, 29.96), (20250514, 29.96, 29.83),
(20250515, 29.8 , 30.18), (20250516, 30.13, 30.39),
(20250519, 30.46, 30.01), (20250520, 20.25, 20.08),
(20250521, 20.05, 20.7 ), (20250522, 20.98, 22.77)]
}
但感觉这种列表形式下,提取数据反而没有使用dataframe方便和直观,它获取数据时需要用下标提取。
但官网说,返回dict类型数据的速度比DataFrame,Panel类型数据有大幅提升,对速度有要求的,建议使用is_dict=True 读取上述数据格式。
获取L2逐笔数据
L2逐笔委托数据接口函数
get_individual_entrust(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
参数:
data_count: 数据条数,默认为50,最大为200(int);
start_pos: 起始位置,默认为0(int);
虽然一次只能获取200条,但配合start_pos游标可遍历获取全部数据。
示例代码:
获取股票001367.SZ封涨停时的最新的逐笔委托行情。
code_list = ['001367.SZ']
df = get_individual_entrust(code_list)
print(df[['business_time','hq_px','business_amount','order_no']])
输出数据如下,因数据列太多,为了美观只取了其中的4列:
时间戳,委托价格,委托数量,委托编号
因为当前已经是收盘状态,是从14:59:57.020往前取50条数据
business_time(时间戳) hq_px(委托价格) business_amount(委托数量) order_no(委托编号)
20250523145702150 24.60 100 32493957
20250523145714840 24.95 100 32505581
20250523145718430 25.05 1000 32509041
20250523145719840 25.05 1000 32510350
20250523145721750 25.05 400 32512000
20250523145727610 25.05 200 32517007
20250523145730270 25.05 400 32519085
20250523145730330 25.04 1600 32519133
20250523145732330 25.05 2900 32520779
20250523145740780 25.05 500 32527204
20250523145743550 25.05 400 32529290
20250523145743810 25.05 200 32529474
20250523145749460 25.05 4300 32533295
20250523145749910 25.05 1000 32533630
20250523145749960 25.05 300 32533666
# 省略若干.....
20250523145926790 25.05 100 32589496
20250523145927480 25.05 1200 32589844
20250523145936090 25.05 200 32594134
20250523145946600 25.05 300 32601758
20250523145946800 25.05 49100 32601865
20250523145950800 25.05 36800 32607381
20250523145953780 25.05 55200 32611265
20250523145954240 25.05 500 32611713
20250523145956830 25.05 55300 32614479
20250523145957020 25.04 8500 32614683
可以看到上面的有些1秒内有多个的委托单,每单的委托量和委托编号。
逐笔成交
同理,L2的逐笔成交数据函数的用法一样,但返回字段不同,成交的时候有成交方向,可以通过程序计算资金流入或流出。
get_individual_transaction(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
同样用上面的股票例子获取到的数据如下:
business_time hq_px business_amount business_direction
20250523145648440 0.00 2500 1
20250523145648970 0.00 3200 1
20250523145649300 0.00 100 1
20250523145649370 0.00 900 1
20250523145649880 0.00 1800 1
20250523145650150 0.00 800 1
20250523145650360 0.00 200 1
20250523145650400 0.00 500 1
20250523145650420 0.00 100 1
20250523145652050 0.00 800 1
# 省略若干.....
20250523145659220 0.00 24100 1
20250523145659550 0.00 700 1
20250523145659600 0.00 400 1
20250523150000000 25.05 100 0
20250523150000000 25.05 100 0
20250523150000000 25.05 1600 0
20250523150000000 25.05 800 0
20250523150000000 25.05 1730 0
20250523150000000 25.05 670 0
20250523150000000 25.05 2430 0
20250523150000000 25.05 1200 0
20250523150000000 25.05 9270 0
20250523150000000 25.05 148 0
20250523150000000 25.05 100 0
20250523150000000 25.05 200 0
20250523150000000 25.05 1000 0
20250523150000000 25.05 2000 0
business_direction是 成交方向,0是卖出,1是买入,从而判断该笔成交的资金是流入还是流出。
获取分时成交
get_tick_direction(symbols=None, query_date=0, start_pos=0, search_direction=1, data_count=50, is_dict=False)
这个分时成交函数可获取到当前和历史某个毫秒下,该笔总成交量下有多少笔子订单。
比如用上面的涨停股001367.SZ做示例
最后一刻3点的时候,成交了21348股,里面共有14笔成交。
time_stamp hq_px business_amount business_count
20250523143721000 25.05 100 1
20250523143724000 25.05 200 1
20250523143745000 25.05 444 1
20250523143809000 25.05 10000 2
20250523144024000 25.05 100 1
20250523144048000 25.05 1500 1
20250523144106000 25.05 300 1
20250523144112000 25.05 11692 2
20250523144124000 25.05 100 1
20250523144142000 25.05 100 1
20250523144157000 25.05 100 1
20250523144200000 25.05 2360 1
# 省略若干.....
20250523145415000 25.05 1381 1
20250523145421000 25.05 480 1
20250523145439000 25.05 100 1
20250523145451000 25.05 1753 1
20250523145521000 25.05 5384 3
20250523145539000 25.05 3600 2
20250523145557000 25.05 1000 1
20250523145609000 25.05 400 2
20250523145615000 25.05 100 1
20250523150000000 25.05 21348 14
get_gear_price 获取当前时刻的逐笔委托队列
这个函数的功能:获取委买/卖1 至 委买/卖10 10档行情的价格与委托量,但现在发现它可以获取到委托1档下逐笔委托队列。
比如当前的股票是涨停状态,你下了一笔订单有8888股去排板,那么这个函数可以获取当前委1档下的委托队列(前50名),比如下面返回的数据,可以看到你的8888手排在第9个委托队列,还有前后的单子的逐笔数量。
{'bid_grp': {1: [13.68, 15225900, 4905, {1: 33200, 2: 104800, 3: 1000, 4: 100, 5: 51800, 6: 6300, 7: 777800, 8: 184000, 9: 8888, 10: 100, 11: 600, 12: 141800, 13: 100, 14: 141800, 15: 2700,
16: 900, 17: 58600, 18: 2900, 19: 800, 20: 133800, 21: 2800, 22: 900, 23: 2900, 24: 800, 25: 400, 26: 400, 27: 48200, 28: 51800, 29: 99400, 30: 26600, 31: 81800, 32: 493000, 33: 427300, 34: 27700, 35: 2800, 36: 460500,
37: 170200, 38: 166500, 39: 24100, 40: 800, 41: 29300, 42: 500, 43: 500, 44: 500, 45: 2800, 46: 1300, 47: 61700, 48: 27000, 49: 500, 50: 78900}],
2: [13.67, 30200, 32],
3: [13.66, 11100, 16],
4: [13.65, 134400, 11],
5: [13.64, 8500, 7],
6: [13.63, 1000, 3],
7: [13.62, 200, 2],
8: [13.6, 7300, 17],
9: [13.59, 600, 2],
10: [13.58, 10700, 7]},
# 因为是涨停,所以委卖是空的,挂单就立马成交,委托队列是空的
'offer_grp': {1: [0.0, 0, 0, {}],
2: [0.0, 0, 0],
3: [0.0, 0, 0],
4: [0.0, 0, 0],
5: [0.0, 0, 0],
6: [0.0, 0, 0],
7: [0.0, 0, 0],
8: [0.0, 0, 0],
9: [0.0, 0, 0],
10: [0.0, 0, 0]}
}
所以这次ptrade的升级除了python版本的升级,还带来了更多粒度的数据,有利于高频策略的开发。
还有一些新功能的函数就等下次继续更新,记得点赞关注+收藏哦~
待续......
关注公众号:

ptrade的python版本升级到3.11, 部分数据返回格式也改变了,无语
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 222 次浏览 • 2025-05-07 14:22
返回数据可以为dataframe,也可以为dict。
为python3.5会根据数据入参不同,返回dataframe,pannel
而新的函数返回,只有dataframe,当然这很好。只是以前的代码需要改动做兼容。
而修改的地方不止这一处。
查看全部
Ptrade LOF跌停抄底T+0 程序
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 272 次浏览 • 2025-04-29 09:02
$黄金主题LOF(SZ161116)$
$港股小盘LOF(SZ161124)$
吃早餐的突然想到,快速写了个监控跌停,封单小于X就买入,冲高后止盈卖出,T+0 ptrade 自动交易。这样抄底就不用自己盯盘啦
查看全部
部署Ptrade deepseek编程AI助手
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 948 次浏览 • 2025-03-22 19:19
(第一行:根本没有ptrade_api这个库)
一个很大的原因,是互联网的残次不齐的语料污染了Deepseek的分析结果。很多不相关的广告或者垃圾内容进入到Deepseek的分析参考对象。三人成虎,Deepseek获取的3个网站都说那个图片里的猫是只老虎,那么它就真的认为它是只老虎。
其实我们可以把API文档作为知识库,提交给Deepseek,让它学习后再替我们编写Ptrade量化程序,代码的完成度会有很大的提升。甚至基本不用修改就可以直接运行。
本文手把手带大家,部署属于自己的量化交易AI编程助手。
当然,不需要高级硬件,也不用付费。0元购。
效果图:
本次依然使用腾讯云提供的Deepseek大模型来运行。
打开链接:https://lke.cloud.tencent.com/
点击大模型知识引擎,如果没有开通就点击开通。个人有免费的token额度可用,不收费。[图片]进去之后点击“新建应用", 名称可以任意填,
在模型这里选择 Deepseek-R1 或者 Deepseek-V3
它支持从本地文档导入和网页URL导入。
我们使用的API文档URL为:https://ptradeapi.com/
但笔者发现,它这个从URL获取数据的工程能力太弱了,获取到的数据只有标题,没有内容。
所以只好手工把网站的内容全选,然后复制保存到本地的word文档。
然后点击导入文档
这里需要几分钟的时间解析,内容审核。因为这个个人定制的知识库,是可以发布出去公开使用的,所以会对问答的内容做审核。
知识库里有对字符限制,免费的可以有个300w的字符可用。本次使用的ptrade api文档用了26w的字符,所以还可以上传更多的个人编写代码库。
知识库的状态变成"待发布"之后,可以点击"发布"按钮。
然后返回到应用配置,可以在提示词里添加一些限制。
比如目前的ptrade是基于python3.5的代码编写的。如果不限制,到时写出来的语法,比如用了诸如f-string的语法,ptrade会报错的。
f'{name}' -- wrong
'{}'.format(name) -- right
如果这里不限制,最后AI写出来的代码大概率在ptrade会报错。
设置完成之后,就完成了你个人专属的ptrade代码AI助手。
现在让它写一个ptrade网格交易程序
至少里面的策略逻辑代码框架整体问题不大,至少不再出现 from ptrade_api import * 这种不存在的包导入的情况。
但细节里还是有些bug的,比如卖出的时候是查enable_amount,而不是amount,因为当日买入的数量不一定能卖出。
run_interval(execute_grid, seconds=3),还有函数的入参不符合。
并没有get_price这个函数,要用get_snapshot
复制到ptrade里面跑下回测验证一下语法。
出现语法错误,依然需要小改一下。run_interval(context,execute_grid, seconds=3) 就好了。
当然上面的代码离实盘依然有一定的距离,依然依赖提问者技术水平,但作为代码辅助工具,对编写代码效率是很大的提升。
一些没写过复杂代码的自媒体经常尬吹,AI完成替代程序员的工作,其实大部分只是满足生成最基础的demo级别的通用任务,对于高度定制的业务,依然依赖提问者的技术广度和深度,对细节的掌控。
同样使用Deepseek,一个家庭主妇和张小龙,张小龙的确可能在完全不写代码的情况下使用Deepseek写出一个微信,而家庭主妇只能用Deepseek绘出一个类似的微信的UI,却无法运行起来。
但AI作为生产力工具,无疑大大减少了很多重复基础性工作,提升效率,让强者恒强。
需要开通Ptrade,QMT,掘金,Matic,BigQuant等量化工具的读者可以在公众号菜单获取联系方式。像BigQuan已经把AI编写实盘和回测的功能集成进去了。将公众号设为星标,第一时间收到笔者的最新文章啦。
查看全部
(第一行:根本没有ptrade_api这个库)
一个很大的原因,是互联网的残次不齐的语料污染了Deepseek的分析结果。很多不相关的广告或者垃圾内容进入到Deepseek的分析参考对象。三人成虎,Deepseek获取的3个网站都说那个图片里的猫是只老虎,那么它就真的认为它是只老虎。
其实我们可以把API文档作为知识库,提交给Deepseek,让它学习后再替我们编写Ptrade量化程序,代码的完成度会有很大的提升。甚至基本不用修改就可以直接运行。
本文手把手带大家,部署属于自己的量化交易AI编程助手。
当然,不需要高级硬件,也不用付费。0元购。
效果图:
本次依然使用腾讯云提供的Deepseek大模型来运行。
打开链接:https://lke.cloud.tencent.com/
点击大模型知识引擎,如果没有开通就点击开通。个人有免费的token额度可用,不收费。[图片]进去之后点击“新建应用", 名称可以任意填,
在模型这里选择 Deepseek-R1 或者 Deepseek-V3
它支持从本地文档导入和网页URL导入。
我们使用的API文档URL为:https://ptradeapi.com/
但笔者发现,它这个从URL获取数据的工程能力太弱了,获取到的数据只有标题,没有内容。
所以只好手工把网站的内容全选,然后复制保存到本地的word文档。
然后点击导入文档
这里需要几分钟的时间解析,内容审核。因为这个个人定制的知识库,是可以发布出去公开使用的,所以会对问答的内容做审核。
知识库里有对字符限制,免费的可以有个300w的字符可用。本次使用的ptrade api文档用了26w的字符,所以还可以上传更多的个人编写代码库。
知识库的状态变成"待发布"之后,可以点击"发布"按钮。
然后返回到应用配置,可以在提示词里添加一些限制。
比如目前的ptrade是基于python3.5的代码编写的。如果不限制,到时写出来的语法,比如用了诸如f-string的语法,ptrade会报错的。
f'{name}' -- wrong
'{}'.format(name) -- right
如果这里不限制,最后AI写出来的代码大概率在ptrade会报错。
设置完成之后,就完成了你个人专属的ptrade代码AI助手。
现在让它写一个ptrade网格交易程序
至少里面的策略逻辑代码框架整体问题不大,至少不再出现 from ptrade_api import * 这种不存在的包导入的情况。
但细节里还是有些bug的,比如卖出的时候是查enable_amount,而不是amount,因为当日买入的数量不一定能卖出。
run_interval(execute_grid, seconds=3),还有函数的入参不符合。
并没有get_price这个函数,要用get_snapshot
复制到ptrade里面跑下回测验证一下语法。
出现语法错误,依然需要小改一下。run_interval(context,execute_grid, seconds=3) 就好了。
当然上面的代码离实盘依然有一定的距离,依然依赖提问者技术水平,但作为代码辅助工具,对编写代码效率是很大的提升。
一些没写过复杂代码的自媒体经常尬吹,AI完成替代程序员的工作,其实大部分只是满足生成最基础的demo级别的通用任务,对于高度定制的业务,依然依赖提问者的技术广度和深度,对细节的掌控。
同样使用Deepseek,一个家庭主妇和张小龙,张小龙的确可能在完全不写代码的情况下使用Deepseek写出一个微信,而家庭主妇只能用Deepseek绘出一个类似的微信的UI,却无法运行起来。
但AI作为生产力工具,无疑大大减少了很多重复基础性工作,提升效率,让强者恒强。
需要开通Ptrade,QMT,掘金,Matic,BigQuant等量化工具的读者可以在公众号菜单获取联系方式。像BigQuan已经把AI编写实盘和回测的功能集成进去了。将公众号设为星标,第一时间收到笔者的最新文章啦。

ptrade支持北交所股票交易吗?
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 475 次浏览 • 2025-03-12 20:25
可以运行下面的代码:
def initialize(context):
# 初始化策略
g.security = "600570.SS"
set_universe(g.security)
run_daily(context, func,'20:13')
def handle_data(context, data):
print('公众号:可转债量化分析')
def func(context):
info = get_Ashares(date=None)
print(info)
它会打印沪深A股的代码:
北交所有83开头的,或者找一个北交所的股票代码,在输出里面找一下:
[code]2025-03-12 20:13:00 - INFO - ['600000.SS', '600004.SS', '600006.SS', '600007.SS', '600008.SS', '600009.SS', '600010.SS', '600011.SS', '600012.SS', '600015.SS', '600016.SS', '600017.SS', '600018.SS', '600019.SS', '600020.SS', '600021.SS', '600022.SS', '600023.SS', '600025.SS', '600026.SS', '600027.SS', '600028.SS', '600029.SS', '600030.SS', '600031.SS', '600032.SS', '600033.SS', '600035.SS', '600036.SS', '600037.SS', '600038.SS', '600039.SS', '600048.SS', '600050.SS', '600051.SS', '600052.SS', '600053.SS', '600054.SS', '600055.SS', '600056.SS', '600057.SS', '600058.SS', '600059.SS', '600060.SS', '600061.SS', '600062.SS', '600063.SS', '600064.SS', '600066.SS', '600067.SS', '600070.SS', '600071.SS', '600072.SS', '600073.SS', '600075.SS', '600076.SS', '600078.SS', '600079.SS', '600080.SS', '600081.SS', '600082.SS', '600084.SS', '600085.SS', '600088.SS', '600089.SS', '600094.SS', '600095.SS', '600096.SS', '600097.SS', '600098.SS', '600099.SS', '600100.SS', '600101.SS', '600103.SS', '600104.SS', '600105.SS', '600106.SS', '600107.SS', '600108.SS', '600109.SS', '600110.SS', '600111.SS', '600113.SS', '600114.SS', '600115.SS', '600116.SS', '600117.SS', '600118.SS', '600119.SS', '600120.SS', '600121.SS', '600123.SS', '600125.SS', '600126.SS', '600127.SS', '600128.SS', '600129.SS', '600130.SS', '600131.SS', '600132.SS', '600133.SS', '600135.SS', '600136.SS', '600137.SS', '600138.SS', '600141.SS', '600143.SS', '600148.SS', '600149.SS', '600150.SS', '600151.SS', '600152.SS', '600153.SS', '600155.SS', '600156.SS', '600157.SS', '600158.SS', '600159.SS', '600160.SS', '600161.SS', '600162.SS', '600163.SS', '600165.SS', '600166.SS', '600167.SS', '600168.SS', '600169.SS', '600170.SS', '600171.SS', '600172.SS', '600173.SS', '600176.SS', '600177.SS', '600178.SS', '600179.SS', '600180.SS', '600182.SS', '600183.SS', '600184.SS', '600185.SS', '600186.SS', '600187.SS', '600188.SS', '600189.SS', '600190.SS', '600191.SS', '600192.SS', '600193.SS', '600195.SS', '600196.SS', '600197.SS', '600198.SS', '600199.SS', '600200.SS', '600201.SS', '600202.SS', '600203.SS', '600206.SS', '600207.SS', '600208.SS', '600210.SS', '600211.SS', '600212.SS', '600215.SS', '600216.SS', '600217.SS', '600218.SS', '600219.SS', '600221.SS', '600222.SS', '600223.SS', '600226.SS', '600227.SS', '600228.SS', '600229.SS', '600230.SS', '600231.SS', '600232.SS', '600233.SS', '600234.SS', '600235.SS', '600236.SS', '600237.SS', '600238.SS', '600239.SS', '600241.SS', '600243.SS', '600246.SS', '600248.SS', '600249.SS', '600250.SS', '600251.SS', '600252.SS', '600255.SS', '600256.SS', '600257.SS', '600258.SS', '600259.SS', '600261.SS', '600262.SS', '600265.SS', '600266.SS', '600267.SS', '600268.SS', '600269.SS', '600271.SS', '600272.SS', '600273.SS', '600276.SS', '600278.SS', '600279.SS', '600280.SS', '600281.SS', '600282.SS', '600283.SS', '600284.SS', '600285.SS', '600287.SS', '600288.SS', '600289.SS', '600292.SS', '600293.SS', '600295.SS', '600298.SS', '600299.SS', '600300.SS', '600301.SS', '600302.SS', '600303.SS', '600305.SS', '600307.SS', '600308.SS', '600309.SS', '600310.SS', '600312.SS', '600313.SS', '600315.SS', '600316.SS', '600318.SS', '600319.SS', '600320.SS', '600322.SS', '600323.SS', '600325.SS', '600326.SS', '600327.SS', '600328.SS', '600329.SS', '600330.SS', '600331.SS', '600332.SS', '600333.SS', '600335.SS', '600336.SS', '600337.SS', '600338.SS', '600339.SS', '600340.SS', '600343.SS', '600345.SS', '600346.SS', '600348.SS', '600350.SS', '600351.SS', '600352.SS', '600353.SS', '600354.SS', '600355.SS', '600356.SS', '600358.SS', '600359.SS', '600360.SS', '600361.SS', '600362.SS', '600363.SS', '600365.SS', '600366.SS', '600367.SS', '600368.SS', '600369.SS', '600370.SS', '600371.SS', '600372.SS', '600373.SS', '600375.SS', '600376.SS', '600377.SS', '600378.SS', '600379.SS', '600380.SS', '600381.SS', '600382.SS', '600383.SS', '600386.SS', '600387.SS', '600388.SS', '600389.SS', '600390.SS', '600391.SS', '600392.SS', '600395.SS', '600396.SS', '600397.SS', '600398.SS', '600399.SS', '600400.SS', '600403.SS', '600405.SS', '600406.SS', '600408.SS', '600409.SS', '600410.SS', '600415.SS', '600416.SS', '600418.SS', '600419.SS', '600420.SS', '600421.SS', '600422.SS', '600423.SS', '600425.SS', '600426.SS', '600428.SS', '600429.SS', '600433.SS', '600435.SS', '600436.SS', '600438.SS', '600439.SS', '600444.SS', '600446.SS', '600448.SS', '600449.SS', '600452.SS', '600455.SS', '600456.SS', '600458.SS', '600459.SS', '600460.SS', '600461.SS', '600462.SS', '600463.SS', '600467.SS', '600468.SS', '600469.SS', '600470.SS', '600475.SS', '600476.SS', '600477.SS', '600478.SS', '600479.SS', '600480.SS', '600481.SS', '600482.SS', '600483.SS', '600486.SS', '600487.SS', '600488.SS', '600489.SS', '600490.SS', '600491.SS', '600493.SS', '600495.SS', '600496.SS', '600497.SS', '600498.SS', '600499.SS', '600500.SS', '600501.SS', '600502.SS', '600503.SS', '600505.SS', '600506.SS', '600507.SS', '600508.SS', '600509.SS', '600510.SS', '600511.SS', '600512.SS', '600513.SS', '600515.SS', '600516.SS', '600517.SS', '600518.SS', '600519.SS', '600520.SS', '600521.SS', '600522.SS', '600523.SS', '600525.SS', '600526.SS', '600527.SS', '600528.SS', '600529.SS', '600530.SS', '600531.SS', '600533.SS', '600535.SS', '600536.SS', '600537.SS', '600538.SS', '600539.SS', '600540.SS', '600543.SS', '600545.SS', '600546.SS', '600547.SS', '600548.SS', '600549.SS', '600550.SS', '600551.SS', '600552.SS', '600556.SS', '600557.SS', '600558.SS', '600559.SS', '600560.SS', '600561.SS', '600562.SS', '600563.SS', '600566.SS', '600567.SS', '600568.SS', '600569.SS', '600570.SS', '600571.SS', '600572.SS', '600573.SS', '600575.SS', '600576.SS', '600577.SS', '600578.SS', '600579.SS', '600580.SS', '600581.SS', '600582.SS', '600583.SS', '600584.SS', '600585.SS', '600586.SS', '600587.SS', '600588.SS', '600589.SS', '600590.SS', '600592.SS', '600593.SS', '600594.SS', '600595.SS', '600596.SS', '600597.SS', '600598.SS', '600599.SS', '600600.SS', '600601.SS', '600602.SS', '600603.SS', '600604.SS', '600605.SS', '600606.SS', '600608.SS', '600609.SS', '600610.SS', '600611.SS', '600612.SS', '600613.SS', '600615.SS', '600616.SS', '600617.SS', '600618.SS', '600619.SS', '600620.SS', '600621.SS', '600622.SS', '600623.SS', '600624.SS', '600626.SS', '600628.SS', '600629.SS', '600630.SS', '600633.SS', '600635.SS', '600636.SS', '600637.SS', '600638.SS', '600639.SS', '600640.SS', '600641.SS', '600642.SS', '600643.SS', '600644.SS', '600645.SS', '600648.SS', '600649.SS', '600650.SS', '600651.SS', '600653.SS', '600654.SS', '600655.SS', '600657.SS', '600658.SS', '600660.SS', '600661.SS', '600662.SS', '600663.SS', '600664.SS', '600665.SS', '600666.SS', '600667.SS', '600668.SS', '600671.SS', '600673.SS', '600674.SS', '600675.SS', '600676.SS', '600678.SS', '600679.SS', '600681.SS', '600682.SS', '600683.SS', '600684.SS', '600685.SS', '600686.SS', '600688.SS', '600689.SS', '600690.SS', '600691.SS', '600692.SS', '600693.SS', '600694.SS', '600696.SS', '600697.SS', '600698.SS', '600699.SS', '600702.SS', '600703.SS', '600704.SS', '600705.SS', '600706.SS', '600707.SS', '600708.SS', '600710.SS', '600711.SS', '600712.SS', '600713.SS', '600714.SS', '600715.SS', '600716.SS', '600717.SS', '600718.SS', '600719.SS', '600720.SS', '600721.SS', '600722.SS', '600724.SS', '600725.SS', '600726.SS', '600727.SS', '600728.SS', '600729.SS', '600730.SS', '600731.SS', '600732.SS', '600733.SS', '600734.SS', '600735.SS', '600736.SS', '600737.SS', '600738.SS', '600739.SS', '600740.SS', '600741.SS', '600742.SS', '600743.SS', '600744.SS', '600745.SS', '600746.SS', '600748.SS', '600749.SS', '600750.SS', '600751.SS', '600753.SS', '600754.SS', '600755.SS', '600756.SS', '600757.SS', '600758.SS', '600759.SS', '600760.SS', '600761.SS', '600763.SS', '600764.SS', '600765.SS', '600768.SS', '600769.SS', '600770.SS', '600771.SS', '600773.SS', '600774.SS', '600775.SS', '600776.SS', '600777.SS', '600778.SS', '600779.SS', '600780.SS', '600782.SS', '600783.SS', '600784.SS', '600785.SS', '600787.SS', '600789.SS', '600790.SS', '600791.SS', '600792.SS', '600793.SS', '600794.SS', '600795.SS', '600796.SS', '600797.SS', '600798.SS', '600800.SS', '600801.SS', '600802.SS', '600803.SS', '600804.SS', '600805.SS', '600807.SS', '600808.SS', '600809.SS', '600810.SS', '600811.SS', '600812.SS', '600814.SS', '600815.SS', '600816.SS', '600817.SS', '600818.SS', '600819.SS', '600820.SS', '600821.SS', '600822.SS', '600824.SS', '600825.SS', '600826.SS', '600827.SS', '600828.SS', '600829.SS', '600830.SS', '600831.SS', '600833.SS', '600834.SS', '600835.SS', '600838.SS', '600839.SS', '600841.SS', '600843.SS', '600844.SS', '600845.SS', '600846.SS', '600847.SS', '600848.SS', '600850.SS', '600851.SS', '600853.SS', '600854.SS', '600855.SS', '600857.SS', '600858.SS', '600859.SS', '600860.SS', '600861.SS', '600862.SS', '600863.SS', '600864.SS', '600865.SS', '600866.SS', '600867.SS', '600868.SS', '600869.SS', '600871.SS', '600872.SS', '600873.SS', '600874.SS', '600875.SS', '600876.SS', '600877.SS', '600879.SS', '600880.SS', '600881.SS', '600882.SS', '600883.SS', '600884.SS', '600885.SS', '600886.SS', '600887.SS', '600888.SS', '600889.SS', '600892.SS', '600893.SS', '600894.SS', '600895.SS', '600897.SS', '600900.SS', '600901.SS', '600903.SS', '600905.SS', '600906.SS', '600908.SS', '600909.SS', '600916.SS', '600917.SS', '600918.SS', '600919.SS', '600925.SS', '600926.SS', '600927.SS', '600928.SS', '600929.SS', '600933.SS', '600935.SS', '600936.SS', '600938.SS', '600939.SS', '600941.SS', '600955.SS', '600956.SS', '600958.SS', '600959.SS', '600960.SS', '600961.SS', '600962.SS', '600963.SS', '600965.SS', '600966.SS', '600967.SS', '600968.SS', '600969.SS', '600970.SS', '600971.SS', '600973.SS', '600975.SS', '600976.SS', '600977.SS', '600979.SS', '600980.SS', '600981.SS', '600982.SS', '600983.SS', '600984.SS', '600985.SS', '600986.SS', '600987.SS', '600988.SS', '600989.SS', '600990.SS', '600992.SS', '600993.SS', '600995.SS', '600996.SS', '600997.SS', '600998.SS', '600999.SS', '601000.SS', '601001.SS', '601002.SS', '601003.SS', '601005.SS', '601006.SS', '601007.SS', '601008.SS', '601009.SS', '601010.SS', '601011.SS', '601012.SS', '601015.SS', '601016.SS', '601018.SS', '601019.SS', '601020.SS', '601021.SS', '601022.SS', '601028.SS', '601033.SS', '601038.SS', '601058.SS', '601059.SS', '601061.SS', '601065.SS', '601066.SS', '601068.SS', '601069.SS', '601077.SS', '601083.SS', '601086.SS', '601088.SS', '601089.SS', '601096.SS', '601098.SS', '601099.SS', '601100.SS', '601101.SS', '601106.SS', '601107.SS', '601108.SS', '601111.SS', '601113.SS', '601116.SS', '601117.SS', '601118.SS', '601121.SS', '601126.SS', '601127.SS', '601128.SS', '601133.SS', '601136.SS', '601137.SS', '601138.SS', '601139.SS', '601155.SS', '601156.SS', '601158.SS', '601162.SS', '601163.SS', '601166.SS', '601168.SS', '601169.SS', '601177.SS', '601179.SS', '601186.SS', '601187.SS', '601188.SS', '601198.SS', '601199.SS', '601200.SS', '601208.SS', '601211.SS', '601212.SS', '601216.SS', '601218.SS', '601222.SS', '601225.SS', '601226.SS', '601228.SS', '601229.SS', '601231.SS', '601233.SS', '601236.SS', '601238.SS', '601279.SS', '601288.SS', '601298.SS', '601311.SS', '601318.SS', '601319.SS', '601326.SS', '601328.SS', '601330.SS', '601333.SS', '601336.SS', '601339.SS', '601360.SS', '601366.SS', '601368.SS', '601369.SS', '601375.SS', '601377.SS', '601388.SS', '601390.SS', '601398.SS', '601399.SS', '601456.SS', '601500.SS', '601512.SS', '601515.SS', '601518.SS', '601519.SS', '601528.SS', '601555.SS', '601566.SS', '601567.SS', '601568.SS', '601577.SS', '601579.SS', '601588.SS', '601595.SS', '601598.SS', '601599.SS', '601600.SS', '601601.SS', '601606.SS', '601607.SS', '601608.SS', '601609.SS', '601611.SS', '601615.SS', '601616.SS', '601618.SS', '601619.SS', '601628.SS', '601633.SS', '601636.SS', '601658.SS', '601665.SS', '601666.SS', '601668.SS', '601669.SS', '601677.SS', '601678.SS', '601686.SS', '601688.SS', '601689.SS', '601696.SS', '601698.SS', '601699.SS', '601700.SS', '601702.SS', '601717.SS', '601718.SS', '601727.SS', '601728.SS', '601766.SS', '601777.SS', '601778.SS', '601788.SS', '601789.SS', '601798.SS', '601799.SS', '601800.SS', '601801.SS', '601808.SS', '601811.SS', '601816.SS', '601818.SS', '601825.SS', '601827.SS', '601828.SS', '601838.SS', '601857.SS', '601858.SS', '601860.SS', '601865.SS', '601866.SS', '601868.SS', '601869.SS', '601872.SS', '601877.SS', '601878.SS', '601880.SS', '601881.SS', '601882.SS', '601886.SS', '601888.SS', '601890.SS', '601898.SS', '601899.SS', '601900.SS', '601901.SS', '601908.SS', '601916.SS', '601918.SS', '601919.SS', '601921.SS', '601928.SS', '601929.SS', '601933.SS', '601939.SS', '601949.SS', '601952.SS', '601956.SS', '601958.SS', '601963.SS', '601965.SS', '601966.SS', '601968.SS', '601969.SS', '601975.SS', '601985.SS', '601988.SS', '601989.SS', '601990.SS', '601991.SS', '601992.SS', '601995.SS', '601996.SS', '601997.SS', '601998.SS', '601999.SS', '603000.SS', '603001.SS', '603002.SS', '603003.SS', '603004.SS', '603005.SS', '603006.SS', '603007.SS', '603008.SS', '603009.SS', '603010.SS', '603011.SS', '603012.SS', '603013.SS', '603015.SS', '603016.SS', '603017.SS', '603018.SS', '603019.SS', '603020.SS', '603021.SS', '603022.SS', '603023.SS', '603025.SS', '603026.SS', '603027.SS', '603028.SS', '603029.SS', '603030.SS', '603031.SS', '603032.SS', '603033.SS', '603035.SS', '603036.SS', '603037.SS', '603038.SS', '603039.SS', '603040.SS', '603041.SS', '603042.SS', '603043.SS', '603045.SS', '603048.SS', '603050.SS', '603051.SS', '603052.SS', '603053.SS', '603055.SS', '603056.SS', '603057.SS', '603058.SS', '603059.SS', '603060.SS', '603061.SS', '603062.SS', '603063.SS', '603065.SS', '603066.SS', '603067.SS', '603068.SS', '603069.SS', '603070.SS', '603071.SS', '603072.SS', '603073.SS', '603075.SS', '603076.SS', '603077.SS', '603078.SS', '603079.SS', '603080.SS', '603081.SS', '603082.SS', '603083.SS', '603085.SS', '603086.SS', '603087.SS', '603088.SS', '603089.SS', '603090.SS', '603091.SS', '603093.SS', '603095.SS', '603096.SS', '603097.SS', '603098.SS', '603099.SS', '603100.SS', '603101.SS', '603102.SS', '603103.SS', '603105.SS', '603106.SS', '603107.SS', '603108.SS', '603109.SS', '603110.SS', '603111.SS', '603112.SS', '603113.SS', '603115.SS', '603116.SS', '603117.SS', '603118.SS', '603119.SS', '603121.SS', '603122.SS', '603123.SS', '603125.SS', '603126.SS', '603127.SS', '603128.SS', '603129.SS', '603130.SS', '603131.SS', '603132.SS', '603135.SS', '603136.SS', '603137.SS', '603138.SS', '603139.SS', '603150.SS', '603151.SS', '603153.SS', '603155.SS', '603156.SS', '603158.SS', '603159.SS', '603160.SS', '603161.SS', '603162.SS', '603163.SS', '603165.SS', '603166.SS', '603167.SS', '603168.SS', '603169.SS', '603170.SS', '603171.SS', '603172.SS', '603173.SS', '603176.SS', '603177.SS', '603178.SS', '603179.SS', '603180.SS', '603181.SS', '603182.SS', '603183.SS', '603185.SS', '603186.SS', '603187.SS', '603188.SS', '603189.SS', '603190.SS', '603191.SS', '603192.SS', '603193.SS', '603194.SS', '603195.SS', '603196.SS', '603197.SS', '603198.SS', '603199.SS', '603200.SS', '603201.SS', '603203.SS', '603205.SS', '603206.SS', '603207.SS', '603208.SS', '603209.SS', '603211.SS', '603212.SS', '603213.SS', '603214.SS', '603215.SS', '603216.SS', '603217.SS', '603218.SS', '603219.SS', '603220.SS', '603221.SS', '603222.SS', '603223.SS', '603225.SS', '603226.SS', '603227.SS', '603228.SS', '603229.SS', '603230.SS', '603231.SS', '603232.SS', '603233.SS', '603235.SS', '603236.SS', '603237.SS', '603238.SS', '603239.SS', '603255.SS', '603256.SS', '603258.SS', '603259.SS', '603260.SS', '603261.SS', '603266.SS', '603267.SS', '603268.SS', '603269.SS', '603270.SS', '603271.SS', '603272.SS', '603273.SS', '603275.SS', '603276.SS', '603277.SS', '603278.SS', '603279.SS', '603280.SS', '603281.SS', '603282.SS', '603283.SS', '603285.SS', '603286.SS', '603288.SS', '603289.SS', '603290.SS', '603291.SS', '603296.SS', '603297.SS', '603298.SS', '603299.SS', '603300.SS', '603301.SS', '603303.SS', '603305.SS', '603306.SS', '603307.SS', '603308.SS', '603309.SS', '603310.SS', '603311.SS', '603312.SS', '603313.SS', '603315.SS', '603316.SS', '603317.SS', '603318.SS', '603319.SS', '603320.SS', '603321.SS', '603322.SS', '603323.SS', '603324.SS', '603325.SS', '603326.SS', '603327.SS', '603328.SS', '603329.SS', '603330.SS', '603331.SS', '603332.SS', '603333.SS', '603335.SS', '603336.SS', '603337.SS', '603338.SS', '603339.SS', '603341.SS', '603344.SS', '603345.SS', '603348.SS', '603350.SS', '603351.SS', '603353.SS', '603355.SS', '603356.SS', '603357.SS', '603358.SS', '603359.SS', '603360.SS', '603363.SS', '603365.SS', '603366.SS', '603367.SS', '603368.SS', '603369.SS', '603373.SS', '603375.SS', '603377.SS', '603378.SS', '603379.SS', '603380.SS', '603381.SS', '603383.SS', '603385.SS', '603386.SS', '603387.SS', '603388.SS', '603389.SS', '603390.SS', '603391.SS', '603392.SS', '603393.SS', '603395.SS', '603396.SS', '603398.SS', '603399.SS', '603408.SS', '603409.SS', '603416.SS', '603421.SS', '603429.SS', '603439.SS', '603444.SS', '603456.SS', '603458.SS', '603466.SS', '603477.SS', '603486.SS', '603488.SS', '603489.SS', '603496.SS', '603499.SS', '603500.SS', '603501.SS', '603505.SS', '603506.SS', '603507.SS', '603508.SS', '603511.SS', '603515.SS', '603516.SS', '603517.SS', '603518.SS', '603519.SS', '603520.SS', '603527.SS', '603528.SS', '603529.SS', '603530.SS', '603533.SS', '603535.SS', '603536.SS', '603538.SS', '603551.SS', '603556.SS', '603557.SS', '603558.SS', '603559.SS', '603565.SS', '603566.SS', '603567.SS', '603568.SS', '603569.SS', '603577.SS', '603578.SS', '603579.SS', '603580.SS', '603583.SS', '603585.SS', '603586.SS', '603587.SS', '603588.SS', '603589.SS', '603590.SS', '603595.SS', '603596.SS', '603598.SS', '603599.SS', '603600.SS', '603601.SS', '603602.SS', '603605.SS', '603606.SS', '603607.SS', '603608.SS', '603609.SS', '603610.SS', '603611.SS', '603612.SS', '603613.SS', '603615.SS', '603616.SS', '603617.SS', '603618.SS', '603619.SS', '603626.SS', '603628.SS', '603629.SS', '603630.SS', '603633.SS', '603636.SS', '603637.SS', '603638.SS', '603639.SS', '603648.SS', '603650.SS', '603655.SS', '603656.SS', '603657.SS', '603658.SS', '603659.SS', '603660.SS', '603661.SS', '603662.SS', '603663.SS', '603665.SS', '603666.SS', '603667.SS', '603668.SS', '603669.SS', '603676.SS', '603677.SS', '603678.SS', '603679.SS', '603680.SS', '603681.SS', '603682.SS', '603683.SS', '603685.SS', '603686.SS', '603687.SS', '603688.SS', '603689.SS', '603690.SS', '603693.SS', '603696.SS', '603697.SS', '603698.SS', '603699.SS', '603700.SS', '603701.SS', '603703.SS', '603706.SS', '603707.SS', '603708.SS', '603709.SS', '603711.SS', '603712.SS', '603713.SS', '603716.SS', '603717.SS', '603718.SS', '603719.SS', '603721.SS', '603722.SS', '603725.SS', '603726.SS', '603727.SS', '603728.SS', '603729.SS', '603730.SS', '603733.SS', '603737.SS', '603738.SS', '603739.SS', '603755.SS', '603757.SS', '603758.SS', '603759.SS', '603766.SS', '603767.SS', '603768.SS', '603773.SS', '603776.SS', '603777.SS', '603778.SS', '603779.SS', '603786.SS', '603787.SS', '603788.SS', '603789.SS', '603790.SS', '603797.SS', '603798.SS', '603799.SS', '603800.SS', '603801.SS', '603803.SS', '603806.SS', '603808.SS', '603809.SS', '603810.SS', '603811.SS', '603813.SS', '603815.SS', '603816.SS', '603817.SS', '603818.SS', '603819.SS', '603822.SS', '603823.SS', '603825.SS', '603826.SS', '603828.SS', '603829.SS', '603833.SS', '603836.SS', '603838.SS', '603839.SS', '603843.SS', '603848.SS', '603855.SS', '603856.SS', '603858.SS', '603859.SS', '603860.SS', '603861.SS', '603863.SS', '603866.SS', '603867.SS', '603868.SS', '603869.SS', '603871.SS', '603876.SS', '603877.SS', '603878.SS', '603879.SS', '603880.SS', '603881.SS', '603882.SS', '603883.SS', '603885.SS', '603886.SS', '603887.SS', '603888.SS', '603889.SS', '603890.SS', '603893.SS', '603895.SS', '603896.SS', '603897.SS', '603898.SS', '603899.SS', '603900.SS', '603901.SS', '603903.SS', '603906.SS', '603908.SS', '603909.SS', '603912.SS', '603915.SS', '603916.SS', '603917.SS', '603918.SS', '603919.SS', '603920.SS', '603922.SS', '603926.SS', '603927.SS', '603928.SS', '603929.SS', '603931.SS', '603933.SS', '603936.SS', '603937.SS', '603938.SS', '603939.SS', '603948.SS', '603949.SS', '603950.SS', '603955.SS', '603956.SS', '603958.SS', '603959.SS', '603960.SS', '603963.SS', '603966.SS', '603967.SS', '603968.SS', '603969.SS', '603970.SS', '603976.SS', '603977.SS', '603978.SS', '603979.SS', '603980.SS', '603982.SS', '603983.SS', '603985.SS', '603986.SS', '603987.SS', '603988.SS', '603989.SS', '603990.SS', '603991.SS', '603992.SS', '603993.SS', '603995.SS', '603997.SS', '603998.SS', '603999.SS', '605001.SS', '605003.SS', '605005.SS', '605006.SS', '605007.SS', '605008.SS', '605009.SS', '605011.SS', '605016.SS', '605018.SS', '605020.SS', '605028.SS', '605033.SS', '605050.SS', '605055.SS', '605056.SS', '605058.SS', '605060.SS', '605066.SS', '605068.SS', '605069.SS', '605077.SS', '605080.SS', '605081.SS', '605086.SS', '605088.SS', '605089.SS', '605090.SS', '605098.SS', '605099.SS', '605100.SS', '605108.SS', '605111.SS', '605116.SS', '605117.SS', '605118.SS', '605122.SS', '605123.SS', '605128.SS', '605133.SS', '605136.SS', '605138.SS', '605151.SS', '605155.SS', '605158.SS', '605162.SS', '605166.SS', '605167.SS', '605168.SS', '605169.SS', '605177.SS', '605178.SS', '605179.SS', '605180.SS', '605183.SS', '605186.SS', '605188.SS', '605189.SS', '605196.SS', '605198.SS', '605199.SS', '605208.SS', '605218.SS', '605222.SS', '605228.SS', '605255.SS', '605258.SS', '605259.SS', '605266.SS', '605268.SS', '605277.SS', '605286.SS', '605287.SS', '605288.SS', '605289.SS', '605296.SS', '605298.SS', '605299.SS', '605300.SS', '605303.SS', '605305.SS', '605318.SS', '605319.SS', '605333.SS', '605336.SS', '605337.SS', '605338.SS', '605339.SS', '605358.SS', '605365.SS', '605366.SS', '605368.SS', '605369.SS', '605376.SS', '605377.SS', '605378.SS', '605388.SS', '605389.SS', '605398.SS', '605399.SS', '605488.SS', '605499.SS', '605500.SS', '605507.SS', '605555.SS', '605566.SS', '605567.SS', '605577.SS', '605580.SS', '605588.SS', '605589.SS', '605598.SS', '605599.SS', '000001.SZ', '000002.SZ', '000004.SZ', '000006.SZ', '000007.SZ', '000008.SZ', '000009.SZ', '000010.SZ', '000011.SZ', '000012.SZ', '000014.SZ', '000016.SZ', '000017.SZ', '000019.SZ', '000020.SZ', '000021.SZ', '000025.SZ', '000026.SZ', '000027.SZ', '000028.SZ', '000029.SZ', '000030.SZ', '000031.SZ', '000032.SZ', '000034.SZ', '000035.SZ', '000036.SZ', '000037.SZ', '000039.SZ', '000040.SZ', '000042.SZ', '000045.SZ', '000048.SZ', '000049.SZ', '000050.SZ', '000055.SZ', '000056.SZ', '000058.SZ', '000059.SZ', '000060.SZ', '000061.SZ', '000062.SZ', '000063.SZ', '000065.SZ', '000066.SZ', '000068.SZ', '000069.SZ', '000070.SZ', '000078.SZ', '000088.SZ', '000089.SZ', '000090.SZ', '000096.SZ', '000099.SZ', '000100.SZ', '000151.SZ', '000153.SZ', '000155.SZ', '000156.SZ', '000157.SZ', '000158.SZ', '000159.SZ', '000166.SZ', '000301.SZ', '000333.SZ', '000338.SZ', '000400.SZ', '000401.SZ', '000402.SZ', '000403.SZ', '000404.SZ', '000407.SZ', '000408.SZ', '000409.SZ', '000410.SZ', '000411.SZ', '000415.SZ', '000417.SZ', '000419.SZ', '000420.SZ', '000421.SZ', '000422.SZ', '000423.SZ', '000425.SZ', '000426.SZ', '000428.SZ', '000429.SZ', '000430.SZ', '000488.SZ', '000498.SZ', '000501.SZ', '000503.SZ', '000504.SZ', '000505.SZ', '000506.SZ', '000507.SZ', '000509.SZ', '000510.SZ', '000513.SZ', '000514.SZ', '000516.SZ', '000517.SZ', '000518.SZ', '000519.SZ', '000520.SZ', '000521.SZ', '000523.SZ', '000524.SZ', '000525.SZ', '000526.SZ', '000528.SZ', '000529.SZ', '000530.SZ', '000531.SZ', '000532.SZ', '000533.SZ', '000534.SZ', '000536.SZ', '000537.SZ', '000538.SZ', '000539.SZ', '000541.SZ', '000543.SZ', '000544.SZ', '000545.SZ', '000546.SZ', '000547.SZ', '000548.SZ', '000550.SZ', '000551.SZ', '000552.SZ', '000553.SZ', '000554.SZ', '000555.SZ', '000557.SZ', '000558.SZ', '000559.SZ', '000560.SZ', '000561.SZ', '000563.SZ', '000564.SZ', '000565.SZ', '000566.SZ', '000567.SZ', '000568.SZ', '000570.SZ', '000571.SZ', '000572.SZ', '000573.SZ', '000576.SZ', '000581.SZ', '000582.SZ', '000584.SZ', '000586.SZ', '000589.SZ', '000590.SZ', '000591.SZ', '000592.SZ', '000593.SZ', '000595.SZ', '000596.SZ', '000597.SZ', '000598.SZ', '000599.SZ', '000600.SZ', '000601.SZ', '000603.SZ', '000605.SZ', '000607.SZ', '000608.SZ', '000609.SZ', '000610.SZ', '000612.SZ', '000615.SZ', '000617.SZ', '000619.SZ', '000620.SZ', '000622.SZ', '000623.SZ', '000625.SZ', '000626.SZ', '000627.SZ', '000628.SZ', '000629.SZ', '000630.SZ', '000631.SZ', '000632.SZ', '000633.SZ', '000635.SZ', '000636.SZ', '000637.SZ', '000638.SZ', '000639.SZ', '000650.SZ', '000651.SZ', '000652.SZ', '000655.SZ', '000656.SZ', '000657.SZ', '000659.SZ', '000661.SZ', '000663.SZ', '000665.SZ', '000668.SZ', '000669.SZ', '000670.SZ', '000672.SZ', '000676.SZ', '000677.SZ', '000678.SZ', '000679.SZ', '000680.SZ', '000681.SZ', '000682.SZ', '000683.SZ', '000685.SZ', '000686.SZ', '000688.SZ', '000690.SZ', '000691.SZ', '000692.SZ', '000695.SZ', '000697.SZ', '000698.SZ', '000700.SZ', '000701.SZ', '000702.SZ', '000703.SZ', '000705.SZ', '000707.SZ', '000708.SZ', '000709.SZ', '000710.SZ', '000711.SZ', '000712.SZ', '000713.SZ', '000715.SZ', '000716.SZ', '000717.SZ', '000718.SZ', '000719.SZ', '000720.SZ', '000721.SZ', '000722.SZ', '000723.SZ', '000725.SZ', '000726.SZ', '000727.SZ', '000728.SZ', '000729.SZ', '000731.SZ', '000733.SZ', '000735.SZ', '000736.SZ', '000737.SZ', '000738.SZ', '000739.SZ', '000750.SZ', '000751.SZ', '000752.SZ', '000753.SZ', '000755.SZ', '000756.SZ', '000757.SZ', '000758.SZ', '000759.SZ', '000761.SZ', '000762.SZ', '000766.SZ', '000767.SZ', '000768.SZ', '000776.SZ', '000777.SZ', '000778.SZ', '000779.SZ', '000782.SZ', '000783.SZ', '000785.SZ', '000786.SZ', '000788.SZ', '000789.SZ', '000790.SZ', '000791.SZ', '000792.SZ', '000793.SZ', '000795.SZ', '000796.SZ', '000797.SZ', '000798.SZ', '000799.SZ', '000800.SZ', '000801.SZ', '000802.SZ', '000803.SZ', '000807.SZ', '000809.SZ', '000810.SZ', '000811.SZ', '000812.SZ', '000813.SZ', '000815.SZ', '000816.SZ', '000818.SZ', '000819.SZ', '000820.SZ', '000821.SZ', '000822.SZ', '000823.SZ', '000825.SZ', '000826.SZ', '000828.SZ', '000829.SZ', '000830.SZ', '000831.SZ', '000833.SZ', '000837.SZ', '000838.SZ', '000839.SZ', '000848.SZ', '000850.SZ', '000851.SZ', '000852.SZ', '000856.SZ', '000858.SZ', '000859.SZ', '000860.SZ', '000862.SZ', '000863.SZ', '000868.SZ', '000869.SZ', '000875.SZ', '000876.SZ', '000877.SZ', '000878.SZ', '000880.SZ', '000881.SZ', '000882.SZ', '000883.SZ', '000885.SZ', '000886.SZ', '000887.SZ', '000888.SZ', '000889.SZ', '000890.SZ', '000892.SZ', '000893.SZ', '000895.SZ', '000897.SZ', '000898.SZ', '000899.SZ', '000900.SZ', '000901.SZ', '000902.SZ', '000903.SZ', '000905.SZ', '000906.SZ', '000908.SZ', '000909.SZ', '000910.SZ', '000911.SZ', '000912.SZ', '000913.SZ', '000915.SZ', '000917.SZ', '000919.SZ', '000920.SZ', '000921.SZ', '000922.SZ', '000923.SZ', '000925.SZ', '000926.SZ', '000927.SZ', '000928.SZ', '000929.SZ', '000930.SZ', '000931.SZ', '000932.SZ', '000933.SZ', '000935.SZ', '000936.SZ', '000937.SZ', '000938.SZ', '000948.SZ', '000949.SZ', '000950.SZ', '000951.SZ', '000952.SZ', '000953.SZ', '000955.SZ', '000957.SZ', '000958.SZ', '000959.SZ', '000960.SZ', '000962.SZ', '000963.SZ', '000965.SZ', '000966.SZ', '000967.SZ', '000968.SZ', '000969.SZ', '000970.SZ', '000972.SZ', '000973.SZ', '000975.SZ', '000977.SZ', '000978.SZ', '000980.SZ', '000981.SZ', '000983.SZ', '000985.SZ', '000987.SZ', '000988.SZ', '000989.SZ', '000990.SZ', '000993.SZ', '000995.SZ', '000997.SZ', '000998.SZ', '000999.SZ', '001201.SZ', '001202.SZ', '001203.SZ', '001205.SZ', '001206.SZ', '001207.SZ', '001208.SZ', '001209.SZ', '001210.SZ', '001211.SZ', '001212.SZ', '001213.SZ', '001215.SZ', '001216.SZ', '001217.SZ', '001218.SZ', '001219.SZ', '001222.SZ', '001223.SZ', '001225.SZ', '001226.SZ', '001227.SZ', '001228.SZ', '001229.SZ', '001230.SZ', '001231.SZ', '001234.SZ', '001236.SZ', '001238.SZ', '001239.SZ', '001255.SZ', '001256.SZ', '001258.SZ', '001259.SZ', '001260.SZ', '001266.SZ', '001267.SZ', '001268.SZ', '001269.SZ', '001270.SZ', '001277.SZ', '001278.SZ', '001279.SZ', '001282.SZ', '001283.SZ', '001286.SZ', '001287.SZ', '001288.SZ', '001289.SZ', '001296.SZ', '001298.SZ', '001299.SZ', '001300.SZ', '001301.SZ', '001306.SZ', '001308.SZ', '001309.SZ', '001311.SZ', '001313.SZ', '001314.SZ', '001316.SZ', '001317.SZ', '001318.SZ', '001319.SZ', '001322.SZ', '001323.SZ', '001324.SZ', '001326.SZ', '001328.SZ', '001330.SZ', '001331.SZ', '001332.SZ', '001333.SZ', '001336.SZ', '001337.SZ', '001338.SZ', '001339.SZ', '001356.SZ', '001358.SZ', '001359.SZ', '001360.SZ', '001366.SZ', '001367.SZ', '001368.SZ', '001373.SZ', '001376.SZ', '001378.SZ', '001379.SZ', '001380.SZ', '001387.SZ', '001389.SZ', '001391.SZ', '001395.SZ', '001696.SZ', '001872.SZ', '001896.SZ', '001914.SZ', '001965.SZ', '001979.SZ', '002001.SZ', '002003.SZ', '002004.SZ', '002005.SZ', '002006.SZ', '002007.SZ', '002008.SZ', '002009.SZ', '002010.SZ', '002011.SZ', '002012.SZ', '002014.SZ', '002015.SZ', '002016.SZ', '002017.SZ', '002019.SZ', '002020.SZ', '002021.SZ', '002022.SZ', '002023.SZ', '002024.SZ', '002025.SZ', '002026.SZ', '002027.SZ', '002028.SZ', '002029.SZ', '002030.SZ', '002031.SZ', '002032.SZ', '002033.SZ', '002034.SZ', '002035.SZ', '002036.SZ', '002037.SZ', '002038.SZ', '002039.SZ', '002040.SZ', '002041.SZ', '002042.SZ', '002043.SZ', '002044.SZ', '002045.SZ', '002046.SZ', '002047.SZ', '002048.SZ', '002049.SZ', '002050.SZ', '002051.SZ', '002052.SZ', '002053.SZ', '002054.SZ', '002055.SZ', '002056.SZ', '002057.SZ', '002058.SZ', '002059.SZ', '002060.SZ', '002061.SZ', '002062.SZ', '002063.SZ', '002064.SZ', '002065.SZ', '002066.SZ', '002067.SZ', '002068.SZ', '002069.SZ', '002072.SZ', '002073.SZ', '002074.SZ', '002075.SZ', '002076.SZ', '002077.SZ', '002078.SZ', '002079.SZ', '002080.SZ', '002081.SZ', '002082.SZ', '002083.SZ', '002084.SZ', '002085.SZ', '002086.SZ', '002088.SZ', '002090.SZ', '002091.SZ', '002092.SZ', '002093.SZ', '002094.SZ', '002095.SZ', '002096.SZ', '002097.SZ', '002098.SZ', '002099.SZ', '002100.SZ', '002101.SZ', '002102.SZ', '002103.SZ', '002104.SZ', '002105.SZ', '002106.SZ', '002107.SZ', '002108.SZ', '002109.SZ', '002110.SZ', '002111.SZ', '002112.SZ', '002114.SZ', '002115.SZ', '002116.SZ', '002117.SZ', '002119.SZ', '002120.SZ', '002121.SZ', '002122.SZ', '002123.SZ', '002124.SZ', '002125.SZ', '002126.SZ', '002127.SZ', '002128.SZ', '002129.SZ', '002130.SZ', '002131.SZ', '002132.SZ', '002133.SZ', '002134.SZ', '002135.SZ', '002136.SZ', '002137.SZ', '002138.SZ', '002139.SZ', '002140.SZ', '002141.SZ', '002142.SZ', '002144.SZ', '002145.SZ', '002146.SZ', '002148.SZ', '002149.SZ', '002150.SZ', '002151.SZ', '002152.SZ', '002153.SZ', '002154.SZ', '002155.SZ', '002156.SZ', '002157.SZ', '002158.SZ', '002159.SZ', '002160.SZ', '002161.SZ', '002162.SZ', '002163.SZ', '002164.SZ', '002165.SZ', '002166.SZ', '002167.SZ', '002168.SZ', '002169.SZ', '002170.SZ', '002171.SZ', '002172.SZ', '002173.SZ', '002174.SZ', '002175.SZ', '002176.SZ', '002177.SZ', '002178.SZ', '002179.SZ', '002180.SZ', '002181.SZ', '002182.SZ', '002183.SZ', '002184.SZ', '002185.SZ', '002186.SZ', '002187.SZ', '002188.SZ', '002189.SZ', '002190.SZ', '002191.SZ', '002192.SZ', '002193.SZ', '002194.SZ', '002195.SZ', '002196.SZ', '002197.SZ', '002198.SZ', '002199.SZ', '002200.SZ', '002201.SZ', '002202.SZ', '002203.SZ', '002204.SZ', '002205.SZ', '002206.SZ', '002207.SZ', '002208.SZ', '002209.SZ', '002210.SZ', '002211.SZ', '002212.SZ', '002213.SZ', '002214.SZ', '002215.SZ', '002216.SZ', '002217.SZ', '002218.SZ', '002219.SZ', '002221.SZ', '002222.SZ', '002223.SZ', '002224.SZ', '002225.SZ', '002226.SZ', '002227.SZ', '002228.SZ', '002229.SZ', '002230.SZ', '002231.SZ', '002232.SZ', '002233.SZ', '002234.SZ', '002235.SZ', '002236.SZ', '002237.SZ', '002238.SZ', '002239.SZ', '002240.SZ', '002241.SZ', '002242.SZ', '002243.SZ', '002244.SZ', '002245.SZ', '002246.SZ', '002247.SZ', '002248.SZ', '002249.SZ', '002250.SZ', '002251.SZ', '002252.SZ', '002253.SZ', '002254.SZ', '002255.SZ', '002256.SZ', '002258.SZ', '002259.SZ', '002261.SZ', '002262.SZ', '002263.SZ', '002264.SZ', '002265.SZ', '002266.SZ', '002267.SZ', '002268.SZ', '002269.SZ', '002270.SZ', '002271.SZ', '002272.SZ', '002273.SZ', '002274.SZ', '002275.SZ', '002276.SZ', '002277.SZ', '002278.SZ', '002279.SZ', '002281.SZ', '002282.SZ', '002283.SZ', '002284.SZ', '002285.SZ', '002286.SZ', '002287.SZ', '002289.SZ', '002290.SZ', '002291.SZ', '002292.SZ', '002293.SZ', '002294.SZ', '002295.SZ', '002296.SZ', '002297.SZ', '002298.SZ', '002299.SZ', '002300.SZ', '002301.SZ', '002302.SZ', '002303.SZ', '002304.SZ', '002305.SZ', '002306.SZ', '002307.SZ', '002309.SZ', '002310.SZ', '002311.SZ', '002312.SZ', '002313.SZ', '002314.SZ', '002315.SZ', '002316.SZ', '002317.SZ', '002318.SZ', '002319.SZ', '002320.SZ', '002321.SZ', '002322.SZ', '002323.SZ', '002324.SZ', '002326.SZ', '002327.SZ', '002328.SZ', '002329.SZ', '002330.SZ', '002331.SZ', '002332.SZ', '002333.SZ', '002334.SZ', '002335.SZ', '002336.SZ', '002337.SZ', '002338.SZ', '002339.SZ', '002340.SZ', '002342.SZ', '002343.SZ', '002344.SZ', '002345.SZ', '002346.SZ', '002347.SZ', '002348.SZ', '002349.SZ', '002350.SZ', '002351.SZ', '002352.SZ', '002353.SZ', '002354.SZ', '002355.SZ', '002356.SZ', '002357.SZ', '002358.SZ', '002360.SZ', '002361.SZ', '002362.SZ', '002363.SZ', '002364.SZ', '002365.SZ', '002366.SZ', '002367.SZ', '002368.SZ', '002369.SZ', '002370.SZ', '002371.SZ', '002372.SZ', '002373.SZ', '002374.SZ', '002375.SZ', '002376.SZ', '002377.SZ', '002378.SZ', '002379.SZ', '002380.SZ', '002381.SZ', '002382.SZ', '002383.SZ', '002384.SZ', '002385.SZ', '002386.SZ', '002387.SZ', '002388.SZ', '002389.SZ', '002390.SZ', '002391.SZ', '002392.SZ', '002393.SZ', '002394.SZ', '002395.SZ', '002396.SZ', '002397.SZ', '002398.SZ', '002399.SZ', '002400.SZ', '002401.SZ', '002402.SZ', '002403.SZ', '002404.SZ', '002405.SZ', '002406.SZ', '002407.SZ', '002408.SZ', '002409.SZ', '002410.SZ', '002412.SZ', '002413.SZ', '002414.SZ', '002415.SZ', '002416.SZ', '002418.SZ', '002419.SZ', '002420.SZ', '002421.SZ', '002422.SZ', '002423.SZ', '002424.SZ', '002425.SZ', '002426.SZ', '002427.SZ', '002428.SZ', '002429.SZ', '002430.SZ', '002431.SZ', '002432.SZ', '002434.SZ', '002436.SZ', '002437.SZ', '002438.SZ', '002439.SZ', '002440.SZ', '002441.SZ', '002442.SZ', '002443.SZ', '002444.SZ', '002445.SZ', '002446.SZ', '002448.SZ', '002449.SZ', '002451.SZ', '002452.SZ', '002453.SZ', '002454.SZ', '002455.SZ', '002456.SZ', '002457.SZ', '002458.SZ', '002459.SZ', '002460.SZ', '002461.SZ', '002462.SZ', '002463.SZ', '002465.SZ', '002466.SZ', '002467.SZ', '002468.SZ', '002469.SZ', '002470.SZ', '002471.SZ', '002472.SZ', '002474.SZ', '002475.SZ', '002476.SZ', '002478.SZ', '002479.SZ', '002480.SZ', '002481.SZ', '002482.SZ', '002483.SZ', '002484.SZ', '002485.SZ', '002486.SZ', '002487.SZ', '002488.SZ', '002489.SZ', '002490.SZ', '002491.SZ', '002492.SZ', '002493.SZ', '002494.SZ', '002495.SZ', '002496.SZ', '002497.SZ', '002498.SZ', '002500.SZ', '002501.SZ', '002506.SZ', '002507.SZ', '002508.SZ', '002510.SZ', '002511.SZ', '002512.SZ', '002513.SZ', '002514.SZ', '002515.SZ', '002516.SZ', '002517.SZ', '002518.SZ', '002519.SZ', '002520.SZ', '002521.SZ', '002522.SZ', '002523.SZ', '002524.SZ', '002526.SZ', '002527.SZ', '002528.SZ', '002529.SZ', '002530.SZ', '002531.SZ', '002532.SZ', '002533.SZ', '002534.SZ', '002535.SZ', '002536.SZ', '002537.SZ', '002538.SZ', '002539.SZ', '002540.SZ', '002541.SZ', '002542.SZ', '002543.SZ', '002544.SZ', '002545.SZ', '002546.SZ', '002547.SZ', '002548.SZ', '002549.SZ', '002550.SZ', '002551.SZ', '002552.SZ', '002553.SZ', '002554.SZ', '002555.SZ', '002556.SZ', '002557.SZ', '002558.SZ', '002559.SZ', '002560.SZ', '002561.SZ', '002562.SZ', '002563.SZ', '002564.SZ', '002565.SZ', '002566.SZ', '002567.SZ', '002568.SZ', '002569.SZ', '002570.SZ', '002571.SZ', '002572.SZ', '002573.SZ', '002574.SZ', '002575.SZ', '002576.SZ', '002577.SZ', '002578.SZ', '002579.SZ', '002580.SZ', '002581.SZ', '002582.SZ', '002583.SZ', '002584.SZ', '002585.SZ', '002586.SZ', '002587.SZ', '002588.SZ', '002589.SZ', '002590.SZ', '002591.SZ', '002592.SZ', '002593.SZ', '002594.SZ', '002595.SZ', '002596.SZ', '002597.SZ', '002598.SZ', '002599.SZ', '002600.SZ', '002601.SZ', '002602.SZ', '002603.SZ', '002605.SZ', '002606.SZ', '002607.SZ', '002608.SZ', '002609.SZ', '002611.SZ', '002612.SZ', '002613.SZ', '002614.SZ', '002615.SZ', '002616.SZ', '002617.SZ', '002620.SZ', '002622.SZ', '002623.SZ', '002624.SZ', '002625.SZ', '002626.SZ', '002627.SZ', '002628.SZ', '002629.SZ', '002630.SZ', '002631.SZ', '002632.SZ', '002633.SZ', '002634.SZ', '002635.SZ', '002636.SZ', '002637.SZ', '002638.SZ', '002639.SZ', '002640.SZ', '002641.SZ', '002642.SZ', '002643.SZ', '002644.SZ', '002645.SZ', '002646.SZ', '002647.SZ', '002648.SZ', '002649.SZ', '002650.SZ', '002651.SZ', '002652.SZ', '002653.SZ', '002654.SZ', '002655.SZ', '002656.SZ', '002657.SZ', '002658.SZ', '002659.SZ', '002660.SZ', '002661.SZ', '002662.SZ', '002663.SZ', '002664.SZ', '002666.SZ', '002667.SZ', '002668.SZ', '002669.SZ', '002670.SZ', '002671.SZ', '002672.SZ', '002673.SZ', '002674.SZ', '002675.SZ', '002676.SZ', '002677.SZ', '002678.SZ', '002679.SZ', '002681.SZ', '002682.SZ', '002683.SZ', '002685.SZ', '002686.SZ', '002687.SZ', '002688.SZ', '002689.SZ', '002690.SZ', '002691.SZ', '002692.SZ', '002693.SZ', '002694.SZ', '002695.SZ', '002696.SZ', '002697.SZ', '002698.SZ', '002700.SZ', '002701.SZ', '002702.SZ', '002703.SZ', '002705.SZ', '002706.SZ', '002707.SZ', '002708.SZ', '002709.SZ', '002712.SZ', '002713.SZ', '002714.SZ', '002715.SZ', '002716.SZ', '002717.SZ', '002718.SZ', '002719.SZ', '002721.SZ', '002722.SZ', '002723.SZ', '002724.SZ', '002725.SZ', '002726.SZ', '002727.SZ', '002728.SZ', '002729.SZ', '002730.SZ', '002731.SZ', '002732.SZ', '002733.SZ', '002734.SZ', '002735.SZ', '002736.SZ', '002737.SZ', '002738.SZ', '002739.SZ', '002741.SZ', '002742.SZ', '002743.SZ', '002745.SZ', '002746.SZ', '002747.SZ', '002748.SZ', '002749.SZ', '002750.SZ', '002752.SZ', '002753.SZ', '002755.SZ', '002756.SZ', '002757.SZ', '002758.SZ', '002759.SZ', '002760.SZ', '002761.SZ', '002762.SZ', '002763.SZ', '002765.SZ', '002766.SZ', '002767.SZ', '002768.SZ', '002769.SZ', '002771.SZ', '002772.SZ', '002773.SZ', '002774.SZ', '002775.SZ', '002777.SZ', '002778.SZ', '002779.SZ', '002780.SZ', '002782.SZ', '002783.SZ', '002785.SZ', '002786.SZ', '002787.SZ', '002788.SZ', '002789.SZ', '002790.SZ', '002791.SZ', '002792.SZ', '002793.SZ', '002795.SZ', '002796.SZ', '002797.SZ', '002798.SZ', '002799.SZ', '002800.SZ', '002801.SZ', '002802.SZ', '002803.SZ', '002805.SZ', '002806.SZ', '002807.SZ', '002808.SZ', '002809.SZ', '002810.SZ', '002811.SZ', '002812.SZ', '002813.SZ', '002815.SZ', '002816.SZ', '002817.SZ', '002818.SZ', '002819.SZ', '002820.SZ', '002821.SZ', '002822.SZ', '002823.SZ', '002824.SZ', '002825.SZ', '002826.SZ', '002827.SZ', '002828.SZ', '002829.SZ', '002830.SZ', '002831.SZ', '002832.SZ', '002833.SZ', '002835.SZ', '002836.SZ', '002837.SZ', '002838.SZ', '002839.SZ', '002840.SZ', '002841.SZ', '002842.SZ', '002843.SZ', '002845.SZ', '002846.SZ', '002847.SZ', '002848.SZ', '002849.SZ', '002850.SZ', '002851.SZ', '002852.SZ', '002853.SZ', '002855.SZ', '002856.SZ', '002857.SZ', '002858.SZ', '002859.SZ', '002860.SZ', '002861.SZ', '002862.SZ', '002863.SZ', '002864.SZ', '002865.SZ', '002866.SZ', '002867.SZ', '002868.SZ', '002869.SZ', '002870.SZ', '002871.SZ', '002872.SZ', '002873.SZ', '002875.SZ', '002876.SZ', '002877.SZ', '002878.SZ', '002879.SZ', '002880.SZ', '002881.SZ', '002882.SZ', '002883.SZ', '002884.SZ', '002885.SZ', '002886.SZ', '002887.SZ', '002888.SZ', '002889.SZ', '002890.SZ', '002891.SZ', '002892.SZ', '002893.SZ', '002895.SZ', '002896.SZ', '002897.SZ', '002898.SZ', '002899.SZ', '002900.SZ', '002901.SZ', '002902.SZ', '002903.SZ', '002905.SZ', '002906.SZ', '002907.SZ', '002908.SZ', '002909.SZ', '002910.SZ', '002911.SZ', '002912.SZ', '002913.SZ', '002915.SZ', '002916.SZ', '002917.SZ', '002918.SZ', '002919.SZ', '002920.SZ', '002921.SZ', '002922.SZ', '002923.SZ', '002925.SZ', '002926.SZ', '002927.SZ', '002928.SZ', '002929.SZ', '002930.SZ', '002931.SZ', '002932.SZ', '002933.SZ', '002935.SZ', '002936.SZ', '002937.SZ', '002938.SZ', '002939.SZ', '002940.SZ', '002941.SZ', '002942.SZ', '002943.SZ', '002945.SZ', '002946.SZ', '002947.SZ', '002948.SZ', '002949.SZ', '002950.SZ', '002951.SZ', '002952.SZ', '002953.SZ', '002955.SZ', '002956.SZ', '002957.SZ', '002958.SZ', '002959.SZ', '002960.SZ', '002961.SZ', '002962.SZ', '002963.SZ', '002965.SZ', '002966.SZ', '002967.SZ', '002968.SZ', '002969.SZ', '002970.SZ', '002971.SZ', '002972.SZ', '002973.SZ', '002975.SZ', '002976.SZ', '002977.SZ', '002978.SZ', '002979.SZ', '002980.SZ', '002981.SZ', '002982.SZ', '002983.SZ', '002984.SZ', '002985.SZ', '002986.SZ', '002987.SZ', '002988.SZ', '002989.SZ', '002990.SZ', '002991.SZ', '002992.SZ', '002993.SZ', '002995.SZ', '002996.SZ', '002997.SZ', '002998.SZ', '002999.SZ', '003000.SZ', '003001.SZ', '003002.SZ', '003003.SZ', '003004.SZ', '003005.SZ', '003006.SZ', '003007.SZ', '003008.SZ', '003009.SZ', '003010.SZ', '003011.SZ', '003012.SZ', '003013.SZ', '003015.SZ', '003016.SZ', '003017.SZ', '003018.SZ', '003019.SZ', '003020.SZ', '003021.SZ', '003022.SZ', '003023.SZ', '003025.SZ', '003026.SZ', '003027.SZ', '003028.SZ', '003029.SZ', '003030.SZ', '003031.SZ', '003032.SZ', '003033.SZ', '003035.SZ', '003036.SZ', '003037.SZ', '003038.SZ', '003039.SZ', '003040.SZ', '003041.SZ', '003042.SZ', '003043.SZ', '003816.SZ', '688001.SS', '688002.SS', '688003.SS', '688004.SS', '688005.SS', '688006.SS', '688007.SS', '688008.SS', '688009.SS', '688010.SS', '688011.SS', '688012.SS', '688013.SS', '688015.SS', '688016.SS', '688017.SS', '688018.SS', '688019.SS', '688020.SS', '688021.SS', '688022.SS', '688023.SS', '688025.SS', '688026.SS', '688027.SS', '688028.SS', '688029.SS', '688030.SS', '688031.SS', '688032.SS', '688033.SS', '688035.SS', '688036.SS', '688037.SS', '688038.SS', '688039.SS', '688041.SS', '688045.SS', '688046.SS', '688047.SS', '688048.SS', '688049.SS', '688050.SS', '688051.SS', '688052.SS', '688053.SS', '688055.SS', '688056.SS', '688057.SS', '688058.SS', '688059.SS', '688060.SS', '688061.SS', '688062.SS', '688063.SS', '688065.SS', '688066.SS', '688067.SS', '688068.SS', '688069.SS', '688070.SS', '688071.SS', '688072.SS', '688073.SS', '688075.SS', '688076.SS', '688077.SS', '688078.SS', '688079.SS', '688080.SS', '688081.SS', '688082.SS', '688083.SS', '688084.SS', '688085.SS', '688087.SS', '688088.SS', '688089.SS', '688090.SS', '688091.SS', '688092.SS', '688093.SS', '688095.SS', '688096.SS', '688097.SS', '688098.SS', '688099.SS', '688100.SS', '688101.SS', '688102.SS', '688103.SS', '688105.SS', '688106.SS', '688107.SS', '688108.SS', '688109.SS', '688110.SS', '688111.SS', '688112.SS', '688113.SS', '688114.SS', '688115.SS', '688116.SS', '688117.SS', '688118.SS', '688119.SS', '688120.SS', '688121.SS', '688122.SS', '688123.SS', '688125.SS', '688126.SS', '688127.SS', '688128.SS', '688129.SS', '688130.SS', '688131.SS', '688132.SS', '688133.SS', '688135.SS', '688136.SS', '688137.SS', '688138.SS', '688139.SS', '688141.SS', '688143.SS', '688146.SS', '688147.SS', '688148.SS', '688150.SS', '688151.SS', '688152.SS', '688153.SS', '688155.SS', '688156.SS', '688157.SS', '688158.SS', '688159.SS', '688160.SS', '688161.SS', '688162.SS', '688163.SS', '688165.SS', '688166.SS', '688167.SS', '688168.SS', '688169.SS', '688170.SS', '688171.SS', '688172.SS', '688173.SS', '688175.SS', '688176.SS', '688177.SS', '688178.SS', '688179.SS', '688180.SS', '688181.SS', '688182.SS', '688183.SS', '688184.SS', '688185.SS', '688186.SS', '688187.SS', '688188.SS', '688189.SS', '688190.SS', '688191.SS', '688192.SS', '688193.SS', '688195.SS', '688196.SS', '688197.SS', '688198.SS', '688199.SS', '688200.SS', '688201.SS', '688202.SS', '688203.SS', '688205.SS', '688206.SS', '688207.SS', '688208.SS', '688209.SS', '688210.SS', '688211.SS', '688212.SS', '688213.SS', '688215.SS', '688216.SS', '688217.SS', '688218.SS', '688219.SS', '688220.SS', '688221.SS', '688222.SS', '688223.SS', '688225.SS', '688226.SS', '688227.SS', '688228.SS', '688229.SS', '688230.SS', '688231.SS', '688232.SS', '688233.SS', '688234.SS', '688235.SS', '688236.SS', '688237.SS', '688238.SS', '688239.SS', '688244.SS', '688246.SS', '688247.SS', '688248.SS', '688249.SS', '688251.SS', '688252.SS', '688253.SS', '688255.SS', '688256.SS', '688257.SS', '688258.SS', '688259.SS', '688260.SS', '688261.SS', '688262.SS', '688265.SS', '688266.SS', '688267.SS', '688268.SS', '688269.SS', '688270.SS', '688271.SS', '688272.SS', '688273.SS', '688275.SS', '688276.SS', '688277.SS', '688278.SS', '688279.SS', '688280.SS', '688281.SS', '688282.SS', '688283.SS', '688285.SS', '688286.SS', '688287.SS', '688288.SS', '688289.SS', '688290.SS', '688291.SS', '688292.SS', '688293.SS', '688295.SS', '688296.SS', '688297.SS', '688298.SS', '688299.SS', '688300.SS', '688301.SS', '688302.SS', '688303.SS', '688305.SS', '688306.SS', '688307.SS', '688308.SS', '688309.SS', '688310.SS', '688311.SS', '688312.SS', '688313.SS', '688314.SS', '688315.SS', '688316.SS', '688317.SS', '688318.SS', '688319.SS', '688320.SS', '688321.SS', '688322.SS', '688323.SS', '688325.SS', '688326.SS', '688327.SS', '688328.SS', '688329.SS', '688330.SS', '688331.SS', '688332.SS', '688333.SS', '688334.SS', '688335.SS', '688336.SS', '688337.SS', '688338.SS', '688339.SS', '688343.SS', '688345.SS', '688347.SS', '688348.SS', '688349.SS', '688350.SS', '688351.SS', '688352.SS', '688353.SS', '688355.SS', '688356.SS', '688357.SS', '688358.SS', '688359.SS', '688360.SS', '688361.SS', '688362.SS', '688363.SS', '688365.SS', '688366.SS', '688367.SS', '688368.SS', '688369.SS', '688370.SS', '688371.SS', '688372.SS', '688373.SS', '688375.SS', '688376.SS', '688377.SS', '688378.SS', '688379.SS', '688380.SS', '688381.SS', '688382.SS', '688383.SS', '688385.SS', '688386.SS', '688387.SS', '688388.SS', '688389.SS', '688390.SS', '688391.SS', '688392.SS', '688393.SS', '688395.SS', '688396.SS', '688398.SS', '688399.SS', '688400.SS', '688401.SS', '688403.SS', '688408.SS', '688409.SS', '688410.SS', '688411.SS', '688416.SS', '688418.SS', '688419.SS', '688420.SS', '688425.SS', '688426.SS', '688428.SS', '688429.SS', '688432.SS', '688433.SS', '688435.SS', '688439.SS', '688443.SS', '688448.SS', '688449.SS', '688450.SS', '688455.SS', '688456.SS', '688458.SS', '688459.SS', '688466.SS', '688468.SS', '688469.SS', '688472.SS', '688475.SS', '688478.SS', '688479.SS', '688480.SS', '688484.SS', '688485.SS', '688486.SS', '688488.SS', '688489.SS', '688496.SS', '688498.SS', '688499.SS', '688500.SS', '688501.SS', '688502.SS', '688503.SS', '688505.SS', '688506.SS', '688507.SS', '688508.SS', '688509.SS', '688510.SS', '688511.SS', '688512.SS', '688513.SS', '688515.SS', '688516.SS', '688517.SS', '688518.SS', '688519.SS', '688520.SS', '688521.SS', '688522.SS', '688523.SS', '688525.SS', '688526.SS', '688528.SS', '688529.SS', '688530.SS', '688531.SS', '688533.SS', '688535.SS', '688536.SS', '688538.SS', '688539.SS', '688543.SS', '688545.SS', '688548.SS', '688549.SS', '688550.SS', '688551.SS', '688552.SS', '688553.SS', '688556.SS', '688557.SS', '688558.SS', '688559.SS', '688560.SS', '688561.SS', '688562.SS', '688563.SS', '688565.SS', '688566.SS', '688567.SS', '688568.SS', '688569.SS', '688570.SS', '688571.SS', '688573.SS', '688575.SS', '688576.SS', '688577.SS', '688578.SS', '688579.SS', '688580.SS', '688581.SS', '688582.SS', '688583.SS', '688584.SS', '688585.SS', '688586.SS', '688588.SS', '688589.SS', '688590.SS', '688591.SS', '688592.SS', '688593.SS', '688595.SS', '688596.SS', '688597.SS', '688598.SS', '688599.SS', '688600.SS', '688601.SS', '688602.SS', '688603.SS', '688605.SS', '688606.SS', '688607.SS', '688608.SS', '688609.SS', '688610.SS', '688611.SS', '688612.SS', '688613.SS', '688615.SS', '688616.SS', '688617.SS', '688618.SS', '688619.SS', '688620.SS', '688621.SS', '688622.SS', '688623.SS', '688625.SS', '688626.SS', '688627.SS', '688628.SS', '688629.SS', '688630.SS', '688631.SS', '688633.SS', '688636.SS', '688638.SS', '688639.SS', '688646.SS', '688648.SS', '688651.SS', '688652.SS', '688653.SS', '688655.SS', '688656.SS', '688657.SS', '688658.SS', '688659.SS', '688660.SS', '688661.SS', '688662.SS', '688663.SS', '688665.SS', '688667.SS', '688668.SS', '688669.SS', '688670.SS', '688671.SS', '688676.SS', '688677.SS', '688678.SS', '688679.SS', '688680.SS', '688681.SS', '688682.SS', '688683.SS', '688685.SS', '688686.SS', '688687.SS', '688689.SS', '688690.SS', '688691.SS', '688692.SS', '688693.SS', '688695.SS', '688696.SS', '688697.SS', '688698.SS', '688699.SS', '688700.SS', '688701.SS', '688702.SS', '688707.SS', '688708.SS', '688709.SS', '688710.SS', '688711.SS', '688716.SS', '688717.SS', '688718.SS', '688719.SS', '688720.SS', '688721.SS', '688722.SS', '688726.SS', '688728.SS', '688733.SS', '688737.SS', '688739.SS', '688750.SS', '688758.SS', '688766.SS', '688767.SS', '688768.SS', '688772.SS', '688776.SS', '688777.SS', '688778.SS', '688779.SS', '688786.SS', '688787.SS', '688788.SS', '688789.SS', '688793.SS', '688798.SS', '688799.SS', '688800.SS', '688819.SS', '688981.SS', '689009.SS', '300001.SZ', '300002.SZ', '300003.SZ', '300004.SZ', '300005.SZ', '300006.SZ', '300007.SZ', '300008.SZ', '300009.SZ', '300010.SZ', '300011.SZ', '300012.SZ', '300013.SZ', '300014.SZ', '300015.SZ', '300016.SZ', '300017.SZ', '300018.SZ', '300019.SZ', '300020.SZ', '300021.SZ', '300022.SZ', '300024.SZ', '300025.SZ', '300026.SZ', '300027.SZ', '300029.SZ', '300030.SZ', '300031.SZ', '300032.SZ', '300033.SZ', '300034.SZ', '300035.SZ', '300036.SZ', '300037.SZ', '300039.SZ', '300040.SZ', '300041.SZ', '300042.SZ', '300043.SZ', '300044.SZ', '300045.SZ', '300046.SZ', '300047.SZ', '300048.SZ', '300049.SZ', '300050.SZ', '300051.SZ', '300052.SZ', '300053.SZ', '300054.SZ', '300055.SZ', '300056.SZ', '300057.SZ', '300058.SZ', '300059.SZ', '300061.SZ', '300062.SZ', '300063.SZ', '300065.SZ', '300066.SZ', '300067.SZ', '300068.SZ', '300069.SZ', '300070.SZ', '300071.SZ', '300072.SZ', '300073.SZ', '300074.SZ', '300075.SZ', '300076.SZ', '300077.SZ', '300078.SZ', '300079.SZ', '300080.SZ', '300081.SZ', '300082.SZ', '300083.SZ', '300084.SZ', '300085.SZ', '300086.SZ', '300087.SZ', '300088.SZ', '300091.SZ', '300092.SZ', '300093.SZ', '300094.SZ', '300095.SZ', '300096.SZ', '300097.SZ', '300098.SZ', '300099.SZ', '300100.SZ', '300101.SZ', '300102.SZ', '300103.SZ', '300105.SZ', '300106.SZ', '300107.SZ', '300108.SZ', '300109.SZ', '300110.SZ', '300111.SZ', '300112.SZ', '300113.SZ', '300115.SZ', '300117.SZ', '300118.SZ', '300119.SZ', '300120.SZ', '300121.SZ', '300122.SZ', '300123.SZ', '300124.SZ', '300125.SZ', '300126.SZ', '300127.SZ', '300128.SZ', '300129.SZ', '300130.SZ', '300131.SZ', '300132.SZ', '300133.SZ', '300134.SZ', '300135.SZ', '300136.SZ', '300137.SZ', '300138.SZ', '300139.SZ', '300140.SZ', '300141.SZ', '300142.SZ', '300143.SZ', '300144.SZ', '300145.SZ', '300146.SZ', '300147.SZ', '300148.SZ', '300149.SZ', '300150.SZ', '300151.SZ', '300152.SZ', '300153.SZ', '300154.SZ', '300155.SZ', '300157.SZ', '300158.SZ', '300159.SZ', '300160.SZ', '300161.SZ', '300162.SZ', '300163.SZ', '300164.SZ', '300165.SZ', '300166.SZ', '300167.SZ', '300168.SZ', '300169.SZ', '300170.SZ', '300171.SZ', '300172.SZ', '300173.SZ', '300174.SZ', '300175.SZ', '300176.SZ', '300177.SZ', '300179.SZ', '300180.SZ', '300181.SZ', '300182.SZ', '300183.SZ', '300184.SZ', '300185.SZ', '300187.SZ', '300188.SZ', '300189.SZ', '300190.SZ', '300191.SZ', '300192.SZ', '300193.SZ', '300194.SZ', '300195.SZ', '300196.SZ', '300197.SZ', '300198.SZ', '300199.SZ', '300200.SZ', '300201.SZ', '300203.SZ', '300204.SZ', '300205.SZ', '300206.SZ', '300207.SZ', '300208.SZ', '300209.SZ', '300210.SZ', '300211.SZ', '300212.SZ', '300213.SZ', '300214.SZ', '300215.SZ', '300217.SZ', '300218.SZ', '300219.SZ', '300220.SZ', '300221.SZ', '300222.SZ', '300223.SZ', '300224.SZ', '300225.SZ', '300226.SZ', '300227.SZ', '300228.SZ', '300229.SZ', '300230.SZ', '300231.SZ', '300232.SZ', '300233.SZ', '300234.SZ', '300235.SZ', '300236.SZ', '300237.SZ', '300238.SZ', '300239.SZ', '300240.SZ', '300241.SZ', '300242.SZ', '300243.SZ', '300244.SZ', '300245.SZ', '300246.SZ', '300247.SZ', '300248.SZ', '300249.SZ', '300250.SZ', '300251.SZ', '300252.SZ', '300253.SZ', '300254.SZ', '300255.SZ', '300256.SZ', '300257.SZ', '300258.SZ', '300259.SZ', '300260.SZ', '300261.SZ', '300263.SZ', '300264.SZ', '300265.SZ', '300266.SZ', '300267.SZ', '300268.SZ', '300269.SZ', '300270.SZ', '300271.SZ', '300272.SZ', '300274.SZ', '300275.SZ', '300276.SZ', '300277.SZ', '300278.SZ', '300279.SZ', '300280.SZ', '300281.SZ', '300283.SZ', '300284.SZ', '300285.SZ', '300286.SZ', '300287.SZ', '300288.SZ', '300289.SZ', '300290.SZ', '300291.SZ', '300292.SZ', '300293.SZ', '300294.SZ', '300295.SZ', '300296.SZ', '300298.SZ', '300299.SZ', '300300.SZ', '300301.SZ', '300302.SZ', '300303.SZ', '300304.SZ', '300305.SZ', '300306.SZ', '300307.SZ', '300308.SZ', '300310.SZ', '300311.SZ', '300313.SZ', '300314.SZ', '300315.SZ', '300316.SZ', '300317.SZ', '300318.SZ', '300319.SZ', '300320.SZ', '300321.SZ', '300322.SZ', '300323.SZ', '300324.SZ', '300326.SZ', '300327.SZ', '300328.SZ', '300329.SZ', '300331.SZ', '300332.SZ', '300333.SZ', '300334.SZ', '300335.SZ', '300337.SZ', '300338.SZ', '300339.SZ', '300340.SZ', '300341.SZ', '300342.SZ', '300343.SZ', '300344.SZ', '300345.SZ', '300346.SZ', '300347.SZ', '300348.SZ', '300349.SZ', '300350.SZ', '300351.SZ', '300352.SZ', '300353.SZ', '300354.SZ', '300355.SZ', '300357.SZ', '300358.SZ', '300359.SZ', '300360.SZ', '300363.SZ', '300364.SZ', '300365.SZ', '300366.SZ', '300368.SZ', '300369.SZ', '300370.SZ', '300371.SZ', '300373.SZ', '300374.SZ', '300375.SZ', '300376.SZ', '300377.SZ', '300378.SZ', '300379.SZ', '300380.SZ', '300381.SZ', '300382.SZ', '300383.SZ', '300384.SZ', '300385.SZ', '300386.SZ', '300387.SZ', '300388.SZ', '300389.SZ', '300390.SZ', '300391.SZ', '300393.SZ', '300394.SZ', '300395.SZ', '300396.SZ', '300397.SZ', '300398.SZ', '300399.SZ', '300400.SZ', '300401.SZ', '300402.SZ', '300403.SZ', '300404.SZ', '300405.SZ', '300406.SZ', '300407.SZ', '300408.SZ', '300409.SZ', '300410.SZ', '300411.SZ', '300412.SZ', '300413.SZ', '300414.SZ', '300415.SZ', '300416.SZ', '300417.SZ', '300418.SZ', '300419.SZ', '300420.SZ', '300421.SZ', '300422.SZ', '300423.SZ', '300424.SZ', '300425.SZ', '300426.SZ', '300427.SZ', '300428.SZ', '300429.SZ', '300430.SZ', '300432.SZ', '300433.SZ', '300434.SZ', '300435.SZ', '300436.SZ', '300437.SZ', '300438.SZ', '300439.SZ', '300440.SZ', '300441.SZ', '300442.SZ', '300443.SZ', '300444.SZ', '300445.SZ', '300446.SZ', '300447.SZ', '300448.SZ', '300449.SZ', '300450.SZ', '300451.SZ', '300452.SZ', '300453.SZ', '300454.SZ', '300455.SZ', '300456.SZ', '300457.SZ', '300458.SZ', '300459.SZ', '300460.SZ', '300461.SZ', '300462.SZ', '300463.SZ', '300464.SZ', '300465.SZ', '300466.SZ', '300467.SZ', '300468.SZ', '300469.SZ', '300470.SZ', '300471.SZ', '300472.SZ', '300473.SZ', '300474.SZ', '300475.SZ', '300476.SZ', '300477.SZ', '300478.SZ', '300479.SZ', '300480.SZ', '300481.SZ', '300482.SZ', '300483.SZ', '300484.SZ', '300485.SZ', '300486.SZ', '300487.SZ', '300488.SZ', '300489.SZ', '300490.SZ', '300491.SZ', '300492.SZ', '300493.SZ', '300494.SZ', '300496.SZ', '300497.SZ', '300498.SZ', '300499.SZ', '300500.SZ', '300501.SZ', '300502.SZ', '300503.SZ', '300504.SZ', '300505.SZ', '300506.SZ', '300507.SZ', '300508.SZ', '300509.SZ', '300510.SZ', '300511.SZ', '300512.SZ', '300513.SZ', '300514.SZ', '300515.SZ', '300516.SZ', '300517.SZ', '300518.SZ', '300519.SZ', '300520.SZ', '300521.SZ', '300522.SZ', '300523.SZ', '300525.SZ', '300527.SZ', '300528.SZ', '300529.SZ', '300530.SZ', '300531.SZ', '300532.SZ', '300533.SZ', '300534.SZ', '300535.SZ', '300536.SZ', '300537.SZ', '300538.SZ', '300539.SZ', '300540.SZ', '300541.SZ', '300542.SZ', '300543.SZ', '300545.SZ', '300546.SZ', '300547.SZ', '300548.SZ', '300549.SZ', '300550.SZ', '300551.SZ', '300552.SZ', '300553.SZ', '300554.SZ', '300555.SZ', '300556.SZ', '300557.SZ', '300558.SZ', '300559.SZ', '300560.SZ', '300561.SZ', '300562.SZ', '300563.SZ', '300564.SZ', '300565.SZ', '300566.SZ', '300567.SZ', '300568.SZ', '300569.SZ', '300570.SZ', '300571.SZ', '300572.SZ', '300573.SZ', '300575.SZ', '300576.SZ', '300577.SZ', '300578.SZ', '300579.SZ', '300580.SZ', '300581.SZ', '300582.SZ', '300583.SZ', '300584.SZ', '300585.SZ', '300586.SZ', '300587.SZ', '300588.SZ', '300589.SZ', '300590.SZ', '300591.SZ', '300592.SZ', '300593.SZ', '300594.SZ', '300595.SZ', '300596.SZ', '300597.SZ', '300598.SZ', '300599.SZ', '300600.SZ', '300601.SZ', '300602.SZ', '300603.SZ', '300604.SZ', '300605.SZ', '300606.SZ', '300607.SZ', '300608.SZ', '300609.SZ', '300610.SZ', '300611.SZ', '300612.SZ', '300613.SZ', '300614.SZ', '300615.SZ', '300616.SZ', '300617.SZ', '300618.SZ', '300619.SZ', '300620.SZ', '300621.SZ', '300622.SZ', '300623.SZ', '300624.SZ', '300625.SZ', '300626.SZ', '300627.SZ', '300628.SZ', '300629.SZ', '300630.SZ', '300631.SZ', '300632.SZ', '300633.SZ', '300634.SZ', '300635.SZ', '300636.SZ', '300637.SZ', '300638.SZ', '300639.SZ', '300640.SZ', '300641.SZ', '300642.SZ', '300643.SZ', '300644.SZ', '300645.SZ', '300647.SZ', '300648.SZ', '300649.SZ', '300650.SZ', '300651.SZ', '300652.SZ', '300653.SZ', '300654.SZ', '300655.SZ', '300656.SZ', '300657.SZ', '300658.SZ', '300659.SZ', '300660.SZ', '300661.SZ', '300662.SZ', '300663.SZ', '300664.SZ', '300665.SZ', '300666.SZ', '300667.SZ', '300668.SZ', '300669.SZ', '300670.SZ', '300671.SZ', '300672.SZ', '300673.SZ', '300674.SZ', '300675.SZ', '300676.SZ', '300677.SZ', '300678.SZ', '300679.SZ', '300680.SZ', '300681.SZ', '300682.SZ', '300683.SZ', '300684.SZ', '300685.SZ', '300686.SZ', '300687.SZ', '300688.SZ', '300689.SZ', '300690.SZ', '300691.SZ', '300692.SZ', '300693.SZ', '300694.SZ', '300695.SZ', '300696.SZ', '300697.SZ', '300698.SZ', '300699.SZ', '300700.SZ', '300701.SZ', '300702.SZ', '300703.SZ', '300705.SZ', '300706.SZ', '300707.SZ', '300708.SZ', '300709.SZ', '300710.SZ', '300711.SZ', '300712.SZ', '300713.SZ', '300715.SZ', '300716.SZ', '300717.SZ', '300718.SZ', '300719.SZ', '300720.SZ', '300721.SZ', '300722.SZ', '300723.SZ', '300724.SZ', '300725.SZ', '300726.SZ', '300727.SZ', '300729.SZ', '300730.SZ', '300731.SZ', '300732.SZ', '300733.SZ', '300735.SZ', '300736.SZ', '300737.SZ', '300738.SZ', '300739.SZ', '300740.SZ', '300741.SZ', '300743.SZ', '300745.SZ', '300746.SZ', '300747.SZ', '300748.SZ', '300749.SZ', '300750.SZ', '300751.SZ', '300752.SZ', '300753.SZ', '300755.SZ', '300756.SZ', '300757.SZ', '300758.SZ', '300759.SZ', '300760.SZ', '300761.SZ', '300762.SZ', '300763.SZ', '300765.SZ', '300766.SZ', '300767.SZ', '300768.SZ', '300769.SZ', '300770.SZ', '300771.SZ', '300772.SZ', '300773.SZ', '300774.SZ', '300775.SZ', '300776.SZ', '300777.SZ', '300778.SZ', '300779.SZ', '300780.SZ', '300781.SZ', '300782.SZ', '300783.SZ', '300784.SZ', '300785.SZ', '300786.SZ', '300787.SZ', '300788.SZ', '300789.SZ', '300790.SZ', '300791.SZ', '300792.SZ', '300793.SZ', '300795.SZ', '300796.SZ', '300797.SZ', '300798.SZ', '300800.SZ', '300801.SZ', '300802.SZ', '300803.SZ', '300804.SZ', '300805.SZ', '300806.SZ', '300807.SZ', '300808.SZ', '300809.SZ', '300810.SZ', '300811.SZ', '300812.SZ', '300813.SZ', '300814.SZ', '300815.SZ', '300816.SZ', '300817.SZ', '300818.SZ', '300819.SZ', '300820.SZ', '300821.SZ', '300822.SZ', '300823.SZ', '300824.SZ', '300825.SZ', '300826.SZ', '300827.SZ', '300828.SZ', '300829.SZ', '300830.SZ', '300831.SZ', '300832.SZ', '300833.SZ', '300834.SZ', '300835.SZ', '300836.SZ', '300837.SZ', '300838.SZ', '300839.SZ', '300840.SZ', '300841.SZ', '300842.SZ', '300843.SZ', '300844.SZ', '300845.SZ', '300846.SZ', '300847.SZ', '300848.SZ', '300849.SZ', '300850.SZ', '300851.SZ', '300852.SZ', '300853.SZ', '300854.SZ', '300855.SZ', '300856.SZ', '300857.SZ', '300858.SZ', '300859.SZ', '300860.SZ', '300861.SZ', '300862.SZ', '300863.SZ', '300864.SZ', '300865.SZ', '300866.SZ', '300867.SZ', '300868.SZ', '300869.SZ', '300870.SZ', '300871.SZ', '300872.SZ', '300873.SZ', '300875.SZ', '300876.SZ', '300877.SZ', '300878.SZ', '300879.SZ', '300880.SZ', '300881.SZ', '300882.SZ', '300883.SZ', '300884.SZ', '300885.SZ', '300886.SZ', '300887.SZ', '300888.SZ', '300889.SZ', '300890.SZ', '300891.SZ', '300892.SZ', '300893.SZ', '300894.SZ', '300895.SZ', '300896.SZ', '300897.SZ', '300898.SZ', '300899.SZ', '300900.SZ', '300901.SZ', '300902.SZ', '300903.SZ', '300904.SZ', '300905.SZ', '300906.SZ', '300907.SZ', '300908.SZ', '300909.SZ', '300910.SZ', '300911.SZ', '300912.SZ', '300913.SZ', '300915.SZ', '300916.SZ', '300917.SZ', '300918.SZ', '300919.SZ', '300920.SZ', '300921.SZ', '300922.SZ', '300923.SZ', '300925.SZ', '300926.SZ', '300927.SZ', '300928.SZ', '300929.SZ', '300930.SZ', '300931.SZ', '300932.SZ', '300933.SZ', '300935.SZ', '300936.SZ', '300937.SZ', '300938.SZ', '300939.SZ', '300940.SZ', '300941.SZ', '300942.SZ', '300943.SZ', '300945.SZ', '300946.SZ', '300947.SZ', '300948.SZ', '300949.SZ', '300950.SZ', '300951.SZ', '300952.SZ', '300953.SZ', '300955.SZ', '300956.SZ', '300957.SZ', '300958.SZ', '300959.SZ', '300960.SZ', '300961.SZ', '300962.SZ', '300963.SZ', '300964.SZ', '300965.SZ', '300966.SZ', '300967.SZ', '300968.SZ', '300969.SZ', '300970.SZ', '300971.SZ', '300972.SZ', '300973.SZ', '300975.SZ', '300976.SZ', '300977.SZ', '300978.SZ', '300979.SZ', '300980.SZ', '300981.SZ', '300982.SZ', '300983.SZ', '300984.SZ', '300985.SZ', '300986.SZ', '300987.SZ', '300988.SZ', '300989.SZ', '300990.SZ', '300991.SZ', '300992.SZ', '300993.SZ', '300994.SZ', '300995.SZ', '300996.SZ', '300997.SZ', '300998.SZ', '300999.SZ', '301000.SZ', '301001.SZ', '301002.SZ', '301003.SZ', '301004.SZ', '301005.SZ', '301006.SZ', '301007.SZ', '301008.SZ', '301009.SZ', '301010.SZ', '301011.SZ', '301012.SZ', '301013.SZ', '301015.SZ', '301016.SZ', '301017.SZ', '301018.SZ', '301019.SZ', '301020.SZ', '301021.SZ', '301022.SZ', '301023.SZ', '301024.SZ', '301025.SZ', '301026.SZ', '301027.SZ', '301028.SZ', '301029.SZ', '301030.SZ', '301031.SZ', '301032.SZ', '301033.SZ', '301035.SZ', '301036.SZ', '301037.SZ', '301038.SZ', '301039.SZ', '301040.SZ', '301041.SZ', '301042.SZ', '301043.SZ', '301045.SZ', '301046.SZ', '301047.SZ', '301048.SZ', '301049.SZ', '301050.SZ', '301051.SZ', '301052.SZ', '301053.SZ', '301055.SZ', '301056.SZ', '301057.SZ', '301058.SZ', '301059.SZ', '301060.SZ', '301061.SZ', '301062.SZ', '301063.SZ', '301065.SZ', '301066.SZ', '301067.SZ', '301068.SZ', '301069.SZ', '301070.SZ', '301071.SZ', '301072.SZ', '301073.SZ', '301075.SZ', '301076.SZ', '301077.SZ', '301078.SZ', '301079.SZ', '301080.SZ', '301081.SZ', '301082.SZ', '301083.SZ', '301085.SZ', '301086.SZ', '301087.SZ', '301088.SZ', '301089.SZ', '301090.SZ', '301091.SZ', '301092.SZ', '301093.SZ', '301095.SZ', '301096.SZ', '301097.SZ', '301098.SZ', '301099.SZ', '301100.SZ', '301101.SZ', '301102.SZ', '301103.SZ', '301105.SZ', '301106.SZ', '301107.SZ', '301108.SZ', '301109.SZ', '301110.SZ', '301111.SZ', '301112.SZ', '301113.SZ', '301115.SZ', '301116.SZ', '301117.SZ', '301118.SZ', '301119.SZ', '301120.SZ', '301121.SZ', '301122.SZ', '301123.SZ', '301125.SZ', '301126.SZ', '301127.SZ', '301128.SZ', '301129.SZ', '301130.SZ', '301131.SZ', '301132.SZ', '301133.SZ', '301135.SZ', '301136.SZ', '301137.SZ', '301138.SZ', '301139.SZ', '301141.SZ', '301148.SZ', '301149.SZ', '301150.SZ', '301151.SZ', '301152.SZ', '301153.SZ', '301155.SZ', '301156.SZ', '301157.SZ', '301158.SZ', '301159.SZ', '301160.SZ', '301161.SZ', '301162.SZ', '301163.SZ', '301165.SZ', '301166.SZ', '301167.SZ', '301168.SZ', '301169.SZ', '301170.SZ', '301171.SZ', '301172.SZ', '301173.SZ', '301175.SZ', '301176.SZ', '301177.SZ', '301178.SZ', '301179.SZ', '301180.SZ', '301181.SZ', '301182.SZ', '301183.SZ', '301185.SZ', '301186.SZ', '301187.SZ', '301188.SZ', '301189.SZ', '301190.SZ', '301191.SZ', '301192.SZ', '301193.SZ', '301195.SZ', '301196.SZ', '301197.SZ', '301198.SZ', '301199.SZ', '301200.SZ', '301201.SZ', '301202.SZ', '301203.SZ', '301205.SZ', '301206.SZ', '301207.SZ', '301208.SZ', '301209.SZ', '301210.SZ', '301211.SZ', '301212.SZ', '301213.SZ', '301215.SZ', '301216.SZ', '301217.SZ', '301218.SZ', '301219.SZ', '301220.SZ', '301221.SZ', '301222.SZ', '301223.SZ', '301225.SZ', '301226.SZ', '301227.SZ', '301228.SZ', '301229.SZ', '301230.SZ', '301231.SZ', '301232.SZ', '301233.SZ', '301234.SZ', '301235.SZ', '301236.SZ', '301237.SZ', '301238.SZ', '301239.SZ', '301246.SZ', '301248.SZ', '301251.SZ', '301252.SZ', '301255.SZ', '301256.SZ', '301257.SZ', '301258.SZ', '301259.SZ', '301260.SZ', '301261.SZ', '301262.SZ', '301263.SZ', '301265.SZ', '301266.SZ', '301267.SZ', '301268.SZ', '301269.SZ', '301270.SZ', '301272.SZ', '301273.SZ', '301275.SZ', '301276.SZ', '301277.SZ', '301278.SZ', '301279.SZ', '301280.SZ', '301281.SZ', '301282.SZ', '301283.SZ', '301285.SZ', '301286.SZ', '301287.SZ', '301288.SZ', '301289.SZ', '301290.SZ', '301291.SZ', '301292.SZ', '301293.SZ', '301295.SZ', '301296.SZ', '301297.SZ', '301298.SZ', '301299.SZ', '301300.SZ', '301301.SZ', '301302.SZ', '301303.SZ', '301305.SZ', '301306.SZ', '301307.SZ', '301308.SZ', '301309.SZ', '301310.SZ', '301311.SZ', '301312.SZ', '301313.SZ', '301314.SZ', '301315.SZ', '301316.SZ', '301317.SZ', '301318.SZ', '301319.SZ', '301320.SZ', '301321.SZ', '301322.SZ', '301323.SZ', '301325.SZ', '301326.SZ', '301327.SZ', '301328.SZ', '301329.SZ', '301330.SZ', '301331.SZ', '301332.SZ', '301333.SZ', '301335.SZ', '301336.SZ', '3013 查看全部
可以运行下面的代码:
def initialize(context):
# 初始化策略
g.security = "600570.SS"
set_universe(g.security)
run_daily(context, func,'20:13')
def handle_data(context, data):
print('公众号:可转债量化分析')
def func(context):
info = get_Ashares(date=None)
print(info)
它会打印沪深A股的代码:
北交所有83开头的,或者找一个北交所的股票代码,在输出里面找一下:
[code]2025-03-12 20:13:00 - INFO - ['600000.SS', '600004.SS', '600006.SS', '600007.SS', '600008.SS', '600009.SS', '600010.SS', '600011.SS', '600012.SS', '600015.SS', '600016.SS', '600017.SS', '600018.SS', '600019.SS', '600020.SS', '600021.SS', '600022.SS', '600023.SS', '600025.SS', '600026.SS', '600027.SS', '600028.SS', '600029.SS', '600030.SS', '600031.SS', '600032.SS', '600033.SS', '600035.SS', '600036.SS', '600037.SS', '600038.SS', '600039.SS', '600048.SS', '600050.SS', '600051.SS', '600052.SS', '600053.SS', '600054.SS', '600055.SS', '600056.SS', '600057.SS', '600058.SS', '600059.SS', '600060.SS', '600061.SS', '600062.SS', '600063.SS', '600064.SS', '600066.SS', '600067.SS', '600070.SS', '600071.SS', '600072.SS', '600073.SS', '600075.SS', '600076.SS', '600078.SS', '600079.SS', '600080.SS', '600081.SS', '600082.SS', '600084.SS', '600085.SS', '600088.SS', '600089.SS', '600094.SS', '600095.SS', '600096.SS', '600097.SS', '600098.SS', '600099.SS', '600100.SS', '600101.SS', '600103.SS', '600104.SS', '600105.SS', '600106.SS', '600107.SS', '600108.SS', '600109.SS', '600110.SS', '600111.SS', '600113.SS', '600114.SS', '600115.SS', '600116.SS', '600117.SS', '600118.SS', '600119.SS', '600120.SS', '600121.SS', '600123.SS', '600125.SS', '600126.SS', '600127.SS', '600128.SS', '600129.SS', '600130.SS', '600131.SS', '600132.SS', '600133.SS', '600135.SS', '600136.SS', '600137.SS', '600138.SS', '600141.SS', '600143.SS', '600148.SS', '600149.SS', '600150.SS', '600151.SS', '600152.SS', '600153.SS', '600155.SS', '600156.SS', '600157.SS', '600158.SS', '600159.SS', '600160.SS', '600161.SS', '600162.SS', '600163.SS', '600165.SS', '600166.SS', '600167.SS', '600168.SS', '600169.SS', '600170.SS', '600171.SS', '600172.SS', '600173.SS', '600176.SS', '600177.SS', '600178.SS', '600179.SS', '600180.SS', '600182.SS', '600183.SS', '600184.SS', '600185.SS', '600186.SS', '600187.SS', '600188.SS', '600189.SS', '600190.SS', '600191.SS', '600192.SS', '600193.SS', '600195.SS', '600196.SS', '600197.SS', '600198.SS', '600199.SS', '600200.SS', '600201.SS', '600202.SS', '600203.SS', '600206.SS', '600207.SS', '600208.SS', '600210.SS', '600211.SS', '600212.SS', '600215.SS', '600216.SS', '600217.SS', '600218.SS', '600219.SS', '600221.SS', '600222.SS', '600223.SS', '600226.SS', '600227.SS', '600228.SS', '600229.SS', '600230.SS', '600231.SS', '600232.SS', '600233.SS', '600234.SS', '600235.SS', '600236.SS', '600237.SS', '600238.SS', '600239.SS', '600241.SS', '600243.SS', '600246.SS', '600248.SS', '600249.SS', '600250.SS', '600251.SS', '600252.SS', '600255.SS', '600256.SS', '600257.SS', '600258.SS', '600259.SS', '600261.SS', '600262.SS', '600265.SS', '600266.SS', '600267.SS', '600268.SS', '600269.SS', '600271.SS', '600272.SS', '600273.SS', '600276.SS', '600278.SS', '600279.SS', '600280.SS', '600281.SS', '600282.SS', '600283.SS', '600284.SS', '600285.SS', '600287.SS', '600288.SS', '600289.SS', '600292.SS', '600293.SS', '600295.SS', '600298.SS', '600299.SS', '600300.SS', '600301.SS', '600302.SS', '600303.SS', '600305.SS', '600307.SS', '600308.SS', '600309.SS', '600310.SS', '600312.SS', '600313.SS', '600315.SS', '600316.SS', '600318.SS', '600319.SS', '600320.SS', '600322.SS', '600323.SS', '600325.SS', '600326.SS', '600327.SS', '600328.SS', '600329.SS', '600330.SS', '600331.SS', '600332.SS', '600333.SS', '600335.SS', '600336.SS', '600337.SS', '600338.SS', '600339.SS', '600340.SS', '600343.SS', '600345.SS', '600346.SS', '600348.SS', '600350.SS', '600351.SS', '600352.SS', '600353.SS', '600354.SS', '600355.SS', '600356.SS', '600358.SS', '600359.SS', '600360.SS', '600361.SS', '600362.SS', '600363.SS', '600365.SS', '600366.SS', '600367.SS', '600368.SS', '600369.SS', '600370.SS', '600371.SS', '600372.SS', '600373.SS', '600375.SS', '600376.SS', '600377.SS', '600378.SS', '600379.SS', '600380.SS', '600381.SS', '600382.SS', '600383.SS', '600386.SS', '600387.SS', '600388.SS', '600389.SS', '600390.SS', '600391.SS', '600392.SS', '600395.SS', '600396.SS', '600397.SS', '600398.SS', '600399.SS', '600400.SS', '600403.SS', '600405.SS', '600406.SS', '600408.SS', '600409.SS', '600410.SS', '600415.SS', '600416.SS', '600418.SS', '600419.SS', '600420.SS', '600421.SS', '600422.SS', '600423.SS', '600425.SS', '600426.SS', '600428.SS', '600429.SS', '600433.SS', '600435.SS', '600436.SS', '600438.SS', '600439.SS', '600444.SS', '600446.SS', '600448.SS', '600449.SS', '600452.SS', '600455.SS', '600456.SS', '600458.SS', '600459.SS', '600460.SS', '600461.SS', '600462.SS', '600463.SS', '600467.SS', '600468.SS', '600469.SS', '600470.SS', '600475.SS', '600476.SS', '600477.SS', '600478.SS', '600479.SS', '600480.SS', '600481.SS', '600482.SS', '600483.SS', '600486.SS', '600487.SS', '600488.SS', '600489.SS', '600490.SS', '600491.SS', '600493.SS', '600495.SS', '600496.SS', '600497.SS', '600498.SS', '600499.SS', '600500.SS', '600501.SS', '600502.SS', '600503.SS', '600505.SS', '600506.SS', '600507.SS', '600508.SS', '600509.SS', '600510.SS', '600511.SS', '600512.SS', '600513.SS', '600515.SS', '600516.SS', '600517.SS', '600518.SS', '600519.SS', '600520.SS', '600521.SS', '600522.SS', '600523.SS', '600525.SS', '600526.SS', '600527.SS', '600528.SS', '600529.SS', '600530.SS', '600531.SS', '600533.SS', '600535.SS', '600536.SS', '600537.SS', '600538.SS', '600539.SS', '600540.SS', '600543.SS', '600545.SS', '600546.SS', '600547.SS', '600548.SS', '600549.SS', '600550.SS', '600551.SS', '600552.SS', '600556.SS', '600557.SS', '600558.SS', '600559.SS', '600560.SS', '600561.SS', '600562.SS', '600563.SS', '600566.SS', '600567.SS', '600568.SS', '600569.SS', '600570.SS', '600571.SS', '600572.SS', '600573.SS', '600575.SS', '600576.SS', '600577.SS', '600578.SS', '600579.SS', '600580.SS', '600581.SS', '600582.SS', '600583.SS', '600584.SS', '600585.SS', '600586.SS', '600587.SS', '600588.SS', '600589.SS', '600590.SS', '600592.SS', '600593.SS', '600594.SS', '600595.SS', '600596.SS', '600597.SS', '600598.SS', '600599.SS', '600600.SS', '600601.SS', '600602.SS', '600603.SS', '600604.SS', '600605.SS', '600606.SS', '600608.SS', '600609.SS', '600610.SS', '600611.SS', '600612.SS', '600613.SS', '600615.SS', '600616.SS', '600617.SS', '600618.SS', '600619.SS', '600620.SS', '600621.SS', '600622.SS', '600623.SS', '600624.SS', '600626.SS', '600628.SS', '600629.SS', '600630.SS', '600633.SS', '600635.SS', '600636.SS', '600637.SS', '600638.SS', '600639.SS', '600640.SS', '600641.SS', '600642.SS', '600643.SS', '600644.SS', '600645.SS', '600648.SS', '600649.SS', '600650.SS', '600651.SS', '600653.SS', '600654.SS', '600655.SS', '600657.SS', '600658.SS', '600660.SS', '600661.SS', '600662.SS', '600663.SS', '600664.SS', '600665.SS', '600666.SS', '600667.SS', '600668.SS', '600671.SS', '600673.SS', '600674.SS', '600675.SS', '600676.SS', '600678.SS', '600679.SS', '600681.SS', '600682.SS', '600683.SS', '600684.SS', '600685.SS', '600686.SS', '600688.SS', '600689.SS', '600690.SS', '600691.SS', '600692.SS', '600693.SS', '600694.SS', '600696.SS', '600697.SS', '600698.SS', '600699.SS', '600702.SS', '600703.SS', '600704.SS', '600705.SS', '600706.SS', '600707.SS', '600708.SS', '600710.SS', '600711.SS', '600712.SS', '600713.SS', '600714.SS', '600715.SS', '600716.SS', '600717.SS', '600718.SS', '600719.SS', '600720.SS', '600721.SS', '600722.SS', '600724.SS', '600725.SS', '600726.SS', '600727.SS', '600728.SS', '600729.SS', '600730.SS', '600731.SS', '600732.SS', '600733.SS', '600734.SS', '600735.SS', '600736.SS', '600737.SS', '600738.SS', '600739.SS', '600740.SS', '600741.SS', '600742.SS', '600743.SS', '600744.SS', '600745.SS', '600746.SS', '600748.SS', '600749.SS', '600750.SS', '600751.SS', '600753.SS', '600754.SS', '600755.SS', '600756.SS', '600757.SS', '600758.SS', '600759.SS', '600760.SS', '600761.SS', '600763.SS', '600764.SS', '600765.SS', '600768.SS', '600769.SS', '600770.SS', '600771.SS', '600773.SS', '600774.SS', '600775.SS', '600776.SS', '600777.SS', '600778.SS', '600779.SS', '600780.SS', '600782.SS', '600783.SS', '600784.SS', '600785.SS', '600787.SS', '600789.SS', '600790.SS', '600791.SS', '600792.SS', '600793.SS', '600794.SS', '600795.SS', '600796.SS', '600797.SS', '600798.SS', '600800.SS', '600801.SS', '600802.SS', '600803.SS', '600804.SS', '600805.SS', '600807.SS', '600808.SS', '600809.SS', '600810.SS', '600811.SS', '600812.SS', '600814.SS', '600815.SS', '600816.SS', '600817.SS', '600818.SS', '600819.SS', '600820.SS', '600821.SS', '600822.SS', '600824.SS', '600825.SS', '600826.SS', '600827.SS', '600828.SS', '600829.SS', '600830.SS', '600831.SS', '600833.SS', '600834.SS', '600835.SS', '600838.SS', '600839.SS', '600841.SS', '600843.SS', '600844.SS', '600845.SS', '600846.SS', '600847.SS', '600848.SS', '600850.SS', '600851.SS', '600853.SS', '600854.SS', '600855.SS', '600857.SS', '600858.SS', '600859.SS', '600860.SS', '600861.SS', '600862.SS', '600863.SS', '600864.SS', '600865.SS', '600866.SS', '600867.SS', '600868.SS', '600869.SS', '600871.SS', '600872.SS', '600873.SS', '600874.SS', '600875.SS', '600876.SS', '600877.SS', '600879.SS', '600880.SS', '600881.SS', '600882.SS', '600883.SS', '600884.SS', '600885.SS', '600886.SS', '600887.SS', '600888.SS', '600889.SS', '600892.SS', '600893.SS', '600894.SS', '600895.SS', '600897.SS', '600900.SS', '600901.SS', '600903.SS', '600905.SS', '600906.SS', '600908.SS', '600909.SS', '600916.SS', '600917.SS', '600918.SS', '600919.SS', '600925.SS', '600926.SS', '600927.SS', '600928.SS', '600929.SS', '600933.SS', '600935.SS', '600936.SS', '600938.SS', '600939.SS', '600941.SS', '600955.SS', '600956.SS', '600958.SS', '600959.SS', '600960.SS', '600961.SS', '600962.SS', '600963.SS', '600965.SS', '600966.SS', '600967.SS', '600968.SS', '600969.SS', '600970.SS', '600971.SS', '600973.SS', '600975.SS', '600976.SS', '600977.SS', '600979.SS', '600980.SS', '600981.SS', '600982.SS', '600983.SS', '600984.SS', '600985.SS', '600986.SS', '600987.SS', '600988.SS', '600989.SS', '600990.SS', '600992.SS', '600993.SS', '600995.SS', '600996.SS', '600997.SS', '600998.SS', '600999.SS', '601000.SS', '601001.SS', '601002.SS', '601003.SS', '601005.SS', '601006.SS', '601007.SS', '601008.SS', '601009.SS', '601010.SS', '601011.SS', '601012.SS', '601015.SS', '601016.SS', '601018.SS', '601019.SS', '601020.SS', '601021.SS', '601022.SS', '601028.SS', '601033.SS', '601038.SS', '601058.SS', '601059.SS', '601061.SS', '601065.SS', '601066.SS', '601068.SS', '601069.SS', '601077.SS', '601083.SS', '601086.SS', '601088.SS', '601089.SS', '601096.SS', '601098.SS', '601099.SS', '601100.SS', '601101.SS', '601106.SS', '601107.SS', '601108.SS', '601111.SS', '601113.SS', '601116.SS', '601117.SS', '601118.SS', '601121.SS', '601126.SS', '601127.SS', '601128.SS', '601133.SS', '601136.SS', '601137.SS', '601138.SS', '601139.SS', '601155.SS', '601156.SS', '601158.SS', '601162.SS', '601163.SS', '601166.SS', '601168.SS', '601169.SS', '601177.SS', '601179.SS', '601186.SS', '601187.SS', '601188.SS', '601198.SS', '601199.SS', '601200.SS', '601208.SS', '601211.SS', '601212.SS', '601216.SS', '601218.SS', '601222.SS', '601225.SS', '601226.SS', '601228.SS', '601229.SS', '601231.SS', '601233.SS', '601236.SS', '601238.SS', '601279.SS', '601288.SS', '601298.SS', '601311.SS', '601318.SS', '601319.SS', '601326.SS', '601328.SS', '601330.SS', '601333.SS', '601336.SS', '601339.SS', '601360.SS', '601366.SS', '601368.SS', '601369.SS', '601375.SS', '601377.SS', '601388.SS', '601390.SS', '601398.SS', '601399.SS', '601456.SS', '601500.SS', '601512.SS', '601515.SS', '601518.SS', '601519.SS', '601528.SS', '601555.SS', '601566.SS', '601567.SS', '601568.SS', '601577.SS', '601579.SS', '601588.SS', '601595.SS', '601598.SS', '601599.SS', '601600.SS', '601601.SS', '601606.SS', '601607.SS', '601608.SS', '601609.SS', '601611.SS', '601615.SS', '601616.SS', '601618.SS', '601619.SS', '601628.SS', '601633.SS', '601636.SS', '601658.SS', '601665.SS', '601666.SS', '601668.SS', '601669.SS', '601677.SS', '601678.SS', '601686.SS', '601688.SS', '601689.SS', '601696.SS', '601698.SS', '601699.SS', '601700.SS', '601702.SS', '601717.SS', '601718.SS', '601727.SS', '601728.SS', '601766.SS', '601777.SS', '601778.SS', '601788.SS', '601789.SS', '601798.SS', '601799.SS', '601800.SS', '601801.SS', '601808.SS', '601811.SS', '601816.SS', '601818.SS', '601825.SS', '601827.SS', '601828.SS', '601838.SS', '601857.SS', '601858.SS', '601860.SS', '601865.SS', '601866.SS', '601868.SS', '601869.SS', '601872.SS', '601877.SS', '601878.SS', '601880.SS', '601881.SS', '601882.SS', '601886.SS', '601888.SS', '601890.SS', '601898.SS', '601899.SS', '601900.SS', '601901.SS', '601908.SS', '601916.SS', '601918.SS', '601919.SS', '601921.SS', '601928.SS', '601929.SS', '601933.SS', '601939.SS', '601949.SS', '601952.SS', '601956.SS', '601958.SS', '601963.SS', '601965.SS', '601966.SS', '601968.SS', '601969.SS', '601975.SS', '601985.SS', '601988.SS', '601989.SS', '601990.SS', '601991.SS', '601992.SS', '601995.SS', '601996.SS', '601997.SS', '601998.SS', '601999.SS', '603000.SS', '603001.SS', '603002.SS', '603003.SS', '603004.SS', '603005.SS', '603006.SS', '603007.SS', '603008.SS', '603009.SS', '603010.SS', '603011.SS', '603012.SS', '603013.SS', '603015.SS', '603016.SS', '603017.SS', '603018.SS', '603019.SS', '603020.SS', '603021.SS', '603022.SS', '603023.SS', '603025.SS', '603026.SS', '603027.SS', '603028.SS', '603029.SS', '603030.SS', '603031.SS', '603032.SS', '603033.SS', '603035.SS', '603036.SS', '603037.SS', '603038.SS', '603039.SS', '603040.SS', '603041.SS', '603042.SS', '603043.SS', '603045.SS', '603048.SS', '603050.SS', '603051.SS', '603052.SS', '603053.SS', '603055.SS', '603056.SS', '603057.SS', '603058.SS', '603059.SS', '603060.SS', '603061.SS', '603062.SS', '603063.SS', '603065.SS', '603066.SS', '603067.SS', '603068.SS', '603069.SS', '603070.SS', '603071.SS', '603072.SS', '603073.SS', '603075.SS', '603076.SS', '603077.SS', '603078.SS', '603079.SS', '603080.SS', '603081.SS', '603082.SS', '603083.SS', '603085.SS', '603086.SS', '603087.SS', '603088.SS', '603089.SS', '603090.SS', '603091.SS', '603093.SS', '603095.SS', '603096.SS', '603097.SS', '603098.SS', '603099.SS', '603100.SS', '603101.SS', '603102.SS', '603103.SS', '603105.SS', '603106.SS', '603107.SS', '603108.SS', '603109.SS', '603110.SS', '603111.SS', '603112.SS', '603113.SS', '603115.SS', '603116.SS', '603117.SS', '603118.SS', '603119.SS', '603121.SS', '603122.SS', '603123.SS', '603125.SS', '603126.SS', '603127.SS', '603128.SS', '603129.SS', '603130.SS', '603131.SS', '603132.SS', '603135.SS', '603136.SS', '603137.SS', '603138.SS', '603139.SS', '603150.SS', '603151.SS', '603153.SS', '603155.SS', '603156.SS', '603158.SS', '603159.SS', '603160.SS', '603161.SS', '603162.SS', '603163.SS', '603165.SS', '603166.SS', '603167.SS', '603168.SS', '603169.SS', '603170.SS', '603171.SS', '603172.SS', '603173.SS', '603176.SS', '603177.SS', '603178.SS', '603179.SS', '603180.SS', '603181.SS', '603182.SS', '603183.SS', '603185.SS', '603186.SS', '603187.SS', '603188.SS', '603189.SS', '603190.SS', '603191.SS', '603192.SS', '603193.SS', '603194.SS', '603195.SS', '603196.SS', '603197.SS', '603198.SS', '603199.SS', '603200.SS', '603201.SS', '603203.SS', '603205.SS', '603206.SS', '603207.SS', '603208.SS', '603209.SS', '603211.SS', '603212.SS', '603213.SS', '603214.SS', '603215.SS', '603216.SS', '603217.SS', '603218.SS', '603219.SS', '603220.SS', '603221.SS', '603222.SS', '603223.SS', '603225.SS', '603226.SS', '603227.SS', '603228.SS', '603229.SS', '603230.SS', '603231.SS', '603232.SS', '603233.SS', '603235.SS', '603236.SS', '603237.SS', '603238.SS', '603239.SS', '603255.SS', '603256.SS', '603258.SS', '603259.SS', '603260.SS', '603261.SS', '603266.SS', '603267.SS', '603268.SS', '603269.SS', '603270.SS', '603271.SS', '603272.SS', '603273.SS', '603275.SS', '603276.SS', '603277.SS', '603278.SS', '603279.SS', '603280.SS', '603281.SS', '603282.SS', '603283.SS', '603285.SS', '603286.SS', '603288.SS', '603289.SS', '603290.SS', '603291.SS', '603296.SS', '603297.SS', '603298.SS', '603299.SS', '603300.SS', '603301.SS', '603303.SS', '603305.SS', '603306.SS', '603307.SS', '603308.SS', '603309.SS', '603310.SS', '603311.SS', '603312.SS', '603313.SS', '603315.SS', '603316.SS', '603317.SS', '603318.SS', '603319.SS', '603320.SS', '603321.SS', '603322.SS', '603323.SS', '603324.SS', '603325.SS', '603326.SS', '603327.SS', '603328.SS', '603329.SS', '603330.SS', '603331.SS', '603332.SS', '603333.SS', '603335.SS', '603336.SS', '603337.SS', '603338.SS', '603339.SS', '603341.SS', '603344.SS', '603345.SS', '603348.SS', '603350.SS', '603351.SS', '603353.SS', '603355.SS', '603356.SS', '603357.SS', '603358.SS', '603359.SS', '603360.SS', '603363.SS', '603365.SS', '603366.SS', '603367.SS', '603368.SS', '603369.SS', '603373.SS', '603375.SS', '603377.SS', '603378.SS', '603379.SS', '603380.SS', '603381.SS', '603383.SS', '603385.SS', '603386.SS', '603387.SS', '603388.SS', '603389.SS', '603390.SS', '603391.SS', '603392.SS', '603393.SS', '603395.SS', '603396.SS', '603398.SS', '603399.SS', '603408.SS', '603409.SS', '603416.SS', '603421.SS', '603429.SS', '603439.SS', '603444.SS', '603456.SS', '603458.SS', '603466.SS', '603477.SS', '603486.SS', '603488.SS', '603489.SS', '603496.SS', '603499.SS', '603500.SS', '603501.SS', '603505.SS', '603506.SS', '603507.SS', '603508.SS', '603511.SS', '603515.SS', '603516.SS', '603517.SS', '603518.SS', '603519.SS', '603520.SS', '603527.SS', '603528.SS', '603529.SS', '603530.SS', '603533.SS', '603535.SS', '603536.SS', '603538.SS', '603551.SS', '603556.SS', '603557.SS', '603558.SS', '603559.SS', '603565.SS', '603566.SS', '603567.SS', '603568.SS', '603569.SS', '603577.SS', '603578.SS', '603579.SS', '603580.SS', '603583.SS', '603585.SS', '603586.SS', '603587.SS', '603588.SS', '603589.SS', '603590.SS', '603595.SS', '603596.SS', '603598.SS', '603599.SS', '603600.SS', '603601.SS', '603602.SS', '603605.SS', '603606.SS', '603607.SS', '603608.SS', '603609.SS', '603610.SS', '603611.SS', '603612.SS', '603613.SS', '603615.SS', '603616.SS', '603617.SS', '603618.SS', '603619.SS', '603626.SS', '603628.SS', '603629.SS', '603630.SS', '603633.SS', '603636.SS', '603637.SS', '603638.SS', '603639.SS', '603648.SS', '603650.SS', '603655.SS', '603656.SS', '603657.SS', '603658.SS', '603659.SS', '603660.SS', '603661.SS', '603662.SS', '603663.SS', '603665.SS', '603666.SS', '603667.SS', '603668.SS', '603669.SS', '603676.SS', '603677.SS', '603678.SS', '603679.SS', '603680.SS', '603681.SS', '603682.SS', '603683.SS', '603685.SS', '603686.SS', '603687.SS', '603688.SS', '603689.SS', '603690.SS', '603693.SS', '603696.SS', '603697.SS', '603698.SS', '603699.SS', '603700.SS', '603701.SS', '603703.SS', '603706.SS', '603707.SS', '603708.SS', '603709.SS', '603711.SS', '603712.SS', '603713.SS', '603716.SS', '603717.SS', '603718.SS', '603719.SS', '603721.SS', '603722.SS', '603725.SS', '603726.SS', '603727.SS', '603728.SS', '603729.SS', '603730.SS', '603733.SS', '603737.SS', '603738.SS', '603739.SS', '603755.SS', '603757.SS', '603758.SS', '603759.SS', '603766.SS', '603767.SS', '603768.SS', '603773.SS', '603776.SS', '603777.SS', '603778.SS', '603779.SS', '603786.SS', '603787.SS', '603788.SS', '603789.SS', '603790.SS', '603797.SS', '603798.SS', '603799.SS', '603800.SS', '603801.SS', '603803.SS', '603806.SS', '603808.SS', '603809.SS', '603810.SS', '603811.SS', '603813.SS', '603815.SS', '603816.SS', '603817.SS', '603818.SS', '603819.SS', '603822.SS', '603823.SS', '603825.SS', '603826.SS', '603828.SS', '603829.SS', '603833.SS', '603836.SS', '603838.SS', '603839.SS', '603843.SS', '603848.SS', '603855.SS', '603856.SS', '603858.SS', '603859.SS', '603860.SS', '603861.SS', '603863.SS', '603866.SS', '603867.SS', '603868.SS', '603869.SS', '603871.SS', '603876.SS', '603877.SS', '603878.SS', '603879.SS', '603880.SS', '603881.SS', '603882.SS', '603883.SS', '603885.SS', '603886.SS', '603887.SS', '603888.SS', '603889.SS', '603890.SS', '603893.SS', '603895.SS', '603896.SS', '603897.SS', '603898.SS', '603899.SS', '603900.SS', '603901.SS', '603903.SS', '603906.SS', '603908.SS', '603909.SS', '603912.SS', '603915.SS', '603916.SS', '603917.SS', '603918.SS', '603919.SS', '603920.SS', '603922.SS', '603926.SS', '603927.SS', '603928.SS', '603929.SS', '603931.SS', '603933.SS', '603936.SS', '603937.SS', '603938.SS', '603939.SS', '603948.SS', '603949.SS', '603950.SS', '603955.SS', '603956.SS', '603958.SS', '603959.SS', '603960.SS', '603963.SS', '603966.SS', '603967.SS', '603968.SS', '603969.SS', '603970.SS', '603976.SS', '603977.SS', '603978.SS', '603979.SS', '603980.SS', '603982.SS', '603983.SS', '603985.SS', '603986.SS', '603987.SS', '603988.SS', '603989.SS', '603990.SS', '603991.SS', '603992.SS', '603993.SS', '603995.SS', '603997.SS', '603998.SS', '603999.SS', '605001.SS', '605003.SS', '605005.SS', '605006.SS', '605007.SS', '605008.SS', '605009.SS', '605011.SS', '605016.SS', '605018.SS', '605020.SS', '605028.SS', '605033.SS', '605050.SS', '605055.SS', '605056.SS', '605058.SS', '605060.SS', '605066.SS', '605068.SS', '605069.SS', '605077.SS', '605080.SS', '605081.SS', '605086.SS', '605088.SS', '605089.SS', '605090.SS', '605098.SS', '605099.SS', '605100.SS', '605108.SS', '605111.SS', '605116.SS', '605117.SS', '605118.SS', '605122.SS', '605123.SS', '605128.SS', '605133.SS', '605136.SS', '605138.SS', '605151.SS', '605155.SS', '605158.SS', '605162.SS', '605166.SS', '605167.SS', '605168.SS', '605169.SS', '605177.SS', '605178.SS', '605179.SS', '605180.SS', '605183.SS', '605186.SS', '605188.SS', '605189.SS', '605196.SS', '605198.SS', '605199.SS', '605208.SS', '605218.SS', '605222.SS', '605228.SS', '605255.SS', '605258.SS', '605259.SS', '605266.SS', '605268.SS', '605277.SS', '605286.SS', '605287.SS', '605288.SS', '605289.SS', '605296.SS', '605298.SS', '605299.SS', '605300.SS', '605303.SS', '605305.SS', '605318.SS', '605319.SS', '605333.SS', '605336.SS', '605337.SS', '605338.SS', '605339.SS', '605358.SS', '605365.SS', '605366.SS', '605368.SS', '605369.SS', '605376.SS', '605377.SS', '605378.SS', '605388.SS', '605389.SS', '605398.SS', '605399.SS', '605488.SS', '605499.SS', '605500.SS', '605507.SS', '605555.SS', '605566.SS', '605567.SS', '605577.SS', '605580.SS', '605588.SS', '605589.SS', '605598.SS', '605599.SS', '000001.SZ', '000002.SZ', '000004.SZ', '000006.SZ', '000007.SZ', '000008.SZ', '000009.SZ', '000010.SZ', '000011.SZ', '000012.SZ', '000014.SZ', '000016.SZ', '000017.SZ', '000019.SZ', '000020.SZ', '000021.SZ', '000025.SZ', '000026.SZ', '000027.SZ', '000028.SZ', '000029.SZ', '000030.SZ', '000031.SZ', '000032.SZ', '000034.SZ', '000035.SZ', '000036.SZ', '000037.SZ', '000039.SZ', '000040.SZ', '000042.SZ', '000045.SZ', '000048.SZ', '000049.SZ', '000050.SZ', '000055.SZ', '000056.SZ', '000058.SZ', '000059.SZ', '000060.SZ', '000061.SZ', '000062.SZ', '000063.SZ', '000065.SZ', '000066.SZ', '000068.SZ', '000069.SZ', '000070.SZ', '000078.SZ', '000088.SZ', '000089.SZ', '000090.SZ', '000096.SZ', '000099.SZ', '000100.SZ', '000151.SZ', '000153.SZ', '000155.SZ', '000156.SZ', '000157.SZ', '000158.SZ', '000159.SZ', '000166.SZ', '000301.SZ', '000333.SZ', '000338.SZ', '000400.SZ', '000401.SZ', '000402.SZ', '000403.SZ', '000404.SZ', '000407.SZ', '000408.SZ', '000409.SZ', '000410.SZ', '000411.SZ', '000415.SZ', '000417.SZ', '000419.SZ', '000420.SZ', '000421.SZ', '000422.SZ', '000423.SZ', '000425.SZ', '000426.SZ', '000428.SZ', '000429.SZ', '000430.SZ', '000488.SZ', '000498.SZ', '000501.SZ', '000503.SZ', '000504.SZ', '000505.SZ', '000506.SZ', '000507.SZ', '000509.SZ', '000510.SZ', '000513.SZ', '000514.SZ', '000516.SZ', '000517.SZ', '000518.SZ', '000519.SZ', '000520.SZ', '000521.SZ', '000523.SZ', '000524.SZ', '000525.SZ', '000526.SZ', '000528.SZ', '000529.SZ', '000530.SZ', '000531.SZ', '000532.SZ', '000533.SZ', '000534.SZ', '000536.SZ', '000537.SZ', '000538.SZ', '000539.SZ', '000541.SZ', '000543.SZ', '000544.SZ', '000545.SZ', '000546.SZ', '000547.SZ', '000548.SZ', '000550.SZ', '000551.SZ', '000552.SZ', '000553.SZ', '000554.SZ', '000555.SZ', '000557.SZ', '000558.SZ', '000559.SZ', '000560.SZ', '000561.SZ', '000563.SZ', '000564.SZ', '000565.SZ', '000566.SZ', '000567.SZ', '000568.SZ', '000570.SZ', '000571.SZ', '000572.SZ', '000573.SZ', '000576.SZ', '000581.SZ', '000582.SZ', '000584.SZ', '000586.SZ', '000589.SZ', '000590.SZ', '000591.SZ', '000592.SZ', '000593.SZ', '000595.SZ', '000596.SZ', '000597.SZ', '000598.SZ', '000599.SZ', '000600.SZ', '000601.SZ', '000603.SZ', '000605.SZ', '000607.SZ', '000608.SZ', '000609.SZ', '000610.SZ', '000612.SZ', '000615.SZ', '000617.SZ', '000619.SZ', '000620.SZ', '000622.SZ', '000623.SZ', '000625.SZ', '000626.SZ', '000627.SZ', '000628.SZ', '000629.SZ', '000630.SZ', '000631.SZ', '000632.SZ', '000633.SZ', '000635.SZ', '000636.SZ', '000637.SZ', '000638.SZ', '000639.SZ', '000650.SZ', '000651.SZ', '000652.SZ', '000655.SZ', '000656.SZ', '000657.SZ', '000659.SZ', '000661.SZ', '000663.SZ', '000665.SZ', '000668.SZ', '000669.SZ', '000670.SZ', '000672.SZ', '000676.SZ', '000677.SZ', '000678.SZ', '000679.SZ', '000680.SZ', '000681.SZ', '000682.SZ', '000683.SZ', '000685.SZ', '000686.SZ', '000688.SZ', '000690.SZ', '000691.SZ', '000692.SZ', '000695.SZ', '000697.SZ', '000698.SZ', '000700.SZ', '000701.SZ', '000702.SZ', '000703.SZ', '000705.SZ', '000707.SZ', '000708.SZ', '000709.SZ', '000710.SZ', '000711.SZ', '000712.SZ', '000713.SZ', '000715.SZ', '000716.SZ', '000717.SZ', '000718.SZ', '000719.SZ', '000720.SZ', '000721.SZ', '000722.SZ', '000723.SZ', '000725.SZ', '000726.SZ', '000727.SZ', '000728.SZ', '000729.SZ', '000731.SZ', '000733.SZ', '000735.SZ', '000736.SZ', '000737.SZ', '000738.SZ', '000739.SZ', '000750.SZ', '000751.SZ', '000752.SZ', '000753.SZ', '000755.SZ', '000756.SZ', '000757.SZ', '000758.SZ', '000759.SZ', '000761.SZ', '000762.SZ', '000766.SZ', '000767.SZ', '000768.SZ', '000776.SZ', '000777.SZ', '000778.SZ', '000779.SZ', '000782.SZ', '000783.SZ', '000785.SZ', '000786.SZ', '000788.SZ', '000789.SZ', '000790.SZ', '000791.SZ', '000792.SZ', '000793.SZ', '000795.SZ', '000796.SZ', '000797.SZ', '000798.SZ', '000799.SZ', '000800.SZ', '000801.SZ', '000802.SZ', '000803.SZ', '000807.SZ', '000809.SZ', '000810.SZ', '000811.SZ', '000812.SZ', '000813.SZ', '000815.SZ', '000816.SZ', '000818.SZ', '000819.SZ', '000820.SZ', '000821.SZ', '000822.SZ', '000823.SZ', '000825.SZ', '000826.SZ', '000828.SZ', '000829.SZ', '000830.SZ', '000831.SZ', '000833.SZ', '000837.SZ', '000838.SZ', '000839.SZ', '000848.SZ', '000850.SZ', '000851.SZ', '000852.SZ', '000856.SZ', '000858.SZ', '000859.SZ', '000860.SZ', '000862.SZ', '000863.SZ', '000868.SZ', '000869.SZ', '000875.SZ', '000876.SZ', '000877.SZ', '000878.SZ', '000880.SZ', '000881.SZ', '000882.SZ', '000883.SZ', '000885.SZ', '000886.SZ', '000887.SZ', '000888.SZ', '000889.SZ', '000890.SZ', '000892.SZ', '000893.SZ', '000895.SZ', '000897.SZ', '000898.SZ', '000899.SZ', '000900.SZ', '000901.SZ', '000902.SZ', '000903.SZ', '000905.SZ', '000906.SZ', '000908.SZ', '000909.SZ', '000910.SZ', '000911.SZ', '000912.SZ', '000913.SZ', '000915.SZ', '000917.SZ', '000919.SZ', '000920.SZ', '000921.SZ', '000922.SZ', '000923.SZ', '000925.SZ', '000926.SZ', '000927.SZ', '000928.SZ', '000929.SZ', '000930.SZ', '000931.SZ', '000932.SZ', '000933.SZ', '000935.SZ', '000936.SZ', '000937.SZ', '000938.SZ', '000948.SZ', '000949.SZ', '000950.SZ', '000951.SZ', '000952.SZ', '000953.SZ', '000955.SZ', '000957.SZ', '000958.SZ', '000959.SZ', '000960.SZ', '000962.SZ', '000963.SZ', '000965.SZ', '000966.SZ', '000967.SZ', '000968.SZ', '000969.SZ', '000970.SZ', '000972.SZ', '000973.SZ', '000975.SZ', '000977.SZ', '000978.SZ', '000980.SZ', '000981.SZ', '000983.SZ', '000985.SZ', '000987.SZ', '000988.SZ', '000989.SZ', '000990.SZ', '000993.SZ', '000995.SZ', '000997.SZ', '000998.SZ', '000999.SZ', '001201.SZ', '001202.SZ', '001203.SZ', '001205.SZ', '001206.SZ', '001207.SZ', '001208.SZ', '001209.SZ', '001210.SZ', '001211.SZ', '001212.SZ', '001213.SZ', '001215.SZ', '001216.SZ', '001217.SZ', '001218.SZ', '001219.SZ', '001222.SZ', '001223.SZ', '001225.SZ', '001226.SZ', '001227.SZ', '001228.SZ', '001229.SZ', '001230.SZ', '001231.SZ', '001234.SZ', '001236.SZ', '001238.SZ', '001239.SZ', '001255.SZ', '001256.SZ', '001258.SZ', '001259.SZ', '001260.SZ', '001266.SZ', '001267.SZ', '001268.SZ', '001269.SZ', '001270.SZ', '001277.SZ', '001278.SZ', '001279.SZ', '001282.SZ', '001283.SZ', '001286.SZ', '001287.SZ', '001288.SZ', '001289.SZ', '001296.SZ', '001298.SZ', '001299.SZ', '001300.SZ', '001301.SZ', '001306.SZ', '001308.SZ', '001309.SZ', '001311.SZ', '001313.SZ', '001314.SZ', '001316.SZ', '001317.SZ', '001318.SZ', '001319.SZ', '001322.SZ', '001323.SZ', '001324.SZ', '001326.SZ', '001328.SZ', '001330.SZ', '001331.SZ', '001332.SZ', '001333.SZ', '001336.SZ', '001337.SZ', '001338.SZ', '001339.SZ', '001356.SZ', '001358.SZ', '001359.SZ', '001360.SZ', '001366.SZ', '001367.SZ', '001368.SZ', '001373.SZ', '001376.SZ', '001378.SZ', '001379.SZ', '001380.SZ', '001387.SZ', '001389.SZ', '001391.SZ', '001395.SZ', '001696.SZ', '001872.SZ', '001896.SZ', '001914.SZ', '001965.SZ', '001979.SZ', '002001.SZ', '002003.SZ', '002004.SZ', '002005.SZ', '002006.SZ', '002007.SZ', '002008.SZ', '002009.SZ', '002010.SZ', '002011.SZ', '002012.SZ', '002014.SZ', '002015.SZ', '002016.SZ', '002017.SZ', '002019.SZ', '002020.SZ', '002021.SZ', '002022.SZ', '002023.SZ', '002024.SZ', '002025.SZ', '002026.SZ', '002027.SZ', '002028.SZ', '002029.SZ', '002030.SZ', '002031.SZ', '002032.SZ', '002033.SZ', '002034.SZ', '002035.SZ', '002036.SZ', '002037.SZ', '002038.SZ', '002039.SZ', '002040.SZ', '002041.SZ', '002042.SZ', '002043.SZ', '002044.SZ', '002045.SZ', '002046.SZ', '002047.SZ', '002048.SZ', '002049.SZ', '002050.SZ', '002051.SZ', '002052.SZ', '002053.SZ', '002054.SZ', '002055.SZ', '002056.SZ', '002057.SZ', '002058.SZ', '002059.SZ', '002060.SZ', '002061.SZ', '002062.SZ', '002063.SZ', '002064.SZ', '002065.SZ', '002066.SZ', '002067.SZ', '002068.SZ', '002069.SZ', '002072.SZ', '002073.SZ', '002074.SZ', '002075.SZ', '002076.SZ', '002077.SZ', '002078.SZ', '002079.SZ', '002080.SZ', '002081.SZ', '002082.SZ', '002083.SZ', '002084.SZ', '002085.SZ', '002086.SZ', '002088.SZ', '002090.SZ', '002091.SZ', '002092.SZ', '002093.SZ', '002094.SZ', '002095.SZ', '002096.SZ', '002097.SZ', '002098.SZ', '002099.SZ', '002100.SZ', '002101.SZ', '002102.SZ', '002103.SZ', '002104.SZ', '002105.SZ', '002106.SZ', '002107.SZ', '002108.SZ', '002109.SZ', '002110.SZ', '002111.SZ', '002112.SZ', '002114.SZ', '002115.SZ', '002116.SZ', '002117.SZ', '002119.SZ', '002120.SZ', '002121.SZ', '002122.SZ', '002123.SZ', '002124.SZ', '002125.SZ', '002126.SZ', '002127.SZ', '002128.SZ', '002129.SZ', '002130.SZ', '002131.SZ', '002132.SZ', '002133.SZ', '002134.SZ', '002135.SZ', '002136.SZ', '002137.SZ', '002138.SZ', '002139.SZ', '002140.SZ', '002141.SZ', '002142.SZ', '002144.SZ', '002145.SZ', '002146.SZ', '002148.SZ', '002149.SZ', '002150.SZ', '002151.SZ', '002152.SZ', '002153.SZ', '002154.SZ', '002155.SZ', '002156.SZ', '002157.SZ', '002158.SZ', '002159.SZ', '002160.SZ', '002161.SZ', '002162.SZ', '002163.SZ', '002164.SZ', '002165.SZ', '002166.SZ', '002167.SZ', '002168.SZ', '002169.SZ', '002170.SZ', '002171.SZ', '002172.SZ', '002173.SZ', '002174.SZ', '002175.SZ', '002176.SZ', '002177.SZ', '002178.SZ', '002179.SZ', '002180.SZ', '002181.SZ', '002182.SZ', '002183.SZ', '002184.SZ', '002185.SZ', '002186.SZ', '002187.SZ', '002188.SZ', '002189.SZ', '002190.SZ', '002191.SZ', '002192.SZ', '002193.SZ', '002194.SZ', '002195.SZ', '002196.SZ', '002197.SZ', '002198.SZ', '002199.SZ', '002200.SZ', '002201.SZ', '002202.SZ', '002203.SZ', '002204.SZ', '002205.SZ', '002206.SZ', '002207.SZ', '002208.SZ', '002209.SZ', '002210.SZ', '002211.SZ', '002212.SZ', '002213.SZ', '002214.SZ', '002215.SZ', '002216.SZ', '002217.SZ', '002218.SZ', '002219.SZ', '002221.SZ', '002222.SZ', '002223.SZ', '002224.SZ', '002225.SZ', '002226.SZ', '002227.SZ', '002228.SZ', '002229.SZ', '002230.SZ', '002231.SZ', '002232.SZ', '002233.SZ', '002234.SZ', '002235.SZ', '002236.SZ', '002237.SZ', '002238.SZ', '002239.SZ', '002240.SZ', '002241.SZ', '002242.SZ', '002243.SZ', '002244.SZ', '002245.SZ', '002246.SZ', '002247.SZ', '002248.SZ', '002249.SZ', '002250.SZ', '002251.SZ', '002252.SZ', '002253.SZ', '002254.SZ', '002255.SZ', '002256.SZ', '002258.SZ', '002259.SZ', '002261.SZ', '002262.SZ', '002263.SZ', '002264.SZ', '002265.SZ', '002266.SZ', '002267.SZ', '002268.SZ', '002269.SZ', '002270.SZ', '002271.SZ', '002272.SZ', '002273.SZ', '002274.SZ', '002275.SZ', '002276.SZ', '002277.SZ', '002278.SZ', '002279.SZ', '002281.SZ', '002282.SZ', '002283.SZ', '002284.SZ', '002285.SZ', '002286.SZ', '002287.SZ', '002289.SZ', '002290.SZ', '002291.SZ', '002292.SZ', '002293.SZ', '002294.SZ', '002295.SZ', '002296.SZ', '002297.SZ', '002298.SZ', '002299.SZ', '002300.SZ', '002301.SZ', '002302.SZ', '002303.SZ', '002304.SZ', '002305.SZ', '002306.SZ', '002307.SZ', '002309.SZ', '002310.SZ', '002311.SZ', '002312.SZ', '002313.SZ', '002314.SZ', '002315.SZ', '002316.SZ', '002317.SZ', '002318.SZ', '002319.SZ', '002320.SZ', '002321.SZ', '002322.SZ', '002323.SZ', '002324.SZ', '002326.SZ', '002327.SZ', '002328.SZ', '002329.SZ', '002330.SZ', '002331.SZ', '002332.SZ', '002333.SZ', '002334.SZ', '002335.SZ', '002336.SZ', '002337.SZ', '002338.SZ', '002339.SZ', '002340.SZ', '002342.SZ', '002343.SZ', '002344.SZ', '002345.SZ', '002346.SZ', '002347.SZ', '002348.SZ', '002349.SZ', '002350.SZ', '002351.SZ', '002352.SZ', '002353.SZ', '002354.SZ', '002355.SZ', '002356.SZ', '002357.SZ', '002358.SZ', '002360.SZ', '002361.SZ', '002362.SZ', '002363.SZ', '002364.SZ', '002365.SZ', '002366.SZ', '002367.SZ', '002368.SZ', '002369.SZ', '002370.SZ', '002371.SZ', '002372.SZ', '002373.SZ', '002374.SZ', '002375.SZ', '002376.SZ', '002377.SZ', '002378.SZ', '002379.SZ', '002380.SZ', '002381.SZ', '002382.SZ', '002383.SZ', '002384.SZ', '002385.SZ', '002386.SZ', '002387.SZ', '002388.SZ', '002389.SZ', '002390.SZ', '002391.SZ', '002392.SZ', '002393.SZ', '002394.SZ', '002395.SZ', '002396.SZ', '002397.SZ', '002398.SZ', '002399.SZ', '002400.SZ', '002401.SZ', '002402.SZ', '002403.SZ', '002404.SZ', '002405.SZ', '002406.SZ', '002407.SZ', '002408.SZ', '002409.SZ', '002410.SZ', '002412.SZ', '002413.SZ', '002414.SZ', '002415.SZ', '002416.SZ', '002418.SZ', '002419.SZ', '002420.SZ', '002421.SZ', '002422.SZ', '002423.SZ', '002424.SZ', '002425.SZ', '002426.SZ', '002427.SZ', '002428.SZ', '002429.SZ', '002430.SZ', '002431.SZ', '002432.SZ', '002434.SZ', '002436.SZ', '002437.SZ', '002438.SZ', '002439.SZ', '002440.SZ', '002441.SZ', '002442.SZ', '002443.SZ', '002444.SZ', '002445.SZ', '002446.SZ', '002448.SZ', '002449.SZ', '002451.SZ', '002452.SZ', '002453.SZ', '002454.SZ', '002455.SZ', '002456.SZ', '002457.SZ', '002458.SZ', '002459.SZ', '002460.SZ', '002461.SZ', '002462.SZ', '002463.SZ', '002465.SZ', '002466.SZ', '002467.SZ', '002468.SZ', '002469.SZ', '002470.SZ', '002471.SZ', '002472.SZ', '002474.SZ', '002475.SZ', '002476.SZ', '002478.SZ', '002479.SZ', '002480.SZ', '002481.SZ', '002482.SZ', '002483.SZ', '002484.SZ', '002485.SZ', '002486.SZ', '002487.SZ', '002488.SZ', '002489.SZ', '002490.SZ', '002491.SZ', '002492.SZ', '002493.SZ', '002494.SZ', '002495.SZ', '002496.SZ', '002497.SZ', '002498.SZ', '002500.SZ', '002501.SZ', '002506.SZ', '002507.SZ', '002508.SZ', '002510.SZ', '002511.SZ', '002512.SZ', '002513.SZ', '002514.SZ', '002515.SZ', '002516.SZ', '002517.SZ', '002518.SZ', '002519.SZ', '002520.SZ', '002521.SZ', '002522.SZ', '002523.SZ', '002524.SZ', '002526.SZ', '002527.SZ', '002528.SZ', '002529.SZ', '002530.SZ', '002531.SZ', '002532.SZ', '002533.SZ', '002534.SZ', '002535.SZ', '002536.SZ', '002537.SZ', '002538.SZ', '002539.SZ', '002540.SZ', '002541.SZ', '002542.SZ', '002543.SZ', '002544.SZ', '002545.SZ', '002546.SZ', '002547.SZ', '002548.SZ', '002549.SZ', '002550.SZ', '002551.SZ', '002552.SZ', '002553.SZ', '002554.SZ', '002555.SZ', '002556.SZ', '002557.SZ', '002558.SZ', '002559.SZ', '002560.SZ', '002561.SZ', '002562.SZ', '002563.SZ', '002564.SZ', '002565.SZ', '002566.SZ', '002567.SZ', '002568.SZ', '002569.SZ', '002570.SZ', '002571.SZ', '002572.SZ', '002573.SZ', '002574.SZ', '002575.SZ', '002576.SZ', '002577.SZ', '002578.SZ', '002579.SZ', '002580.SZ', '002581.SZ', '002582.SZ', '002583.SZ', '002584.SZ', '002585.SZ', '002586.SZ', '002587.SZ', '002588.SZ', '002589.SZ', '002590.SZ', '002591.SZ', '002592.SZ', '002593.SZ', '002594.SZ', '002595.SZ', '002596.SZ', '002597.SZ', '002598.SZ', '002599.SZ', '002600.SZ', '002601.SZ', '002602.SZ', '002603.SZ', '002605.SZ', '002606.SZ', '002607.SZ', '002608.SZ', '002609.SZ', '002611.SZ', '002612.SZ', '002613.SZ', '002614.SZ', '002615.SZ', '002616.SZ', '002617.SZ', '002620.SZ', '002622.SZ', '002623.SZ', '002624.SZ', '002625.SZ', '002626.SZ', '002627.SZ', '002628.SZ', '002629.SZ', '002630.SZ', '002631.SZ', '002632.SZ', '002633.SZ', '002634.SZ', '002635.SZ', '002636.SZ', '002637.SZ', '002638.SZ', '002639.SZ', '002640.SZ', '002641.SZ', '002642.SZ', '002643.SZ', '002644.SZ', '002645.SZ', '002646.SZ', '002647.SZ', '002648.SZ', '002649.SZ', '002650.SZ', '002651.SZ', '002652.SZ', '002653.SZ', '002654.SZ', '002655.SZ', '002656.SZ', '002657.SZ', '002658.SZ', '002659.SZ', '002660.SZ', '002661.SZ', '002662.SZ', '002663.SZ', '002664.SZ', '002666.SZ', '002667.SZ', '002668.SZ', '002669.SZ', '002670.SZ', '002671.SZ', '002672.SZ', '002673.SZ', '002674.SZ', '002675.SZ', '002676.SZ', '002677.SZ', '002678.SZ', '002679.SZ', '002681.SZ', '002682.SZ', '002683.SZ', '002685.SZ', '002686.SZ', '002687.SZ', '002688.SZ', '002689.SZ', '002690.SZ', '002691.SZ', '002692.SZ', '002693.SZ', '002694.SZ', '002695.SZ', '002696.SZ', '002697.SZ', '002698.SZ', '002700.SZ', '002701.SZ', '002702.SZ', '002703.SZ', '002705.SZ', '002706.SZ', '002707.SZ', '002708.SZ', '002709.SZ', '002712.SZ', '002713.SZ', '002714.SZ', '002715.SZ', '002716.SZ', '002717.SZ', '002718.SZ', '002719.SZ', '002721.SZ', '002722.SZ', '002723.SZ', '002724.SZ', '002725.SZ', '002726.SZ', '002727.SZ', '002728.SZ', '002729.SZ', '002730.SZ', '002731.SZ', '002732.SZ', '002733.SZ', '002734.SZ', '002735.SZ', '002736.SZ', '002737.SZ', '002738.SZ', '002739.SZ', '002741.SZ', '002742.SZ', '002743.SZ', '002745.SZ', '002746.SZ', '002747.SZ', '002748.SZ', '002749.SZ', '002750.SZ', '002752.SZ', '002753.SZ', '002755.SZ', '002756.SZ', '002757.SZ', '002758.SZ', '002759.SZ', '002760.SZ', '002761.SZ', '002762.SZ', '002763.SZ', '002765.SZ', '002766.SZ', '002767.SZ', '002768.SZ', '002769.SZ', '002771.SZ', '002772.SZ', '002773.SZ', '002774.SZ', '002775.SZ', '002777.SZ', '002778.SZ', '002779.SZ', '002780.SZ', '002782.SZ', '002783.SZ', '002785.SZ', '002786.SZ', '002787.SZ', '002788.SZ', '002789.SZ', '002790.SZ', '002791.SZ', '002792.SZ', '002793.SZ', '002795.SZ', '002796.SZ', '002797.SZ', '002798.SZ', '002799.SZ', '002800.SZ', '002801.SZ', '002802.SZ', '002803.SZ', '002805.SZ', '002806.SZ', '002807.SZ', '002808.SZ', '002809.SZ', '002810.SZ', '002811.SZ', '002812.SZ', '002813.SZ', '002815.SZ', '002816.SZ', '002817.SZ', '002818.SZ', '002819.SZ', '002820.SZ', '002821.SZ', '002822.SZ', '002823.SZ', '002824.SZ', '002825.SZ', '002826.SZ', '002827.SZ', '002828.SZ', '002829.SZ', '002830.SZ', '002831.SZ', '002832.SZ', '002833.SZ', '002835.SZ', '002836.SZ', '002837.SZ', '002838.SZ', '002839.SZ', '002840.SZ', '002841.SZ', '002842.SZ', '002843.SZ', '002845.SZ', '002846.SZ', '002847.SZ', '002848.SZ', '002849.SZ', '002850.SZ', '002851.SZ', '002852.SZ', '002853.SZ', '002855.SZ', '002856.SZ', '002857.SZ', '002858.SZ', '002859.SZ', '002860.SZ', '002861.SZ', '002862.SZ', '002863.SZ', '002864.SZ', '002865.SZ', '002866.SZ', '002867.SZ', '002868.SZ', '002869.SZ', '002870.SZ', '002871.SZ', '002872.SZ', '002873.SZ', '002875.SZ', '002876.SZ', '002877.SZ', '002878.SZ', '002879.SZ', '002880.SZ', '002881.SZ', '002882.SZ', '002883.SZ', '002884.SZ', '002885.SZ', '002886.SZ', '002887.SZ', '002888.SZ', '002889.SZ', '002890.SZ', '002891.SZ', '002892.SZ', '002893.SZ', '002895.SZ', '002896.SZ', '002897.SZ', '002898.SZ', '002899.SZ', '002900.SZ', '002901.SZ', '002902.SZ', '002903.SZ', '002905.SZ', '002906.SZ', '002907.SZ', '002908.SZ', '002909.SZ', '002910.SZ', '002911.SZ', '002912.SZ', '002913.SZ', '002915.SZ', '002916.SZ', '002917.SZ', '002918.SZ', '002919.SZ', '002920.SZ', '002921.SZ', '002922.SZ', '002923.SZ', '002925.SZ', '002926.SZ', '002927.SZ', '002928.SZ', '002929.SZ', '002930.SZ', '002931.SZ', '002932.SZ', '002933.SZ', '002935.SZ', '002936.SZ', '002937.SZ', '002938.SZ', '002939.SZ', '002940.SZ', '002941.SZ', '002942.SZ', '002943.SZ', '002945.SZ', '002946.SZ', '002947.SZ', '002948.SZ', '002949.SZ', '002950.SZ', '002951.SZ', '002952.SZ', '002953.SZ', '002955.SZ', '002956.SZ', '002957.SZ', '002958.SZ', '002959.SZ', '002960.SZ', '002961.SZ', '002962.SZ', '002963.SZ', '002965.SZ', '002966.SZ', '002967.SZ', '002968.SZ', '002969.SZ', '002970.SZ', '002971.SZ', '002972.SZ', '002973.SZ', '002975.SZ', '002976.SZ', '002977.SZ', '002978.SZ', '002979.SZ', '002980.SZ', '002981.SZ', '002982.SZ', '002983.SZ', '002984.SZ', '002985.SZ', '002986.SZ', '002987.SZ', '002988.SZ', '002989.SZ', '002990.SZ', '002991.SZ', '002992.SZ', '002993.SZ', '002995.SZ', '002996.SZ', '002997.SZ', '002998.SZ', '002999.SZ', '003000.SZ', '003001.SZ', '003002.SZ', '003003.SZ', '003004.SZ', '003005.SZ', '003006.SZ', '003007.SZ', '003008.SZ', '003009.SZ', '003010.SZ', '003011.SZ', '003012.SZ', '003013.SZ', '003015.SZ', '003016.SZ', '003017.SZ', '003018.SZ', '003019.SZ', '003020.SZ', '003021.SZ', '003022.SZ', '003023.SZ', '003025.SZ', '003026.SZ', '003027.SZ', '003028.SZ', '003029.SZ', '003030.SZ', '003031.SZ', '003032.SZ', '003033.SZ', '003035.SZ', '003036.SZ', '003037.SZ', '003038.SZ', '003039.SZ', '003040.SZ', '003041.SZ', '003042.SZ', '003043.SZ', '003816.SZ', '688001.SS', '688002.SS', '688003.SS', '688004.SS', '688005.SS', '688006.SS', '688007.SS', '688008.SS', '688009.SS', '688010.SS', '688011.SS', '688012.SS', '688013.SS', '688015.SS', '688016.SS', '688017.SS', '688018.SS', '688019.SS', '688020.SS', '688021.SS', '688022.SS', '688023.SS', '688025.SS', '688026.SS', '688027.SS', '688028.SS', '688029.SS', '688030.SS', '688031.SS', '688032.SS', '688033.SS', '688035.SS', '688036.SS', '688037.SS', '688038.SS', '688039.SS', '688041.SS', '688045.SS', '688046.SS', '688047.SS', '688048.SS', '688049.SS', '688050.SS', '688051.SS', '688052.SS', '688053.SS', '688055.SS', '688056.SS', '688057.SS', '688058.SS', '688059.SS', '688060.SS', '688061.SS', '688062.SS', '688063.SS', '688065.SS', '688066.SS', '688067.SS', '688068.SS', '688069.SS', '688070.SS', '688071.SS', '688072.SS', '688073.SS', '688075.SS', '688076.SS', '688077.SS', '688078.SS', '688079.SS', '688080.SS', '688081.SS', '688082.SS', '688083.SS', '688084.SS', '688085.SS', '688087.SS', '688088.SS', '688089.SS', '688090.SS', '688091.SS', '688092.SS', '688093.SS', '688095.SS', '688096.SS', '688097.SS', '688098.SS', '688099.SS', '688100.SS', '688101.SS', '688102.SS', '688103.SS', '688105.SS', '688106.SS', '688107.SS', '688108.SS', '688109.SS', '688110.SS', '688111.SS', '688112.SS', '688113.SS', '688114.SS', '688115.SS', '688116.SS', '688117.SS', '688118.SS', '688119.SS', '688120.SS', '688121.SS', '688122.SS', '688123.SS', '688125.SS', '688126.SS', '688127.SS', '688128.SS', '688129.SS', '688130.SS', '688131.SS', '688132.SS', '688133.SS', '688135.SS', '688136.SS', '688137.SS', '688138.SS', '688139.SS', '688141.SS', '688143.SS', '688146.SS', '688147.SS', '688148.SS', '688150.SS', '688151.SS', '688152.SS', '688153.SS', '688155.SS', '688156.SS', '688157.SS', '688158.SS', '688159.SS', '688160.SS', '688161.SS', '688162.SS', '688163.SS', '688165.SS', '688166.SS', '688167.SS', '688168.SS', '688169.SS', '688170.SS', '688171.SS', '688172.SS', '688173.SS', '688175.SS', '688176.SS', '688177.SS', '688178.SS', '688179.SS', '688180.SS', '688181.SS', '688182.SS', '688183.SS', '688184.SS', '688185.SS', '688186.SS', '688187.SS', '688188.SS', '688189.SS', '688190.SS', '688191.SS', '688192.SS', '688193.SS', '688195.SS', '688196.SS', '688197.SS', '688198.SS', '688199.SS', '688200.SS', '688201.SS', '688202.SS', '688203.SS', '688205.SS', '688206.SS', '688207.SS', '688208.SS', '688209.SS', '688210.SS', '688211.SS', '688212.SS', '688213.SS', '688215.SS', '688216.SS', '688217.SS', '688218.SS', '688219.SS', '688220.SS', '688221.SS', '688222.SS', '688223.SS', '688225.SS', '688226.SS', '688227.SS', '688228.SS', '688229.SS', '688230.SS', '688231.SS', '688232.SS', '688233.SS', '688234.SS', '688235.SS', '688236.SS', '688237.SS', '688238.SS', '688239.SS', '688244.SS', '688246.SS', '688247.SS', '688248.SS', '688249.SS', '688251.SS', '688252.SS', '688253.SS', '688255.SS', '688256.SS', '688257.SS', '688258.SS', '688259.SS', '688260.SS', '688261.SS', '688262.SS', '688265.SS', '688266.SS', '688267.SS', '688268.SS', '688269.SS', '688270.SS', '688271.SS', '688272.SS', '688273.SS', '688275.SS', '688276.SS', '688277.SS', '688278.SS', '688279.SS', '688280.SS', '688281.SS', '688282.SS', '688283.SS', '688285.SS', '688286.SS', '688287.SS', '688288.SS', '688289.SS', '688290.SS', '688291.SS', '688292.SS', '688293.SS', '688295.SS', '688296.SS', '688297.SS', '688298.SS', '688299.SS', '688300.SS', '688301.SS', '688302.SS', '688303.SS', '688305.SS', '688306.SS', '688307.SS', '688308.SS', '688309.SS', '688310.SS', '688311.SS', '688312.SS', '688313.SS', '688314.SS', '688315.SS', '688316.SS', '688317.SS', '688318.SS', '688319.SS', '688320.SS', '688321.SS', '688322.SS', '688323.SS', '688325.SS', '688326.SS', '688327.SS', '688328.SS', '688329.SS', '688330.SS', '688331.SS', '688332.SS', '688333.SS', '688334.SS', '688335.SS', '688336.SS', '688337.SS', '688338.SS', '688339.SS', '688343.SS', '688345.SS', '688347.SS', '688348.SS', '688349.SS', '688350.SS', '688351.SS', '688352.SS', '688353.SS', '688355.SS', '688356.SS', '688357.SS', '688358.SS', '688359.SS', '688360.SS', '688361.SS', '688362.SS', '688363.SS', '688365.SS', '688366.SS', '688367.SS', '688368.SS', '688369.SS', '688370.SS', '688371.SS', '688372.SS', '688373.SS', '688375.SS', '688376.SS', '688377.SS', '688378.SS', '688379.SS', '688380.SS', '688381.SS', '688382.SS', '688383.SS', '688385.SS', '688386.SS', '688387.SS', '688388.SS', '688389.SS', '688390.SS', '688391.SS', '688392.SS', '688393.SS', '688395.SS', '688396.SS', '688398.SS', '688399.SS', '688400.SS', '688401.SS', '688403.SS', '688408.SS', '688409.SS', '688410.SS', '688411.SS', '688416.SS', '688418.SS', '688419.SS', '688420.SS', '688425.SS', '688426.SS', '688428.SS', '688429.SS', '688432.SS', '688433.SS', '688435.SS', '688439.SS', '688443.SS', '688448.SS', '688449.SS', '688450.SS', '688455.SS', '688456.SS', '688458.SS', '688459.SS', '688466.SS', '688468.SS', '688469.SS', '688472.SS', '688475.SS', '688478.SS', '688479.SS', '688480.SS', '688484.SS', '688485.SS', '688486.SS', '688488.SS', '688489.SS', '688496.SS', '688498.SS', '688499.SS', '688500.SS', '688501.SS', '688502.SS', '688503.SS', '688505.SS', '688506.SS', '688507.SS', '688508.SS', '688509.SS', '688510.SS', '688511.SS', '688512.SS', '688513.SS', '688515.SS', '688516.SS', '688517.SS', '688518.SS', '688519.SS', '688520.SS', '688521.SS', '688522.SS', '688523.SS', '688525.SS', '688526.SS', '688528.SS', '688529.SS', '688530.SS', '688531.SS', '688533.SS', '688535.SS', '688536.SS', '688538.SS', '688539.SS', '688543.SS', '688545.SS', '688548.SS', '688549.SS', '688550.SS', '688551.SS', '688552.SS', '688553.SS', '688556.SS', '688557.SS', '688558.SS', '688559.SS', '688560.SS', '688561.SS', '688562.SS', '688563.SS', '688565.SS', '688566.SS', '688567.SS', '688568.SS', '688569.SS', '688570.SS', '688571.SS', '688573.SS', '688575.SS', '688576.SS', '688577.SS', '688578.SS', '688579.SS', '688580.SS', '688581.SS', '688582.SS', '688583.SS', '688584.SS', '688585.SS', '688586.SS', '688588.SS', '688589.SS', '688590.SS', '688591.SS', '688592.SS', '688593.SS', '688595.SS', '688596.SS', '688597.SS', '688598.SS', '688599.SS', '688600.SS', '688601.SS', '688602.SS', '688603.SS', '688605.SS', '688606.SS', '688607.SS', '688608.SS', '688609.SS', '688610.SS', '688611.SS', '688612.SS', '688613.SS', '688615.SS', '688616.SS', '688617.SS', '688618.SS', '688619.SS', '688620.SS', '688621.SS', '688622.SS', '688623.SS', '688625.SS', '688626.SS', '688627.SS', '688628.SS', '688629.SS', '688630.SS', '688631.SS', '688633.SS', '688636.SS', '688638.SS', '688639.SS', '688646.SS', '688648.SS', '688651.SS', '688652.SS', '688653.SS', '688655.SS', '688656.SS', '688657.SS', '688658.SS', '688659.SS', '688660.SS', '688661.SS', '688662.SS', '688663.SS', '688665.SS', '688667.SS', '688668.SS', '688669.SS', '688670.SS', '688671.SS', '688676.SS', '688677.SS', '688678.SS', '688679.SS', '688680.SS', '688681.SS', '688682.SS', '688683.SS', '688685.SS', '688686.SS', '688687.SS', '688689.SS', '688690.SS', '688691.SS', '688692.SS', '688693.SS', '688695.SS', '688696.SS', '688697.SS', '688698.SS', '688699.SS', '688700.SS', '688701.SS', '688702.SS', '688707.SS', '688708.SS', '688709.SS', '688710.SS', '688711.SS', '688716.SS', '688717.SS', '688718.SS', '688719.SS', '688720.SS', '688721.SS', '688722.SS', '688726.SS', '688728.SS', '688733.SS', '688737.SS', '688739.SS', '688750.SS', '688758.SS', '688766.SS', '688767.SS', '688768.SS', '688772.SS', '688776.SS', '688777.SS', '688778.SS', '688779.SS', '688786.SS', '688787.SS', '688788.SS', '688789.SS', '688793.SS', '688798.SS', '688799.SS', '688800.SS', '688819.SS', '688981.SS', '689009.SS', '300001.SZ', '300002.SZ', '300003.SZ', '300004.SZ', '300005.SZ', '300006.SZ', '300007.SZ', '300008.SZ', '300009.SZ', '300010.SZ', '300011.SZ', '300012.SZ', '300013.SZ', '300014.SZ', '300015.SZ', '300016.SZ', '300017.SZ', '300018.SZ', '300019.SZ', '300020.SZ', '300021.SZ', '300022.SZ', '300024.SZ', '300025.SZ', '300026.SZ', '300027.SZ', '300029.SZ', '300030.SZ', '300031.SZ', '300032.SZ', '300033.SZ', '300034.SZ', '300035.SZ', '300036.SZ', '300037.SZ', '300039.SZ', '300040.SZ', '300041.SZ', '300042.SZ', '300043.SZ', '300044.SZ', '300045.SZ', '300046.SZ', '300047.SZ', '300048.SZ', '300049.SZ', '300050.SZ', '300051.SZ', '300052.SZ', '300053.SZ', '300054.SZ', '300055.SZ', '300056.SZ', '300057.SZ', '300058.SZ', '300059.SZ', '300061.SZ', '300062.SZ', '300063.SZ', '300065.SZ', '300066.SZ', '300067.SZ', '300068.SZ', '300069.SZ', '300070.SZ', '300071.SZ', '300072.SZ', '300073.SZ', '300074.SZ', '300075.SZ', '300076.SZ', '300077.SZ', '300078.SZ', '300079.SZ', '300080.SZ', '300081.SZ', '300082.SZ', '300083.SZ', '300084.SZ', '300085.SZ', '300086.SZ', '300087.SZ', '300088.SZ', '300091.SZ', '300092.SZ', '300093.SZ', '300094.SZ', '300095.SZ', '300096.SZ', '300097.SZ', '300098.SZ', '300099.SZ', '300100.SZ', '300101.SZ', '300102.SZ', '300103.SZ', '300105.SZ', '300106.SZ', '300107.SZ', '300108.SZ', '300109.SZ', '300110.SZ', '300111.SZ', '300112.SZ', '300113.SZ', '300115.SZ', '300117.SZ', '300118.SZ', '300119.SZ', '300120.SZ', '300121.SZ', '300122.SZ', '300123.SZ', '300124.SZ', '300125.SZ', '300126.SZ', '300127.SZ', '300128.SZ', '300129.SZ', '300130.SZ', '300131.SZ', '300132.SZ', '300133.SZ', '300134.SZ', '300135.SZ', '300136.SZ', '300137.SZ', '300138.SZ', '300139.SZ', '300140.SZ', '300141.SZ', '300142.SZ', '300143.SZ', '300144.SZ', '300145.SZ', '300146.SZ', '300147.SZ', '300148.SZ', '300149.SZ', '300150.SZ', '300151.SZ', '300152.SZ', '300153.SZ', '300154.SZ', '300155.SZ', '300157.SZ', '300158.SZ', '300159.SZ', '300160.SZ', '300161.SZ', '300162.SZ', '300163.SZ', '300164.SZ', '300165.SZ', '300166.SZ', '300167.SZ', '300168.SZ', '300169.SZ', '300170.SZ', '300171.SZ', '300172.SZ', '300173.SZ', '300174.SZ', '300175.SZ', '300176.SZ', '300177.SZ', '300179.SZ', '300180.SZ', '300181.SZ', '300182.SZ', '300183.SZ', '300184.SZ', '300185.SZ', '300187.SZ', '300188.SZ', '300189.SZ', '300190.SZ', '300191.SZ', '300192.SZ', '300193.SZ', '300194.SZ', '300195.SZ', '300196.SZ', '300197.SZ', '300198.SZ', '300199.SZ', '300200.SZ', '300201.SZ', '300203.SZ', '300204.SZ', '300205.SZ', '300206.SZ', '300207.SZ', '300208.SZ', '300209.SZ', '300210.SZ', '300211.SZ', '300212.SZ', '300213.SZ', '300214.SZ', '300215.SZ', '300217.SZ', '300218.SZ', '300219.SZ', '300220.SZ', '300221.SZ', '300222.SZ', '300223.SZ', '300224.SZ', '300225.SZ', '300226.SZ', '300227.SZ', '300228.SZ', '300229.SZ', '300230.SZ', '300231.SZ', '300232.SZ', '300233.SZ', '300234.SZ', '300235.SZ', '300236.SZ', '300237.SZ', '300238.SZ', '300239.SZ', '300240.SZ', '300241.SZ', '300242.SZ', '300243.SZ', '300244.SZ', '300245.SZ', '300246.SZ', '300247.SZ', '300248.SZ', '300249.SZ', '300250.SZ', '300251.SZ', '300252.SZ', '300253.SZ', '300254.SZ', '300255.SZ', '300256.SZ', '300257.SZ', '300258.SZ', '300259.SZ', '300260.SZ', '300261.SZ', '300263.SZ', '300264.SZ', '300265.SZ', '300266.SZ', '300267.SZ', '300268.SZ', '300269.SZ', '300270.SZ', '300271.SZ', '300272.SZ', '300274.SZ', '300275.SZ', '300276.SZ', '300277.SZ', '300278.SZ', '300279.SZ', '300280.SZ', '300281.SZ', '300283.SZ', '300284.SZ', '300285.SZ', '300286.SZ', '300287.SZ', '300288.SZ', '300289.SZ', '300290.SZ', '300291.SZ', '300292.SZ', '300293.SZ', '300294.SZ', '300295.SZ', '300296.SZ', '300298.SZ', '300299.SZ', '300300.SZ', '300301.SZ', '300302.SZ', '300303.SZ', '300304.SZ', '300305.SZ', '300306.SZ', '300307.SZ', '300308.SZ', '300310.SZ', '300311.SZ', '300313.SZ', '300314.SZ', '300315.SZ', '300316.SZ', '300317.SZ', '300318.SZ', '300319.SZ', '300320.SZ', '300321.SZ', '300322.SZ', '300323.SZ', '300324.SZ', '300326.SZ', '300327.SZ', '300328.SZ', '300329.SZ', '300331.SZ', '300332.SZ', '300333.SZ', '300334.SZ', '300335.SZ', '300337.SZ', '300338.SZ', '300339.SZ', '300340.SZ', '300341.SZ', '300342.SZ', '300343.SZ', '300344.SZ', '300345.SZ', '300346.SZ', '300347.SZ', '300348.SZ', '300349.SZ', '300350.SZ', '300351.SZ', '300352.SZ', '300353.SZ', '300354.SZ', '300355.SZ', '300357.SZ', '300358.SZ', '300359.SZ', '300360.SZ', '300363.SZ', '300364.SZ', '300365.SZ', '300366.SZ', '300368.SZ', '300369.SZ', '300370.SZ', '300371.SZ', '300373.SZ', '300374.SZ', '300375.SZ', '300376.SZ', '300377.SZ', '300378.SZ', '300379.SZ', '300380.SZ', '300381.SZ', '300382.SZ', '300383.SZ', '300384.SZ', '300385.SZ', '300386.SZ', '300387.SZ', '300388.SZ', '300389.SZ', '300390.SZ', '300391.SZ', '300393.SZ', '300394.SZ', '300395.SZ', '300396.SZ', '300397.SZ', '300398.SZ', '300399.SZ', '300400.SZ', '300401.SZ', '300402.SZ', '300403.SZ', '300404.SZ', '300405.SZ', '300406.SZ', '300407.SZ', '300408.SZ', '300409.SZ', '300410.SZ', '300411.SZ', '300412.SZ', '300413.SZ', '300414.SZ', '300415.SZ', '300416.SZ', '300417.SZ', '300418.SZ', '300419.SZ', '300420.SZ', '300421.SZ', '300422.SZ', '300423.SZ', '300424.SZ', '300425.SZ', '300426.SZ', '300427.SZ', '300428.SZ', '300429.SZ', '300430.SZ', '300432.SZ', '300433.SZ', '300434.SZ', '300435.SZ', '300436.SZ', '300437.SZ', '300438.SZ', '300439.SZ', '300440.SZ', '300441.SZ', '300442.SZ', '300443.SZ', '300444.SZ', '300445.SZ', '300446.SZ', '300447.SZ', '300448.SZ', '300449.SZ', '300450.SZ', '300451.SZ', '300452.SZ', '300453.SZ', '300454.SZ', '300455.SZ', '300456.SZ', '300457.SZ', '300458.SZ', '300459.SZ', '300460.SZ', '300461.SZ', '300462.SZ', '300463.SZ', '300464.SZ', '300465.SZ', '300466.SZ', '300467.SZ', '300468.SZ', '300469.SZ', '300470.SZ', '300471.SZ', '300472.SZ', '300473.SZ', '300474.SZ', '300475.SZ', '300476.SZ', '300477.SZ', '300478.SZ', '300479.SZ', '300480.SZ', '300481.SZ', '300482.SZ', '300483.SZ', '300484.SZ', '300485.SZ', '300486.SZ', '300487.SZ', '300488.SZ', '300489.SZ', '300490.SZ', '300491.SZ', '300492.SZ', '300493.SZ', '300494.SZ', '300496.SZ', '300497.SZ', '300498.SZ', '300499.SZ', '300500.SZ', '300501.SZ', '300502.SZ', '300503.SZ', '300504.SZ', '300505.SZ', '300506.SZ', '300507.SZ', '300508.SZ', '300509.SZ', '300510.SZ', '300511.SZ', '300512.SZ', '300513.SZ', '300514.SZ', '300515.SZ', '300516.SZ', '300517.SZ', '300518.SZ', '300519.SZ', '300520.SZ', '300521.SZ', '300522.SZ', '300523.SZ', '300525.SZ', '300527.SZ', '300528.SZ', '300529.SZ', '300530.SZ', '300531.SZ', '300532.SZ', '300533.SZ', '300534.SZ', '300535.SZ', '300536.SZ', '300537.SZ', '300538.SZ', '300539.SZ', '300540.SZ', '300541.SZ', '300542.SZ', '300543.SZ', '300545.SZ', '300546.SZ', '300547.SZ', '300548.SZ', '300549.SZ', '300550.SZ', '300551.SZ', '300552.SZ', '300553.SZ', '300554.SZ', '300555.SZ', '300556.SZ', '300557.SZ', '300558.SZ', '300559.SZ', '300560.SZ', '300561.SZ', '300562.SZ', '300563.SZ', '300564.SZ', '300565.SZ', '300566.SZ', '300567.SZ', '300568.SZ', '300569.SZ', '300570.SZ', '300571.SZ', '300572.SZ', '300573.SZ', '300575.SZ', '300576.SZ', '300577.SZ', '300578.SZ', '300579.SZ', '300580.SZ', '300581.SZ', '300582.SZ', '300583.SZ', '300584.SZ', '300585.SZ', '300586.SZ', '300587.SZ', '300588.SZ', '300589.SZ', '300590.SZ', '300591.SZ', '300592.SZ', '300593.SZ', '300594.SZ', '300595.SZ', '300596.SZ', '300597.SZ', '300598.SZ', '300599.SZ', '300600.SZ', '300601.SZ', '300602.SZ', '300603.SZ', '300604.SZ', '300605.SZ', '300606.SZ', '300607.SZ', '300608.SZ', '300609.SZ', '300610.SZ', '300611.SZ', '300612.SZ', '300613.SZ', '300614.SZ', '300615.SZ', '300616.SZ', '300617.SZ', '300618.SZ', '300619.SZ', '300620.SZ', '300621.SZ', '300622.SZ', '300623.SZ', '300624.SZ', '300625.SZ', '300626.SZ', '300627.SZ', '300628.SZ', '300629.SZ', '300630.SZ', '300631.SZ', '300632.SZ', '300633.SZ', '300634.SZ', '300635.SZ', '300636.SZ', '300637.SZ', '300638.SZ', '300639.SZ', '300640.SZ', '300641.SZ', '300642.SZ', '300643.SZ', '300644.SZ', '300645.SZ', '300647.SZ', '300648.SZ', '300649.SZ', '300650.SZ', '300651.SZ', '300652.SZ', '300653.SZ', '300654.SZ', '300655.SZ', '300656.SZ', '300657.SZ', '300658.SZ', '300659.SZ', '300660.SZ', '300661.SZ', '300662.SZ', '300663.SZ', '300664.SZ', '300665.SZ', '300666.SZ', '300667.SZ', '300668.SZ', '300669.SZ', '300670.SZ', '300671.SZ', '300672.SZ', '300673.SZ', '300674.SZ', '300675.SZ', '300676.SZ', '300677.SZ', '300678.SZ', '300679.SZ', '300680.SZ', '300681.SZ', '300682.SZ', '300683.SZ', '300684.SZ', '300685.SZ', '300686.SZ', '300687.SZ', '300688.SZ', '300689.SZ', '300690.SZ', '300691.SZ', '300692.SZ', '300693.SZ', '300694.SZ', '300695.SZ', '300696.SZ', '300697.SZ', '300698.SZ', '300699.SZ', '300700.SZ', '300701.SZ', '300702.SZ', '300703.SZ', '300705.SZ', '300706.SZ', '300707.SZ', '300708.SZ', '300709.SZ', '300710.SZ', '300711.SZ', '300712.SZ', '300713.SZ', '300715.SZ', '300716.SZ', '300717.SZ', '300718.SZ', '300719.SZ', '300720.SZ', '300721.SZ', '300722.SZ', '300723.SZ', '300724.SZ', '300725.SZ', '300726.SZ', '300727.SZ', '300729.SZ', '300730.SZ', '300731.SZ', '300732.SZ', '300733.SZ', '300735.SZ', '300736.SZ', '300737.SZ', '300738.SZ', '300739.SZ', '300740.SZ', '300741.SZ', '300743.SZ', '300745.SZ', '300746.SZ', '300747.SZ', '300748.SZ', '300749.SZ', '300750.SZ', '300751.SZ', '300752.SZ', '300753.SZ', '300755.SZ', '300756.SZ', '300757.SZ', '300758.SZ', '300759.SZ', '300760.SZ', '300761.SZ', '300762.SZ', '300763.SZ', '300765.SZ', '300766.SZ', '300767.SZ', '300768.SZ', '300769.SZ', '300770.SZ', '300771.SZ', '300772.SZ', '300773.SZ', '300774.SZ', '300775.SZ', '300776.SZ', '300777.SZ', '300778.SZ', '300779.SZ', '300780.SZ', '300781.SZ', '300782.SZ', '300783.SZ', '300784.SZ', '300785.SZ', '300786.SZ', '300787.SZ', '300788.SZ', '300789.SZ', '300790.SZ', '300791.SZ', '300792.SZ', '300793.SZ', '300795.SZ', '300796.SZ', '300797.SZ', '300798.SZ', '300800.SZ', '300801.SZ', '300802.SZ', '300803.SZ', '300804.SZ', '300805.SZ', '300806.SZ', '300807.SZ', '300808.SZ', '300809.SZ', '300810.SZ', '300811.SZ', '300812.SZ', '300813.SZ', '300814.SZ', '300815.SZ', '300816.SZ', '300817.SZ', '300818.SZ', '300819.SZ', '300820.SZ', '300821.SZ', '300822.SZ', '300823.SZ', '300824.SZ', '300825.SZ', '300826.SZ', '300827.SZ', '300828.SZ', '300829.SZ', '300830.SZ', '300831.SZ', '300832.SZ', '300833.SZ', '300834.SZ', '300835.SZ', '300836.SZ', '300837.SZ', '300838.SZ', '300839.SZ', '300840.SZ', '300841.SZ', '300842.SZ', '300843.SZ', '300844.SZ', '300845.SZ', '300846.SZ', '300847.SZ', '300848.SZ', '300849.SZ', '300850.SZ', '300851.SZ', '300852.SZ', '300853.SZ', '300854.SZ', '300855.SZ', '300856.SZ', '300857.SZ', '300858.SZ', '300859.SZ', '300860.SZ', '300861.SZ', '300862.SZ', '300863.SZ', '300864.SZ', '300865.SZ', '300866.SZ', '300867.SZ', '300868.SZ', '300869.SZ', '300870.SZ', '300871.SZ', '300872.SZ', '300873.SZ', '300875.SZ', '300876.SZ', '300877.SZ', '300878.SZ', '300879.SZ', '300880.SZ', '300881.SZ', '300882.SZ', '300883.SZ', '300884.SZ', '300885.SZ', '300886.SZ', '300887.SZ', '300888.SZ', '300889.SZ', '300890.SZ', '300891.SZ', '300892.SZ', '300893.SZ', '300894.SZ', '300895.SZ', '300896.SZ', '300897.SZ', '300898.SZ', '300899.SZ', '300900.SZ', '300901.SZ', '300902.SZ', '300903.SZ', '300904.SZ', '300905.SZ', '300906.SZ', '300907.SZ', '300908.SZ', '300909.SZ', '300910.SZ', '300911.SZ', '300912.SZ', '300913.SZ', '300915.SZ', '300916.SZ', '300917.SZ', '300918.SZ', '300919.SZ', '300920.SZ', '300921.SZ', '300922.SZ', '300923.SZ', '300925.SZ', '300926.SZ', '300927.SZ', '300928.SZ', '300929.SZ', '300930.SZ', '300931.SZ', '300932.SZ', '300933.SZ', '300935.SZ', '300936.SZ', '300937.SZ', '300938.SZ', '300939.SZ', '300940.SZ', '300941.SZ', '300942.SZ', '300943.SZ', '300945.SZ', '300946.SZ', '300947.SZ', '300948.SZ', '300949.SZ', '300950.SZ', '300951.SZ', '300952.SZ', '300953.SZ', '300955.SZ', '300956.SZ', '300957.SZ', '300958.SZ', '300959.SZ', '300960.SZ', '300961.SZ', '300962.SZ', '300963.SZ', '300964.SZ', '300965.SZ', '300966.SZ', '300967.SZ', '300968.SZ', '300969.SZ', '300970.SZ', '300971.SZ', '300972.SZ', '300973.SZ', '300975.SZ', '300976.SZ', '300977.SZ', '300978.SZ', '300979.SZ', '300980.SZ', '300981.SZ', '300982.SZ', '300983.SZ', '300984.SZ', '300985.SZ', '300986.SZ', '300987.SZ', '300988.SZ', '300989.SZ', '300990.SZ', '300991.SZ', '300992.SZ', '300993.SZ', '300994.SZ', '300995.SZ', '300996.SZ', '300997.SZ', '300998.SZ', '300999.SZ', '301000.SZ', '301001.SZ', '301002.SZ', '301003.SZ', '301004.SZ', '301005.SZ', '301006.SZ', '301007.SZ', '301008.SZ', '301009.SZ', '301010.SZ', '301011.SZ', '301012.SZ', '301013.SZ', '301015.SZ', '301016.SZ', '301017.SZ', '301018.SZ', '301019.SZ', '301020.SZ', '301021.SZ', '301022.SZ', '301023.SZ', '301024.SZ', '301025.SZ', '301026.SZ', '301027.SZ', '301028.SZ', '301029.SZ', '301030.SZ', '301031.SZ', '301032.SZ', '301033.SZ', '301035.SZ', '301036.SZ', '301037.SZ', '301038.SZ', '301039.SZ', '301040.SZ', '301041.SZ', '301042.SZ', '301043.SZ', '301045.SZ', '301046.SZ', '301047.SZ', '301048.SZ', '301049.SZ', '301050.SZ', '301051.SZ', '301052.SZ', '301053.SZ', '301055.SZ', '301056.SZ', '301057.SZ', '301058.SZ', '301059.SZ', '301060.SZ', '301061.SZ', '301062.SZ', '301063.SZ', '301065.SZ', '301066.SZ', '301067.SZ', '301068.SZ', '301069.SZ', '301070.SZ', '301071.SZ', '301072.SZ', '301073.SZ', '301075.SZ', '301076.SZ', '301077.SZ', '301078.SZ', '301079.SZ', '301080.SZ', '301081.SZ', '301082.SZ', '301083.SZ', '301085.SZ', '301086.SZ', '301087.SZ', '301088.SZ', '301089.SZ', '301090.SZ', '301091.SZ', '301092.SZ', '301093.SZ', '301095.SZ', '301096.SZ', '301097.SZ', '301098.SZ', '301099.SZ', '301100.SZ', '301101.SZ', '301102.SZ', '301103.SZ', '301105.SZ', '301106.SZ', '301107.SZ', '301108.SZ', '301109.SZ', '301110.SZ', '301111.SZ', '301112.SZ', '301113.SZ', '301115.SZ', '301116.SZ', '301117.SZ', '301118.SZ', '301119.SZ', '301120.SZ', '301121.SZ', '301122.SZ', '301123.SZ', '301125.SZ', '301126.SZ', '301127.SZ', '301128.SZ', '301129.SZ', '301130.SZ', '301131.SZ', '301132.SZ', '301133.SZ', '301135.SZ', '301136.SZ', '301137.SZ', '301138.SZ', '301139.SZ', '301141.SZ', '301148.SZ', '301149.SZ', '301150.SZ', '301151.SZ', '301152.SZ', '301153.SZ', '301155.SZ', '301156.SZ', '301157.SZ', '301158.SZ', '301159.SZ', '301160.SZ', '301161.SZ', '301162.SZ', '301163.SZ', '301165.SZ', '301166.SZ', '301167.SZ', '301168.SZ', '301169.SZ', '301170.SZ', '301171.SZ', '301172.SZ', '301173.SZ', '301175.SZ', '301176.SZ', '301177.SZ', '301178.SZ', '301179.SZ', '301180.SZ', '301181.SZ', '301182.SZ', '301183.SZ', '301185.SZ', '301186.SZ', '301187.SZ', '301188.SZ', '301189.SZ', '301190.SZ', '301191.SZ', '301192.SZ', '301193.SZ', '301195.SZ', '301196.SZ', '301197.SZ', '301198.SZ', '301199.SZ', '301200.SZ', '301201.SZ', '301202.SZ', '301203.SZ', '301205.SZ', '301206.SZ', '301207.SZ', '301208.SZ', '301209.SZ', '301210.SZ', '301211.SZ', '301212.SZ', '301213.SZ', '301215.SZ', '301216.SZ', '301217.SZ', '301218.SZ', '301219.SZ', '301220.SZ', '301221.SZ', '301222.SZ', '301223.SZ', '301225.SZ', '301226.SZ', '301227.SZ', '301228.SZ', '301229.SZ', '301230.SZ', '301231.SZ', '301232.SZ', '301233.SZ', '301234.SZ', '301235.SZ', '301236.SZ', '301237.SZ', '301238.SZ', '301239.SZ', '301246.SZ', '301248.SZ', '301251.SZ', '301252.SZ', '301255.SZ', '301256.SZ', '301257.SZ', '301258.SZ', '301259.SZ', '301260.SZ', '301261.SZ', '301262.SZ', '301263.SZ', '301265.SZ', '301266.SZ', '301267.SZ', '301268.SZ', '301269.SZ', '301270.SZ', '301272.SZ', '301273.SZ', '301275.SZ', '301276.SZ', '301277.SZ', '301278.SZ', '301279.SZ', '301280.SZ', '301281.SZ', '301282.SZ', '301283.SZ', '301285.SZ', '301286.SZ', '301287.SZ', '301288.SZ', '301289.SZ', '301290.SZ', '301291.SZ', '301292.SZ', '301293.SZ', '301295.SZ', '301296.SZ', '301297.SZ', '301298.SZ', '301299.SZ', '301300.SZ', '301301.SZ', '301302.SZ', '301303.SZ', '301305.SZ', '301306.SZ', '301307.SZ', '301308.SZ', '301309.SZ', '301310.SZ', '301311.SZ', '301312.SZ', '301313.SZ', '301314.SZ', '301315.SZ', '301316.SZ', '301317.SZ', '301318.SZ', '301319.SZ', '301320.SZ', '301321.SZ', '301322.SZ', '301323.SZ', '301325.SZ', '301326.SZ', '301327.SZ', '301328.SZ', '301329.SZ', '301330.SZ', '301331.SZ', '301332.SZ', '301333.SZ', '301335.SZ', '301336.SZ', '3013
ptrade python最新版本支持3.11
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 770 次浏览 • 2025-02-27 17:42
国金证券 PTRADE智能策略交易终端预期3月底4月中做实盘版本升级。
操作手册和开发手册请登录测试客户端后点击右上角帮助和量化菜单下帮助获取。
量化接口升级说明下载链接:https:/pan.baidu.com/s/1S5xXHpOLFVDYdJrOgYDBqA 提取码:gjz9。
本次主干版本升级涉及的问题修复、功能优化和需求实现较多,策略量化AP变动较大,python版本升级311。
如您有在运行的策略程序、工具功能等,请务必进行测试环境验证调整,确认策略程序在python311环境、工具功能等可正常运行。
实盘确认升级完成后,您需要将测试环境验证后策略迁移实盘后重新启用。
如您需新开通测试环境账户,可与我司服务老师联系获取。感谢各位长期以来对我公司的信任和支持,由此给各位带来的不便敬请谅解。谢谢!
需要开通的可以联系: 查看全部
国金证券 PTRADE智能策略交易终端预期3月底4月中做实盘版本升级。
操作手册和开发手册请登录测试客户端后点击右上角帮助和量化菜单下帮助获取。
量化接口升级说明下载链接:https:/pan.baidu.com/s/1S5xXHpOLFVDYdJrOgYDBqA 提取码:gjz9。
本次主干版本升级涉及的问题修复、功能优化和需求实现较多,策略量化AP变动较大,python版本升级311。
如您有在运行的策略程序、工具功能等,请务必进行测试环境验证调整,确认策略程序在python311环境、工具功能等可正常运行。
实盘确认升级完成后,您需要将测试环境验证后策略迁移实盘后重新启用。
如您需新开通测试环境账户,可与我司服务老师联系获取。感谢各位长期以来对我公司的信任和支持,由此给各位带来的不便敬请谅解。谢谢!
需要开通的可以联系:

ptrade支持外网,mysql 远程数据库的券商
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 645 次浏览 • 2025-02-17 14:16
比如如果你要获取可转债的一些强赎数据,内置数据是不支持的。
那么如果你想要获取集思录的数据,那么就会无能为力。
不过有一个券商可以支持访问外部数据的。因为ptrade内置了pymysq,redis,zeromq,wsocket等第三方库,
所以你可以在ptrade内部,直接范围mysql的数据,zeromq的数据,甚至直接和外部的api进行双向通信。
实例中直接用requests访问的百度
实盘,模拟盘中均可操作。
需要开通的朋友可以公众号联系:
费率也支持万0.854 免5哦~ 查看全部
比如如果你要获取可转债的一些强赎数据,内置数据是不支持的。
那么如果你想要获取集思录的数据,那么就会无能为力。
不过有一个券商可以支持访问外部数据的。因为ptrade内置了pymysq,redis,zeromq,wsocket等第三方库,
所以你可以在ptrade内部,直接范围mysql的数据,zeromq的数据,甚至直接和外部的api进行双向通信。
实例中直接用requests访问的百度
实盘,模拟盘中均可操作。

需要开通的朋友可以公众号联系:
费率也支持万0.854 免5哦~

聚宽打板策略代码转为ptrade代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1076 次浏览 • 2025-02-02 17:42
根据昨日涨停 或最近N天的股票出现连板的数量,然后选股。
高开X之后进入股票池。
然后加入均线,热度,板块等因子,盘中买入。
PS: 现在的ptrade回测速度是越来越慢的了。 估计是用户越来越多的缘故了。。。
比我刚开始用的那个时候,简直慢了有100倍.....
查看全部
ptrade一个策略里可以同时执行多少个run_daily?
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 870 次浏览 • 2025-01-17 10:28
run_daily 可以在0-24小时都能够执行,并没有限制要求交易时间09:30到15:00.
因此如果需要执行集合竞价的部分,那么就需要用run_daily 去操作了。
比如开盘打新,尾盘逆回购,
而ptrade里面也对run_daily做了限制,就是一个策略里面同时只能设置5个run_daily
对于一般人而已,应该够用的了。如果不够,那么就用handle_data处理,也是可以。handle_data,里面可以加一个时间判断的语句,那么你可以一天在指定时间执行多少个任务都没有问题,随意突破5个。
更多技术问题,可以关注公众号:可转债量化分析 查看全部
run_daily 可以在0-24小时都能够执行,并没有限制要求交易时间09:30到15:00.
因此如果需要执行集合竞价的部分,那么就需要用run_daily 去操作了。
比如开盘打新,尾盘逆回购,
而ptrade里面也对run_daily做了限制,就是一个策略里面同时只能设置5个run_daily
对于一般人而已,应该够用的了。如果不够,那么就用handle_data处理,也是可以。handle_data,里面可以加一个时间判断的语句,那么你可以一天在指定时间执行多少个任务都没有问题,随意突破5个。
更多技术问题,可以关注公众号:可转债量化分析

不同券商的ptrade实盘客户端的回测时间
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1399 次浏览 • 2024-12-03 15:41
而券商的实盘客户端的回测时间会有做限制。
1. 国金:实盘客户端不允许回测。
2. 国盛:实盘客户端回测时间为收盘后15:30之后
3. 湘财:实盘客户端回测时间为收盘后15:30之后
需要开通量化账号的读者朋友,可以关注公众号:
查看全部
而券商的实盘客户端的回测时间会有做限制。
1. 国金:实盘客户端不允许回测。
2. 国盛:实盘客户端回测时间为收盘后15:30之后
3. 湘财:实盘客户端回测时间为收盘后15:30之后
需要开通量化账号的读者朋友,可以关注公众号:

ptrade上的get_cb_info函数无法使用
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1011 次浏览 • 2024-11-20 10:32
def initialize(context):
pass
def handle_data(context, data):
df = get_cb_info()
log.info(df)
最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined
说明这个函数就根本没有做进去了。
目前我试的券商,国盛ptrade是无法使用的。
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。
查看全部
def initialize(context):
pass
def handle_data(context, data):
df = get_cb_info()
log.info(df)
最后跑出来的结果如下:
2024-11-20 10:22:00 - ERROR - 用户策略执行异常
2024-11-20 10:22:00 - ERROR - Exception: Traceback (most recent call last):
File /home/fly/sim_backtest/result/29fa7074-a6e6-11ef-b05b-c40778d9af27/user_strategy.py, line 6 in handle_data
df = get_cb_info()
--> data = BarDict(600570.SS)
--> context = <StrategyContext {'recorded_vars': {}, 'commission': <Commission {'cost': 0.0003, 'min_trade_cost': 5.0, 'tax': 0.001}>, 'blotter': <Blotter {'current_dt': date ...
NameError: name 'get_cb_info' is not defined
说明这个函数就根本没有做进去了。
目前我试的券商,国盛ptrade是无法使用的。
所以如果需要获取可转债的数据,需要自己写一个接口获取。我之前的很多文章里面也有写过类似的api接口。可以参考参考。

ptrade:登录请求失败,服务器状态400
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 954 次浏览 • 2024-11-11 10:03
ptrade:登录请求失败,服务器状态400
用户数多,占用了资源多了,服务器没有扩容,导致资源不够用了。
周一一大早就崩了。
券商ptrade的运营工作人员只能重启。 但不增加资源,不优化隔离资源分配,一旦内存不够,cpu负载占满,全部人一起陪葬,这样好么?
查看全部
Ptrade获取历史涨停的股票|python代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1200 次浏览 • 2024-11-01 18:41
下面的程序用于监控可转债的正股,在过去10天里是否出现涨停。
下面的ptrade的代码片段。需要完整代码,可关注公众号私信获取。
def hit_limit_recent():
# 选出最近N天正股有涨停的可转债
N =10
scale = 5
latest_price = 160
bond_name_dict, bond_zg_dict = get_all_bond_info(scale=scale,latest_price=latest_price)
zg_list = list(bond_zg_dict.values())
panel_info = get_history(N, frequency='1d', field=['close','high_limit'], security_list=zg_list, fq='pre', include=False, fill='nan')
df = panel_info.swapaxes("minor_axis", "items")
target_list = []
for code in zg_list:
stock_df = df[code]
hit_high = stock_df[stock_df['close']==stock_df['high_limit']]
if len(hit_high) > 0:
# print(hit_high.index)
target_list.append(code)
zz_target_list = []
for code,zg_code in bond_zg_dict.items():
if zg_code in target_list:
print(code, bond_name_dict[code])
zz_target_list.append(code)
return zz_target_list当然,会有一个情形,就是实际最后是开板状态,但是收盘价格和涨停价格一样。
这种属于涨停开板状态,需要利用tick的委卖买来判断。
查看全部
下面的程序用于监控可转债的正股,在过去10天里是否出现涨停。
下面的ptrade的代码片段。需要完整代码,可关注公众号私信获取。
def hit_limit_recent():当然,会有一个情形,就是实际最后是开板状态,但是收盘价格和涨停价格一样。
# 选出最近N天正股有涨停的可转债
N =10
scale = 5
latest_price = 160
bond_name_dict, bond_zg_dict = get_all_bond_info(scale=scale,latest_price=latest_price)
zg_list = list(bond_zg_dict.values())
panel_info = get_history(N, frequency='1d', field=['close','high_limit'], security_list=zg_list, fq='pre', include=False, fill='nan')
df = panel_info.swapaxes("minor_axis", "items")
target_list = []
for code in zg_list:
stock_df = df[code]
hit_high = stock_df[stock_df['close']==stock_df['high_limit']]
if len(hit_high) > 0:
# print(hit_high.index)
target_list.append(code)
zz_target_list = []
for code,zg_code in bond_zg_dict.items():
if zg_code in target_list:
print(code, bond_name_dict[code])
zz_target_list.append(code)
return zz_target_list
这种属于涨停开板状态,需要利用tick的委卖买来判断。

可转债现金替代策略 | QMT | Ptrade
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1282 次浏览 • 2024-10-15 11:05
适合大资金,求稳。
挑选低价格的AAA可转债,比如 正股是 银行,高分红的国企股,比如 大秦铁路的转债,大秦转债等,且到期收益为正。作为标的池。
然后 先 在标的池里挑选出一个价格最低的转债,1/3 仓位 买入,其余仓位买入银华日利。
程序每分钟监控。或者不用那么频繁,可以设置每小时,每天都可以。
如果转债价格下跌了X,就卖出银华日利(1/10仓位),买入转债; (这里仓位随意举例)
如果转债价格上涨了Y,就卖出转债(1/5仓位),买入银华日利;(这里仓位随意举例)
一般AAA的大规模转债,其波动比较小,很少会遇到趋势上涨。 所以大部分的时间是做有波动的高抛低吸。
但,一旦遇到趋势上涨,或者突破,那么按照策略 会不断卖出转债;
一旦转债仓位为0,就可以在标的池买入另外一只标的(1/3仓位),从而继续下一轮的高抛低吸。
如果转债价格一直跌,但由于AAA的转债有保底,且有回售,转股,下修等各种手段,来兜底,
所以一般遇到跌幅行情,下跌不会超过10%,所以策略可以一直在卖出银华日利,买入转债;
如果中途,出现了其他好的标的,你需要手动交易,那么可以手动卖出银华日利或者可转债,腾出仓位,来操作。
也就是这个策略的可转债,纯粹当做现金来替代来使用。
接着就是使用QMT和Ptrade实现。
待续............
查看全部
适合大资金,求稳。
挑选低价格的AAA可转债,比如 正股是 银行,高分红的国企股,比如 大秦铁路的转债,大秦转债等,且到期收益为正。作为标的池。
然后 先 在标的池里挑选出一个价格最低的转债,1/3 仓位 买入,其余仓位买入银华日利。
程序每分钟监控。或者不用那么频繁,可以设置每小时,每天都可以。
如果转债价格下跌了X,就卖出银华日利(1/10仓位),买入转债; (这里仓位随意举例)
如果转债价格上涨了Y,就卖出转债(1/5仓位),买入银华日利;(这里仓位随意举例)
一般AAA的大规模转债,其波动比较小,很少会遇到趋势上涨。 所以大部分的时间是做有波动的高抛低吸。
但,一旦遇到趋势上涨,或者突破,那么按照策略 会不断卖出转债;
一旦转债仓位为0,就可以在标的池买入另外一只标的(1/3仓位),从而继续下一轮的高抛低吸。
如果转债价格一直跌,但由于AAA的转债有保底,且有回售,转股,下修等各种手段,来兜底,
所以一般遇到跌幅行情,下跌不会超过10%,所以策略可以一直在卖出银华日利,买入转债;
如果中途,出现了其他好的标的,你需要手动交易,那么可以手动卖出银华日利或者可转债,腾出仓位,来操作。
也就是这个策略的可转债,纯粹当做现金来替代来使用。
接着就是使用QMT和Ptrade实现。
待续............

Ptrade回测模式下获取实时的分钟数据:只能使用handle_data,数据不能用get_snapshot
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1592 次浏览 • 2024-09-21 17:32
发现有点蛋疼,记录一下。
因为回测模式下,不能使用run_interval 函数;
而run_daily模式,只能在固定时间运行,无法分钟级别。
所以只能使用 handle_data
而在handle_data 里面获取当前的分钟价格数据,也无法使用 get_snapshot ,get_gear_price,函数。
所以只能使用handle_data(Context,data) 里面的data里。
而handle_data 里面的data数据,使用方法如下:
import datetime
target_list = [
'600000.SS',
'000333.SZ'
]
def execution(context, data):
now = context.current_dt.strftime('%H:%M')
for code in target_list:
tick_info = data[code]
price = tick_info['price']
print('now: {} code : {} price:{}'.format(now,code ,price))
# 标准
def initialize(context):
log.info("公众号:可转债量化分析 ---- start ----")
def handle_data(context, data):
execution(context, data)
获取数据结果:2024-09-20 14:42:00 - INFO - now: 14:42 code : 000333.SZ price:66.22
2024-09-20 14:43:00 - INFO - now: 14:43 code : 000333.SZ price:66.26
2024-09-20 14:44:00 - INFO - now: 14:44 code : 000333.SZ price:66.19
2024-09-20 14:45:00 - INFO - now: 14:45 code : 000333.SZ price:66.2
2024-09-20 14:46:00 - INFO - now: 14:46 code : 000333.SZ price:66.19
2024-09-20 14:47:00 - INFO - now: 14:47 code : 000333.SZ price:66.18
2024-09-20 14:48:00 - INFO - now: 14:48 code : 000333.SZ price:66.14
2024-09-20 14:49:00 - INFO - now: 14:49 code : 000333.SZ price:66.25
2024-09-20 14:50:00 - INFO - now: 14:50 code : 000333.SZ price:66.19
2024-09-20 14:51:00 - INFO - now: 14:51 code : 000333.SZ price:66.18
2024-09-20 14:52:00 - INFO - now: 14:52 code : 000333.SZ price:66.19
2024-09-20 14:53:00 - INFO - now: 14:53 code : 000333.SZ price:66.2
2024-09-20 14:54:00 - INFO - now: 14:54 code : 000333.SZ price:66.19
2024-09-20 14:55:00 - INFO - now: 14:55 code : 000333.SZ price:66.25
2024-09-20 14:56:00 - INFO - now: 14:56 code : 000333.SZ price:66.27
2024-09-20 14:57:00 - INFO - now: 14:57 code : 000333.SZ price:66.28
2024-09-20 14:58:00 - INFO - now: 14:58 code : 000333.SZ price:66.28
2024-09-20 14:59:00 - INFO - now: 14:59 code : 000333.SZ price:66.28
2024-09-20 15:00:00 - INFO - now: 15:00 code : 000333.SZ price:66.06
用同花顺,对了一下结果,是满足的了。
查看全部
发现有点蛋疼,记录一下。
因为回测模式下,不能使用run_interval 函数;
而run_daily模式,只能在固定时间运行,无法分钟级别。
所以只能使用 handle_data
而在handle_data 里面获取当前的分钟价格数据,也无法使用 get_snapshot ,get_gear_price,函数。
所以只能使用handle_data(Context,data) 里面的data里。
而handle_data 里面的data数据,使用方法如下:
import datetime
target_list = [
'600000.SS',
'000333.SZ'
]
def execution(context, data):
now = context.current_dt.strftime('%H:%M')
for code in target_list:
tick_info = data[code]
price = tick_info['price']
print('now: {} code : {} price:{}'.format(now,code ,price))
# 标准
def initialize(context):
log.info("公众号:可转债量化分析 ---- start ----")
def handle_data(context, data):
execution(context, data)
获取数据结果:
2024-09-20 14:42:00 - INFO - now: 14:42 code : 000333.SZ price:66.22
2024-09-20 14:43:00 - INFO - now: 14:43 code : 000333.SZ price:66.26
2024-09-20 14:44:00 - INFO - now: 14:44 code : 000333.SZ price:66.19
2024-09-20 14:45:00 - INFO - now: 14:45 code : 000333.SZ price:66.2
2024-09-20 14:46:00 - INFO - now: 14:46 code : 000333.SZ price:66.19
2024-09-20 14:47:00 - INFO - now: 14:47 code : 000333.SZ price:66.18
2024-09-20 14:48:00 - INFO - now: 14:48 code : 000333.SZ price:66.14
2024-09-20 14:49:00 - INFO - now: 14:49 code : 000333.SZ price:66.25
2024-09-20 14:50:00 - INFO - now: 14:50 code : 000333.SZ price:66.19
2024-09-20 14:51:00 - INFO - now: 14:51 code : 000333.SZ price:66.18
2024-09-20 14:52:00 - INFO - now: 14:52 code : 000333.SZ price:66.19
2024-09-20 14:53:00 - INFO - now: 14:53 code : 000333.SZ price:66.2
2024-09-20 14:54:00 - INFO - now: 14:54 code : 000333.SZ price:66.19
2024-09-20 14:55:00 - INFO - now: 14:55 code : 000333.SZ price:66.25
2024-09-20 14:56:00 - INFO - now: 14:56 code : 000333.SZ price:66.27
2024-09-20 14:57:00 - INFO - now: 14:57 code : 000333.SZ price:66.28
2024-09-20 14:58:00 - INFO - now: 14:58 code : 000333.SZ price:66.28
2024-09-20 14:59:00 - INFO - now: 14:59 code : 000333.SZ price:66.28
2024-09-20 15:00:00 - INFO - now: 15:00 code : 000333.SZ price:66.06
用同花顺,对了一下结果,是满足的了。

QMT/iQuant居然禁止redis获取股票行情数据,如何破解
QMT • 李魔佛 发表了文章 • 0 个评论 • 1817 次浏览 • 2024-09-10 11:26
因为QMT没有转债的规模,而国信iquant本身又把requests 库给封禁了,它无法通过requests 获取任何外部数据,比如访问东财,tushare都会提示访问超时。(后面发现它修改了requests的源码)
于是发现iquant的redis是内置库,不需要pip安装,所以第一时间就想到使用redis获取转债数据。
简单测试了一下,redis是可以获取数据的。比如随便丢一个字符到redis,然后QMT可以获取到这个字符数据
于是就把原来的策略里,使用requests 调用API的部分,改成redis。
可是运行后发现报错:
2024-09-10 10:05:19,851 [INFO] [0x00000e24] [msg service] msg: 0C:\iquant\python\新建策略文件.py_SH00030021
DataError:Sensitive Data Detected, Forbidden!
报错信息说的很明显,敏感信息检测到,禁止!
居然对redis的数据进行检验,很明显这部分是QMT对redis的源码进行了修改。
于是根据报错的提示,找到 目录:
D:\tool\gjzq_qmt_simulation\bin.x64\Lib\site-packages\redis,下面的client.py
找到对应的行:
的确有一个check_response 的函数用于检测 redis的内容,看正则表达式和变量命名(search_stock),类似股票代码的数据传输被阻止了,检测到之后直接raise Error,程序会停止的。
解决办法,也很简单,直接把这一段 代码删除就好了。
然后需要重启你的QMT,不然修改的代码不会生效。
然后重新运行的你的策略,发现一起正常了。
需要开通QMT和代写量化策略,可以关注公众号: 查看全部
因为QMT没有转债的规模,而国信iquant本身又把requests 库给封禁了,它无法通过requests 获取任何外部数据,比如访问东财,tushare都会提示访问超时。(后面发现它修改了requests的源码)
于是发现iquant的redis是内置库,不需要pip安装,所以第一时间就想到使用redis获取转债数据。
简单测试了一下,redis是可以获取数据的。比如随便丢一个字符到redis,然后QMT可以获取到这个字符数据
于是就把原来的策略里,使用requests 调用API的部分,改成redis。
可是运行后发现报错:
2024-09-10 10:05:19,851 [INFO] [0x00000e24] [msg service] msg: 0C:\iquant\python\新建策略文件.py_SH00030021
DataError:Sensitive Data Detected, Forbidden!
报错信息说的很明显,敏感信息检测到,禁止!
居然对redis的数据进行检验,很明显这部分是QMT对redis的源码进行了修改。
于是根据报错的提示,找到 目录:
D:\tool\gjzq_qmt_simulation\bin.x64\Lib\site-packages\redis,下面的client.py
找到对应的行:
的确有一个check_response 的函数用于检测 redis的内容,看正则表达式和变量命名(search_stock),类似股票代码的数据传输被阻止了,检测到之后直接raise Error,程序会停止的。
解决办法,也很简单,直接把这一段 代码删除就好了。
然后需要重启你的QMT,不然修改的代码不会生效。
然后重新运行的你的策略,发现一起正常了。
需要开通QMT和代写量化策略,可以关注公众号:

python Ptrade获取热门板块,连板股票 python代码
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2350 次浏览 • 2024-08-23 16:57
Ptrade API文档:https://ptradeapi.com/#get_sort_msg
get_sort_msg – 获取板块、行业的涨幅排名
get_sort_msg(sort_type_grp=None, sort_field_name=None, sort_type=1, data_count=100)
接口说明
该接口用于获取板块、行业的涨幅排名。
参数 sort_type_grp: 板块或行业的代码(list[str]/str);
(暂时只支持XBHS.DY地域、XBHS.GN概念、XBHS.ZJHHY证监会行业、XBHS.ZS指数、XBHS.HY行业等)
示例代码:按概念板块涨幅倒序排名
import datetime
START_TIME = (datetime.datetime.now() + datetime.timedelta(minutes=1)).strftime('%H:%M')
def execution(context):
#获取XBHS.GN的概念排名信息
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='px_change_rate', sort_type=1, data_count=100)
for data in sort_data:
log.info('板块: {} '.format(data['prod_name']))
for sub_stock in data['rise_first_grp']:
log.info('{} 涨幅 :{}'.format(sub_stock['prod_name'],sub_stock['px_change_rate']))
log.info('\n')
def initialize(context):
# 初始化策略
run_daily(context, execution, time=START_TIME) # 扫描
log.info("公众号:可转债量化分析\n")
def handle_data(context, data):
pass
上面代码在ptrade启动后一分钟拿到结果。不限制要求开盘时间的。其实Ptrade可以在24小时任意时刻启动。
get_sort_msg 返回的数据结构体如下:
具体字段的含义:
prod_code: 行业代码(str:str);
prod_name: 行业名称(str:str);
hq_type_code: 行业板块代码(str:str);
time_stamp: 时间戳毫秒级(str:int);
trade_mins: 交易分钟数(str:int);
trade_status: 交易状态(str:str);
preclose_px: 昨日收盘价(str:float);
open_px: 今日开盘价(str:float);
last_px: 最新价(str:float);
high_px: 最高价(str:float);
low_px: 最低价(str:float);
wavg_px: 加权平均价(str:float);
business_amount: 总成交量(str:int);
business_balance: 总成交额(str:int);
px_change: 涨跌额(str:float);
amplitude: 振幅(str:int);
px_change_rate: 涨跌幅(str:float);
circulation_amount: 流通股本(str:int);
total_shares: 总股本(str:int);
market_value: 市值(str:int);
circulation_value: 流通市值(str:int);
vol_ratio: 量比(str:float);
shares_per_hand: 每手股数(str:int);
rise_count: 上涨家数(str:int);
fall_count: 下跌家数(str:int);
member_count: 成员个数(str:int);
rise_first_grp: 领涨股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
fall_first_grp: 领跌股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
这个返回数据是实时的,可以用来选股,选择热门股,热门板块,涨停板块,昨日涨停,昨日连板板块。
比如上面运行结果里就有 昨日连板的板块个股,有9个,在rise_first_grp 字段里面:
需要开通Ptrade的读者朋友可以后天联系哦,提供不同券商ptrade,低门槛,低费率,还有技术支持群!
查看全部
Ptrade API文档:https://ptradeapi.com/#get_sort_msg
get_sort_msg – 获取板块、行业的涨幅排名
get_sort_msg(sort_type_grp=None, sort_field_name=None, sort_type=1, data_count=100)
接口说明
该接口用于获取板块、行业的涨幅排名。
参数 sort_type_grp: 板块或行业的代码(list[str]/str);
(暂时只支持XBHS.DY地域、XBHS.GN概念、XBHS.ZJHHY证监会行业、XBHS.ZS指数、XBHS.HY行业等)
示例代码:按概念板块涨幅倒序排名
import datetime
START_TIME = (datetime.datetime.now() + datetime.timedelta(minutes=1)).strftime('%H:%M')
def execution(context):
#获取XBHS.GN的概念排名信息
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='px_change_rate', sort_type=1, data_count=100)
for data in sort_data:
log.info('板块: {} '.format(data['prod_name']))
for sub_stock in data['rise_first_grp']:
log.info('{} 涨幅 :{}'.format(sub_stock['prod_name'],sub_stock['px_change_rate']))
log.info('\n')
def initialize(context):
# 初始化策略
run_daily(context, execution, time=START_TIME) # 扫描
log.info("公众号:可转债量化分析\n")
def handle_data(context, data):
pass
上面代码在ptrade启动后一分钟拿到结果。不限制要求开盘时间的。其实Ptrade可以在24小时任意时刻启动。
get_sort_msg 返回的数据结构体如下:
具体字段的含义:
prod_code: 行业代码(str:str);
prod_name: 行业名称(str:str);
hq_type_code: 行业板块代码(str:str);
time_stamp: 时间戳毫秒级(str:int);
trade_mins: 交易分钟数(str:int);
trade_status: 交易状态(str:str);
preclose_px: 昨日收盘价(str:float);
open_px: 今日开盘价(str:float);
last_px: 最新价(str:float);
high_px: 最高价(str:float);
low_px: 最低价(str:float);
wavg_px: 加权平均价(str:float);
business_amount: 总成交量(str:int);
business_balance: 总成交额(str:int);
px_change: 涨跌额(str:float);
amplitude: 振幅(str:int);
px_change_rate: 涨跌幅(str:float);
circulation_amount: 流通股本(str:int);
total_shares: 总股本(str:int);
market_value: 市值(str:int);
circulation_value: 流通市值(str:int);
vol_ratio: 量比(str:float);
shares_per_hand: 每手股数(str:int);
rise_count: 上涨家数(str:int);
fall_count: 下跌家数(str:int);
member_count: 成员个数(str:int);
rise_first_grp: 领涨股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
fall_first_grp: 领跌股票(其包含以下五个字段)(str:list[dict{str:int,str:str,str:str,str:float,str:float},...]);
prod_code: 股票代码(str:str);
prod_name: 证券名称(str:str);
hq_type_code: 类型代码(str:str);
last_px: 最新价(str:float);
px_change_rate: 涨跌幅(str:float);
这个返回数据是实时的,可以用来选股,选择热门股,热门板块,涨停板块,昨日涨停,昨日连板板块。
比如上面运行结果里就有 昨日连板的板块个股,有9个,在rise_first_grp 字段里面:
需要开通Ptrade的读者朋友可以后天联系哦,提供不同券商ptrade,低门槛,低费率,还有技术支持群!

【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1908 次浏览 • 2024-08-08 14:01
主要框架如下:
盘前我们先去读取数据库的数据:
格式很简单,就记录了代码和名字:
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
def initialize(context):
# 初始化策略
engine = DBSelector().get_engine()
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
df['code']=df['code'].astype(str)
result = {}
for index, row in df.iterrows():
code = add_code_postfix(row['code'])
result[code] = {'name': row['name'], 'source': row['source']}
g.holding_stock_dict = result
g.holding_stock_list = list(result.keys())
g.__cache = Cache()
run_interval(context, execution, seconds=INTERVAL) # 扫描
def handle_data(context, data):
pass
def tick_data(context, data):
pass
def before_trading_start(context, data):
'''
盘前
'''
if DEBUG:
log.info('盘前运行开始', str(context.blotter.current_dt))
def after_trading_end(context, data):
'''
盘后
'''
if DEBUG:
log.info('盘后时间 ', str(context.blotter.current_dt))
然后主要部分在 execution 这个监控函数这里。
def execution(context):
tick_info = get_snapshot(g.holding_stock_list)
for code, tick in tick_info.items():
px_change_rate = tick['px_change_rate']
if px_change_rate > abs(HIT_TARGET):
if g.__cache.check(code):
# 通知
name = g.holding_stock_dict.get(code)['name']
source = g.holding_stock_dict.get(code)['source']
msg = '{}-{} 涨幅-{},{}'.format(code,
name, px_change_rate, source)
send_message_via_wechat(msg)
send_message_via_wechat 这个函数是发送微信消息的。
然后基本完成了整体的代码编写,里面一些自定义的函数为了判断 下一次通知要等待多久。
因为不能因为同一个股票满足条件了,然后每隔3秒发一次微信消息。你手机会一直滴滴滴地响的。
而且很容易把其他刚出现的提示给覆盖了。
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
查看全部
主要框架如下:
盘前我们先去读取数据库的数据:
格式很简单,就记录了代码和名字:
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
def initialize(context):
# 初始化策略
engine = DBSelector().get_engine()
df = pd.read_sql('select * from tb_holding_stock_list', con=engine)
df['code']=df['code'].astype(str)
result = {}
for index, row in df.iterrows():
code = add_code_postfix(row['code'])
result[code] = {'name': row['name'], 'source': row['source']}
g.holding_stock_dict = result
g.holding_stock_list = list(result.keys())
g.__cache = Cache()
run_interval(context, execution, seconds=INTERVAL) # 扫描
def handle_data(context, data):
pass
def tick_data(context, data):
pass
def before_trading_start(context, data):
'''
盘前
'''
if DEBUG:
log.info('盘前运行开始', str(context.blotter.current_dt))
def after_trading_end(context, data):
'''
盘后
'''
if DEBUG:
log.info('盘后时间 ', str(context.blotter.current_dt))
然后主要部分在 execution 这个监控函数这里。
def execution(context):
tick_info = get_snapshot(g.holding_stock_list)
for code, tick in tick_info.items():
px_change_rate = tick['px_change_rate']
if px_change_rate > abs(HIT_TARGET):
if g.__cache.check(code):
# 通知
name = g.holding_stock_dict.get(code)['name']
source = g.holding_stock_dict.get(code)['source']
msg = '{}-{} 涨幅-{},{}'.format(code,
name, px_change_rate, source)
send_message_via_wechat(msg)
send_message_via_wechat 这个函数是发送微信消息的。
然后基本完成了整体的代码编写,里面一些自定义的函数为了判断 下一次通知要等待多久。
因为不能因为同一个股票满足条件了,然后每隔3秒发一次微信消息。你手机会一直滴滴滴地响的。
而且很容易把其他刚出现的提示给覆盖了。
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
【保姆教程】使用ptrade做一个持仓监控提醒软件 (一)
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2163 次浏览 • 2024-08-07 10:23
因为有多个券商,比如银河,华宝,国金,国盛等。 而且也有家人的账户,可能一个银河就有5-6个账户。
所以如果持仓比较多的话,没有时间管得过来。 设置条件单比较繁琐,也不一定能管得过来。
要求:
把所有的持仓股Excel导出,输入的数据库(这里选择mysql),然后Ptrade读取了股票池,每隔3s扫描一次行情,如果遇到大涨或者大跌的个股,转债,ETF,就发送微信消息提醒(涨幅/跌幅大于7%)
这个是某个客户的简单需求。
后面就按照上面的需求做一个客户端,除了可以录入上述资料,还能提供web服务,输入,删除持仓股,做到实时更新。
最后提醒效果如下:
国金QMT的字样,用来区分我这个标的是哪一个券商的持仓。比如 有可能是 家人1-银河,家人2-国盛,这样的哈
下一篇:
【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
欢迎关注公众号:可转债量化分析 查看全部
因为有多个券商,比如银河,华宝,国金,国盛等。 而且也有家人的账户,可能一个银河就有5-6个账户。
所以如果持仓比较多的话,没有时间管得过来。 设置条件单比较繁琐,也不一定能管得过来。
要求:
把所有的持仓股Excel导出,输入的数据库(这里选择mysql),然后Ptrade读取了股票池,每隔3s扫描一次行情,如果遇到大涨或者大跌的个股,转债,ETF,就发送微信消息提醒(涨幅/跌幅大于7%)
这个是某个客户的简单需求。
后面就按照上面的需求做一个客户端,除了可以录入上述资料,还能提供web服务,输入,删除持仓股,做到实时更新。
最后提醒效果如下:
国金QMT的字样,用来区分我这个标的是哪一个券商的持仓。比如 有可能是 家人1-银河,家人2-国盛,这样的哈
下一篇:
【保姆教程】使用ptrade做一个持仓监控提醒软件 (二)
欢迎关注公众号:可转债量化分析

ptrade获取的历史数据最长到哪一年?ptrade如何获取上证指数
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1589 次浏览 • 2024-06-30 13:48
文档里面也有说明:
7、该接口只能获取2005年后的数据。
ptrade官网api接口文档:
https://ptradeapi.com/#
实测也是符合要求的:
ptrade如何获取上证指数, 代码是 000001.SS
test_data = data = get_price(security='000001.SS',start_date='20050201',end_date='20050630',frequency='1d')
ptrade获取上证指数2005年的数据:
需要低佣,低门槛开通ptrade的朋友,可以扫描关注关注号: 查看全部
文档里面也有说明:
7、该接口只能获取2005年后的数据。
ptrade官网api接口文档:
https://ptradeapi.com/#
实测也是符合要求的:
ptrade如何获取上证指数, 代码是 000001.SS
test_data = data = get_price(security='000001.SS',start_date='20050201',end_date='20050630',frequency='1d')
ptrade获取上证指数2005年的数据:
需要低佣,低门槛开通ptrade的朋友,可以扫描关注关注号:

Ptrade成交回调函数无法执行的原因? | ptrade bug
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1459 次浏览 • 2024-05-28 00:08
就是回调函数里面有一个字段entrust_no.
这个字段是什么意思呢? 是营业部的下单编号。比如你挂了一个委托单,就会有一个entrust_no, 比如 100001
这个编号对于一天的数据来说,是唯一不重复的,也就是一天内再不会出现100001。
而ptrade的成交回调依赖的是这个entrust_no, 如果系统里面已经触发过了一个entrust_no 为 100001的成交委托,那么如果又有一个重复的订单entrust_no 100001成交,那么,此时的ptrade的 成交回调函数是不会触发的!
那么上面说的一天内这个entrust_no是不会重复的。
可是,这个entrust_no挂单编号,在同一个营业部单元里,第二天会重复的,比如你第二天挂单也是entrust_no 100001,并且你的ptrade策略没有重启,也就是一直运行的话,那么如果碰巧你的下单entrust_no上昨天或者之前某一天(ptrade策略没有重启开始算起),entrust_no重复了的情况下。
此时的ptrade 成交回调函数 on_trade_repsonse 是不会执行的!!!
天坑!
查看全部
就是回调函数里面有一个字段entrust_no.
这个字段是什么意思呢? 是营业部的下单编号。比如你挂了一个委托单,就会有一个entrust_no, 比如 100001
这个编号对于一天的数据来说,是唯一不重复的,也就是一天内再不会出现100001。
而ptrade的成交回调依赖的是这个entrust_no, 如果系统里面已经触发过了一个entrust_no 为 100001的成交委托,那么如果又有一个重复的订单entrust_no 100001成交,那么,此时的ptrade的 成交回调函数是不会触发的!
那么上面说的一天内这个entrust_no是不会重复的。
可是,这个entrust_no挂单编号,在同一个营业部单元里,第二天会重复的,比如你第二天挂单也是entrust_no 100001,并且你的ptrade策略没有重启,也就是一直运行的话,那么如果碰巧你的下单entrust_no上昨天或者之前某一天(ptrade策略没有重启开始算起),entrust_no重复了的情况下。
此时的ptrade 成交回调函数 on_trade_repsonse 是不会执行的!!!
天坑!
国盛证券的Ptrade数据无论是回测还是实盘很有问题,前复权不正确,数据断崖
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 1728 次浏览 • 2024-04-18 00:19
举个例子,比如 煤炭ETF 515220,
在4月12日进行的除权,1股变2股,因此,所以4月12日之后的价格会是原来的1/2,如果做前复权,那么前面的价格也都是要根据当前的价格做复权处理。
结果国盛的ptrade的历史数据,取的是前复权数据,前复权数据,(重点强调),在4月12日的的时候就出现了断崖。也就是没有做复权的处理。
测试代码很简单:
def initialize(context):
run_daily(context, event, '09:38')
def handle_data(context, data):
pass
def event(context):
his60 = get_history(60, '1d', ['close'], ['515220.SS'], fq='pre', include=False)
print(his60)运行时间改成任意的就行。
获取历史数据用
get_history,取过去60天的前复权的数据。 然后就是断崖的数据。 已经确定是国盛的ptrade数据问题。因为我用上面的代码,在东莞证券,国金证券,湘财证券的ptrade上运行,均能得到正确的数据。
然后更为搞笑的,这么一个问题,反馈了,没有回应。无语。
查看全部
举个例子,比如 煤炭ETF 515220,
在4月12日进行的除权,1股变2股,因此,所以4月12日之后的价格会是原来的1/2,如果做前复权,那么前面的价格也都是要根据当前的价格做复权处理。
结果国盛的ptrade的历史数据,取的是前复权数据,前复权数据,(重点强调),在4月12日的的时候就出现了断崖。也就是没有做复权的处理。
测试代码很简单:
def initialize(context):运行时间改成任意的就行。
run_daily(context, event, '09:38')
def handle_data(context, data):
pass
def event(context):
his60 = get_history(60, '1d', ['close'], ['515220.SS'], fq='pre', include=False)
print(his60)
获取历史数据用
get_history,取过去60天的前复权的数据。 然后就是断崖的数据。 已经确定是国盛的ptrade数据问题。因为我用上面的代码,在东莞证券,国金证券,湘财证券的ptrade上运行,均能得到正确的数据。
然后更为搞笑的,这么一个问题,反馈了,没有回应。无语。
Ptrade|QMT|银行股息率轮动 实盘自动化交易
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1563 次浏览 • 2024-03-05 09:33
ptrade调试经验分享(坑) 委托成交回调函数
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2114 次浏览 • 2023-12-22 10:30
之前的代码里面,由于少了一个if,导致如果code不在
g.start_buy_sell_queue
这个集合里面的话,就会报错。(但正常情况下都会有值,但问题就出现在一些特殊情况下)
不然你试试在
on_trade_response
里面直接raise一个Exception出来,日志里也不会有任何显示。
切近!!
on_trade_response 里面做好安全防护!! 最好是有些业务逻辑完成了在里面print一下,以确保是执行到后面的。 查看全部
ptrade精确参与集合竞价交易 时间设置问题
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2439 次浏览 • 2023-11-16 10:10
查了下日志。run_daily 设置的9:25运行,下单委托的时间在9:25:01 这个时间就被推到9:30开盘去成交了。
所以实际没有参与到9:25的集合竞价。
所以要参与集合竞价,需要设定在9:24分开始,然后不断在一个循环里面,用更小的时间颗粒,比如100ms去监听。
等到9:24:59的时间,才去下单。
import datetime
import time
RUN_TIME = '09:24'
def execution(context):
while 1:
current_second = datetime.datetime.now().strftime('%S')
if current_second >= '58':
break
time.sleep(0.1)
do_something()
def initialize(context):
# 初始化策略
run_daily(context, execution, RUN_TIME)
def handle_data(context, data):
pass
具体代码可以参照我的知识星球
查看全部
查了下日志。run_daily 设置的9:25运行,下单委托的时间在9:25:01 这个时间就被推到9:30开盘去成交了。
所以实际没有参与到9:25的集合竞价。
所以要参与集合竞价,需要设定在9:24分开始,然后不断在一个循环里面,用更小的时间颗粒,比如100ms去监听。
等到9:24:59的时间,才去下单。
import datetime
import time
RUN_TIME = '09:24'
def execution(context):
while 1:
current_second = datetime.datetime.now().strftime('%S')
if current_second >= '58':
break
time.sleep(0.1)
do_something()
def initialize(context):
# 初始化策略
run_daily(context, execution, RUN_TIME)
def handle_data(context, data):
pass
具体代码可以参照我的知识星球

QMT | Ptrade 量化策略代写服务
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 3263 次浏览 • 2023-11-01 10:43
多年交易经验,量化交易与开发经验。所以很多策略,其实用户大体描述,就知道要注意哪些地方,会提出一些建议,用户要注意,需不需要添加一些判读条件等等。(当然,策略的具体参数都是设置可以调节的,你不需要把实际的参数告诉我,代码给你后,你自己运行策略的时候把你策略的真正参数填上去就好了。)
有偿,收费,价格美丽。根据策略实际的复杂程度与预估的工时,收费。(不根据代码数量,因为我写代码很精简)
我也帮你们咨询过了迅投的客服。 因为他们官网也有提供策略代写服务。他们是不问你策略,直接是5000起步哦。然后根据策略,在5000的基础上不断加。
咨询完,我都感觉我自己以前的报价太低了,呜。
PS: 之前还有迅投的前员工私底下接单写策略,然后到我的星球里面白嫖我的代码,调用我接口数据,被我发现后举报到星球的。后面那个客户发现代码里面藏有我的公众号信息哈,找到我让我修改接口数据哈。
需要的代写策略的盆友,可以关注公众号,在菜单栏那里的“代写量化程序”或者 后台回复:策略代写,获取联系方式哦
扫码关注公众号:
查看全部
迅投的QMT和恒生电子的Ptrade, 还有掘金, 量化策略编程, 实盘和回测都行。只要你的需求明确,白纸黑字描述清楚,都可以做。股票,ETF,可转债都行。
多年交易经验,量化交易与开发经验。所以很多策略,其实用户大体描述,就知道要注意哪些地方,会提出一些建议,用户要注意,需不需要添加一些判读条件等等。(当然,策略的具体参数都是设置可以调节的,你不需要把实际的参数告诉我,代码给你后,你自己运行策略的时候把你策略的真正参数填上去就好了。)
有偿,收费,价格美丽。根据策略实际的复杂程度与预估的工时,收费。(不根据代码数量,因为我写代码很精简)
我也帮你们咨询过了迅投的客服。 因为他们官网也有提供策略代写服务。他们是不问你策略,直接是5000起步哦。然后根据策略,在5000的基础上不断加。
咨询完,我都感觉我自己以前的报价太低了,呜。
PS: 之前还有迅投的前员工私底下接单写策略,然后到我的星球里面白嫖我的代码,调用我接口数据,被我发现后举报到星球的。后面那个客户发现代码里面藏有我的公众号信息哈,找到我让我修改接口数据哈。
需要的代写策略的盆友,可以关注公众号,在菜单栏那里的“代写量化程序”或者 后台回复:策略代写,获取联系方式哦
扫码关注公众号:

国金证券 国盛证券 QMT仿真客户端 PTrade仿真客户端 QMT测试版 Ptrade测试版
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 3771 次浏览 • 2023-10-22 12:54
国金证券 - QMT测试账号信息: 登录账号:*********** 登录密码:**********
QMT交易测试客户端下载链接 链接:
https://download.gjzq.com.cn/temp/organ/gjzqqmt_ceshi.rar
国金证券 - ptrade测试账号信息: 登录账号:********* 登录密码:********
ptrade交易测试客户端下载链接 链接:
https://download.gjzq.com.cn/temp/organ/gjzqptrade_ceshi.rar
测试时间10:00--17:00 如有什么问题,请和我们联系。谢谢!
下面是国盛证券提供的试用账户:
国盛证券 - 国盛智投软件下载(测试版)Ptrade
https://download.gszq.com/ptrade/PTrade1.0-Client-V201906-00-000.zip
仿真账户:******* / ********
量化回测:支持1分钟、日线回测。
量化交易:支持LEVEL1 tick股票交易。
量化研究:提供云Ipython Notebook研究环境、行情数据2005年至今、可使用全市场金融数据。
国盛证券-迅投QMT软件下载(测试版)
https://download.gszq.com/xt/XtItClient_x64_QMT_test_1.0.0.22650.exe
仿真账户:*******/********
支持VBA、Python开发策略 可以安装第三方库 软件帮助有文档,测试版历史数据不是很准确,以熟悉界面为主。
如果需要测试账号, 需要开通券商账号后找券商经理获取.
可以扫码联系开通
查看全部
下面是国金证券提供的试用账户:
国金证券 - QMT测试账号信息: 登录账号:*********** 登录密码:**********
QMT交易测试客户端下载链接 链接:
https://download.gjzq.com.cn/temp/organ/gjzqqmt_ceshi.rar
国金证券 - ptrade测试账号信息: 登录账号:********* 登录密码:********
ptrade交易测试客户端下载链接 链接:
https://download.gjzq.com.cn/temp/organ/gjzqptrade_ceshi.rar
测试时间10:00--17:00 如有什么问题,请和我们联系。谢谢!
下面是国盛证券提供的试用账户:
国盛证券 - 国盛智投软件下载(测试版)Ptrade
https://download.gszq.com/ptrade/PTrade1.0-Client-V201906-00-000.zip
仿真账户:******* / ********
量化回测:支持1分钟、日线回测。
量化交易:支持LEVEL1 tick股票交易。
量化研究:提供云Ipython Notebook研究环境、行情数据2005年至今、可使用全市场金融数据。
国盛证券-迅投QMT软件下载(测试版)
https://download.gszq.com/xt/XtItClient_x64_QMT_test_1.0.0.22650.exe
仿真账户:*******/********
支持VBA、Python开发策略 可以安装第三方库 软件帮助有文档,测试版历史数据不是很准确,以熟悉界面为主。
如果需要测试账号, 需要开通券商账号后找券商经理获取.
可以扫码联系开通

ptrade 全局对象g持久化对象保存失败
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2059 次浏览 • 2023-10-18 09:36
File "./fly_docker/IQEngine/utils/global_variable.py", line 50, in save
_pickle.PicklingError: Can't pickle <class 'IQEngine.user_module.PositionManager'>: attribute lookup PositionManager on IQEngine.user_module failed
原因是全局变量g 不能被持久化, 需要前面加__, 比如g.Name 要改成 g.__Name
全局变量g中不能被序列化的变量将不会被保存。您可在initialize中初始化该变量时名字以'__'开头;
涉及到IO(打开的文件,实例化的类对象等)的对象是不能被序列化的;
全局变量g中以'__'开头的变量为私有变量,持久化时将不会被保存;
具体可以参加 API文档:
https://ptradeapi.com 查看全部
2023-10-18 09:25:12 - ERROR - 全局对象g持久化对象保存失败,对象名:TARGET_STOCK_CODE,错误原因:Traceback (most recent call last):
File "./fly_docker/IQEngine/utils/global_variable.py", line 50, in save
_pickle.PicklingError: Can't pickle <class 'IQEngine.user_module.PositionManager'>: attribute lookup PositionManager on IQEngine.user_module failed
原因是全局变量g 不能被持久化, 需要前面加__, 比如g.Name 要改成 g.__Name
全局变量g中不能被序列化的变量将不会被保存。您可在initialize中初始化该变量时名字以'__'开头;
涉及到IO(打开的文件,实例化的类对象等)的对象是不能被序列化的;
全局变量g中以'__'开头的变量为私有变量,持久化时将不会被保存;
具体可以参加 API文档:
https://ptradeapi.com
ptrade/qmt 判断股票是否涨停
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2794 次浏览 • 2023-10-09 11:03
以ptrade为例:
先通过 get_snapshot - 取行情快照
其中里面有2个字段:
up_px:涨停价格(str:float);
down_px:跌停价格(str:float);用当前的最新价格和涨停跌停价格比较:
last_px:最新成交价(str:float);
if last_px>=up_px 就是达到涨停价,
还有判断此时的卖一上是否有挂单. 如果还有卖单, 说明此时的涨停板并没有封住, 被人砸开了.
跌停板的判断也是如此.
2. 使用现有的API函数, 更加简单方便, 这个方法只适用于ptrade, qmt没有类似的函数.
check_limit - 代码涨跌停状态判断
使用场景
该函数仅在交易模块可用。
接口说明
该接口用于标识当日股票的涨跌停情况。
注意事项:
无
参数
security:单只股票代码或者多只股票代码组成的列表,必填字段(list[str]/str);
返回
正常返回一个dict类型数据,包含每只股票代码的涨停状态。多只股票代码查询时其中部分股票代码查询异常则该代码返回既不涨停也不跌停状态0。(dict[str:int])
涨跌停状态说明:
2:触板涨停(已经是涨停价格,但还有卖盘);
1:涨停;
0:既不涨停也不跌停;
-1:跌停;
-2:触板跌停(已经是跌停价格,但还有买盘);
示例代码:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 代码涨跌停状态
stock_flag = check_limit(g.security)
log.info(stock_flag)
公众号: 可转债量化分析
查看全部
以ptrade为例:
先通过 get_snapshot - 取行情快照
其中里面有2个字段:
up_px:涨停价格(str:float);用当前的最新价格和涨停跌停价格比较:
down_px:跌停价格(str:float);
last_px:最新成交价(str:float);
if last_px>=up_px 就是达到涨停价,
还有判断此时的卖一上是否有挂单. 如果还有卖单, 说明此时的涨停板并没有封住, 被人砸开了.
跌停板的判断也是如此.
2. 使用现有的API函数, 更加简单方便, 这个方法只适用于ptrade, qmt没有类似的函数.
check_limit - 代码涨跌停状态判断
使用场景
该函数仅在交易模块可用。
接口说明
该接口用于标识当日股票的涨跌停情况。
注意事项:
无
参数
security:单只股票代码或者多只股票代码组成的列表,必填字段(list[str]/str);
返回
正常返回一个dict类型数据,包含每只股票代码的涨停状态。多只股票代码查询时其中部分股票代码查询异常则该代码返回既不涨停也不跌停状态0。(dict[str:int])
涨跌停状态说明:
2:触板涨停(已经是涨停价格,但还有卖盘);
1:涨停;
0:既不涨停也不跌停;
-1:跌停;
-2:触板跌停(已经是跌停价格,但还有买盘);
示例代码:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 代码涨跌停状态
stock_flag = check_limit(g.security)
log.info(stock_flag)
公众号: 可转债量化分析

小市值轮动-量化交易-程序化交易-Ptrade实盘
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 3133 次浏览 • 2023-10-07 14:14
当前策略持有30只。
点击查看大图
点击查看大图
基于股票的策略不敢多买,属于试验阶段,后期仍然会不断根据市场调仓; 主仓依然在可转债。
公众号:可转债量化分析
如果需要策略代写,(ptrade、qmt,其他量化平台)
可以公众号后台回复:
策略代写
查看全部