很多博客文章,论文和书籍都涉及如何正确优化和测试交易系统。但是,最初关于如何使用这种系统的信息很少。所描述的策略似乎常常凭空出现。交易系统是否需要某种顿悟?还是有系统的方法来开发它?

这篇文章是一个小系列文章的第一篇,我将尝试一种有条理的方法来建立交易策略。第一部分论述了策略制定的两种主要方法,即市场假设和瑞士法郎案例研究。

策略分为两种

您可以主要使用两种方法来开发交易系统:基于模型和数据挖掘。基于模型的系统从市场低效率的模型开始 - 基于交易者的心理,经济,市场微观结构或任何其他影响价格的力量。效率低下会导致价格曲线异常或模式偏离随机游走,并且在预测时可以用于交易算法。基于模型的交易方法的示例包括趋势跟随,均值回归,价格周期,价格集群,统计套利和季节性。

问题是:模型不是现实,而是现实的简化。它不能被证明,甚至常常被伪造。其有效性只能通过其对价格曲线的影响来确定。因此,该方法的有效性取决于其价格曲线异常的重要性和长期稳定性。为了判断这一点,您需要良好的测试算法。

数据挖掘方法则完全相反,它只是寻找价格曲线模式,并尝试将算法拟合数据。由哪种市场力量引起价格波动无关紧要,仅假设过去的模式会在将来重演。这允许但并非总是使用机器学习算法来生成交易系统。该方法中最受欢迎的方法是反复试验技术指标,烛形图,回归,自相关,k均值聚类,神经网络,支持向量机和决策树。

数据挖掘的优点是您无需关心市场假设。缺点:这些方法通常会发现大量随机模式,因此会产生大量毫无价值的策略。由于单纯的数据挖掘是一种盲目方法,因此将实际模式(由实际市场效率低下引起)与随机模式区分开来是一项艰巨的任务。即使是复杂的现实检查  通常也无法消除所有数据挖掘偏见。如今,由数据挖掘方法生成的成功交易系统并不多。

您比市场聪明吗?

显然当市场有效运行时,没有交易系统会起作用。即便存在无效性,也很难利用,因为装备精良的玩家已经充分挖掘了这些无效性。在迷你系列的第一部分中,我探讨了比大多数市场参与者做得更好的交易的可能性,这是成功策略的先决条件。

您会不时听到三个关于市场效率的假设:

假设A:市场是有效的。价格遵循真实事件,例如公司业绩的发布,并反映资产的真实价值。所有交易者都“知情”,做出理性决定并立即采取行动。价格曲线大部分是随机游走曲线,没有用于预测未来价格的信息。技术性交易系统无法正常工作,或者如果可行,那只是运气。

假设B:市场效率不高,但市场效率低下对私人交易者毫无价值。只有大型投资公司和对冲基金才能成功利用它们,因为它们拥有大量资本,非常快的计算机,非常有经验的分析师和非常聪明的量化指标-比您聪明得多。当心进入他们的猎场,否则您将成为他们的猎物。

假设C:市场效率非常低,任何人都可以利用。大型投资公司和对冲基金太慢且繁琐,无法有效地解决它们。他们的资本和快速的计算机并没有使他们在您要玩的游戏中没有真正的优势。他们笨拙的分析师,高薪交易员和高估的量化指标也没有。

如今只有为数不多的人相信假设A。可以很容易地表明,大多数价格曲线都不遵循随机游走,市场不是理性更不是完全有效。杰克·史瓦格(Jack Schwager)在他的《市场意识与废话》一书中,列举了显而易见的愚蠢和怪异的分析师失败的案例。通常,资产价格与真实价值相去甚远。尽管所有这些都是轶事证据,但可以看到一种模式。当谣言或新闻给他们一个明确的方向时,市场反应迅速而坚定。但是,当信息有些微妙并且需要最少的解释时,它们的反应就会很慢或根本没有反应。这是一个典型示例的故事。

瑞士法郎案

2011年9月,瑞士央行设定了瑞士法郎的价格上限。目的是保护旅游业和出口业免受高估货币的影响。限制设置为EUR / CHF的价格1.20,瑞士央行誓言要捍卫所有敌人。

价格上限是一种罕见且引人注目的市场无效。它可以立即转换为高利润,几乎没有风险的交易系统(下面将解释其工作原理)。因此,您通常会期望在欧元兑瑞郎汇率升至1.20之后会有强劲的市场反应。但是反应来了很长一段时间。

