国信证券学习系列(2)

news/2024/10/21 19:29:25/

获取指数池:

def init(ContextInfo):#设置股票池stock300 =ContextInfo.get_stock_list_in_sector('沪深300')ContextInfo.stock300_weight = {}stock300_symbol = []stock300_weightlist = [] ContextInfo.index_code = ContextInfo.stockcode+"."+ContextInfo.market#重新制作股票池for key in stock300:# 保留权重大于0.35%的成份股if (ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100) > 0.0035:stock300_symbol.append(key)ContextInfo.stock300_weight[key] = ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100stock300_weightlist.append(ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100)print('选择的成分股权重总和为: ', np.sum(stock300_weightlist)) ContextInfo.set_universe(stock300_symbol)#print ContextInfo.stock300_weight# 资产配置的初始权重,配比为0.6-0.8-1.0ContextInfo.ratio = 0.8#账号ContextInfo.accountid = "testS"

择时买卖:

                # 获取过去5天的价格数据,若连续上涨则为强势股,调仓到(权重+0.2)的仓位if all(diff>0) and holdings[stock] < buytarget_num:buy_num = buytarget_num - holdings[stock]order_shares(stock,buy_num*100,'fix',pre_close,ContextInfo,ContextInfo.accountid)buy_sum += 1#print "买入",stock,buy_num# 获取过去5天的价格数据,若连续下跌则为弱势股,调仓到(权重-0.2)的仓位elif all(diff<0) and holdings[stock] > selltarget_num:sell_num = holdings[stock] - selltarget_numorder_shares(stock,(-1.0)*sell_num*100,'fix',pre_close,ContextInfo,ContextInfo.accountid)sell_sum += 1#print "卖出",stock,sell_num

策略代码: 

#coding:gbk
'''
回测模型示例(非实盘交易策略)本策略以0.8为初始权重跟踪指数标的沪深300中权重大于0.35%的成份股.
个股所占的百分比为(0.8*成份股权重)*100%.然后根据个股是否:
1.连续上涨5天 2.连续下跌5天
来判定个股是否为强势股/弱势股,并对其把权重由0.8调至1.0或0.6'''
#在指数(例如HS300)日线下运行
import numpy as npdef init(ContextInfo):#设置股票池stock300 =ContextInfo.get_stock_list_in_sector('沪深300')ContextInfo.stock300_weight = {}stock300_symbol = []stock300_weightlist = [] ContextInfo.index_code = ContextInfo.stockcode+"."+ContextInfo.marketfor key in stock300:# 保留权重大于0.35%的成份股if (ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100) > 0.0035:stock300_symbol.append(key)ContextInfo.stock300_weight[key] = ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100stock300_weightlist.append(ContextInfo.get_weight_in_index(ContextInfo.index_code, key) / 100)print('选择的成分股权重总和为: ', np.sum(stock300_weightlist)) ContextInfo.set_universe(stock300_symbol)#print ContextInfo.stock300_weight# 资产配置的初始权重,配比为0.6-0.8-1.0ContextInfo.ratio = 0.8#账号ContextInfo.accountid = "testS"def handlebar(ContextInfo):buy_sum = 0sell_sum = 0index  = ContextInfo.barposrealtimetag = ContextInfo.get_bar_timetag(index)print(timetag_to_datetime(realtimetag, '%Y%m%d %H:%M:%S'))dict_close=ContextInfo.get_history_data(7,'1d','close',3)print('测试1',ContextInfo.get_history_data(7,'1d','close'))print('测试',ContextInfo.get_history_data(7,'1d','close',3))print('测试',ContextInfo.get_history_data(7,'1d','close',2))print('测试',ContextInfo.get_history_data(7,'1d','close',1))#持仓市值holdvalue = 0#持仓holdings=get_holdings(ContextInfo.accountid,"STOCK")#剩余资金surpluscapital=get_avaliablecost(ContextInfo.accountid,"STOCK")for stock in ContextInfo.stock300_weight:if  stock  in holdings:if len(dict_close[stock]) == 7:holdvalue += dict_close[stock][-2] * holdings[stock]for stock in ContextInfo.stock300_weight:# 若没有仓位则按照初始权重开仓if  stock not in holdings and stock in list(dict_close.keys()):if len(dict_close[stock]) == 7:pre_close = dict_close[stock][-1]buy_num = int(ContextInfo.stock300_weight[stock] * ( holdvalue + surpluscapital ) *ContextInfo.ratio / pre_close /100)order_shares(stock,buy_num*100,'fix',pre_close,ContextInfo,ContextInfo.accountid)buy_sum += 1#print "买入",stock,buy_numelif stock in list(dict_close.keys()):if len(dict_close[stock]) == 7:diff = np.array(dict_close[stock][1:6]) - np.array(dict_close[stock][:-2])pre_close = dict_close[stock][-1]buytarget_num = int(ContextInfo.stock300_weight[stock] * ( holdvalue + surpluscapital ) * (ContextInfo.ratio + 0.2)/ pre_close /100)selltarget_num = int(ContextInfo.stock300_weight[stock] * ( holdvalue + surpluscapital ) *(ContextInfo.ratio - 0.2)/ pre_close /100)# 获取过去5天的价格数据,若连续上涨则为强势股,调仓到(权重+0.2)的仓位if all(diff>0) and holdings[stock] < buytarget_num:buy_num = buytarget_num - holdings[stock]order_shares(stock,buy_num*100,'fix',pre_close,ContextInfo,ContextInfo.accountid)buy_sum += 1#print "买入",stock,buy_num# 获取过去5天的价格数据,若连续下跌则为弱势股,调仓到(权重-0.2)的仓位elif all(diff<0) and holdings[stock] > selltarget_num:sell_num = holdings[stock] - selltarget_numorder_shares(stock,(-1.0)*sell_num*100,'fix',pre_close,ContextInfo,ContextInfo.accountid)sell_sum += 1#print "卖出",stock,sell_numif not ContextInfo.do_back_test:ContextInfo.paint('buy_num', buy_sum, -1, 0)ContextInfo.paint('sell_num', sell_sum, -1, 0)def get_holdings(accountid,datatype):holdinglist={}resultlist=get_trade_detail_data(accountid,datatype,"POSITION")for obj in resultlist:holdinglist[obj.m_strInstrumentID+"."+obj.m_strExchangeID]=obj.m_nVolume/100return holdinglistdef get_avaliablecost(accountid,datatype):result=0resultlist=get_trade_detail_data(accountid,datatype,"ACCOUNT")for obj in resultlist:result=obj.m_dAvailablereturn result


