本文采用了聚宽平台接口进行量化策略设置:

一、效果图

双均线策略:双均线策略,当五日均线位于十日均线上方则买入,反之卖出。

二、证券知识:

策略收益(Total Returns)
最容易理解的一个概念,策略收益也就是策略开始到结束,总资产的变化率。

----本文 选取的国电南自600268这只股票,通过双均线策略来计算策略收益。

基准收益(Benchmark Returns)
如果一个策略一年赚了50%,而这一年来上证指数上涨了100%,所以要评判一个策略的好坏,不过是要看它的收益率,还需要一个基准来衡量它的优劣性,这个准基就是准基收益率。

对于股票的策略如果高于上证指数,那么就跑赢了基准收益率,也就是跑赢了大盘;低于上证指数,那么就是跑输了基准收益率。所以说一个好的策略至少要高于基准收益。

----本文 选取的沪深三百指数,获取某段时间的基本收益。

贝塔(Beta)
代表了策略表现对大盘变化的敏感性,也即是策略与大盘的相关性。

例如一个策略的Beta为1.5,则大盘涨1%的时候,策略可能涨1.5%,反之亦然;如果一个策略的Beta为-1.5,说明大盘涨1%的时候,策略可能跌1.5%,反之亦然。

分别是策略的每日收益和基准的每日收益

阿尔法(Alpha)
alpha是超额收益,它与市场波动无关,也就是说不是靠系统性的上涨而获得收益。

分别是策略年化收益率、基准年化收益率和无风险利率(默认0.04)。

通过预测方向或者其他可解释原因的策略也即是alpha策略;而通过波动率来带来利润的策略就是beta策略。

夏普比率(Sharpe)
描述的是策略在单位总风险下所能获得的超额收益。

是策略收益波动率,也即是策略收益率的年化标准差。

所提诺比率(Sortino)
描述的是策略在单位下行风险下所能获得的超额收益。

是策略下行波动率。

信息比率(Information Ratio)
描述的是策略在单位超额风险下的超额收益。

是策略与基准每日收益差值的年化标准差。

最大回撤(Max Drawdown)
描述的策略最大的亏损情况。最大回撤通常越小越好。

是策略两日的累计收益。

三、python代码

## 初始化函数,设定要操作的股票、基准等等
def initialize(context):
    # 定义一个全局变量, 保存要操作的股票
    # 000002(股票:万科A)
    g.security = '600268.XSHG'
    # 设定沪深300作为基准
    set_benchmark('600268.XSHG')
    # True为开启动态复权模式,使用真实价格交易
    set_option('use_real_price', True) 
    # 设定成交量比例
    set_option('order_volume_ratio', 1)
    # 股票类交易手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
    set_order_cost(OrderCost(open_tax=0, close_tax=0.001, \
                             open_commission=0.0003, close_commission=0.0003,\
                             close_today_commission=0, min_commission=5), type='stock')
    # 运行函数
    run_daily(trade, 'every_bar')

## 交易程序
def trade(context):
    security = g.security
    # 设定均线窗口长度
    n1 = 5
    n2 = 10
    # 获取股票的收盘价
    close_data = attribute_history(security, n2+2, '1d', ['close'],df=False)
    # 取得过去 ma_n1 天的平均价格
    ma_n1 = close_data['close'][-n1:].mean()
    # 取得过去 ma_n2 天的平均价格
    ma_n2 = close_data['close'][-n2:].mean()
    # 取得当前的现金
    cash = context.portfolio.cash

# 如果当前有余额,并且n1日均线大于n2日均线
    if ma_n1 > ma_n2:
        # 用所有 cash 买入股票
        order_value(security, cash)
        # 记录这次买入
        log.info("Buying %s" % (security))

# 如果n1日均线小于n2日均线,并且目前有头寸
    elif ma_n1 < ma_n2 and context.portfolio.positions[security].closeable_amount > 0:
        # 全部卖出
        order_target(security, 0)
        # 记录这次卖出
        log.info("Selling %s" % (security))

# 绘制n1日均线价格
    record(ma_n1=ma_n1)
    # 绘制n2日均线价格
    record(ma_n2=ma_n2)

四、最大回撤详细图

