仓位管理 – 2.实战篇

上一篇》说到了仓位管理的重要性。这一篇则说明我对仓位控制算法的设计,以及最终使用的算法。由于内容较多,本文中我尽量只说重点。

概念



算法:就是将一定可变范围内的一组输入条件,轮换到确定的输出时,所使用到的逻辑换算关系。

仓位控制算法:其输入就是投资标的的相关因素,输出则是当前应该使用的仓位占比。不同的算法,所使用的输入条件不同,但是需要想办法进行量化,如:估值、价格、宏观环境、行业、量能、时间……等。得出仓位占比,乘以你对该标的的总投资金,就得出它的持仓资金,剩下的则是空仓资金,以备必要时加仓。

模拟运行表格



用于算法设计的表格如下:

初始的资金设置为 10000 元。通过24个月的数据模拟,来观察按照不同算法不断进行调仓后,每个月的资金的变化。每一个页面中的表格都是这个统一的格式,不同的地方在于测试的曲线不同,曲线的介绍详见后文。

各列的含义:

月份:为期两年的数据模拟测试。

浮动:当前月份的价格对于估值的绝对浮动百分比。

估值:当前月份人为对标的(大盘)的估值。

当前点位:该月份的价格(大盘的点位)。

涨跌:本月相对上月的价格的涨跌幅度。

指导仓位:通过仓位控制算法得出的本月底应该拥有的仓位占比。

月初现金:月初时的空仓现金量。

月末投金:月末时仓位中的资金量。=上月投金*(1+本月涨跌)

月末总资金:月末时空仓现金与持仓资金的总和。也就是月底时的总资产量。

仓位总资金:用于计算最终仓位资金的总资金。仓位资金=仓位总资金*指导仓位。

调整后股金:月末时按照指导仓位进行资金调整后的持仓资金。=仓位总资金/月末总资金/固定资本金*指导仓位。(用于计算仓位资金的总资金的选择会有变化,后面会有介绍)

调整后现金:调整后的空仓资金。

当月盈利:当月的总资产相对于上月的增幅。

最后一个月的月末总资金,就是经过两年投资后的资产终值。

用于测试的曲线



对于选定的仓位控制算法,我们需要使用不同的涨跌幅曲线对其进行模拟运行。下面我设计了8个测试曲线,并追加了2015年的真实涨跌幅曲线。

曲线说明:

X轴:月份。

Y轴:涨跌幅。

测试曲线由零点开始,经历不同的波动后,最终都再次回复到零点。

考虑到股市总体是向上的,所以有些曲线并不是X轴对称的。

仓位控制算法的设计与演进



下面我将从最简单的算法开始设计,并根据其缺点,进行逐步演讲:

方法一:仓位控制模拟-1(根据每月资本金计算仓位)

指导仓位=50%+50%*(估值-点数)/(估值*IF(点位>估值,1,0.4))。也就是50%的基础值,50%的变化值,变化值随着点数变高而降低。当点位上浮100%时,仓位0%;下浮40%时,仓位100%。

调整后仓内资金=月末总资金*指导仓位。也就是月末的持仓资金通过每个月底的总资产来计算。

经测试,这种算法在大涨大跌曲线时,最终造成了较多的亏损。如下图:

原因分析:当跌幅较大时,这时仓位虽然很高,但是本金变得很少,股金随之变少,再也无法赚回原来亏损的资金。

方法二:仓位控制模拟-2(根据固定资本金计算仓位)

指导仓位算法同方法一。

调整后仓内资金=10000*指导仓位。也就是永远按照初始的资金来计算仓位。

经测试,这种算法在大跌大涨时,出现了较多的借款(杠杆资金)。更重要的缺点是:当盈利后,还按照原始资金计算仓位,导致现金与股金失调,仓位控制算法逐步失去意义。

方法三:仓位控制模拟-3(根据递增资本金计算仓位)

指导仓位算法同方法一。

