今天给大家介绍一个非常简单但是却的确有效果的一个投资策略 - 均仓策略

首先我们提一下什么叫做仓位? 仓位管理是投资里面非常重要的一个环节。如果完全持有现金的话,那仓位就是空仓;同理,如果全部买入了标的(股票、基金、期货等)那么就叫做满仓。

顾名思义,均仓的意思就是平均仓位,达到50-50的管理方法。在投资的过程中,保持50%的现金和50%的投资标的。这样可以做到进可攻退可守的地位。这种方法在股票投资里也算是一种比较简单傻瓜式的投资策略吧。

没有看见有其他的文章对这种简单的策略做一个详细介绍,下面以股票投资为例子,来写一下关于这个投资策略的简单应用。

投资步骤:

1. 初次买入:买入半仓价值的股票

2. 设定均仓条件:时间or涨跌幅度

当买入后,我们只需要等待。设定一个去均仓的条件,一般有时间或涨跌幅度两种方式。比如:我们可以考虑每一个周或者更长的时间一个月等来均仓;如果以价格涨跌程度的话,那么当涨跌超过5%,我们都可以考虑均仓一次。

3. 均仓方法:当达到第二步中的均仓条件时,需要对仓位进行管理,使得手中的现金和股票市值仍旧相等。如果股票市值大于现金则卖出;如果股票市值小于现金则买入

通俗来讲,如果当股票市值大于现金,则说明之前涨了,这个时候我们可以考虑卖出一些来兑现。相反,如果股票市值低于现金,说明之前跌了,则我们需要继续买入来降低成本。

4. 均仓金额: abs(股票市值-现金)/2

我们以两者之差的1/2为需要均仓的金额,当跌了就买入均仓金额价值的股票,如果涨了就卖出这些金额的股票。当完成之后,手中的现金和股票市值又会回归相等。

以上就是均仓策略的一个基本的思路。一般来讲,以时间为条件的均仓使用较少,就着重讲一下价格涨跌幅度均仓方法。当每次完成均仓之后,都是以最新的均仓价格为新的起始为准,重新计算应该涨跌的均仓价位。这样可以避免均仓之后,当前价格仍然远大于或小于平均标的价格的涨跌幅度。

下面是我自己尝试写的一段量化策略代码(这里以价格涨跌5%为均仓条件):

# 导入函数库
from jqdata import *# 初始化函数,设定基准等等
def initialize(context):# 设定沪深300作为基准set_benchmark('000300.XSHG')# 开启动态复权模式(真实价格)set_option('use_real_price', True)# 输出内容到日志 log.info()log.info('初始函数开始运行且全局只运行一次')# 过滤掉order系列API产生的比error级别低的log# log.set_level('order', 'error')### 股票相关设定 #### 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的)# 开盘前运行run_daily(before_market_open, time='before_open', reference_security='000300.XSHG')# 开盘时运行run_daily(market_open, time='open', reference_security='000300.XSHG')# 收盘后运行run_daily(after_market_close, time='after_close', reference_security='000300.XSHG')g.last_trade_price = 0## 开盘前运行函数
def before_market_open(context):# 输出运行时间log.info('函数运行时间(before_market_open):'+str(context.current_dt.time()))# 给微信发送消息(添加模拟交易,并绑定微信生效)# send_message('美好的一天~')# 要操作的股票:平安银行(g.为全局变量)g.security = '000001.XSHE'## 开盘时运行函数
def market_open(context):log.info('函数运行时间(market_open):'+str(context.current_dt.time()))security = g.securitylast_trade_price = g.last_trade_pricecash = context.portfolio.available_cash# 取得当前的现金if context.portfolio.positions_value ==0:order_value(security, context.portfolio.starting_cash/2)g.last_trade_price = context.portfolio.positions['000001.XSHE'].priceelif abs(last_trade_price-context.portfolio.positions['000001.XSHE'].price) / last_trade_price >0.05:print(last_trade_price)print(context.portfolio.positions['000001.XSHE'].price)print('-------')print(cash)print(context.portfolio.positions_value)do_juncang(context)g.last_trade_price = context.portfolio.positions['000001.XSHE'].priceprint(context.portfolio.available_cash)print(context.portfolio.positions_value)print(context.portfolio.available_cash+context.portfolio.positions_value)def do_juncang(context):security = g.securitycash = context.portfolio.available_cashorder_value(security, (cash-context.portfolio.positions_value)/2)## 收盘后运行函数
def after_market_close(context):log.info(str('函数运行时间(after_market_close):'+str(context.current_dt.time())))#得到当天所有成交记录trades = get_trades()for _trade in trades.values():log.info('成交记录:'+str(_trade))log.info('一天结束')log.info('##############################################################')

然后使用聚宽平台来进行策略回测,可以看到策略收益为大概33%,跑输了沪深300 哈哈哈 大概是因为选择回测的标的股票平安银行大盘股 股价波动幅度不是很大 走势也不是太好吧

均仓策略算不上一个优秀的策略,但是也还是一个不错的方法。主要比较适用于震荡行情中,下面总结一下:

优点:1. 简单无脑傻瓜式方法,易于操作 。 2.适用于震荡行情,可以来来回回吃到波段的利润。因为据统计大盘超过半数时间都是在震荡行情的,选择波动大的股票标的优势更大。3. 可以抵抗一些行情出现变化的回撤现象,也可以克服因为市场下跌而不敢补仓的情况。关键在于,要严格按照均仓策略进行操作。

缺点:1. 如果出现单边上涨则均仓策略会导致利润偏小,过早的卖出手中的股票。2.如果出现单边下跌则会导致后续所需要的资金量要求大。3.因为无脑傻瓜式操作,不考虑其他额外的因素,可能出现紧急情况无法变通。

均仓策略有一定可以优化的空间,之后再做分享介绍。如果这篇文章对你有帮助,不妨给我点个赞或者关注,谢谢!

量化交易策略 - 均仓策略相关推荐

  1. 量化交易策略 - 优化均仓策略

    在上一篇均仓策略中,介绍了本策略的一些基本步骤和优缺点.简单来说,如果根据价格涨跌来看,达到一定的幅度就做一次均仓处理.之前的回测例子中,设置的均仓条件是5%,这个数值可以根据实际的股票波动率来修改. ...

  2. 量化交易之单因子策略

    量化交易之单因子策略 单因子策略 小市值选股策略 移动平均线:如何躲过股灾和大跌 『布带林线:衡量市场的波动性/趋势』 单因子策略 你知道剩男剩女是如何剩下的吗? 许多年后,他们都一样,都会发现自己其 ...

  3. 量化交易 实战第一课 策略入门

    量化交易 实战第一课 策略入门 概述 要求 指标 市净率 股票市值 代码实现 概述 不管是技术分析还是基本面分析, 我们在进行投资的时候会选择某些表现好的股票来作为一个股票池. 从中进行交易的判断 ( ...

  4. 量化交易之多因子策略

    量化交易之多因子策略 多因子策略 海龟交易:多因子策略.机械交易系统 『K线:基本功但不能依靠』 『唐安奇通道:衡量市场的波动性/趋势』 『平均真实波幅:过去一段时间内市场的绝对波动幅度』 『海龟择时 ...

  5. 量化交易 聚宽 PEG策略

    量化交易 聚宽 PEG策略 PE:市盈率 G:收益增长率 PEG = PE / (G × 100) # 导入函数库 from jqdata import *# 初始化函数,设定基准等等 def ini ...

  6. 第四章:经典量化策略集锦(第三篇:网格交易—动态调仓策略)

    导语:市场上股票的价格总是在不断的上下波动,投资者通过低买高卖获利.第三篇将向大 家介绍网格交易,一个动态的调仓策略,有效解决仓位和价位控制. 一.策略阐述 窥探网格交易 "追涨杀跌&quo ...

  7. 量化交易入门----双均线策略

    本文采用了聚宽平台接口进行量化策略设置: 一.效果图 双均线策略:双均线策略,当五日均线位于十日均线上方则买入,反之卖出. 二.证券知识: 策略收益(Total Returns) 最容易理解的一个概念 ...

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

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

  9. 量化交易:止盈策略与回测

    我们买基金或股票的时候通常用最简单的策略进行决策:低买高卖,跌的多了就加仓拉低持有成本,达到收益率就卖出. 那么如何用代码表示这个策略呢?首先定义交易信号则是:0.5%时买入,目标止盈线是1.5%,达 ...

最新文章

  1. 两篇大而全的SLAM综述
  2. (三)Sass和Compass--制作精灵图片
  3. python 标准化_数据标准化
  4. 他靠一生仅有的三篇论文改变了摩尔根,后来却从生物学界销声匿迹了
  5. 特征码的使用办法_小脚的美丽与哀愁,34/35码的她们都是怎么买鞋的?
  6. 网络产品用户体验优化系列[一]概要
  7. 10个你必须知道的jQueryMobile代码片段
  8. VC++:如何将程序最小化到托盘 [转]
  9. 王道考研计算机网络笔记目录
  10. 计算机模拟数学建模,计算机模拟数学建模
  11. 街头篮球服务器位置,求街头篮球各个服务器IP地址
  12. layer.photos 查看本地图片,并实现缩放和旋转功能
  13. 浅谈Python中的type()、dtype()、astype()的区别
  14. ThreadPoolTaskScheduler实现动态管理定时任务
  15. 一些学习经验总结和分享
  16. mysql毕业生信息管理系统,本科毕业设计信息管理系统的设计(Struts,MySQL)
  17. 框架模式MVC与MVP在Android中的应用
  18. TUTK[Kalay][iOS]对接iOS TPNS推送流程
  19. 【Kettle】 Javascript脚本组件
  20. 拿到别人的VUE项目如何跑起来?

热门文章

  1. 【Linux】Linux系统编程(入门与系统编程)(三)(深入理解操作系统、进程、环境变量、内存分布)
  2. 老爷机搭建linux 软路由 服务器
  3. PC调用安卓手机发短信
  4. Java系列 文字版格斗游戏
  5. 对话:通证(token)是下一代互联网数字经济的关键
  6. NAT端口映射的配置
  7. Python选择流程(二)
  8. #791. 徐老师的魔法手环
  9. python从入门到实践练习9-6:冰淇淋小店
  10. Python实现形态学处理及骨架提取、细化等基本操作