毫无疑问,瑞士是一个默默无闻的欧洲国家,对那些可能以奶酪闻名的美国主要贸易公司而言也是如此。他们要么没有注意到价格上限,要么只是忘记为欧洲办事处配备现代化的通讯设备。因此,来自欧洲的骑乘信使花了三个月的时间在小山和山谷上空航行,穿越大西洋,也许是在途中与行贿者,海盗和印第安人作战,才能到达纽约市并大喊:“瑞士人有价格上限!”。

但是,您可以用价格上限做什么呢?到2012年1月,大型市场参与者终于想出了一个主意。没有像交易系统那样微妙的东西。相反,他们开始购买疯狂数量的法郎,以给欧元兑瑞郎的价格带来压力:

EUR / CHF价格曲线,2011年9月– 2012年8月

一个明显的想法是,当存在价格边界时,打破价格边界必须有一定的利润。该游戏投入了大量的精力,耐心和金钱。从2012年5月起,欧元兑瑞郎的价格被迫接近其1.20的限制。但是可惜的是,价格上限并未崩溃。您不会对SNB感到困惑。2012年,瑞士人为了捍卫价格上限而竖起了2000亿美元的墙。攻击者从未有过机会。第一次放弃是在2012年9月,到2013年1月,所有人的尾巴都退缩到了两腿之间(可能损失惨重):

EUR / CHF价格曲线,2012年9月– 2013年5月

现在,算法系统的方法是免费的。在2012年的CHF战斗中,由于私人交易员和黑客缺乏参与市场操纵游戏的资金,他们被迫不活动。2013年1月,第一批黑客开始使用Grid Trader这种特定方法来利用市场低效。 这就是一台印钞机。

“印钞机“算法

网格交易是一个非常简单的系统。它以高于和低于当前价格的固定网格放置待处理的多头和空头交易,利润目标为相同的网格距离。因此,只要价格在任意方向上越过网格线,便会打开和关闭交易。这样的系统有一个假设的100%的赢率,因为交易要么以利润平仓,要么根本没有平仓。但是,网格交易者通常使用虚拟对冲机制来关闭未平仓头寸,而不是反方向开设新头寸。通过减少交易成本和保证金可以提高总利润。但是,它允许亏损平仓。因此,网格交易者的实际获胜率在60%左右。

网格交易者典型的基于模型的系统。它假设某种市场力量将价格保持在渠道内。这是这种情况:上限可以防止EUR / CHF跌破1.20,但也可以防止其升得太高,因为瑞士央行最终必须回购为捍卫上限而出售的所有法郎。这样的数学模型是一个随机游走,边界为1.20,并且存在一些漂移项,从而拉低了价格。这种约束是网格交易的先决条件。没有它,网格交易将只是高风险的赌博,因此被列为不合理的交易方法集合。

这是上述脚本在2013年应用于EUR / CHF的盈亏曲线(蓝色):

欧元/瑞郎网格交易盈亏曲线2013

我们可以看到,与1月和5月一样,价格的大幅波动会导致大幅下跌(图表中的红色水下峰值)。但是由于波动是有限制的,因此我们可以估算最大损失,并只需在帐户中保留足够的资本即可。这样,以上脚本可产生130%的年回报率和1.7的夏普比率-几乎没有风险(只要价格上限保持不变)。

这种交易策略的消息在2013年慢慢传开。越来越多的私人交易员和金融黑客,以及越来越多的大型市场参与者跃入潮流。设置价格上限三年后,成千上万个这样的系统远远不断地试图从EURCHF价格的无效性上赚钱,结果是价格波动持续下降:

2013年7月– 2014年12月欧元兑瑞郎价格和波幅

波动性降低意味着网格交易的利润降低。必须投入更多的资金,并且必须收紧网格以进行补偿。但是有一个自然的极限。网格大小不能小于交易成本。到2014年秋季,波幅接近于零。随之而来的是价格下跌的不祥之兆,仿佛某些大型市场参与者(可能是瑞士央行本身)会在预期未来发生事件的情况下继续出售欧元并购买瑞郎。那将是私人交易者退出游戏的绝佳时机。当然,像我这样的笨蛋没有。众所周知,瑞士法郎发生了什么事:

EUR / CHF价格,2015年1月

2015年1月15日上午,瑞士央行在新闻发布会上宣布取消价格上限。欧元/瑞郎在数分钟内从1.20跌至平价下方。显然,这是快速而极端的市场反应–与4年前推出价格上限不同。价格下跌杀死了许多账户,甚至杀死了一些经纪商。顺便说一句,基于两种货币的相对购买力,EUR / CHF的“实际价值”一直处于1.50区域。

我们可以从中以及类似的例子中学到什么?