调整后仓内资金=仓位总资金*指导仓位。仓位总资金是不断只递增不减的月末总资金。这样设计是为了解决方法一中遇到点位大跌时,总资金变少后期无法回本的问题。

但是,也有缺点:

1、杠杆太高。在第19个月时,达到了需要借款-2.6倍。不过,指数在估值的基础上跌到这种份上的机率从历史来看,从未发生过。如果发生这种情况,说明整个国家也出现了问题。

2、资金利用率不高。在现实场景下,大部分都是在估值旁边的小范围内变化。而方法一到三的指导仓位算法,导致大部分时间,空仓的闲置资金较多,利用率不高。

大涨大跌时:

方法四:仓位控制模拟-3-1(根据递增资本金计算仓位 & 基础仓位70%)

从这里开始,开始只调整指导仓位的计算方法。这里我们将方法中指导仓位中的基础仓位由50%调整为70%,提高初期的仓位占比。

指导仓位=70%+30%*(估值-点数)/(估值*IF(点位>估值,1,0.4))。也就是70%的基础值,30%的变化值,变化值随着点数变高而降低。当点位上浮100%时,仓位40%;下浮40%时,仓位100%。

大涨大跌时:

方法四、五、六比较相近,最后一起分析。

方法五:仓位控制模拟-3-2(根据递增资本金计算仓位 & 基础仓位80%)

指导仓位=80%+20%*(估值-点数)/(估值*IF(点位>估值,1,0.4))。

大涨大跌时:

方法六:仓位控制模拟-3-3(根据递增资本金计算仓位 & 永远满仓)

指导仓位=100%+0%*(估值-点数)/(估值*IF(点位>估值,1,0.4))。

大涨大跌时:

方法四、五、六中,分别调整了不同的基础仓位百分比,得出的结论类似:虽然最终的盈利都比较高,但是同样造成杠杆过高的问题,方法六中最多时达到了 -400% 的杠杆资金。

方法七:仓位控制模拟-3-4(根据递增资本金计算仓位 & 基础仓位70% & 变化仓位50%)

四、五、六中,变化的百分比较少,只有30%、20%、0%,这样会导致仓位控制算法的作用变得比较少。所以在方法七是在方法四的基础上,调高了变化值。

指导仓位=70%+50%*(估值-点数)/(估值*IF(点位>估值,1,0.4))。

这种方法下,杠杆也不少……

收益率对比



上面对比了几种不同方案下,可能出现的问题,以及风险所在、杠杆资金需求。下面从收益的角度来对这几个方案进行综合的对比:

3-4 的方案,在过山车行情中,赚得最多,达到了1000%的涨幅!

而平衡波动的三种曲线下,收益率几乎一致。(原因是每个月的涨跌幅其实都是10%)。

再来看一下这几个方案所需要的杠杆资金:

结论



能从上述对比的表格中看出:3-4 相对于 3-2 来说,运用的资金和杠杆基本一致,但是收益却近乎两倍。另外,3-3 满仓方案下,杠杆要求最大,但是收益却并不高。这正体现出,在同样的资金和承担同样的风险的情况下,选择合适的仓位控制算法,能带来更好的收益率。不同的仓位控制算法,收益率大相径庭。这与《前一篇》中描述的理论一致。

其实没有最好的方案,只有最适合的方案。在投资时,需要根据合适的收益率预期、风险预期、以及预期可动用的杠杆资金,来确定需要采用的方案。

根据我个人的情况,我最终选择的是最后一个方案:3-4。

时间: 2024-08-07 21:18:10

仓位管理 – 2.实战篇的相关文章

仓位管理 – 1.理论篇

看到文章标题中的"仓位管理",读者可能会认为它只适用于股市投资.其实不然.只要是投资都涉及到风险.回报率.投资额度,都会涉及到仓位管理.再者,人生本身就带着无数的抉择.风险和回报,人生中的很多事情,其实都是投资的一种.(关于本人的基金投资方法以及仓位管理的原因,见<股票.基金投资方案总结>.) 两三个月前,看了好几篇文章都提到了"凯利公式",所以自己也去特地去搜索了一些文章并进行学习.看完之后,比较震憾.第一次认识到了仓位管理的重要性竟然如此之高.这也正

