销售思路与销售策略_量化投资策略

销售思路与销售策略_量化投资策略真格量化入门课程——①量化策略思路入门

大家好,又见面了,我是你们的朋友全栈君。

<br>

真格量化入门课程——①量化策略思路入门

<br>
一、什么是量化交易策略

量化交易策略,是采用数量化手段构建而成并进行决策的交易策略。是将人的投资思想规则化、变量化、模型化,形成一整套完整、可量化的操作思路,并且这个思路可以用历史数据进行分析验证。程序化交易并非量化策略必备,但是程序化交易可以让策略执行中更少受人的要素影响。

量化交易员

在这样的界定下,量化交易策略既可以借助程序化的方式完成下单,也可以通过人工来执行。但交易频率较高的量化交易策略更倾向于采用程序化全自动下单的方式来完成。

有了上面的定义,我们可以举个简单例子来认识量化交易策略。如果有一个投资者的交易策略是“移动平均线看起来很好时买入,看起来不好时卖出”,这里就明显不是一个量化交易策略,因为这里的“看起来很好”和“看起来不好”不是一个明确规则化变量化的手段。

如果把上面的策略变成“5日价格均线从下向上穿过10日价格均线时买开1手铜,5日价格均线从上向下穿过10日均线时卖平1手铜”,这里的规则就大大接近明确而可量化的了。

二、当我们谈量化交易策略时,我们在谈什么

在第一部分里,我们知道了什么是量化交易,那么一个更完整精细的量化交易策略,不止上面的例子那么简单。

一个完整的策略构成,应该是包括交易信号、交易执行、资金管理三个方面。

量化策略

依然以上面的例子来类比——

2.1 交易信号

交易信号是一个策略的核心思想,人们常说的策略idea其实主要就是指这个部分。它又可以包含下面2部分内容:

2.1.1 交易什么?

“均线上穿策略”案例中没有涉及到选交易品种的步骤,所以品种很简单,就是铜期货。

但这还不够。我们的例子是一个期货策略,期货是必须具体到合约的,而我们最常使用的是每个品种的主力合约。

于是我们清楚了,我们需要交易的是“铜期货主力合约”。

ps:更复杂的情况是,有时我们需要选品种,比如要开仓所有向上突破的品种,这也可以归入本部分讨论的内容。

2.1.2 什么时候交易?

这方面上面的案例写的还不错——“5日价格均线从下向上穿过10日价格均线时买开”、“5日价格均线从上向下穿过10日均线时卖平”,这都是非常明确的。

复杂一些的是加入止盈止损,当有持仓的情况下,盈利多少自动平仓,亏损多少自动平仓,乃至回落多少自动平仓。

更复杂的情况还有——“中证商品指数突破10日均线时才操作”、“美国非农指数公布前的一个交易日不操作”等等,也可以属于这个部分要包含的内容。

ps:股票策略常用的因子模型,会采用固定日期再平衡的模式,期货/期权市场比较少用,因此我们会单开文章讲述这种情况。

2.2 交易执行

交易执行往往被人们忽略,但我们作为“真格量化”这个策略实盘平台的设计者,可以负责任的说,这个部分才是专业quant和民间小散的最大区分所在,我们看到很多非常好的策略idea因为对这个部分的忽视,导致最终不赚钱的结果。这部分又包括:

2.2.1 用什么价格交易?

对于期货/期权类策略,尤其是偏日内的策略,什么价格买,什么价格卖,是个至关重要的问题。

比如挂单价、最新价容易不成交,对手价、对手价加1加2提高了成交概率同时也提高了交易成本,涨跌停价/市价下单则是不惜血本,极端情况会导致成本完全无法控制,所以专业的玩家会充分运用FOK、FAK等指令进行下单。

“均线上穿策略”案例中的策略描述完全没涉及到具体价格的选择,所以是不精准的。

2.2.2 交易成本是多少?

越是频繁的交易,越要关注自己的交易成本。包括佣金、保证金以及回测中的滑点设置,上文的例子还不是日内策略,我们这里可以不用考虑。

2.2.3 下单不成交怎么办?

随着我们越来越深入专业量化机构的研究领域,我们会发现对实盘和回测差别的处理方法导致了专业机构和业余量化爱好者投资表现的显著区别。通常的回测引擎都是见价成交,如果在策略代码中忽略这个部分,您很可能做出一条漂亮的回测曲线但在实盘交易中完全无法赚钱。

那么,实盘中一个委托单发出后,接着会发生什么呢?我们看看最常见的对话通讯模式:
通讯模式

真格量化的回测引擎并非见价成交的设计,而且我们API的最大特点就是基于事件驱动而设计。实际交易中会有非常多的事件场景,例如账户登录、开盘、委托、成交、查询、收盘等。交易所会发出各种通知和回报信息。

充分利用这些回报信息,可以写出最专业的投资策略。比如上文所述的委托不成交的问题,我们提供了丰富的api来应对,包括拆单、撤单、追单、智能单等等,我们强烈建议投资者重视这些功能,把交易过程精细化,追上机构的脚步。

在上文“均线上穿策略”的简单例子中,很遗憾,我们并没有看到下单不成交的应对方案,这在实盘中就会遇到很多问题。

2.3 资金管理

资金管理听起来高大上,但其实落地最重要的就是仓位。如果说交易信号、交易过程两部分决定了策略是赚钱还是亏钱,那么资金管理决定了最终是大赚大亏,还是小赚小亏。

2.3.1 下单数量

回到“均线上穿”的例子,我们终于看到了这部分的描述——“1手”,手数这个交易单位在期货/期权类比较常用,但固定手数的做法并不精细,更精细的模式是根据自己的账户的实际资金情况,动态变动交易的数量。