http://www.ppmy.cn/news/373566.html

相关文章

券商如何选择?

股票开户如何选择券商 1、选择金融牌照齐全的公司。经营牌照齐全&#xff0c;一个证券公司不禁止办理开户业务&#xff0c;还有投顾业务专门服务高净值客户&#xff0c;还有专业的投研团队为公司各种业务作为支撑&#xff0c;还有专门的机构业务为机构客户服务&#xff0c;包括…

优质的客户期货开户交易所返还高

优质的客户交易所返还高 期货公司排名 期货公司的资质:除了平台安全性外。期货业协会、证监会有关部门、中国期货市场监控中心等组成的评审委员会会以期货公司风险管理能力为基础&#xff0c;结合公司服务实体经济能力、市场竞争力、持续合规状况&#xff0c;每年对期货公司进…

申宝证券-中证1000指数筑头

周一沪指小幅高开&#xff0c;深成指、创业板指低开&#xff0c;盘初市场下探后回升&#xff0c;沪指、深成指翻红后呈现横盘震荡态势&#xff0c;创业板指再度走弱&#xff1b;午后三大指数集体下行&#xff0c;沪指翻绿&#xff0c;尾盘创业板指跌幅扩大至2%并退守3400点。沪…

【汇正财经】什么是证券监管?

通常意义上的管制是指&#xff0c;依据一定的规则对构成特定社会之个人和构成特定经济之经济主体行为实行限制的行为。实行管制的主体包含私人和社会公共机构两种形式&#xff0c;经济学意义上的管制紧要指后者。政府管制则是由政府对私人经济部门&#xff08;厂商和家庭&#…

中鑫优配股票配资网站:11月10日周三早间市场信息

证券信息&#xff1a;证监会同意3家企业科创板IPO注册&#xff1b;年内400家公司IPO募资逾4100亿元&#xff1b;头部量化私募业绩显著回撤。 环球信息&#xff1a;美股收低&#xff0c;道指下跌0.31%&#xff0c;纳指下跌0.6%&#xff0c;标普下跌0.35%&#xff0c;欧洲主要国…

和讯金融界证券之星 财经网站竞争格局突变

和讯、金融界、证券之星是目前国内最主要的3家财经类网站&#xff0c;究竟谁是老大&#xff1f;各有各的说法。在此&#xff0c;我们选择了比较权威的全球知名流量统计机构ALEXA的统计&#xff0c;来对他们的流量做一个评估。 ALEXA是美国的一家网站&#xff0c;其对网站访问量…

九龙证券|长线资金整体加仓 青睐能源科技材料等板块

Wind数据显现&#xff0c;到3月14日记者发稿&#xff0c;已有117家A股上市公司发表2022年报。在上述公司的前十大流通股股东中&#xff0c;社保基金、险资、QFII等组织已多次出现。从调仓布局来看&#xff0c;长线资金全体呈加仓态势&#xff0c;社保基金青睐材料、信息技术等职…

实现财务自由 之 你不可不知的投资股票、基金、房地产、REITs等指数指标查询必备网址(市盈率、国债收益率、派息率等等)

实现财务自由 之 你不可不知的投资股票、基金、房地产、REITs等指数指标查询必备网址&#xff08;市盈率、国债收益率、派息率等等&#xff09; 工欲善其事&#xff0c;必先利其器是说:工匠想要使他的工作做好&#xff0c;一定要先让工具锋利。我们想要实现财富自由&#xff0c…