《黑客攻防技术宝典Web实战篇》.Dafydd.Stuttard.第2版中文高清版pdf

下载地址:网盘下载 内容简介 编辑 <黑客攻防技术宝典(Web实战篇第2版)>从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,最后总结书中涵盖的主题.每章后还附有习题,便于读者巩固所学内容. <黑客攻防技术宝典(Web实战篇第2版)>适合各层次计算机安全人士和Web开发与管理领域的技术人员阅读.本书由斯图塔德.平托著. 目录 编辑 第1章 Web应用程序安全与风险 1.1 Web应用程序的发展历程 [1] 1.1.1 Web应用程序的常见功能 1.1.

漫游kafka实战篇之搭建Kafka开发环境

转载注明出处:http://blog.csdn.net/honglei915/article/details/37563647 上篇文章中我们搭建了kafka的服务器,并可以使用Kafka的命令行工具创建topic,发送和接收消息.下面我们来搭建kafka的开发环境. 添加依赖 搭建开发环境需要引入kafka的jar包,一种方式是将Kafka安装包中lib下的jar包加入到项目的classpath中,这种比较简单了.不过我们使用另一种更加流行的方式:使用maven管理jar包依赖. 创建好mav

Systemd 入门教程:实战篇

Systemd 入门教程:实战篇 上一篇文章,介绍了 Systemd 的主要命令,这篇文章主要介绍如何使用 Systemd 来管理我们的服务,以及各项的含义: 一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件,如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例). $ sudo systemctl enable httpd 上面的命令相当于在/etc/systemd/system目

MySQL的进阶实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/69857949 出自[zejian的博客] 关联文章: MySQL的初次见面礼基础实战篇 MySQL的进阶实战篇 本篇上一篇博文MySQL的初次见面礼基础实战篇的延续,是mysql的进阶内容的记录,本篇主要知识点如下: 进阶实战篇 进阶实战篇 mysql视图机制 什么是视图 视图创建与使用 视图的本质 高效索引 使用索引的理由 索引

SQL Server -&gt;&gt; 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之AlwaysOn可用性组搭建

因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(理论篇) SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域.DNS服务器和Windows故障转移群集(准备工作) SQL Server ->> 高可用与灾难恢复(H

黑客攻防技术宝典web实战篇:核心防御机制习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注,而随书附带有答案. 1. 为什么说应用程序处理用户访问的机制是所有机制中最薄弱的机制? 典型的应用程序使用三重机制(身份验证.会话管理和访问控制)来处理访问.这些组件之间高度相互依赖,其中任何一个组件存在缺陷都会降低整个访问控制并访问他机制的效率.例如,攻击者可以利用身份验证机制中的漏洞以任何用户

Capabilities 入门教程:基础实战篇

该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilities 的诞生背景和基本原理,本文将会通过具体的示例来展示如何查看和设置文件的 capabilities. Linux 系统中主要提供了两种工具来管理 capabilities:libcap 和 libcap-ng.libcap 提供了 getcap 和 setcap 两个命令来分别查看和设置文件的

《大产品,小团队——携程敏捷技术与管理转型实战》读后感

作为曾经携程的一员,看到一起奋斗过的小伙伴们宣传此书立刻就买了,非常开心拿到了作者团队的亲笔签名版.读完颇为感慨与惭愧,有种虽然身在此山中,竟不识庐山真面目的感受.当时身处携程俩大核心业务之一,却只知一味地吐槽糟糕的流程和无止尽的加班,即没有推动改进的勇气与执行力,也不知背地里整个公司为优化流程,提倡创新所作出的努力,以及已经取得的成果. 诚如书名<大产品,小团队——携程敏捷技术与管理转型实战>,此书着重于在敏捷开发与管理转型期碰到的问题与解决方案,所以建议小伙伴们在学过了ACP,或者敏捷项目