我们发现,在这里我们出现了“账户”的概念,构建策略尤其是实盘策略,账户中的可用资金、风险度、权益等各种信息是必须要关心的要素。策略实盘运行瞬息万变,我们需要最快速度得到这些信息并根据当下的情况作出最恰当的应对。在真格量化,我们云端实时计算这些信息,相比从柜台请求的速度快3000倍以上。

2.3.2 动态加减仓

期货市场采用的是逐日盯市的模式,即每天的盈亏都是清算完毕的,那么当策略运行良好,可以投入更多的资金,反之则需要减少投入的资金。

跟上面下单数量的区别是,动态调整交易手数往往是根据当时的可用资金的情况,而动态加减仓则是根据整个策略/账户的盈亏情况来设定。

OK,做好了这3个部分,我们也就建立了做量化策略的最基础的思路,再复杂的策略,都可以由这3部分组合、变化得来。

三、当我们有了策略,我们还需要什么

如第二部分,当我们已经有了自己的策略,交易信号、交易执行、资金管理三个部分都有了。

接下来需要做什么呢?当然是做回测。

开始回测

正如我们第一部分提到的量化策略的定义,一个量化交易策略到底好不好,需要通过历史数据来验证。

去评估策略,我们需要关注这些因素:

3.1 样本大小

既然量化策略是可以用历史数据进行分析验证的,那么数据的样本集合有多大直接决定了这个回测是不是靠谱的,一般来说,样本小于200个,说服力是不够的。所以千万不要因为看到前几次交易赚到了钱就欢呼雀跃哦~

3.2 回测时间范围

一个好的策略,应该能经受住各种市场状况的考验,如果回测周期太短,没有经过单边、振荡等各种场景的检验,也是比较危险的。当然,如果是用tick数据回测,回测历史的要求就没必要很久。

3.3 回测和实盘的区别

一个实盘赚钱的策略往往回测也不错,但反之就未必成立了。回测中用的虚拟资金是无法像真实资金一样去影响市场的。一定要注意的是,下面这些问题都可能导致您的回测表现是“×××水月”,空欢喜一场。比如:

A.用了未来数据。这是新手最常犯的错误。写一个“当天最低点买入最高点卖出”的期货策略,只需要几分钟就可以得到一条无比漂亮的曲线,但这是没有用的,实盘中绝对无法预知当天的价格最高、最低点。真格量化作为主打实盘交易的量化平台可不推荐你这样做。

B.实盘无法/很难成交。这个问题也经常发生。比如涨跌停的时候交易、用完全没有对手盘的巨量下单、挂买一卖一价交易等等。这样的代码逻辑用于实盘的时候就会差别巨大。当然,真格量化的逻辑已经做到非常精细,并不是简单的见价成交,帮投资者去掉了很多掉坑里的可能。

C.过度拟合。有的时候,专业的quant也会犯这个错误,甚至如何避免过度拟合是量化分析师们一直追求的目标。过度拟合往往表现在单纯追求最佳回测参数和完全抛弃金融逻辑方面。殊不知,参数的敏感性本来就是一个策略是否真正靠谱的重要衡量标准;而完全抛弃金融逻辑的后果,可能就是实盘交易的第一天,就是该策略失效,这个小概率、黑天鹅事件发生的日子。

好了,我们知道了在写一个量化策略之前,要做哪些思路上的整理,那么接下来的一篇,我们就看看如何在真格平台上做到这一切,敬请期待!

转载于:https://blog.51cto.com/14258357/2371691

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106902.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vs2012创建WCF应用程序

    vs2012创建WCF应用程序vs2012创建WCF应用程序

  • mybatis 分页查询避免两次查询同时返回总数和数据

    mybatis 分页查询避免两次查询同时返回总数和数据分页查询一般分成两次查询一次查总数一次查列表,下面这种写法可以一次返回sql<resultMapid=”queryOrderListResultMap”type=”要返回数据的类型”></resultMap><resultMaptype=”Long”id=”queryOrderListCount”autoMappin…

  • 门面模式 Facade「建议收藏」

    门面模式 Facade「建议收藏」门面模式Facade动机模式定义结构要点总结笔记动机上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化.这种过多的耦合面临很多变化的挑战如何简化外部客户端和系统间的交互接口呢?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦模式定义为子系统中的一组接口提供一个**一致(稳定)**的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)结构要点总结从客户程序的角度来看,Facade模式简化了整个

  • 计算机中文字水印怎么设置(画图工具怎么擦除)

    win10系统使用久了,好多网友反馈说关于对win10系统使用画图功能去除图片水印设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统使用画图功能去除图片水印进行设置,有什么好的办法去设置win10系统使用画图功能去除图片水印呢?在这里小编教你只需要1、选择一张你需要去除水印的图片;2、打开windows画图工具;就搞定了。下面小编就给小伙伴们分享一下对win10系统使用画图…

  • mysql 取模分区_MySQL分区

    mysql 取模分区_MySQL分区分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。而分区是将数据分段划分在多个位置存放,分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。分区类型主要有range、list、hash、key以常规hash举例说明分区是如何创建的常规hash是取模运算创建…

  • Java上传文件到数据库「建议收藏」

    Java上传文件到数据库「建议收藏」Java上传文件到数据库   首先在开始本文之前推荐一篇我非常喜欢的博主——孤傲苍狼的一篇相关博文。     JavaWeb学习总结(五十)——文件上传和下载        http://www.cnblogs.com/xdp-gacl/p/4200090.html     本文主要介绍如何将文件上传到服务器,并以二进制字符流的形式存入数据库。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号