多语言展示
当前在线:1965今日阅读:167今日分享:16

量化投资策略教学,附免费量化策略软件下载

随着证券市场量化投资策略,这一炒股工新具的推出。使得众多私募、基金、投资机构的盈利有了长足发展。我们所谓的“量化”这个概念,是利用海量的数据客观分析决策,利用简历的模型扑捉价差,获得持续稳定的收益,从而避免了人为主观因素干扰。对冲即利用配对交易寻找套利空间,无视熊牛市,市场涨跌均可获利,从而规避系统性风险。同时,借由近几年的互联网大数据与人工智能AI运算的高速发展。“量化投资”不再是专业机构的专利,也逐渐飞进了寻常百姓的家中。今天就聊聊量化交易的入门。如果你已经学会一些Python基础你可以看看我们的教程,学以致用,那么这篇文章将教你简单的使用Python去写一个 策略。手把手教你如何用十行代码,写一个能根据实际行情发送交易信号到微信的量化交易策略!如果从没有接触过的小伙伴也不用着急,结尾笔者会将本人写的简单软件给你开放使用。>学习内容:>- 学会写一个简单的量化交易策略>- 理解策略的基本框架>- 学会建立连接实盘的模拟交易,并使其自动发送交易的信号到微信
工具/原料

电脑

方法/步骤
1

1 确定策略内容与框架我们明确下策略内容:若昨日收盘价高出过去20日平均价今天开盘买入股票若昨日收盘价低于过去20日平均价今天开盘卖出股票只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?想想人是怎么操作的,应该包括这样两个部分既然是单股票策略,事先决定好交易哪一个股票。每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。对应代码也是这两个部分def initialize(context):    用来写最开始要做什么的地方 def handle_data(context,data):    用来写每天循环要做什么的地方> 答疑与延伸:> - def后面的空格和最后的冒号不能少!> - 符号都要用英文输入法!> - 为什么这么写?就这么规定的,先别管了:)> - handle_data 按天循环时,如此处,其中的操作都是在9:30执行。几乎所有策略都基于这个基本的策略框架:先初始化,然后循环操作1 初始化,即最开始要做的事情,如选定股票,设置变量、参数等等2 周期循环:即每个周期要做的事情,如计算指标,买入卖出等,周期可能是分钟,天等,本文策略的周期是一天。当你要做一些盘中短线操作的时候,周期就要调成分钟,先别着急会遇到的。

3

3 获取收盘价与均价首先,获取昨日股票的收盘价# 用法:变量 = data[股票代码].close last_price = data[g.security].close# 取得最近日收盘价,命名为last_price然后,获取近二十日股票收盘价的平均价# 用法:变量 = data[股票代码].mavg(天数,‘close’) # 获取近二十日股票收盘价的平均价,命名为average_price average_price = data[g.security].mavg(20, 'close')

4

4 判断是否买卖数据都获取完,该做买卖判断了# 如果昨日收盘价高出二十日平均价, 则买入,否则卖出 if last_price > average_price:    买入 elif last_price < average_price:    卖出问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。# 用法:变量 = context.portfolio.cash cash = context.portfolio.cash# 取得当前的现金量,命名为cash这句看着有点复杂,先记住吧。然后我们看看买入卖出怎么写。

5

5 买入卖出# 用法:order_value(要买入股票股票的股票代码,要多少钱去买) order_value(g.security, cash)# 用当前所有资金买入股票 # 用法:order_target(要买卖股票的股票代码,目标持仓金额) order_target(g.security, 0)# 将股票仓位调整到0,即全卖出

6

6 策略代码写完,进行回测把买入卖出的代码写好,策略就写完了,如下def initialize(context):#初始化    g.security = '002043.XSHE'# 股票名:兔宝宝 def handle_data(context, data):#每日循环    last_price = data[g.security].close# 取得最近日收盘价    # 取得过去二十天的平均价格    average_price = data[g.security].mavg(20, 'close')    cash = context.portfolio.cash# 取得当前的现金    # 如果昨日收盘价高出二十日平均价, 则买入,否则卖出。    if last_price > average_price:        order_value(g.security, cash)# 用当前所有资金买入股票    elif last_price < average_price:        order_target(g.security, 0)# 将股票仓位调整到0,即全卖出现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。> - 什么是回测?回测是量化交易策略研究中的关键,是指给定一段时间的历史数据(如此处是20140101到20160601的每日数据),计算机按照所编写的策略进行模拟仿真交易,以测试策略效果好坏。如果你代码没有问题,就会顺利的进行回测,回测结果如下图:

8

8 开启微信通知,接收交易信号点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。当策略买卖操作,微信会收到信号提醒类似下图。>- 能不能自动下单?目前不能,国家管制。你可根据信号手动下单买卖,施行策略。

9

9 自测与自学能否理解整个策略框架。能否成功编写单股票均线策略,成功回测,建立模拟,开启微信通知。能否理解年化收益,最大回撤。

注意事项
1

确定策略内容与框架的代码完整性

2

初始化:全局变量 g.; 股票后缀: 注释格式 #

3

获取收盘价与均价:及时下载 获取二十日均价, 获取收盘价

4

判断是否买卖:利用 if 进行判断, 获取当前账户现金

5

买入卖出 下市价单: 滑点 ,下单方法有哪些, 无法交易的情况

6

进行回测: 回测含义及其方法, 如何根据回测结果评价策略

7

建立模拟交易:行情实时连接

8

开启微信通知:接收交易信号

推荐信息