炒股模拟app跟股城模拟炒股软件通达信版

2024-07-09 22:52:14
股票行情走势 > 怎么卖股票 > 炒股模拟app跟股城模拟炒股软件通达信版

投顾“论剑”,谁与争锋?

随着资本市场改革稳步推进,证券行业财富管理转型加速落地,其中投顾业务发展尤为迅速。根据中国证券业协会数据,2021年全行业实现投资咨询业务净收入54.57亿元,同比增长13.61%。

专业的投资顾问是券商财富管理业务的核心竞争力,近年来,证券公司对投顾人才的需求持续增长。东方财富Choice数据显示,在中国证券业协会注册登记的投顾已突破7万人。

证券时报作为国内专业权威的财经媒体,一直高度关注证券行业中投顾业务的发展与创新。日前,由证券时报主办、怀新投资协办的首届证券时报杯“精英投顾”模拟炒股大赛已于9月19日正式启动,旨在为券业投顾精英提供展示才华的舞台。

报名要点请注意,敲黑板来了:

1、参赛对象:中国证券业协会备案的投资顾问或分析师,人数不限。

2、参赛唯一官方平台:券中社APP。

3、报名时间:2022.09.19--2022.10.09

大赛规则

投顾如何参与首届证券时报杯“精英投顾”模拟炒股大赛,以下这些重点不能错过:

一、参赛要求

参赛对象:中国证券业协会备案的投资顾问或分析师,人数不限。

二、参赛方式

参赛唯一官方平台:券中社APP,请参赛者提前登录各大应用市场下载券中社APP。

1. 参赛选手在券中社APP首页点击“炒股大赛”进入,提交投顾申请认证;

2. 平台运营人员审核申请资料;

3. 参赛选手在券中社APP上面报名并参加比赛。

三、比赛流程

第一阶段:投顾根据自身情况,自行申报参评奖项

报名时间为2022年9月19日至2022年10月09日

第二阶段:“精英投顾”模拟炒股大赛启动,每个交易日21:00更新收益率排行。比赛时长为2022年10月10日至2022年12月31日

第三阶段: 根据前期的排行情况,统计出最终获奖名单并在2023年上半年公布。

奖项设置及评价体系

今年“精英投顾”模拟炒股大赛主要设有五大奖项,在前期充分调研基础上,此次评价体系满足投顾服务客户场景。

一、参赛分组

参赛产品划分为: 股票交易组和资产配置组

1、股票交易组

通过买卖股票预测涨跌进行投资交易的策略组。股票组按照申万一级分类分成31个板块,每位参赛选手最多可以选择5个擅长的风格进行投资交易。

参赛选手尽量在自己选择的风格范围内投资交易,赛季结束后,主办方会根据风格的报名参赛情况,挑选热门风格进行排行。

2、资产配置组

通过买卖场内基金、股票或者债券预测涨跌进行投资交易的策略组。

二、奖项设置及相应评比规则

1、进取精英投顾奖

评比规则:参赛投顾按照收益从高到低进行排名,取排名前10名。

2、稳健精英投顾奖

评比规则:参赛投顾按照收益得分(60%) + 最小回撤得分(40%)进行打分,之后根据参赛选手的得分进行排名,取前10名。

3、平衡精英投顾奖

评比规则:参赛投顾按照收益得分(60%) + 回撤率得分(40%)进行打分,之后根据参赛选手的所在组进行评比打分,每组取前5名。

4、风向型精英投顾奖(可选择若干个热门风格)

主办方根据股票交易组各个风格的报名参赛情况,选择若干个热门风格进行评选。

评比规则:按照收益得分(50%) + 回撤率得分(35%)+ 投资板块偏离得分(15%)进行打分,每组取前5名。

5、卓越组织奖

评比规则:证券公司参赛投顾的收益得分(40%) + 参赛人数(30%) + 换手率(30%) 进行打分,之后根据参赛公司的综合得分进行排名,取前10名。

说明:

1、每个参赛选手只能获得一个奖项。如果同一名选手获得多个奖项资格,主办方有权调整选手的奖项。

2、截至2022年12月15日,参赛选手换手率需不低于100%,否则成绩不参与奖项排名。

报名时间过半,再次提示,报名截止时间为10月9日

报名及赛事咨询:陈女士 0755-83501896

责编:李雪峰

校对:王锦程

许多A股交易者为了探究A股及其板块和个股的历史走势形态,都需要可靠的A股历史行情数据,一般都从网上找一些免费数据源下载,但是这类下载数据可能有滞后,甚至有些数据是否真实可靠不得而知。

为了克服这些问题,可以使用证券公司提供的客户端程序(有通达信版、同花顺版等)下载历史行情数据,每个交易日收盘15分钟后,即可下载。下载后的数据的格式和长度不一定满足自己的要求,可以用本文提供的python代码,本文也提供了整个操作过程的视频演示。

本文提供的历史行情数据处理的python代码文件,其中使用了多进程工具包 multiprocessing,以便充分发挥多核多线程CPU的能力,提高数据处理的速度。沪深两个交易所现在总共有将近5000只股票,把所有的日线、5分钟线和1分钟线数据都处理一遍,如果用双核CPU电脑,可能需要一个小时。处理数据所耗时间和python代码是否采用多进程多线程方法和CPU的核数都有关系。笔者处理数据使用的电脑是两颗 Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz 2.20 GHz 处理器,共2*20核,全部数据处理一次只需要 124 秒。

本文提供的python程序,包括三个自定义函数:

def preprocess_historymd(path_filename_mdrows),先对下载后的历史行情数据进行预处理,删除行情数据文件的表头和末尾行。未做处理前的行情数据为csv格式,如下图:

def multiprocess_filteringquotes(quote_watchingsymbol_list),构建多进程池

def filtering_quotes(onequote_watchingsymbollist), 处理单个的行情数据文件

完整代码如下:

''' 按指定行数截取行情数据 ''' import os import csv from multiprocessing import Pool from datetime import datetime, timedelta import time def filtering_quotes(onequote_watchingsymbollist): new_quote_itm = onequote_watchingsymbollist[0] watching_marketsymbol_lst = onequote_watchingsymbollist[1] filterquote = '' if new_quote_itm[9:21] in watching_marketsymbol_lst: quote_line = new_quote_itm.split('-') normal_dt = str(datetime.combine(datetime.today(),datetime.strptime(quote_line[0][2:],'%H%M%S').time())) filterquote = [normal_dt,quote_line[1],quote_line[2],quote_line[3],quote_line[4]] else: filterquote = '' return filterquote def multiprocess_filteringquotes(quote_watchingsymbol_list): pool = Pool() quote_data = pool.map(filtering_quotes,quote_watchingsymbol_list) pool.close() pool.join() return quote_data def preprocess_historymd(path_filename_mdrows): path_filename = path_filename_mdrows[0] total_mdrows = path_filename_mdrows[1] cut_lastrows = path_filename_mdrows[2] with open(path_filename,'r') as csv_file: #watched_stocks.csv, watch_list.csv csv_reader = csv.reader(csv_file) csv2list = [itm for itm in csv_reader] csv2list.pop(0) csv2list.pop(0) csv2list.pop(-1) if total_mdrows < len(csv2list): csv2list_cut = csv2list[len(csv2list)-(total_mdrows+abs(cut_lastrows)):(len(csv2list)+cut_lastrows)] else: csv2list_cut = csv2list[0:(len(csv2list)+cut_lastrows)] csv2list_new = [] for itm in csv2list_cut: if len(itm) == 7: csv2list_new.append([path_filename[-10:-4], itm[0].replace('/','-'),itm[1],itm[2],itm[3],itm[4],itm[5],itm[6]]) if len(itm) == 8: csv2list_new.append([path_filename[-10:-4], itm[0].replace('/','-')+" "+itm[1][0:2]+":"+itm[1][2:4], itm[2],itm[3],itm[4],itm[5],itm[6],itm[7]]) # with open(path_filename,'w') as f: #仅用于测试观察数据 # for i in range(0,len(csv2list_new)): # x = str(csv2list_new[i]).replace("'","").replace("[","").replace("]","")+'\n' # # x = csv2list_new[i] # f.write(x) print(f"行情文件 {path_filename} 处理完成, 共 { len(csv2list_new)} 行:") def multiprocess_historymd(historymd_filename_list): pool = Pool() historymd_data = pool.map(preprocess_historymd,historymd_filename_list) pool.close() pool.join() return historymd_data if __name__ == "__main__": T_start = time.perf_counter() given_dailymd_path = 'D:\\SecurityData\\MD_daily' given_min1md_path = 'D:\\SecurityData\\MD_1min' # given_dailymd_path = 'D:\\SecurityData\\test_dailyMD' # given_min1md_path = 'D:\\SecurityData\\test_min1MD' # 选取指定时间段的历史行情,如倒数3个交易日之前的1000个交易日, # 选取指定时间段的1分钟历史行情,如倒数3个交易日之前的80个交易日,注意倒数几个交易日必须与日线相同 total_days = 1000 #选取 80 个交易日的1分钟数据 total_mindays = 80 #如果截止到当前最后一个交易日,则倒数0个交易日; 如果截止到倒数第3个交易日的数据,downcount_days = -3 downcounter_days = 0 ''' 处理通达信历史行情数据文件 - 日线行情 ''' dailyfilename_list = os.listdir(given_dailymd_path) daily_filename = str(dailyfilename_list) dailyfilename_split = daily_filename.split(',') dailymdfiles_list = [given_dailymd_path +'\\' + itm[2:15] for itm in dailyfilename_split] dailymdrows_total = [total_days]*len(dailymdfiles_list) if downcounter_days < 0: # 截止到倒数0个交易日的日线 dailymdrows_end = [downcounter_days]*len(dailymdfiles_list) if downcounter_days == 0: # 截止到最后一个交易日,不用倒数 dailymdrows_end = [0]*len(dailymdfiles_list) daily_result = multiprocess_historymd(zip(dailymdfiles_list,dailymdrows_total,dailymdrows_end)) ''' 处理通达信历史行情数据文件 - 1分钟行情 ''' min1filename_list = os.listdir(given_min1md_path) min1_filename = str(min1filename_list) min1filename_split = min1_filename.split(',') min1mdfiles_list = [given_min1md_path +'\\' + itm[2:15] for itm in min1filename_split] min1mdrows_total = [240*total_mindays]*len(min1mdfiles_list) if downcounter_days < 0: # 截止到倒数3个交易日的1分钟线 min1mdrows_end = [downcounter_days*240]*len(min1mdfiles_list) if downcounter_days == 0: # 截止到最后一个交易日,不用倒数 min1mdrows_end = [0]*len(min1mdfiles_list) min1_result = multiprocess_historymd(zip(min1mdfiles_list,min1mdrows_total,min1mdrows_end)) T1_end = time.perf_counter() print(f'\n耗时 {round(T1_end-T_start,2)} 秒\n')

处理后的历史行情数据格式如下图所示:

整个操作过程的视频演示, ,看西瓜视频。

注意:获取几年的日线数据或分钟数据,与所在电脑上安装和使用通达信客户端程序的时间长短有关,初次安装后,默认可下载3年的日线数据,4个月的1分钟数据。数据导出时可选择下载不复权、前复权或后复权数据。

(本文完)

作者:piikee | 分类:怎么卖股票 | 浏览:8 | 评论:0