量化交易入门----双均线策略相关推荐

  1. Python量化交易02——双均线策略(移动平均线)

    参考书目:深入浅出Python量化交易实战 本次带来最经典的交易策略,双均线策略的构建和其回测方法. 双均线一般采用5天均值和10天均值,如果5日均线上穿突破了10日均线,说明股价在最近的涨势很猛,买 ...

  2. 量化交易5-backtrader编写均线策略

    本章节我们做回测一个比较偏实际买卖策略,以笔者买过1年多的中国国航601111为例子, 策略为:笔者认为如果5日均线高于10日均线,就认为股价处于上升阶段,就全仓位买入,如果5日均线低于10日均线,笔 ...

  3. 十行代码带你量化交易入门

    说起量化交易入门,很多时候得到的答案都是长长的书单,让人望而却步. 这里,就为新手准备了这篇文章--十行代码带你量化交易入门 数据获取,策略回测,行情链接,交易信号,直接体验整个量化交易的核心流程,立 ...

  4. 量化交易 聚宽 双均线策略

    量化交易 聚宽 双均线策略 # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def initialize(context):# 设定沪深300作为基准set_be ...

  5. Python量化交易实战-38使用开源项目回测双均线策略

    B站配套视频教程观看 使用PyAlgoTrade回测双均线策略 双均线策略:长短周期均线,通过金叉,死叉的方式买入卖出股票,获取收益的策略. 回顾上节课代码的部分,上节课完成了可视化代码的部分, 主要 ...

  6. Python量化交易策略--双均线策略及代码

    双均线策略是比较经典的策略,股票的价格均线是投资参考的重要指标.均线有快线和慢线之分,当快线向上穿过慢线则是金叉,一般执行买入操作,当快线向下穿过慢线时则形成死叉,一般执行卖出操作.基于这个基本思路, ...

  7. 量化交易之回测篇 - 重写vnpy自带的双均线策略

    """双均线策略作为测试期货回测器的一个测试策略, 在测试品种ag时出现了一个问题:回测时ag净值曲线无最大回撤值,说明ag在双均线策略上无回撤,理论上这是不可能的; 排 ...

  8. 【量化】量化交易入门系列2:经典的量化交易策略(上)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 上一篇文章 量化交易入门系列1:编程语言与数据源 ,介绍了关于量化交易的基本概念,以及要做量化交易的编程语言选择,和量化交易的一些数据源获取工具.那么, ...

  9. 量化交易入门——平台框架、技术类策略、量化心得

    量化平台分类: 本地:MC.TB.WH.TS.MT4 云端:聚宽.优矿.米筐.bigquant SDK/量化API: 万得.东财choice.掘金量化 开源框架:PyCTP.Vnpy.zipline. ...

最新文章

  1. 【CVPR2020-中科院计算所】多模态GNN:在视觉信息和场景文字上联合推理
  2. 监督学习、非监督学习、强化学习都是什么?终于有人讲明白了
  3. android 获得应版本号,Android获得本应用版本号和版本名称
  4. 巨头拼杀下的IM市场,网易云信如何站上终极对决?
  5. 《荒漠甘泉》4月21日
  6. 支付宝、微信回应3D面具破解人脸识别;ofo 否认「发币」;Kafka 2.4.0 发布 | 极客头条...
  7. STL中的关联式容器——map(映射)
  8. Spring 源码编译
  9. nuxt如何添加背景图片
  10. 电脑准考证登录不上去
  11. C#毕设asp.net江山旅游网站管理系统(论文+源码)
  12. 如何使用UUP来下载Windows 10 的安装镜像(Windows篇)
  13. 空间分辨率、频谱分辨率、辐射计量分辨率、时间分辨率。
  14. android SENSOR_ACCELEROMETER 三轴加速度传感器
  15. MATLAB自动控制:分析系统动态特性(超调量,上升时间,峰值时间,调整时间)和静态特性(稳态误差)
  16. Google CEO 毕业演讲:保持开放、拥抱焦虑、怀抱希望
  17. 高德车载导航Android平台DR回放技术方案
  18. clusterProfiler R package
  19. 正弦波SFR分辨率测试卡
  20. Mac上将dmg文件转成iso的方法

热门文章

  1. 读开源QScada框架HmiFuncDesigner-master的笔记
  2. java中long比较大小_java中Long类型比较大小和long类型的比较大小java中Long类型比较大小和long类型的比较大小...
  3. CAD对块的文字操作
  4. 库卡机器人profinet连接说明(西门子PLC部分)
  5. ListView的长按事件和点击事件冲突的解决办法
  6. 怀旧不同服务器位面系统,魔兽怀旧服:服务器共享世界BUFF,不用跨位面拿BUFF了...
  7. 【毕业设计】stm32机器视觉的人脸识别系统 - 单片机 物联网 嵌入式
  8. 关于佳能打印机墨盒的一些操作
  9. 后端必备:常用注解总结!
  10. java action result_Struts2 Result 返回JSON对象详解