量化交易入门

量化交易入门

这篇笔记学习自:十行代码带你量化交易入门
看完之后感觉很开心,进入了一个新的世界!

进入JointQuant

首先登陆JointQuant,新建策略并清空原本模板代码:

编写策略

例如编写这样的一个策略:

监测平安银行的股价:
如果股价低于过去21天的平均股价1%,则全部买入;
如果股价高于过去21天的平均股价10%,则全部卖出。

实现代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"""
复制到JointQuant即可运行
"""
def initialize(context):
g.security = '000001.XSHE'

def handle_data(context, data):
last_price = data[g.security].close
average_price = data[g.security].mavg(21, 'close')
cash = context.portfolio.cash
ratio = (last_price - average_price)/average_price
if ratio < -0.01:
order_value(g.security, cash)
elif ratio > 0.1:
order_value(g.security, 0)

编译运行结果:

长期来看,结果还是不错的哈哈。但是问题也是显而易见的,股市涨的时候该收益涨的更快,股市跌的时候,该策略的收益跌的更快。如果换一个时间区间:

在这个时间区间上就是亏损的。所以这不是一个好的策略。

确定策略内容和框架

上面的策略代码包括两个部分:

1
2
3
4
5
def initialize(context):
用来写最开始要做什么的地方

def handle_data(context, data):
用来写大循环要做什么的地方

几乎所有的策略都基于这个基本的策略框架:先初始化,然后循环操作:

  1. 初始化,即最开始要做的时期,如选定股票,设置变量、参数等等;
  2. 周期循环:即每个周期要做的事情,如计算指标,买入卖出等,周期可以是分钟、天等。

回测

如何根据回测的结果评价策略的好坏

  1. 盈利能力:策略收益与年化收益率高,则说明盈利能力强;
  2. 盈利稳定性:最大回撤要低。最大回撤是指最大亏损幅度,50%则意味着历史上看最大亏损率为50%;
  3. 回测的可靠性:交易次数要多。交易次数越多意味着经历了越多次的检验,回测的结果越可靠。

模拟交易


还可以开启微信通知:

# Python

评论

程振兴

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

Your browser is out-of-date!

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

×