量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

读了那么多书,炒了那么多股,对于交易,很多人都有了自己的思路和投资风格,这个时候,如果你会一点python,那么一只脚就已经迈入了量化投资的大门!

第一步干什么呢?首先,你当然需要有一个策略思路啦!

我们以一个简单的双均线日线策略为例:

每天回测

买入条件:对短均线上穿长均线的股票实施买入操作

卖出条件:对短均线下穿长均线的股票实施卖出操作

长均线我们选取10日均线,短均线选取5日均线,5日均线上穿10日均线金叉买入,死叉卖出,是最常见的短线操作策略之一。

有了策略思路,

第二步我们就要想办法实现了!

是时候祭出QuantDesk了!

丢个下载地址给各位看官:

http://www.yunkuanke.com/#/download

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

那么这个策略到底要怎么写呢?

根据上面的策略思路,我们应该先算选股指标,并根据选股指标进行买入卖出操作。但是在算选股指标时,我们需要做一些准备工作,才能保证指标能够被计算出来。所以这个

流程可以分三步:

量化策略怎么写?最详解说来了!

  1. 准备工作

导入需要的python包、设置参数。

细心的人会发现,策略的第一行一般都是用:# -*- coding:utf-8 -*-开头,这一行代码必不可少。这是因为PY文件当中是不支持中文的,就算注释也不可以用中文,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,输入这个代码就可以让PY源文件里面有中文了。

1) 导入需要的工具包

量化策略怎么写?最详解说来了!

这一步是在计算选股指标之前,导入需要用到的工具包,比如,你在算指标的时候需要用到计算开平方之类的数学算法,键盘上的加减乘除帮不到你,这时候就需要math包,在写这部分代码的时候可以估计一下下面都需要用到哪些包,如果有遗漏,写到后面还可以回头补充。

2)设置参数

Config部分设置参数:比如平台的用户名和密码、初始资金、交易开始和结束的时间、手续费等等:

量化策略怎么写?最详解说来了!

Window_long代表长均线(10日均线)

Window_short代表短均线(5日均线)

量化策略怎么写?最详解说来了!

Initial是设置整个回测开始前需要的操作,intPerDay是每日开始前需要的操作,因为在这个策略里都不需要作什么,所以我们设置了pass。

2.计算选股指标并执行买入卖出操作

量化策略怎么写?最详解说来了!

Strategy后面写的就是你的选股策略了,在判断买入和卖出股票之前,我们需要明确几件事:

  • 现在是股票交易时间吗?(判断交易时间)

if sdk.isAssetTradingTime(AssetType.Stock):

  • 我可以买哪些股票呢?(获取股票列表)

stock_list = sdk.getStockList()

  • 分别计算昨天的长短均线和前天的长短均线

long_ma1 = close_price_series[-window_long:, :].mean(axis=0)

short_ma1 = close_price_series[-window_short:, :].mean(axis=0)

long_ma2 = close_price_series[-(window_long+1):-1, :].mean(axis=0)

short_ma2 = close_price_series[-(window_short+1):-1, :].mean(axis=0)

1)判断需要卖出的股票,生成卖出股票列表

第一次交易时,因为只有初始资金,所以没有可以卖出的股票,程序会自动跳到下一步。从第二个交易日开始,程序会自动判断,持仓的股票是否要卖出:

  • 我能卖哪些股票?(生成卖出股票列表)
量化策略怎么写?最详解说来了!

检测持仓,看手中持有的股票是否有10日线上穿5日线,如果有符合条件的股票,就加入卖出列表。

  • 我能卖多少股?

已经获取了可以卖出的股票列表,那么每只股票的持仓量是多少呢?所以,我们调取持仓量,并将可卖持仓赋值给相应的posDict股票代码,使股票代码与持仓量一一对应。

量化策略怎么写?最详解说来了!

  • 生成卖出订单

卖出股票需要知道三件事:股票代码、卖出量和卖出价,目前我们已知符合卖出条件的股票代码与持仓量,这一步要确定卖出量和卖出价。

量化策略怎么写?最详解说来了!

Quotes获取盘口信息,有了盘口信息就能获取价格,我们设置:符合卖出条件的股票以开盘价卖出,并且卖出所有可卖持仓

2)判断需要买入的股票,生成买入股票列表

  • 我能买哪些股票?(生成买入股票列表)

首先检测股票池中的股票是否有符合买入条件的(5日线上穿10日线),如果有,则加入买入股票列表buy_list

量化策略怎么写?最详解说来了!

  • 资金怎么分配?

avg_cash这一行,首先获取账户资金,然后平均分配给需要买入的股票。

量化策略怎么写?最详解说来了!

  • 生成买入订单

买入股票需要知道三件事:股票代码、买入量和买入价,目前我们已知符合买入条件的股票代码与每只个股的资金量,这一步要确定买入量和买入价。

Quotes获取盘口信息,我们知道了股票的价格,我们设置开盘价买入(buy_price

)

有了资金和价格,可以算出买多少股(buy_volume

  • 最后,执行买入操作
量化策略怎么写?最详解说来了!

3.导入SDK

量化策略怎么写?最详解说来了!

最后一步调用我们的SDK,整个策略编写完成

回测

利用QuantDesk平台进行回测:

量化策略怎么写?最详解说来了!

回测完成后,在平台上可以看到很详细的分析报告

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

量化策略怎么写?最详解说来了!

-END-


分享到:


相關文章: