赞
踩
·量化投资从入门到入土
·免费提供Ptrade、QMT技术支持与疑问解答
·帮助搭建量化交易平台及风控系统
·这个账号会持续更新相关示例的讲解,欢迎关注
·欢迎深入交流
~~~~~~~~~~~~~~~~~~~~~~~~~~~华~丽~分~割~线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def initialize(context):
- # 初始化模块;
- g.security = "600570.SS"
- set_universe(g.security)
-
- def handle_data(context, data):
- pass
许多量化小白刚下载平台接触到这样的代码的时候就直接傻眼了,为什么他定义函数却不执行?为什么这样的代码可以跑?为什么定义了函数变量但是却没有使用?其实是因为这个是底层用C++写的交易框架,并不是真的意义上和Pycharm一模一样的编程软件,为了加快运行速度,他会将一些代码转化成C++代码执行,不同的框架也会同时运行,所以我们的定义一些需要在多个框架使用的变量时,我们需要将它转化成全局变量。
在Ptrade中initialize和handle_data其实是可以同时运行的,这是量化交易中最重要的两个框架,他们的运行条件不同(详见开发文档),可以轻松帮助我们完成量化交易操作。
对于框架中的context对象,他是业务上下文对象,可以让我们便捷地查询一些信息。比如:
- capital_base -- 起始资金
- previous_date –- 前一个交易日
- sim_params -- SimulationParameters对象
- capital_base -- 起始资金
- data_frequency -- 数据频率
- portfolio -- 账户信息,可参考Portfolio对象
- initialized -- 是否执行初始化
- slippage -- 滑点,VolumeShareSlippage对象
- volume_limit -- 成交限量
- price_impact -- 价格影响力
- commission -- 佣金费用,Commission对象
- tax—印花税费率
- cost—佣金费率
- min_trade_cost—最小佣金
- blotter -- Blotter对象(记录)
- current_dt -- 当前单位时间的开始时间,datetime.datetime对象(北京时间)
- recorded_vars -- 收益曲线值
context对象的使用非常简单,可以参考示例
- def initialize(context):
- g.security = ['600570.SS', '000001.SZ']
- set_universe(g.security)
-
- def handle_data(context, data):
- #获得当前回测相关时间
- pre_date = context.previous_date
- log.info(pre_date)
- #其中log.info函数是日志信息函数,你可以把他理解成Pycharm中的print函数
-
- year = context.blotter.current_dt.year
- log.info(year)
- month = context.blotter.current_dt.month
- log.info(month)
- day = context.blotter.current_dt.day
- log.info(day)
- hour = context.blotter.current_dt.hour
- log.info(hour)
- minute = context.blotter.current_dt.minute
- log.info(minute)
- second = context.blotter.current_dt.second
- log.info(second)
- #得到"年-月-日"格式
- date = context.blotter.current_dt.strftime("%Y-%m-%d")
- log.info(date)
- #得到周几
- weekday = context.blotter.current_dt.isoweekday()
- log.info(weekday)
initialize框架中,g其实是全局对象,它用于存储用户的各类可被不同函数(包括自定义函数)调用的全局数据。在initialize中保存的参数,如果不将他储存成为全局变量,那他就不能再其他框架被调用。
- def initialize(context):
- g.security = "600570.SS"
- g.count = 1
- g.flag = 0
- set_universe(g.security)
-
- def handle_data(context, data):
- log.info(g.security)
- log.info(g.count)
- log.info(g.flag)
欢迎私信交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。