结论

  1. 金融市场会立即对新闻做出反应,而且通常会做出歇斯底里的反应,明确的价格向上/向下方向。
  2. 市场对更微妙的信息反应迟钝或根本不反应。他们可能需要几年的时间才能意识到新的低效率或交易方法。
  3. 市场倾向于蛮力法。通常只有一小部分市场参与者使用复杂的策略。
  4. 基于非常明显的低效率的简单系统可能会非常有利可图,但使用寿命有限。

“ 构建更好的策略”系列的下一部分将处理基于模型的系统,已知的市场低效率以及利用这些系统的方法。

蜂鸟数据Trochil:论述制定策略的两种主要方法:市场假设和瑞士法郎案例研究-构建更好的策略1相关推荐

  1. arcgis导入excel数据_导入Excel数据到ArcGIS属性表的两种实用方法

    导入Excel数据到ArcGIS有两种方法,一种是用ArcMap的加载数据(黄色+号那个):另一种是用ArcCatalog直接转为shp文件,两种方法的原理是一样的. 第一种方法 1.Excel数据: ...

  2. dhcpd option43的两种配置方法

    最近在研究dhcpd的配置,发现config文件支持好多种表达式,挺有意思的.项目要用到DHCP的option 43(厂商特定信息选项)字段,用来给客户端下发ACS URL.本文就基于该需求给出了两种 ...

  3. 蜂鸟数据Trochil:理想的基于模型的策略开发-构建更好的策略3

    这是"构建更好的策略"系列的第三部分.在上一部分中,我们讨论了10个被广泛利用的市场无效性,并提供了一些交易策略的示例.在这一部分中,我们将分析开发基于模型的交易系统的一般过程.几 ...

  4. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 本文讲解了在 Spring 中处理 LOB 数据的原理和方法, ...

  5. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  6. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  7. 数据递归查询的两种实现方法

    在业务代码当中,经常需要递归查询有等级结构的数据. 现在是两种实现方法. 第一种在oracle当中,使用 start with connect by prior 递归查询 附递归查询用法 https: ...

  8. [统计]_怎样用数据炒菜:统计建模的两种文化

    这是之前发在个人公众号上的文章,希望能对读者有帮助. 现在我们经常能听到一个概念叫做"大数据",顾名思义,那就是海量的数据,如果再说大一点,那就是天量的数据,但是光有数据也不行,我 ...

  9. 股票数据常见的两种获取方法是什么?

    股票数据的获取目前有如下两种方法可以获取: 1.http/javascript接口取数据 2.web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大 ...

  10. C语言学习笔记-----scanf【通过键盘将数据输入到变量中】(两种用法)

    C语言学习笔记-----scanf[通过键盘将数据输入到变量中](两种用法) 用法一:scanf("输入控制符",输入参数): 功能: 将从键盘输入的字符转化为输入控制符所规定格式 ...

最新文章

  1. PS调出通透唯美阳光外景女生照片
  2. 为什么要选择Apache Pulsar:IO隔离
  3. UniDBGrid增加显示记录数的label及隐藏refresh按钮
  4. SAP技术专家的ABAP调试器培训材料
  5. Mybatis入门——Spring整合MyBatis
  6. Allegro异型焊盘制作_百度经验
  7. postfix配置参数
  8. 一维热传导问题与C++描述
  9. pic系列单片机c语言编程与应用实例,PIC单片机C语言编程实例
  10. 计算机网络广东海洋大学简答题,广东海洋大学计算机网络历年考题(直接阅读版6套可编辑)...
  11. easyui treegrid 操作
  12. mysql explain 的using where 到底是什么意思?
  13. 千万不要死于无知——心理状态
  14. rn 函数式组件获取子组件的实例
  15. Windows PE 第四章 导入表
  16. Kill Math: 让数学不只是符号
  17. 2021,移动办公再次风起
  18. 华为快应用-怎么隐藏原生导航条
  19. 联想服务器双系统安装教程,联想笔记本装win8/win10双系统教程
  20. python123测验9程序题_python函数题

热门文章

  1. 微软各产品的生命周期
  2. UVA 10673 扩展欧几里得
  3. wim工具扫描linux磁盘,[V1.30.2011.501版]WimTool -- Wim文件的图形视窗处理工具[无忧首发]...
  4. 默写人体的方法有哪些?如何默写好画人体?
  5. 【STM32H7】第30章 ThreadX GUIX炫酷实用的时钟表盘设计,结合硬件RTC实时时钟
  6. 百度地图如何拾取经纬度
  7. <Android开发> Android系统开发-GNSS流程分析及实现
  8. 兔聊图片二维码logo个性制作
  9. Eclipse中Outline里各种图标的含义
  10. java魂斗罗_魂斗罗java源代码分享