量化交易策略基本框架

量化交易策略基本框架

JointQuant量化课堂学习笔记。原文:量化交易策略基本框架

什么是“初始化+周期循环框架”?

  • 为了将投资灵感高效地转化成计算机可执行的量化策略,必须基于一种模式来写,框架就是指这种模式。而此框架包含两个部分即初始化和周期循环。
  • 初始化 即指策略最开始运行前要做的事情。比如,准备好要交易的股票。
  • 周期循环 即指策略开始后,随着时间一周期一周期地流逝,每个周期要做的事。

如何将策略写成代码?

  • 写法一:

    1
    2
    3
    4
    def initialize(context):
    这里用来写初始化代码
    def handle_data(context, data):
    这里用来写周期循环的代码
  • 写法二:

    1
    2
    3
    4
    5
    def initialize(context):
    run_daily(period, time = 'every_bar')
    这里写初始化代码
    def period(context):
    这里写周期循环的代码

第一种写法是老版本,推荐使用写法二。

把策略写成代码

例如,考虑这样一个策略:选定平安银行作为交易的股票,每天买入100股。
代码为:

1
2
3
4
5
6
def initialize(context):
run_daily(period, time = 'every_bar')
g.security = '000001.XSHE'

def period(context):
order(g.security, 100)

回测、编译运行、运行回测

用一段时间内的历史的真实行情数据,来验证一个确定的交易策略在这段时间表现如何,这个过程叫回测。

运行回测就是字面意思,让计算机运行这次回测,运行后会告诉你策略在这段时间表现情况,比如收益率、年化收益率、最大回测、夏普比率等指标。而且一般也会包括下单记录,持仓记录等。

编译运行其实也是让计算机运行这车回测,不过相比于点击运行回测,编译运行的结果比运行回测要简单,只有收益率等指标,因此也速度更快。所以当不必得到详细结果的时候,或者只是想调试下策略代码,看是否可运行时,编译运行就比运行回测更方便。

# Python

评论

程振兴

程振兴 @czxa.top
截止今天,我已经在本博客上写了607.9k个字了!

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×