1、主要属性

2、代码

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import  pandas  as  pd
import  numpy as  np
from  sklearn.linear_model import  LinearRegression#线性回归算法正规方程求解
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):# 在context中保存全局变量#股票池初始化#沪深300--在沪市和深市中表现较好的300支股票context.hs300 = index_components("000300.XSHG")weight=np.array([0.02953221, -0.04920124, -0.10791485, 0.00801783, -0.03613599, 0.1310877, -0.03030564, 0.40286239,
-0.30166898])context.weight=np.mat(weight).Tcontext.stock_num=20scheduler.run_monthly(mylineRegression,tradingday=1)#每月运行一次,每月第一天运行
def  three_sigma(data):"""进行3sigma离群值处理:param data: 传入的数据
#   :return: 拉回离群值之后的data"""up=data.mean()+3*data.std()low = data.mean() -3 * data.std()#超过上限用上限代替np.where(data>up,up,data)np.where(data <low,low, data)return data
def  stand_sca(data):"""#标准差标准化数据:param data: c传入的数据:return: 标准化之后的数据"""#mean()#均值;std()#标准差data=(data-data.mean())/data.std()return  data
def  deal_with_data(data):"""数据处理"""#1、缺失值处理data.dropna(axis=0,how='any',inplace=True)#2、去极值# data=three_sigma(data)# #3、标准化# data=stand_sca(data)for column  in  data.columns:#2、去极值data.loc[:,column]=three_sigma(data.loc[:,column])market_cap=data.loc[:,'market_cap']# #3、标准化data.loc[:,column]==stand_sca(data.loc[:,column])#市值中性化#if  column=市值因子#   continueif  column=='market_cap':continuelr=LinearRegression()x=market_capy=data.loc[:,column]#训练模型lr.fit(x.values.reshape(-1,1),y)#进行预测y_predict=lr.predict(x.values.reshape(-1,1))#相减data.loc[:,column]=y-y_predictreturn  data
def  tiaocang(context,stock_list):"""进行股票买卖"""#查询仓位for  tmp  in context.portfolio.positions.keys():if tmp  not  in stock_list:#卖出,全部卖出order_target_percent(tmp,0)#买入#平均买for  tmp  in  stock_list:order_target_percent(tmp,1/len(stock_list))
def  mylineRegression(context,bar_dict):"""每月需要处理的功能"""#1、获取财务数据#构建queryq=query(                                            fundamentals.eod_derivative_indicator.pe_ratio,      fundamentals.eod_derivative_indicator.pb_ratio,      fundamentals.eod_derivative_indicator.market_cap,      fundamentals.financial_indicator.ev,      fundamentals.financial_indicator.return_on_asset_net_profit,fundamentals.financial_indicator.du_return_on_equity,      fundamentals.financial_indicator.earnings_per_share,      fundamentals.income_statement.revenue,        fundamentals.income_statement.total_expense).filter(fundamentals.stockcode.in_(context.hs300))fund=get_fundamentals(q)#获取到财务数据#print(fund.T)context.factor_data=fund.T#数据处理context.factor_data=deal_with_data(context.factor_data)#print(context.factor_data.shape)#构建因子与下期收益之间的线性回归#factor_data  * w =下期收益"""context.factor_data.loc[:,'return']=np.dot(context.factor_data,context.weight)#要拿到收益较高的股票代码--进行买卖stock_list=context.factor_data.loc[:,'return'].sort_values(ascending=False)[:context.stock_num].indexprint(stock_list)#进行买卖tiaocang(context,stock_list)
# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):#可以获取账户资金或者在每天交易之前做一些操作pass#print(context.hs300)# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑pass# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合信息# 使用order_shares(id_or_ins, amount)方法进行落单#产生交易信号、进行订单创建# TODO: 开始编写你的算法吧!#order_shares(context.s1, 1000)#print('handle_bar')# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):#每日结束时做一些操作pass#print('after_trading')

3、结果

