首页 > 首页 > 股市行情 > 股市行情000100

股市行情000100剖析日光之下无鲜事

股市行情000100 2020-05-19
通过股市行情000100剖析程序化交易杨景仰:日光之下无鲜事,华尔街没有新鲜的事物 上海证券交易所地址,财富通宝,外汇黄金平台代理,新手必学知识!

股市行情000100剖析日光之下无鲜事

  程序化有一个很强的优势是很长的历史数据精确回溯测试。因为当一个模型的好还是坏,把它加载一个历史数据当中,你按照这个历史行情走一遍,你就有数了,你偷懒一点,你就看一下测试结果,你勤奋一点,你可以对着这个行情看这个策略,每个行情的进场点和出场点是怎么样的,比如说在趋势行情中是怎么样的,在震荡行情表现是怎么样的,跳水的行情表现怎么样的等等。我以前的主观交易完全依赖于时间积累经验,对历史数据存在选择性记忆。比如昨天橡胶低开高走,那么今天橡胶又是低开了,昨天橡胶是低开高走的,今天肯定也是低开高走,我就买进去了,这就是所谓的选择性记忆。克服选择性记忆的方法是你要对整个历史的行情有个辨别,然后程序化通过统计,比如橡胶这个品种,高开低走,或者低开高走,低开1%,高走的概率是多少,低开2%,高走的概率是多少,历史上发生过几次,高走的话往上会走到多高,这些只要你能通过数学的语言描述,你就能进行精确的统计。

  程序化可以通过极端情况压力测试,量化评估交易策略的极端风险,并将应对措施写入代码,由计算机自动执行。比如我们给一个品种写个代码,当这个品种临近停板的时候,如果你持的是反向的仓位,必须马上平仓。在距离停板还有5个跳的时候,不管任何情况下都要平仓,这是一个非常严格的风控措施来应对反向停板的风险。但是我以前做主观交易的时候,基本取决于我的临场应变能力,比如股指行情很激烈,经常发现一种现象是上个厕所发现100万已经没了,这就是人的局限。

  下面就讲一个例子,一个一定能赚钱的例子,我们做过测试。这个例子周期在15分钟线上,它做多的条件是向上突破300根15分钟K线高点做多,平多的条件是向下突破60根K线的低点平多,做空是对称的,向下突破300根K线低点做空,平空是向上突破60根K线高点平空,最后再加一个止损的条件,我把止损稍微加的大一点3%止损。这个策略到底是好还是坏,我们只要做一个历史的测验就知道了。这个测试在白糖,橡胶,PTA,螺纹钢4个品种上,然后测试的时候,因为我们这是突破策略,假设现在300根K线的高点是4000,那么突破4000的时候,现在的价格大于等于4000的时候,我就买进去,那买进去会买在什么价格呢,可能会买在4000,可能会买在4001,可能会买在4002,所以我在测试的时候所有品种都给它两个跳的黄点,比如说白糖如果突破300根K线高点,突破4000我买进去,那么我假定我的成交价格为4002,这对冲金成本已经是一个很充分的考虑了。

  看起来可能觉得不可思议,这么一个简单的策略,怎么能赚那么多钱,怎么可能在这些品种上表现都这么好。其实这个策略包含了一个成功的交易者具备的很多的条件,它是一个顺势策略,它在顺势的时候,进场,在行情很顺的时候,它会拿着让利润奔跑;当行情发生反向的时候,它会顺势地跟踪止盈止损,做到了让利润奔跑,把亏损止住。然后它有非常的一致性,它严格地按照这个标准来做。在座的各位如果让你自己来做的话,你觉得你能做得到吗?你可能会说,你突破这个高点进去,如果你第一次突破这高点进去止损了,第二次进去又止损,第三次进去又止损,止损五次之后,第六次在场内信号的时候你还敢不敢跟?你肯定想着说现在行情已经不一样了,现在是震荡行情,现在不能这样做,现在应该是高抛低吸,而不是顺势,这样做不行,你肯定心里已经奔溃了。策略是一根筋的,它无悲无喜,它不会因为亏钱而沮丧,它不会因为赚钱而兴高采烈,它不知疲倦,它不会因为夜盘而想睡觉,它就只做一件事情,出了信号,就交易。我想在座的按照这个模式在做的,肯定坚持不下去的,至少我认为我是坚持不下去的,我这个策略做出来之后,就放着让它跑,不要经常去看它,有时候你看着它不断在止损的时候,心里会难受的要死,只想把它给关掉。在这里我们可以看到我们是通过这个方式,简单的策略在多个品种上,充分考虑到冲击成本,各种因素的影响,并且在足够长的历史时间进行一个测试。

  一般来说,程序化交易的进阶我分三个部分来讲,首先要有一个思想,根据这个策略思想才有可能在代码上实现,代码实现之后才是对测试结果的一个分析。

  策略思想的来源有哪些呢,一般有文献,你操盘的经验,还有就是数据挖掘,数据挖掘高大上一点,所以我们主要讲文献和经验。有一句话叫:日光之下无鲜事,华尔街没有新鲜的事物。你能想到的交易模式,你能想到的交易方法,投机市场这么多年来,肯定有人已经想过了,肯定也有人已经试过了,那到现在还能留下来的肯定是宝贝,这些会留在文献里面,一些国内外经典策略都写在书上,一般人认为写在书上的都不能赚钱,其实不是这样的。能够经历过上百年考验的还能流传下来的东西肯定是好东西。如果你有兴趣,把那些经典的策略(这些经典的策略网上的源代码都可以找到)把这些源代码在中国期货市场上不同的周期不同的品种都过一遍,你很快就能成为程序化专家,所以不要小看文献的力量,这绝对是一条捷径,比你去淘宝上买程序化的代码,找程序化优秀的人跟他打听,他的策略是怎么做的,这要来得好多了,这要来得方便多了,有价值有意思多了。

  第二个是根据你的经验,在你做盘做了一定时间后,属性会有一个概念,比如白糖大概20个点可以止损了,橡胶大概100个点可以止损了等等。然后你可以把你的经验总结出来形成一个思想。

  策略思想有各种各样的分类这只是一个大致的分类,可以分为基础策略和加仓策略,可以分为跟随策略和择时策略。所谓跟随策略就是跟着这个市场跑,市场涨上去的时候做多,市场跌下去的时候做空,实时在线永远有头寸在手上,不是多头就是空头。择时策略,加了一些过滤条件,比如说时间过滤,我只做早上3个小时,比如均线过滤,比如成交量过滤,比如持仓量过滤等等。还有趋势策略和反趋势策略,目前中国的市场,正常的趋势策略都可以有不错的表现。还有比如日内策略和隔夜策略,日内策略就是当天收盘就平仓了,隔夜策略又可以分为短线持仓持个两三天,隔夜的中线持仓持个两三周,隔夜长线持仓持个两三个月等等。

  你有了策略思想之后,你要用代码进行实现。其实要把一个策略进行代码实现就是一个很有意思的过程,为什么呢,因为我常常听到有人跟我说,小杨,我有一个想法你帮我把它写成策略吧,我就问他你想法什么,他就说在均线上方就做多,在均线下方就做空。我说没办法写成策略,他说为什么,我说你语言的表达太模糊了。

  一个策略思想要写成代码必须要有精确的数学语言来表达,比如你说在均线上方你是指收盘在均线上方呢还是最高点在均线上方,这个均线是指15日均线呢,还是30日均线呢,还是指在5分钟或10分钟做的均线呢等等等。而且你只说做多做空,止损的条件是什么呢,止盈的条件是什么呢,进场条件离场条件是什么呢,其实把你的策略思想转化成代码的过程就是把你的策略思想进行提炼的过程,其实就是把你的思想进行一个去污存精的过程,就是把你策略思想模模糊糊的地方精确化,只有等你的策略思想能够用精确的数学语言表达出来的时候,那个时候你才能够说把你这个策略能够写成代码,所以在做的各位有兴趣把你的策略思想写成代码,你会发现你之前的思想比较模糊,根本就没有讲清楚进场条件出场条件到底是什么,出发条件到底是怎么样的。

  代码实现一般是有几个要求:第一个要求就是规范化,什么叫规范化呢,最简单的条件就是无未来数据,很多初学程序化的人会犯这个错误,我举一个简单的例子,如果我写了这样一个策略,今天收盘如果是涨的,我再开盘买入收盘平仓;如果今天收盘如果是跌的,我再开盘做空收盘平仓。你说这个策略效果会怎么样,它的胜算率会是百分之百,曲线非常好看,但是这是完全没有意义的,因为等你知道今天是涨还是跌的时候,你还能开盘进的去吗,所以对策略的要求就是没有未来数据。没有未来数据这是很重要的,如果你发现你的策略思想实现之后测试结果非常好,基本上你用了未来数据可能性比较大。第二个就是有固定格式以方便阅读和修改。如果你的策略比较多的时候你就会想到要结构化,你可以把你的策略拆分为开多条件,平多条件,开空条件,平空条件,再加上一个止盈止损的条件等等,你把将策略分拆为不同的结构,就可以提高效率,方便策略组合。那当然写策略的最终目的是为了实盘,所以可执行性是非常重要的。因为策略的最终目的是要实盘使用,因此要结合实际情况,具有可执行性。

  下面讲一下测试结果的分析。就是当你的策略用代码要实现之后,你肯定要想到这个策略表现到底怎么样,那我们首先要看看它在历史中的表现到底怎么样,那这里就牵涉到测试结果的分析,测试结果的分析分几个方面来讲,这是相对来说稍微专业一点的内容,大家要有耐心,会比较枯燥。第一个就是重要指标分析,比如说它的利润,净利润,第二个是对交易成本的分析,第三个是对参数敏感性的测试。具体什么意思我们可以一项一项来看。

  第一个是策略的指标分析,比如说策略的净利润是怎么样的,净利润我们是非常清楚,就是这个策略的盈利能力。这也是大家最关注的一块。净利润很重要,其他指标也很重要,因为你要考虑到这个利润是怎么产生的,比如说这个利润是2008年金融危机产生的,那么这个策略你要小心了,因为2008年的金融危机是不可复制的。净利润是反映了这个策略的盈利能力。第二个是它的总盈利和总亏损的比。因为一个策略不可能一直是赚钱的,它做单做进去的时候可能是赚钱也可能是亏钱,这个比就是把它所有赚钱的交易所赚的钱加在一起,把它所有亏损交易所亏的钱加在一起,做的一个比值叫做总盈利和总亏损的比。对我们程序化来说所谓的亏损我们更加喜欢叫它成本,所谓的亏损其实就是它的试错成本,因为比如说一个趋势策略,它做进去的时候,它开仓的时候,它错了,马上认错,就止损了,所以这就是它的试错成本。那我们当然希望试错成本越低越好,所以也期望这个总盈利和总亏损的比越高越好。那么盈亏比一般在2以上是一个比较好的策略。什么叫做比较好的策略,就是这个策略你做起来不会很纠结,很难受,有的策略测试结果很好,但是你做起来很难受。那还有就是交易次数,交易次数有什么用,因为程序交易是从统计的角度来进行分析,所以如果交易次数太少的话,那么它就失去了统计意义。比如你的策略今年只发了一个信号,它是赚钱的,它胜算率是百分之百,它盈亏率是无穷大,因为它只赚钱没亏钱。那么但是这个策略是没有意义的,因为一次它就没有统计意义。一般来说交易次数相对要多一点这样的话它有比较好的统计意义在。下面一个就是它的盈利比率,什么叫盈利比率呢,也就是它的胜算率,趋势策略胜算率能够到40%左右,是很不错了。因为趋势策略是让利润奔跑,让亏损止住,就是要赚大钱亏小钱,所以一般它的胜算率没有像你想象的那么高。但另外一方面,一个不成熟的交易者,心理对胜算率的承受力也不是那么高的。一般一个50%的胜算率这样一个策略也很难以为能够坚持做下来,就是因为有持续亏损在。因为一个50%的策略胜算率,它并不是说做一单亏一单,做一单亏一单……这样来做的,它可能是连亏10笔,又连赚了15笔,可能是这样的情况。那么在这样的情况下,心里承受能力,亏一笔你可以承受的了,你觉得是试错成本,亏三笔你觉得这是试错成本,等到亏五笔亏七笔的时候,你就不觉得这是试错成本了。你觉得这个策略有问题,你觉得这个策略神经病,不能再把钱交给这个策略了,这样太危险,你就坚持不下去了。这在我们团队里面,不成熟的程序化交易者很容易碰到的情况。还有几个比较重要的指标是平均利润,平均利润是净利润除以成交次数,就是平均一笔交易它能够赚多少钱。平均利润当然是要越大越好。因为如果你的策略平均利润太小,那么你这个策略对冲击成本的抵抗能力比较小。比如说你有一个股指策略,平均利润才60块钱,那么它只能抗一个跳的黄点,如果超过这个跳的黄点,那它有可能不赚钱,是亏钱。平均利润还涉及到你策略容量问题,策略平均利润高容量就大,所以一般来说长线的策略,周期越长,平均利润越大。周期越长的策略,平均一笔赚的钱越多。所以有的人交易做得好会越做越长远,因为它的资金容量会越来越大,他不得不把交易的周期拉长。而短线的策略平均利润会比较小,资金容量也会收到一定限制。

  还有一个就是最大亏损,最大亏损这个指标是衡量极端情况发生的时候,这个策略是怎么表现的,因为最大亏损是指比如说你这个策略隔夜一个跳空,直接是停板跳空的,那么它的最大亏损就会变得很大,一般来说日内策略的最大亏损会小一点,隔夜策略的最大亏损都是比较大的,在这一点,如果你任何一个隔夜策略在多品种都测试一遍,都会发现这一点,常在河边走哪有不湿鞋。所以测试的好处是当你看到最大亏损的时候,对你交易来说是最好的提醒,那是一个觉得重要的提醒。在历史上走一遍,无论什么隔夜策略,总会有踩到雷的时候,它总会有踩到坑的时候,那这个时候你会对策略持一个谨慎的态度因为你会自然想到你要多策略多品种多周期地来进行一个分散,以免你踩到雷了,你只有这一个策略,被炸得人仰马翻。所以最大亏损是一个压力测试,是衡量一个极端情况的测试表现。

  还有一个很重要的指标是最大回撤,一般来说是一个高点到局部低点的回撤,是指高点到下一个高点创新高之间有局部回撤,最大的回撤是多少,最大回撤的用处是让你评估你的风险所在,因为你这个策略上实盘的时候,你不一定是在这个资金曲线的低点,很不凑巧,你刚上实盘的时候你是在这个曲线的高点,然后下面就迎来一个慢慢长夜的回撤,所以最大回撤就是衡量你这个策略要配多少头寸,一个很重要的指标。因为假设要发一个产品,那我们给它能承受的风险是10%,策略组合的结果肯定要小于10%,应该配5%-6%,这样你才能放心地让这个策略来自动化地运行,这是非常重要的。那还有很多策略也是非常重要的,比如说一个策略最长的独创新高的时间,因为有的策略你一看觉得它很赚钱,但是你仔细一看,它有一年的盘整期。它前面赚钱,后面盘整了一年,后来又赚钱,那这样的策略用起来也是很痛苦的,因为你一上线,它就在盘整,历史上最长的盘整期有一年,你能不能受得了,你要做好准备,你这个策略上去你要一年不赚钱,那我还用这个策略干什么,我还不如不做交易呢,所以一个策略最长不创新高时间也是非常重要的。这些只是单个指标,对单个指标进行综合计算,可以算出标准差,下弧比等等。交易开拓者一个综合指标叫TD系数,是来衡量你的策略好与坏。你用交易开拓者、金字塔等等一些市场上已有的交易平台,都会提供综合的指标供参考。还有一个指标不是用数字来表示,是看资金曲线的表现。一般来说,我们看到前面展示的资金曲线,因为不同的资金曲线是很容易看到策略的好坏。这个螺纹钢比较平纹,橡胶虽然很高,这一块占了一大部分,这一块很有可能是金融危机赚到的钱,实际上你要评估这个策略的时候,你要把这一部分去掉,因为这是没复制性的。你要把这三分之一去掉,这样你会发现净利润这个指标也不一定靠谱,前面盘整的时间也非常长。PTA相对稳一点,因为它盘整了的时间是在早期,当然我们参考一个策略的时候,资金曲线越早,权重越低,越接近现在权重越高,白糖这段时间在盘整,这段时间在回撤,我们要重新评估一下这个策略对现在行情适不适用。所以对资金曲线的第一感觉也是很重要的指标,你衡量一个资金曲线的时候,你不能看由历史以来的资金曲线,你一年一年地看,一个月,一个月地看感觉也是不一样的。其实你把这一段一年的时间,放大来看其实是一头栽下来的策略,是非常不舒服的。我么还要评估一个指标就是它的月度盈亏(每月的盈亏)。我们一般经过策略组合的效果都是赚钱的,这是考虑到人性的部分,因为如果一个资金曲线盘整个一年,盘整个三个月,很多人都受不了了,对这个策略失去信心了。

  再讲一下滑点和手续费的交易成本影响,这是两条资金曲线,一条是在交易成本为万分之一时的资金曲线表现,另外一条是交易成本为万分之五时的资金曲线表现。在交易成本为万分之一的时候,它的一手大概赚23万,然后很平稳地上去,而交易成本为万分之五的时候,真正赚钱的就这一段,这里大概是赚了6万多块钱,这里就是盘整的样子,那为什么会有这么大的变化呢,这里万分之五的情况,我们做程序化交易,做测试实际要收的手续费,这个手续费分为两部分,一部分是交易所收的手续费大概万分之0.5左右,可能还要更低一些,另外一部分是加了两个跳的滑点之后,它的表现接近万分之五。

  我们在做测试的时候,交易成本为万分之一,大家觉得跟交易所的手续费比起来多的挺多了,为什么还不够,因为要考虑冲击成本的策略,有几个因素,假设这个策略是突破3000点,买入,从信号出现到你买进去的过程有一个时间差,3000点是关键点位,你想买进去,其他人也会买进去,所以你是在排队,你3000点可能买不到,你可能会买在3000点2,3000点4,3000点6,如果行情很急的话你买在3000点2,3000点2 都有可能,所以你必须要考虑滑点的因素,这样就会给你一个冲击成本,我们综合衡量下来平均实盘做下来的冲击成本大概是一个跳多一点,我们给它两个跳,这是考虑到资金容量要足够大,另外会考虑实盘的时候会有极端情况发生,要把综合风险都考虑进去。我们的目标是交易成本为万分之五的情况下仍能取得这样的效果,这样我们才能把这个策略进行,这就是滑点和手续费的交易成本影响。

  还有一点就是参数敏感性测试,敏感就是指你的皮肤过敏,敏感起反应。参数敏感性就以这个例子来说。参数为0的时候赚了17万,参数为1的时候赚了25万,参数为2的时候赚了20万,参数为6的时候最好赚了40万,参数为7的时候赚了7万左右,参数为8的时候基本上不赚钱。参数是什么意思,刚才我们举了一个例子,突破300根K线的高点进场,300就是一个参数,它不是400也不是100,300是哪里来的,这就是参数优化的过程。比如说我们正常的做法是把参数从1-1000测试一遍,哪个参数最优,这就是参数优化的过程。参数为6的时候最优,选择这个参数,参数为6的时候资金曲线很好看,那是不是说明这是一个好策略呢,不是,因为当参数变为7的时候,资金曲线马上就趴下,这说明这对参数太敏感,好的策略它的参数在100-1000变化的时候,它的资金曲线变化是非常平稳的,不是有突然变化,有突然变化说明策略是非常不稳定的,这就是所谓的参数敏感性测试。一个好的策略必须要经过参数敏感性测试,一个比较大的区间都是比较稳定的。假设在200-400都能取得比较的好的表现,我们在200-400选一个参数就不用担心偶然性因素,像这个选择6参数偶然性因素还是比较大的。参数敏感性这一块在程序化交易已经算是比较专业的内容了。

   更多财经资讯尽在八八伍财经

随着项目股票筹融资的发展,PPP这词肇始现出并越来越受欢迎,尤其是在欧洲。如其说新型城镇化振兴将为中国开启万亿元的入股国宴,那么无处不在的PPP格式无疑是最引人注鹄的亮点,那么ppp概念股有哪些呢?

以上就是小编为您带来的“股市行情000100剖析日光之下无鲜事”全部内容,更多内容敬请关注我们-江苏股票配资网!


    标签:股市行情000100

    配资软件_江苏股票配资网 Copyright © 2016-2020 www.jsessp.org.cn. Some Rights Reserved. 京ICP1234123-12号