利用米筐量化回测平台实行量化炒股相关推荐

  1. 搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!

    前言 一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子.更换交易策略以应对当前的市场.因此创建完整的.功能键全的GUI用户界面至关重要. 市面上也出现了很多相 ...

  2. 量化回测平台|有现成的不用吗?如何利用聚宽平台回测交易策略

    导览 本文为掘金小册课程加推篇!小册还在持续加推中,敬请期待!!!目前已经加推了20节!!! 超值的43节课程!从目录就能看出来! 1-贯穿小册:Python金融数据分析实战型项目 2-前置基础:量化 ...

  3. win10下搭建zipline python3.5量化回测平台环境

    win10下搭建zipline python3.5量化回测平台 1.安装 Anaconda 1.1 下载Anconda 1.2 安装 1.3 Anaconda Prompt 1.4 检查安装 1.5 ...

  4. 掘金量化回测平台 - 1

    掘金量化平台初探 python 量化分析包括:策略研发.策略回测.仿真交易.实盘交易.实盘盘后优化. 主要想使用掘金的平台来做策略回测和仿真交易两个环节的功能. 对比了下主流的云平台JoinQuant ...

  5. 怎么利用米筐量化测试实盘数据?

    怎么利用米筐量化测试实盘数据? 第一步,先用股票交易接口米筐量化 第二步:用米筐量化查询各类交易数据 以上就是关于怎么样利用利用米筐量化测试实盘数据的方式,如果大家还想了解更多可以在这里看MetaTr ...

  6. 通联数据回测平台的测试

    5.1 回测平台函数及参数介绍 5.1.1设置回测参数 1.start 与 end(设置回测区间) 其类型为字符串或datetime start='2017-01-01' end='2018-01-0 ...

  7. python回测平台接口_Acqusta TQuant

    TradeApi是个抽象的接口,用户需要从其他的接口中得到DataApi的实例.在不同的系统中,如回测平台.策略平台等,有不同的实现和创建方法,但是接口都会保持一致,方便用户平滑切换系统. 如从TQu ...

  8. 1、回测平台搭建——思路

    什么是回测平台? 最简单来说,写好了一个策略,从一个txt中读取了数据,放到策略中,得到了一个最后的收益,这个程序就是一个回测平台,用回测平台来概括虽然有些过,但是这就是一个回测平台的雏形. 升级-- ...

  9. 量化交易 米筐 策略回测总结

最新文章

  1. c++向量和数组的区别_数学学习如此容易:用Python计算特征值和特征向量
  2. 华为与思科网络产品详细比较
  3. Serverless 架构下的服务优雅下线实践
  4. Hbase复制(Replication )
  5. 爱情八十二课,爱情三国杀
  6. 实现 VC 最小化到 托盘
  7. matlab多径信道模型,基于matlab的无线多径信道建模与仿真分析
  8. 计算机文件自动备份到移动硬盘,如何让电脑文件自动备份到指定的邮箱里?或者备份到指定的磁盘里...
  9. 面试题 35 : 复杂链表的复制
  10. Mybatis常见面试题总结和基本概念
  11. 基于OpenCV全景图像拼接
  12. 实战BootStrap:利用BootStrap制作全平台响应式站点
  13. python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1)(个人笔记)
  14. 深度学习是什么,深度学习概念的基本理解?
  15. Android setTheme设置透明主题无效
  16. python异常值处理四分位法_Python清除异常值四分位法
  17. 解决Pr cc 2019主页加载不出来的问题
  18. java如何截取视频文件_Java获取视频时长及截取帧截图详解
  19. Gauss工作—学习笔记
  20. 887-三维形体投影面积

热门文章

  1. Spring In Action 03 ---面向切面的Spring
  2. DDN区块链受邀为南京2020年区块链技术与应用师资培训班提供实训
  3. 电脑python如何下载_Python for Windows 32位 v3.7.2下载|Python 3.7.2免费电脑版
  4. 高项考试-信息系统服务管理
  5. 【CSS】元素的伪类
  6. java计算机毕业设计黑格伯爵国际英语贵族学校官网MyBatis+系统+LW文档+源码+调试部署
  7. 你有脑回千百转,我只用一招鲜
  8. workflow、BPM及EAI的区别
  9. AI会P图:你来描述,我来P
  10. 【杭电-oj】-1234-开门人关门人-(-结构体-经典例题)