章位福:期货程序化交易高手。江西人,早年在福建打工,现居浙江。网名“我是传奇”,CCTV证券资讯频道《期货时间》期货兵器谱实盘展示账户“倚天剑”打造者。少年时因家境一贫如洗,初一下学期就辍学,做了一年多陶瓷工后改做理发师,经过12年时间的努力,白手起家,从一名普通的理发师成长为38家直营连锁美发店的老板。2003年开始接触股票投资,2009年底参与期货交易。通过努力自学和参加相关金融培训课程,2010年实现了期货程序化自动交易,至今累积盈利收益超过500万。
精彩语录:
自从有了程序化,我的人生命运就改变了。
我亏钱主要的原因:第一个是满仓交易;第二个是品种单一;第三个就是手工交易;第四个是没有可靠的历史数据。
亏钱不是坏事,只要正确面对它能够总结出经验来,那一定是好事。
我赚钱的主要原因:第一个是资金管理;第二个就是顺势交易;第三个是多品种、多策略、多周期的一个组合;第四个就是执行。
在我的交易里面我只看两点,第一个就是最大回撤,第二个是总赢利除以总亏损,作为两个重要的考量指标。
我通常用的是周期突破,均线交叉,波动性特征这些作为一个程序的一个主要的思路。
我认为只有坚定的执行策略才能完美的运行。
只有你坚定执行,那我们这样的策略,你的历史测试才算数,就是说你的信号才能够成为你真正的帐户里面的钱。
赢利加码我想这是我做的很重要的一点,能让我活下来的很重要的一点,就是当有了利润以后,我拿市场的利润去赌。
(挑选商品的标准)找到全市场里面成交量,就是成交金额最活跃的,还有波动性最大的。
我们在做程序化最大的一个敌人,我认为很多人都会知道就是“滑点”。
所以我们做程序化交易一定要画曲线,曲线能说明问题。我们的个人的感观,它是客观的,它不能说我们就一定是对的或错的,但是曲线画出来了,那它就是事实。
在我的资金管理里面是如果资金回撤了15%,我一定要采取保守的方法来做。
我很遵循一句话,叫做利润是被动的,是靠行情给的,但亏损我们是可以主动的,我们可以控制的。
我觉得我们应该要仔细研究资金曲线,因为这是最真实的。
程序交易者的必备条件:第一,我认为自己必须精通编写程序;第二,我觉得程序交易员必须要有一个详细的实盘数据;第三是计划交易,执行计划;第四个我认为在写程序的过程中一定是化繁为简;第五个精细化控制,细节化、精细化。
这个(编写程序)是必须要自己精通的,不然的话,让别人永远写不出你自己想要的,或者说找不到你自己的灵魂。
你的资金曲线代表了你的所有的交易行为。
资金回撤我的最大容忍范围是30%,如果亏掉了30%我这个主帐户必须停半年不交易,这是我的原则。
你只有持续不断的去吸收别人的东西,那么你才能够去有一个台阶提升。
你的逻辑是简单的,是精简的,但是你控制的语句一定是精细的。
亏自己认为亏的明白的钱,赚自己赚的明白的钱。
投资组合的一个最大优势是赢利是相加的,亏损是相互抵消的。
我总结起来认为最终可能还是加仓策略最稳定,市场怎么再残酷,使用加仓策略,不可能亏的太多。
章位福:大家下午好,今天讲这个课压力非常大,在座的有好几位曾经都是我的老师,我们的李凯老师,今天看到你来真的是压力更大了。还有我们的张老师,都是以前我在学程序化这条路上面不可缺少的贵人,我觉得对我的帮助真的是蛮大的。我也没有文绉绉的话,我可能说的相对来说俗一点,那讲的也不是多少的真理,但是我遵循一个就是真实,就是讲我的过程,这样的话可能会更好一点。
先做个自我介绍,我是来自中国的最大一个村,叫农村,14岁出道,因为读初一上学期,读完一个学期以后下学期就学费不知道在哪里,14岁就出来了。15岁在厂里打工,到17岁就开始选择做美发,做个剃头匠,那时候想想反正是没出路了,只有做理发。到了18岁学了一年时间,我想想还是搞个店,自己花了8000块钱搞了个小店,完了以后就在自己做。那我这个人相对来说认定一个方向以后,会不断的计划过去,从18岁一直到今年,也算是30出头,就是30岁,12年了,那理发的话从8000块钱,从第一个月836块钱的业绩,一个月业绩做了836,到了今年,我们已经有38家分店了。大概今年我们预算的话,大概全年的营收将近会在4200万左右,去年是2000多万,相当于就是我们成长百分之六七十的样子。
这是我的一个实业上面的,当然我做投资也不是全职在做,也是兼职,所以今天讲的话,各位讲的不好,多多包涵。做投资是这样子的,我之前是做股票的,那做股票是就是很业余的在做,就是买进去不看了,买了一支中国平安,从116块钱一直开始买,买到60几块钱还在买,均价在68块钱,最后一路跟下来跟到19块8,是这么一个情况。后来就接触到了程序化,是在09年的时候接触到程序化。
自从有了程序化,我的人生命运就改变了。接下来我们从09年讲起,这是我在做的一个贴子,这个是第一个帐户,入金了5万块钱,第一天就干到了35000,第一天的数据没有,所以从35000开始做记录,一天就亏掉了15000块钱,为什么呢?就是因为文华的那个,用文华做的。我开始满仓,因为文华有一个指令叫测试,一测试任何一个模型进去,都是一条曲线,好直啊,觉得是找到了圣杯,就开始猛仓干,第一天就亏掉了,亏完了之后开始反省总结。最后跑到文华公司去学习,上培训班,学了一个礼拜。之后就开始用手工来做,那个时候还不会用程序,总结下来做到最大亏损是22%,那我就觉得好像不行啊,我就总结了一下,这个帖子应该在文华论坛上还是找的到。那时候我是坚持发帖,因为是找问题,我总结了一下,亏钱我觉得主要的原因是什么呢?第一个是满仓交易,仓位很重,那时候3万多块钱我做螺纹钢基本上是满仓,那个时候我在论坛上面写的是说,大概还有两个月时间我就写目标了,我说我的目标是过年春节前收益30%。所以太盲目了,完了以后觉得自己是有一个圣杯放在手上,胜率都很高,反正就是都能赚钱,那其实现在反过来看,这是很错误的一个想法;第二个就是品种单一,那个时候是只做螺纹钢的;第三个就是手工交易,因为那个时候程序自动化还真不会写,那怎么办呢?那就开始划线,达到这个条件以后,我就开始买入,但是在极端的行情过程中,根本是来不及做开平仓的。你看到价格以后你再去挂单、填单、买入,真正挂进去的时候如果在极端的过程中,你是挂不进去的。挂进去价格已经早远离了,你再撤再挂那就离的很远了。所以这个其实是很有错误的;还有第四个是没有可靠的历史数据,只做手工统计,后期才知道误差非常大,那个时候激情是蛮好的,用手工在做,厚厚的一个本子,基本上都统计完了。从上证300开始统计,之后再开始统计期货,那个时候我印象很深的是什么?就是期货还没接触就做股票,那股票就是有这样的一个想法,上涨5%我就给它买进去,当它采用的跟踪止损,跌了5%我就把它卖掉,这个想法让我走到了程序化这条路上来,那个时候就是我找我的外甥,我计算他记,从1992年开始算,一直算过来,感觉收益挺好,那后来才知道这里面还没有加误差,就是滑点没加,手续费没加,还有一个就是日内波动这块的高低点没加,相当于就是程序里面的未来函数。所以我总结的这四点对我第二个交易帐户帮助蛮大的,脱离了之前的那种很盲目乐观,满仓心理的交易了。有这个经历我觉得蛮好,亏钱不是坏事,只要正确面对它能够总结出经验来,那一定是好事。
这条曲线不是很漂亮,是从2010年5月份到昨天的数据。可以看到这一段做的非常不好,但是我保持了一个真实性,今天在这里不是带多少方法给各位,我觉得还有我的总结的一个失败的经验。总体来说还是有利润的,我总结了一下赚钱的主要原因,第一个就是资金管理,我觉得如果说一个帐户我们要想把帐户做到赢利,我觉得资金管理是应该排在第一位的;第二个就是顺势交易;第三个是多品种、多策略、多周期的一个组合;第四个就是执行。从开始到这个过程中我认为赚钱的主要的因素。那什么是资金管理?就是在我的交易里面我只看两点,第一个就是最大回撤,第二个是总赢利除以总亏损,作为两个重要的考量指标。最大回撤可以看到在这一段最大回撤是多少,就是从这个位置到这个位置,最大回撤是22%,刚刚达到在这个位置。第二个就是趋势交易,那现在在做的话就是相当于趋势发生的必经之路,我通常用的是周期突破,均线交叉,波动性特征这些作为一个程序的一个主要的思路。第三个的话是多品种、多策略、多周期的一个组合,那它主要的作用是能平滑资金曲线,提高资金的一个使用率。第四个就是百分之百的执行,我认为只有坚定的执行策略才能完美的运行。很多人就是在执行的过程中容易出现一个问题就是今天不执行了,明天不执行,这种容易出现一个问题是什么呢?可能是说一亏钱你觉得就产生恐惧,你可能停一天,当你停了一天以后,你觉得确定那一天确实让你少亏了。但是经常发生这种事情,容易出现一个什么情况?就是大行情也未必能抓得到。虽然事后你看到这个信号是发出来了,但是好像跟你真实帐户是没有关系的。
在我执行的过程中,我从这边到这里有一个例子,就相当于在这个位置,前期大概我只有两到三次是没有100%执行,后面都是100%执行。就是盘中我从来不去干预它,为什么呢?因为印象很深的有一次在这个前面这个位置,那个时候股指还是蛮好做的。开进去以后,开始波动,波动很大,往上涨,那我是做多的,看到赚钱了,那个时候盯着盈亏数据心会跳的。往上上去以后,一会又下来了,打到哪里呢?打到我的成本价,迅速又往下,打到哪里了?打到亏的比较多。差一点点打到止损,那个时候我在想,还好,还好没打到止损,上去了,上去以后赚了一点点,我成本价上赚了一点点。那时候我心里就很纠结了,我在想要不要平,如果下去了我现在平我就赚了。那个时候就一狠心就平掉了,平了以后后来的事情就发生了。发生了什么?就是价格波动了两下,还好,下来了,后来“咻”一下子一个大涨,就相当于造成了一个什么?看程序那天是赚了很多钱,其实那天我并没赚钱。那次给我重大的反省就是我再也不能干这种蠢事了。那个时候我有个习惯就是每天都贴图,贴在哪里呢?就是文华论坛里面,那我就在那个论坛帖子上发誓就是从今以后我再也不犯类似的蠢事,因为有了那个发誓,我接下来基本上没有碰到过手工干预,但是这是第一次教训。第二次,也有个手工干预,大概在这个位置,当然那个手工干预原因我觉得很正常,就是我给自己定了一个目标,我说等我的帐户有赢利了,这个大帐户有赢利了400万的时候,给我自己一个小奖励。完了以后那天刚刚好,达到了400万的赢利,那个时候我就想,要不要平呢?不平就没了,那个奖励没了,后来就纠结了半天,我说好,那今天就平吧,我就找我那个助理说,平掉,一平少赚了几十万,又没了,那次少赚几十万我觉得没有什么纠结的,因为这个属于一种比较平淡的一种过程,但如果说像前面这种的,我认为是很不正常的。就是很看中赢亏的时候,程序赚了一点的时候就心里会跳的,亏了一点心里会跳,那么我觉得做程序化可能未必是好事,所以我们最终必须要做到一个是百分百执行策略。只有你坚定执行,那我们这样的策略,你的历史测试才算数,就是说你的信号才能够成为你真正的帐户里面的钱。还有一个我觉得就是行情配合,我觉得从2010年5月份到现在的赢利,我认为不是说我的策略有多好,最关键的就是可能我的运气比较好一点,选择了做这个品种,换句话说,这个品种它还是有一定的行情。那么这种情况,我们只能说是有行情我们就赚钱,没行情那我们就认亏呗,是这么一个理解。
所以我总结起来我们有五点。第一点就是资金管理;第二点就是趋势策略;第三点就是多品种、多策略、多周期组合;还有一个百分百执行;最后是市场行情配合。虽然这条曲线从A到B是赢利的,但是这个过程其实是蛮艰辛的,走的是一步一个坎,一步一个台阶。我着重讲一下我的这条曲线的各阶段的分析。这对我来说,我也经常拿出来复习,来检讨自己,其中做的对的地方和错的地方。这是我的第一个阶段,就是从这边有一个阴影处就是从这个位置,从A到B这个位置,是我第一个阶段,这个阶段是一个什么样的特征呢?是单策略单品种,重仓交易,顺势交易。从这个位置我是20万开始做的,做到赚了四、五万块钱我就加了一笔资金,这样一步步做上来,相当于就是20万一手,那时候股指的话还是比较高的,波动比较大一点,但是还是遵循一个顺势交易理念。那个时候应该说股指还是非常好做的,可能做的人就知道。这个阶段给我一个重大的启发是什么?因为我在做第一个阶段的时候,容易出现一个问题是你辛辛苦苦做的有点赢利了,但是碰上一个大的震荡过程又把你的利润立马就打掉了。而且你防守很不好,容易大起大落。那我在第二个阶段做的一个思考是什么呢?增加了一个多策略,从一个策略我就想办法给它增加到两个策略。那个时候还是只做股指。但是后来因为资金量稍微大了一点,就开始做赢利加码。赢利加码我想这是我做的很重要的一点,能让我活下来的很重要的一点,就是当有了利润以后,我拿市场的利润去赌。相当于我在A点买入一手,那B点如果它价格往上涨,涨了多的时候再做一手,再往上涨再做,一边加一边加,最多可以可以加10到15手,如果说出现一个大行情,那我一定是能大赚的,如果是处于一个震荡的,那我一定是小亏的。所以在这个阶段让我的曲线平滑了不少,虽然2011年的这个行情并没有2010年好做,但是我曲线应该说是比2010年要好看一点,那个时候就关注一个回撤的一个关系。
在这个阶段,我在这个过程中又增加了一个多品种,那时候我开始做商品,商品的话是由一个简单的趋势策略,同时加载在十个商品里面,这十个商品的标准是什么呢?找到全市场里面成交量,就是成交金额最活跃的,还有波动性最大的。那我们把全市场的品种进行评分,评出来大概有十个靠前的,那就只选这十个,完了之后还是用赢利加码,策略的互补分类、顺势交易,这是我的第三个阶段。
第四个阶段,又有一个改进,就是多策略、多品种、赢利加码改良。赢利加码改良是一个什么概念呢?就是之前的赢利加码,相对来说是简单的,就是相当于间隔的加码,比如说涨5个点就加,涨10个点就加,相对来说条件单一一点。那个时候我在想,现在的趋势的话,好像越来越少了,那我加仓的速度是不是要快一点,还是要慢一点。考虑到很多问题,之后把N个条件组合在一起,如果达到A条件,我也加仓,B条件也加仓,C条件我也可以加仓。那后来又想到一下子加了那么多的仓位下去,加的那么快,如果它出现一个反向,那我不是会亏的很多吗?那我后来又增加了一个赢利减仓,如果说价格朝我不利的方向,走的过程中,如果达到某种特征或者某种幅度,那我就要减多少。
那么这也就是我在做的这个阶段,还有一个就是市场冲击完善,什么是冲击完善呢?就是我们在做程序化最大的一个敌人,我认为很多人都会知道就是“滑点”。“滑点”这一块,那我在找什么,我在找如何改良“滑点”,那可能是说谁的速度快,谁就占优势。这是一个因素,那么就把我们的交易放到张江去,还有一个是什么呢?其实我总结了这么长时间,今年可以说没有什么收获,唯一的收获就是“滑点”收获。“滑点”现在我们的实盘是按什么来测试的,各位做股指的可能应该都知道,通常如果说测试的话,大家认为多少比较合理?万分之一手续费,可能有的人都挡不住,对不对,那我现在实盘的话是按照万分之零点零五。而且其中一个帐户每天都有正滑点,就相当于万分之零点五的手续费来测,我每天还比测试报告上的赢亏还要多赚一点。我觉得这个是今年最大的收获,其他的没啥收获,当然也有失败的经验总结。所以市场冲击成败我觉得是有可能实现的。
这个阶段是今年,第一个叫做主动增加帐户波动,那为什么有这样一个想法,因为有一次我和我兄弟去重庆那边学个金融课,学习的过程中,我们讨论了一下,我们说我们这辈子的交易人生或者我们的人生要怎么走?后来最终得出来一个结论是保证小康生活的前提下,进行创造一些传奇性的业绩。当然我们在做的过程中,因为有实业支撑,所以对我们来说相对来说就去寻求一些波动。我们说前面波动的太平稳了,2012年我最大的一天亏损只有1.9%,那么到2013年的这个位置,主动增加了以后通常看到是二点几,那现在看来这个未必是对也未必是错,我认为只能是保持中性的看法。还有在这个阶段还是继续做什么呢?多策略的、多品种的,还有一个叫加减码的进出点的一个精细化控制。这个就是又围绕着这个市场冲击完善的进一步的去研究和深化。
还有一个就是逆势策略的对冲交易,那现在看来这个逆势策略很不好,因为那个时候我的逆势策略大概研发了两个,两个主的逆势策略,其中一个上的比较早,之前的曲线很漂亮,完了以后,根据我的原则是少量实盘,一手做,做的时候很神奇,做了实盘里面也很赚钱,赚了大概五六万,同时顺势趋势又在天天亏钱,而它在天天赚钱,我想这个可以,后来加仓,好像是加到五手加完五手以后也是这样的,平平平平,没怎么赚,刚开始赚一点,开始慢慢的弱化,弱化到后面,就开始亏,最多的时候是从高点到低点,大概亏了八九万,最近又在赚钱了,但是现在跟我没有关系了。我从一手到五手,只是一手做赚了五六万,七八万这个样子,再从五手做亏到七八万,对我来说这个经验教训是蛮大的。我觉得实盘过程中是应该是反思这些问题。另外一个策略也是一样的,从一手、三手、五手、八手,再从八手、五手、三手,不做,这段的资金为什么回撤这么快,最大的一个原因就是我在逆势的一个策略里面加了比重偏高,而且是天天的回撤,就是日回撤会比较大一点,所以导致了这个回撤的问题。而且在这个过程中是不再以顺势做为唯一的一个交易理念,那个时候觉得总算找出了一个就是没有趋势我也能赚钱的方法,总算找出来了,结果现在你看看资金曲线。所以我们做程序化交易一定要画曲线,曲线能说明问题。我们的个人的感观,它是客观的,它不能说我们就一定是对的或错的,但是曲线画出来了,那它就是事实。
这个阶段是什么呢?回撤达到了15%,就是我的这个主要帐户回撤达到15%,那我只能干吗?只能将这个帐户最高的仓位就是48手股指减到原来的20手,这个阶段的20手,那没办法,因为在我的资金管理里面是如果资金回撤了15%,我一定要采取保守的方法来做。第二个我总结一个回撤的原因,那回撤的主要的一个原因就是增加了一个逆势交易,而且仓位是逐步增加的。盈利的时候,加仓是没错,但是失效过快。趋势策略它应对这个行情的特性会比较的持久一点。而逆势的策略的话它应对的这种东西会比较容易失效,还有一个是在市时间会偏长,那么这种就是导致了一个最大的回撤。第三个,采用了一个大道至简的策略,那主策略是什么呢?就是只有两句话,我现在在做的只有两句话来做主策略。之后第四个是暂停倚天剑的策略加后期改善,这是我在这个阶段采取了一些动作或者措施。在从我们这个阶段到下一个步骤,这个帐户达到了22.5%,将原来20手仓位一路减,减到11手。那也就是说我现在只做11手股指,每天的波动就会变得比较的小一点,现在没有办法你如果用很大的仓位在做,出现一个问题是什么?那肯定就是离我们的破产线更快。我很遵循一句话,叫做利润是被动的,是靠行情给的,但亏损我们是可以主动的,我们可以控制的。所以在这里必须得做这个动作,减仓。第二个将原来十个商品减到六个,并且在200元的变动单位减至100元。这个是什么概念,大家可能不是很清楚,相当于减了多少仓位呢?10个品种我现在只做6个,就减掉4个,还有把两百块钱的变动价位,因为我做仓位我不是按照说多少保证金,因为保证金是不算数的,我是按照变动价位,什么意思呢?比如说铜,它一跳是50块钱,那200块呢?那我们应该配4手铜。如果说焦炭200块,那我们这边只配两手焦炭,是按变动价位的,那如果说我们在加波动性特征的话,可能会更均匀一点,目的是让这个比重,让它们平均化,这样有一个更好的对冲效果。第三个是增加过滤机制,为什么增加过滤机制呢?因为目前的帐户是亏损了22.5%,所以必须要减少在市的时间,这是我现在在采取的一个动作。所以刚才的这个曲线就是我们这个曲线看起来就是一样的,但是总结起来它是有很多步骤的或者很多阶段来完成的。所以做出这条曲线,是很艰辛的一件事情,它绝对不是从A到B,就用一个方法,就这样做了,那不可能的,如果我用A的方法从这个步骤我就不完善,那到现在早破产了。所以我觉得我们应该要仔细研究资金曲线,因为这是最真实的,如果资金曲线这一块没有的话,那你只是凭你脑子觉得什么是对什么是错,那这种容易出现主观,比较主观。
接下来我们再讲一下我个人认为的程序交易者的必备条件。第一,我认为自己必须精通编写程序。为什么这样讲呢?因为很多不会的人,经常有QQ的网友跟我说,你会编程吗?会程序化?你那套程序能不能卖给我?他希望什么?他希望一个程序为它赚钱。这种容易出现一个问题是什么?容易出现就是你根本不知道原理,你怎么可能让它在你的账户上做呢?在我观念里面,我亏钱也要亏的明明白白,在什么样的情况下我亏钱,在什么样的情况下我赚钱,那程序它只不过是什么,只是替我执行我的思想而已。那为什么要自己精通呢?因为比如说你旁边有一个朋友,他能精通,你把你的思路交给他来写,那有的人觉得你自己是圣杯,我的逻辑那是不可泄密的,这是一个原因之一。第二个原因是什么?在你编写的过程中,它没有办法百分百的去理解你的逻辑,理解你的程序,而且你的程序是有,我写程序都是这样的,A程序1.0,A程序2.0,A程序3.0,是分代数的,就相当对那个金字塔软件一样的。那是有几点零系统的,是什么版本什么版本,因为我们需要去在这个阶段完善它去更新它,那我们得自己去根据行情变化,得自己去加以改良。所以这是我觉得做程序交易员的一个必须要做的事情。那我写程度是前期是怎么写的,我是全都用复制,复制粘贴复制粘贴,你让我现在把电脑关掉,在黑板上写一行代码,我真不会写,可以说平常的语句我都不会写。关键是什么,关键就是逻辑,逻辑通了,其实语句就是计算机代码的函数,很简单的,我现在是觉得蛮简单的,关键就是你通了就行。还有编写程序最重要的一个就是要有兴趣。没有兴趣的话,你觉得面对那个枯燥的代码是受不了的,你要感觉到跟它谈恋爱,半夜三更还在想它,做梦的时候还能够在想它,我觉得这个很重要,这个就像我在前期一样的,经常半夜三更陪我老婆睡觉的时候,我就爬起来,干嘛?电脑打开,写程序。一个想法想到了,早上5点钟衣服也不穿就跑到电脑面前去写一下,一写,这个方法,测试一下,不行,睡觉,就这样的一个过程。所以这个是必须要自己精通的,不然的话,让别人永远写不出你自己想要的,或者说找不到你自己的灵魂。第二,我觉得程序交易员必须要有一个详细的实盘数据,我觉得这个是非常重要的,哪怕是手工交易者也一样的。你的资金曲线代表了你的所有的交易行为。亏了也要面对,赚了也要面对,亏了也很正常,我是这样理解的。我的资金曲线是公开化的,我也不怕别人说,你这水平怎么这么差,那差就差呗,我要面对自己的一个交易结果。如果你不做这个东西,容易出现一个问题就是永远活在你当前的想法里,永远觉得自己是最好的,不看资金曲线。
所以在这里我跟大家分享一下我的资金曲线的一个模块,这个是在做的,这个记录是2010年5月25号就开始做了,交易天数第一天。那到现在,我们先看一下上面有哪些数据,交易帐号、日期、交易天数,当天的手续费。第一天是错误的,资金净值、入金、出金、真实出入金,那为什么有入金和出金,还有一个真实出入金呢?到后期就有了,还有一个真实的一个净值、当日赢亏、累积赢亏、初始资金,还有一个当天的收益率、总收益率、胜率、最大回撤,还有一个总手续费,还有总赢利、总亏损、赢亏比、亏损的天数、盈利的天数,全都给它做出来。之后我们就这样一天填写一个数字,一天填写一个数字,一直填写到像我这里第808个交易日。当天的手续费900块,完了以后每天出入金580万,那真实出入金有吗?没有,那这里有出金,那为什么是出金580万呢?我想大部分人都知道,就不说了。这些数据可以很好的反映你帐户真实的情况,没有太复杂的。还有一个是什么呢?我们一定要把资金曲线画出来。这是一个月曲线图,我是做一个什么呢?我的目标很简单,就是每年年化30%,那年化30%相当每个月它的复利是2.2%。那我的目标就是在2019年的时候,我的曲线能在这条线上面,那就成功了。还有一个月计划,每个月都必须就是要写一个月计划,我认为操盘守则是在这里,我都会把它写好,那我遵守的一个原则是什么呢?就是盘中我们不能乱动,只有盘后检讨,哪怕你出错、犯错。你盘中都不要动,除非你是信号错了,或者说程序错了,如果你认为盘中今天怎么十手,仓位好重,我减五手好不好?那肯定是不好的。为什么?因为你昨天晚上为什么没想。只有亏的多的时候,当你产生恐惧的时候你再把它减下来。其实之所以做不好,大部分亏钱,原因就是一个人的贪婪和恐惧造成的。所以这是必须要做计划的,那这里就讲到了了一个资金的回撤,资金回撤我的最大容忍范围是30%,如果亏掉了30%我这个主帐户必须停半年不交易,这是我的原则,所以按照计划做,每个月去写,每个月把我们的名次,把市场监控的商品名次给它排出来,最好每个月写检讨,那这边就有心得、检讨。还有每天我们做什么事情呢?每天我的助理会给我发条短信,短信很简单,就把所有的帐户都总结起来,发一条短信给我。这里就是ABCD了,其他的全都隐掉了。那接下来这里就有一个“滑点”,当天盈亏,当前的回撤都有,我的滑点是按照万分之零点零五算的,那比如说其实跑的最好的一个是80多万的这个帐户,是什么概念呢?可以看到,是万分之零点零五,这里的数字都是有正数,这个数字是怎么得来的?比如说106,这106是怎么得来的?就相当于就是我的当天比如说我理论赢亏是赚了1万块,但我实际的是赚了1万1,那我相当于赚了一千块。这一千块这一天里面又交易了几次,除以交易天数,那就相当于就是一个开仓过程中我就挣了106块,相当于这个概念。所以数据对于我们交易是很重要的。一个真实的实盘数据,就像刚才说的,我们看曲线说话,看数据说话,敢于面对自己的错误或者敢于面对自己的赢利和亏损。
第三个就是计划交易,执行计划。我在盘中我不思考,或者我不改变,我在盘后我才会思考我明天要做什么或者说下个月要做什么,一旦做完以后我就不去动它,因为在盘中容易出现一个人性。还有需要持续不断的学习,我觉得这个对于我来说是特别重要。因为什么,因为刚才我们的沈总说的屌丝,现在所谓他给我评价叫做高富帅,虽然不高也不怎么富,但是至少跟之前的屌丝比稍微好一点,原因就是我在持续不断的吸收外界的东西。就像我们来这边今天有好几位我的老师,还有我们的同班学习的都有。在我的观念里面是什么,你只有持续不断的去吸收别人的东西,那么你才能够去有一个台阶提升,我个人给自己定位的和我经常跟我助理讲的,最主要的是我们学习是有方法的。第一个,我们前期如果没什么条件,那我们透过什么学习呢?透过网络,透过论坛,透过群,透过微信,透过我们的期货中国里面的那些高手访谈,这些东西其实都很重要。大部分我觉得它好就要去看一下,这种是无成本的,我们的成本仅仅是时间成本而已。所以这种我觉得很多的,接下来还可以做什么呢?可以看一些书,还有去参加一些比如说免费的论坛、免费的培训。这些也没什么成本,就是交通费。后面如果你再有条件还想再深入一点,那就是付费去学习,那我在美发行业我觉得这点倒是很重要的,我很看重,就是全国各地任何一个学校,只要它有名,我必须去报道,到后来的话,到日本,到韩国,我都去,为什么?我认为能改变我的命运我就去。像投资一样的,很多我们都见过,原因是什么,我走的地方也多了,因为自身的文化不多,自身不够聪明,只能去学习。曾经我花三万块钱跟一个私募公司的老总,就两个人一对一教学,就两天,一起喝茶,就聊一下,三万块钱,那我觉得值。为什么?因为没学到东西,那他也给我验证我的思路,对不对?他讲的不对,如果觉得它不适合我,那我沿用我原来的老方法,如果只要有一句话给我带来新的启发,那绝对不止三万块钱。所以我做实业也是经常遵循这样一个原则来做的,我觉得总结就是这四点。
还有一个就是编程要点,那我想问一下,在座的各位,是做程序化的,做了一年以上自动化交易的懂吗?举手我看一下,有没有?真的吗?这么几位,可能高手都不善于表露出来,那编程的这几个要领,第一个我认为是逻辑性,就是你的逻辑性,这点很重要,就是我为什么要开,我在什么样的情况下平,我是怎么做的,先要有你这个想法,才能产生所谓的信号,如果说你乱扭一通,你说就出现一个圣杯,那这个圣杯一定是中看不中用的,所以有的朋友给我打电话说,我现在研究有一个很好的策略,你要不要试一下,一年大概有80万的赢利,要不要试一下?我说,算了,不试了。为什么?因为我不知道你的思路,我不知道我自己是怎么死的,或者是怎么活的,我亏钱我要亏的有原因,因为我知道原因了就懂得怎么去改良它,如果我不知道原因,那我只能愣亏。第二个,沟通语句是否对称,之前我也参加过一些模型对换、模型交换,模型交换就是把别人的模型,比如说20个人,一人出一个模型,我也出一个模型,这20个模型就共享了,那这种情况,我其实就看到有一个曲线非常漂亮,有未来吗?没未来。信号散吗?也不散。那为什么它那么漂亮呢?源码打开一看,它是做空条件,很松,很容易达到;做多条件很紧,过滤很多,不容易达到。那有人问,为什么曲线好呢?是因为从2010年到2012年的时候它一路下跌,对不对?一路下跌所以它做空条件多的话,松的话它肯定曲线要少一点,那万一2013年开始就走牛市呢?那肯定是亏的。所以我验证模型一定是要用金字塔里的K线反转,转一下,它就原来开多的条件,就变成开空的了,原来开空的条件变开多的了。我这样对换一看,反转了也有收益,正的也有收益,曲线相关不大,那代表它是多空对称编写的,它不是那种不对称的,或者说是根据历史的数据去研发的,那容易出现问题。还有一个是参数的适应性,参数适应性我个人认为是尽量的少写参数,在我的程序里面我尽量是把参数镶在里面,是什么意思呢?我不写在那个参数表里面,为什么任何一个程序化里面的它都有一个参数表,这个参数表是干嘛的呢。它是做优化用的,我最终定完型的模型我都不给它写在参数表里面,因为我认为这个东西我尽量的让它保持它的适应性。
那这个什么意思呢?我举个例子,如果要说参数的一个适应性,比如说我们用一个跟踪止损,跟踪止损什么是不容易适合的呢,不是很好适应的。比如说10个点的止损,这就不是很好适应,为什么呢?因为现在股指是2050点,如果未来6000点,你要用10个点行不行,那你就可以改成20个点,那就代表这个点适应性不够,那我们能不能用什么呢?用个百分比,比如1%或者0.5%,这种的它2000点,它会自动去运算,它1%就是20点。6000点它就是60点,那这种的就是一个不管它行情怎么变,最终我们得出来的参数是一个自适应的,还有可能用波动性,波动性也可以。所以我在实盘过程中,通常很少用固定点数,一个点或者是10个点这个我很少用。
第四个我认为在写程序的过程中一定是化繁为简,就是尽量的简化,能够用一句话表达的,那我们就用一句话,能少用一个条件就少用一个条件。尽量的简化,能够用同一种指标去做一些过滤或优化那就用一种指标,不要用第二种指标。因为你条件用的越多,那你的语句就越复杂,越复杂就代表未来行情的适应性就会越差一点,相对来说会差一点。
第五个精细化控制,细节化、精细化,那前面讲的就是化繁为简,要简单应用要精细,这是不是有矛盾呢?在我的理解里就是没有矛盾的。就是你的逻辑是简单的,是精简的,但是你控制的语句一定是精细的,在什么点位进去,或者要怎么进去,或者考虑到当前市场的一个反映状态。这些我觉得就很重要,我之所以能做到刚才说的万分之零点五的滑点,还有就是其中有一个帐户还是算下来它基本上不用手续费,可以赚手续费,那之所以原因就在这里,精细化控制,要考虑当前的市场。所以我们在编写过程中这个代码用的相对来说就是比较复杂,但这个复杂是不存在逻辑关系的,那也没有关系,多写几行也没有关系。但是整体的一个逻辑性,一个架构一定是简单,尽量简单一点,我上半部分就讲到这里。
我们接下来讲下面的这个部分,我们先看一下程序化优势。2009年时候我去文华那边学,全班也就10来个人,很多人是抱着试试看的态度。2013年开始,程序化的普及率就非常快。以前像前面那些程序化的前辈们,零几年是爆赚,2000年到2010年,这个阶段都是爆赚,这几年好像不怎么样,很大的因素就是大家都意识到做程序化的优势,我也是正因为有了这个程序化的东西,我才敢进入期货。因为我本人的性格是非常保守型的,因为以前是穷惯了,穷怕了,小的时候在家里印象最深的一点就是粮食不够,在家里就看老妈拿着一个米斗出去借米,借米的时候没借到,回来和老爸吵架,印象很深。这种安全意识对我来说很重要,那为什么选择期货?对于我们农村里的人来说,那不是跳楼吗,选择自杀吗?因为做期货的很容易就听来就是一夜破产,就是这样子的。那我们看一下,我认为做程序化第一个优势是什么呢?它的客观优势,它跟手工不一样,就相对来说,它比较客观,为什么这样说,我强调自己是什么呢?我盘中不干涉,我一旦定了十手的手数,我绝对不可能说今天我会加到十一手,那是不可能的。但很多的手工交易可能就不一样了,今天行情好,可能加一手,或者加一半,有这种情况。但是什么是行情好,可能就是你赚钱了,你的贪婪或者你的功利心上来了,那你可能加进去,那加进去可能出现一个问题,行情可能更好,那你赚钱了。那认为是对的吗?但这种就容易出现一个不稳定,不可复制,容易出现这种情况。做程序有一个好处就是十手它一定十手,不可能十一手。它能够在执行的过程中可以避开人性的贪婪和恐惧,我觉得这两点真的是做手工的也好,程序的也好,都很重要。不能说亏钱就怕,赚钱就喜或者赚钱觉得这个期货市场真好,这辈子我一定要赚多少多少钱,亏钱的时候不敢做,停掉,容易出现这种情况。我一直在告诫自己不能有贪婪和恐惧,我一定要保持客观的心去看待这个市场,亏钱也很正常,赚钱也很正常。亏自己认为亏的明白的钱,赚自己赚的明白的钱,那就可以了。
第二个就是交易速度的优势,什么叫做交易速度的优势?我们从信号到成交回报,都是在一百毫秒以内完成的,也就是说我要到一千点买进去,价格真的到一千点了,这个时候人的肉眼是看到一千点,手去找鼠标去找账号去挂单在这个执行过程中,最快的也要以秒计算,在程序里面它就“咯哒”成交搞定。是以毫秒级别来做的。也就是在我的程序里面我允许自己的速度是在50毫秒到60毫秒,从信号处发到成交,不是委托到成交。所以这个速度是非常快的,那可以解决这个速度的问题。
第三个就是交易组合的优势,交易组合的优势是什么呢?就是策略可以针对不同品种、不同周期、不同市场同时运行,也就是说我一个策略可以在全市场运行。或者说不仅在期货市场运行,我可以在股票市场运行,人工就容易出现一个问题,你最多只能做两个品种,三个品种,五个品种,如果你做日内高频,你只能做一个品种,而且做完以后是两眼花花。如果程序就不是了,它可以同时操作N个品种,进行毫秒级的运算、监控、成交。这个就是我认为程序化交易的好处。那为什么要组合呢?因为组合是我们现在程序化里面公认的就是做到最后必须要组合,到后面就是多品种、多周期、多策略进行组合。为什么这样子?因为我们最终得出到一个是什么呢?投资组合的一个最大优势是赢利是相加的,亏损是相互抵消的。就相当于比如我做一百个的组合,我每个组合赚一块钱,那我肯定是赚100块,但是如果我100个组合每个组合亏1块钱,那我绝对不是最大回撤绝对不是100块。我可能就60块,为什么,因为A赚钱的过程中,B可能在亏钱,所以它会相互抵消,那你的回撤就会控制下来,这就是我们组合就是现在公认的一个逻辑,所以我们一直在用组合。
还有一个就是交易连续性的优势,策略始终保持毫秒级的运算级别,也就是说不管你是什么策略,现在我们都是一千毫秒,也可以做到五百毫秒来监控。不管是日线的,比如说日线是一个月出一次信号或者说半个月出一次信号。那么人来监控,那我想绝对不可能百分百执行,为什么,因为你不可能一直盯着它,一个月就盯了一个月就下了一个单子,那不可能的。但如果说用程序来做,那它始终就这样监控着,不管是一分钟也好,还是要日线级别也好,一天交易十次也好,还是一年交易十次也好,它都是始终能完美的运行,可持续的关注,这我认为这人工跟这个就是不一样的。当然人工也有人工的优势。
第五个是交易策略的回测性,可分析策略在历史行情中的表现,这我认为做程序的一个重要的一大原因。人工在做的就是我感觉这思路好,那我就开始用实盘,因为你不知道这个东西到底好不好?但是做程序它是这样的,我感觉这个东西好,我先能写出来,写出来以后,我再用历史的N年的数据来测试一下。在测试的过程中,它确实是赚钱的,那我觉得就推算未来赚钱的可能性就会比较高一点,如果说你这个策略感觉比较好,写出来曲线是曲直向下的,那代表什么?代表就是你赚钱的可能性也会比较低。所以我觉得测试报告也比较重要,
对我来说我觉得程序化太好了,因为我不是全职做这一块的。我平时在研究,研究完以后,把策略丢到数据库里面,在用一个连接,连接的一个金字塔里面的一个策略服务器,把这行代码丢给我的助理告诉他今天你上线就可以了,他就可以运行了。那我在做的时候,我在做他每天传数据给我的时候,收盘后传数据给我的表现。这样的话我很轻松,就像我现在做实业一样,我也觉得我现在做的差不多是程序化了。比如说我到国外去玩个几天,前段时间到泰国去玩了一周,家里也没发生什么事情,都是自动化运作,交易上面用程序,找一个助理看一下信号,实业上面我们的分配机制,我们的店长自动运行,出了问题找什么,我觉得这个问题很重要,对我们人很轻松。
我们花比较多的时间放实盘策略编写步骤。这个也不是标准答案,在座的各位应该是高手比我厉害多了,那我在编写实盘的一个策略步骤过程中第一个是想问题,先想,先问自己,我想捕捉市场哪些行情特征?就是我想做什么,我要什么?这是我第一个要问自己的问题,那也就是说我到底是要哪一段行情的,是震荡的,还是趋势的?如果是趋势的我想吃哪一段?是起点的位置,还是中间部分?那任何一个方法都是双刃剑,有利必有敝,也就是说如果我从起点开始,做进去。我要吃,从起点开始吃一直吃到底的这种行情,那势必你试错的成本就要高很多,如果你只吃中间部分,那你的过滤这块要注意了。所以就是要问自己想捕捉什么行情。第二个我的开平仓条件是什么?我要吃这些行情那我要利用什么样的一个计算机语言来做呢?如果我用MACD可不可以,我用均线可不可以,我用波动率可不可以,我用突破可不可以,都可以,那它也没有说绝对MACD好,均线好,没有,它也是双刃剑,有利必有敝。第三个,就是策略的原码编写,我们在执行过程中,我们在编写的过程中的步骤,第一步干嘛,第二步干嘛,第三步干嘛,都给它一一的规划。假设这一步,我们实现了,那接下来是什么呢?一定要做件事情,就是核对信号与思路是否一致,什么意思?我现在信号出来了,跟我这个思路是不是一致的?还有一个叫无未来,什么叫无未来,就是说没有欺骗自己的东西。如果说用一个未来函数那你的曲线会非常的漂亮,但那种是中看不中用的。我们一定要遵循一个真实性,因为我们不是拿来展示的,不是拿来炫耀的。经常在群里面看到很多都是一年赚个一两百万,那种我觉得除非他真的实盘真的跑出来,那这个人可以厉害。但如果说他仅仅是发个测试报告给你看,那算什么?我一捞一大把,这一天赚十万元没问题,用未来函数嘛。所以到这个过程中我们的信号和思路要核对一下,至少你的信号跟思路的一个准确性。第四,测试模板导入,这应该是我的独创吧,我不用金字塔的测试报告的,我很多数据都是自己写的,我也不喜欢那种测试报告,因为测试报告这个东西不是很真实。我就自己写一个模板,然后导入进去,任何一个策略写出信号以后,导入测试报告,一进去以后所有数据就出来了,那多爽,而且找到自己想要的几个关键性的数据,适合自己的。比如说你最看中的什么,那数据就给它编写出去,你的个性化的一个模板。第六个就是增加过滤条件或优化策略,也就是说第一个我们是这是一个思路;第二个,我们要用什么指标来执行;第三个那就是我的编写过程;第四个我核对信号和我的思路我的指标是否一致并且确保它是一个无未来函数的一个模型;第五个我就开始导入测试模板,导入测试模板以后出现了一个叫做数值,这个策略在未来,在历史过程中它到底是赚钱还是亏钱呢?曲线是什么样子的?好,那接下来我们就开始反思,我们要开始反思什么?这个感觉没我们当初想象的那么好,那我能不能再做一些过滤呢?或者优化呢?可不可以,那到后期我们就可以增加一些条件。第七步,就是实盘模板的导入和或者是模拟测试或者是少量的实盘。那我遵循的是,写出一个模型,以前我是要跑模拟的,现在我是不跑模拟了,我直接上实盘。那上实盘的过程中我们就很少,先一手,做做做做,两手,再做做做,三手、五手这样子,是这样一个过程。那这样做的话,为什么我现在一开始就上实盘,因为我知道我自己写的过程,我写的东西,我知道我这个不会出什么乱子。如果人家给你一个很漂亮的信号,那你拿了你敢用吗?不敢用吧,因为你不知道他里面写什么东西,或者是不是符合你,好,那这个就是我们七个步骤,接下来我们一步步开始来实现。
接下来大家可以看到在这里,我编辑了一个用户名,这里一个文件夹,文件夹里面有步骤。第一个,我想要吃什么行情,那我就需要先把它技术指标做出来,那我现在说做一个趋势的行情,那我们看,在编写过程中,我就省略了,因为时间有点长。大家可以看到这个像什么?MACD是不是,有点像MACD那我们就认为是MACD。那么我在下面这里画了一条线,这条线比较粗,是绿色的,在上面画的一条红线,这条线,是红线和绿线,这样看的话,你是根本不知道它是怎么组成的,或者怎么写出来的,那我们来看一下源码,源码很简单,第一行数字就是设定了一个参数,在编写的过程中,一定是要有参数的,其实这个程序只有一行代码,就是这条多分线,我把它定义成多分线,它的运算方式是什么呢?运算方式是50减100乘以前期最高,这个是什么前期最高?是35天的前期最高,再减去它当前的一个收盘价,除以最高价前35天的最高减去前35天的最低,那它就会得出一条多空线,这条多空线我用柱状图把它画出来,那它出来就是这个。就是这个很像MACD,那这个思路是怎么走来的?就是我在想MACD,如果用MACD容易出现一个问题,我们都知道MACD是由均线组成的,那么均线的话容易出现一个问题,MACD经常出现背离,像这种行情,上涨的行情中,它反而是跌的,原因在于它这一段短期均线上穿长期均线,所以它就会反而是这样走的。那我认为这就容易出现一个捕捉不到该有的行情,那我们就给它用了一个用价格来画一条类似MACD。这是我们的第一个步骤。接下来我们在这做了一个极值,极值就是上面这条线和下面这条线,做多线和做空线永远就是45,因为它的这条多空线,它永远是在最高值是在50,最低值是就是负50。那我做多线就是45,做空线就是负45,我们先不评论这个指标好坏,我们再继续。接下来我们开始构建开平仓,构建开平仓很简单,当我们的收盘价收完以后,这个做多线在45以上,我们就开多,在负45以下,就平多,翻空,就这么简单。那我们看一下,现在信号出来了。接下来在我们再做一件事情就是检查,就核对信号是不是我想象的,做多的那我们来看一下,这个刚好,可以看到这个是做空线,就是开空,是不是,这最下面的多空线是48,负48那就是小于负45了,那我就应该开空,之后这边的话大于45,那我们就开多,如果真的是在写模型过程中我们是要从有效数据中开始一个一个的去检查。我通常是写完以后就开始,这样子开始推,一直推,推到哪里?这里,好像有一个小于极值的,那这里有没有出一个信号,没有的话,那就有问题了。那接下来我们再看一下,这里面实现的源码的全过程。首先我们还是一样的设定参数,为什么要设定参数,是因为我们在编写的过程中最终还要有一个优化的过程,就是还要让计算机把所有的参数去跑一遍,看看出现什么情况,那我写程序的过程中,通常我会先在前面加中文,这个就是注释,参数模块,这个板块。接下来看一下中间的变量,中间的变量其实就是一条语句,就是多空线,还有45的话就是一个极值,就这条多空线最重要,就这一条,完了以后我们遵循的就是计算机运算方式就是先平仓后开仓的原则。先平后开,开始写平仓语句,平多,如果有多单,会多空线小于作多线,那么我就开始如果有多单我就平掉,我用什么平呢?我用C平,那代表是没有未来函数的,那同样的,平空也是一样的,开多如果当前是空仓,那我就达到这个条件,那我就开一手,做空也是一样的道理。写完以后,我们进行信号检测,没问题。接下来再再进入第三板块,导入测试模板。导入测试模板先给大家看一下测试模板里面到底导入了什么?上面的源代码全部没有改,还是跟第二步是一模一样的,跟上面的是一模一样的。接下来就是最下面的是我额外加进去的,叫做测试报告数据分析变量。最下面一段代码主要呈现出几个数字呢?就是在这里显示的,测试报告的数字显示,这些都是为了达到下面这些数据的一个中间变量。那么第一个我要它从我有效交易日以来,我总共交易了多少次,我要知道这个交易次数,第二个我要知道上一次的开仓价格或者平仓价格;第三个,我要知道我从历史以来我的最大回撤是多少。第四个,我要知道总盈利除以总亏损是多少,还有我要知道它的平均单笔利润是多少,因为我除以它总交易数,而且是减掉100万,那么当天赢亏也要写进去,净利也要写进去,这个就是测试报告。接下来我们在这里可以看一下,我们的测试,因为是收盘价模式,我们用万分之一的测试法,如果说按我现在用的模板它是用万分之零点零五的来测的,那我们用万分之一来测。之后我们开始,也要应用上去,应用上去以后它的曲线就出来了,这曲线一般,红色这条就是资金曲线,还有红色这条很细的就是我们的最大回撤,信号出来以后大家可以看到,总的从这个位置到这个位置我们的交易次数是535次。最近一次的信号价是2404点,最大回撤是16万9,赢亏比只有1.17,平均利润只有1000块钱,当天赢亏上周五赚了一千块钱。接下来,我们就开始增加过滤条件,如果这种正反手模型写进去,肯定容易出现一个问题是什么?因为你是永远在实施策略,出现这种的问题必不可免,就是这种曲线一直亏一直亏的这种。为什么,因为任何策略都有不适应的时候,在你不适应的时候你亏的是非常快的,那我们为了解决这个问题就要让它增加过滤条件,也就是我不要让它永远在试,我要让它有休息的时间。原则还是这样子的,那我们怎么做呢?假设我们增加的过滤条件是什么?这里写了一个参数,叫做过滤参数,上面的还是没有变,我做了一个在10个周期里面,多空线小于做空线,是有两次应该做出过滤参数是两次,那么我就开始平,否则我不平,就是这么一个简单的过滤机制。当然我们在实盘中可能会增加更多,那下面的测试报告还是会继续保留。
接下来我们进入第四步,第四步我们进行应用。可以看到,又出来了不一样的曲线,因为被过滤过了,那还是一样的,出现的问题是有峰谷而且会疾速下跌。这个疾速下跌是什么?我们再看看,从这个位置做进去,一直到这里才平,有人说这里理论来说还多了。原因就是被我过滤掉了,这里没有开多,因为它的10个周期里面只发生一次,那在这里它为什么开呢?因为在10个周期里发生了第二次,所以才开。在接下来,这样曲线好像还不行,回撤过大,由原来的16万变成26万,接下来我们在增加一个止损,就是在原来的这个逻辑里面我们给它增加止损。这个止损是一个跟踪止损,我们跟踪止损是用百分比来算的,用一个非常简单的一个数字就是1%,跟踪止损的一个1%。那我们进入第四步,加了一个1%的跟踪止损,出现的数字是总交易数是497次,信号价这个不重要,最大回撤6万1,赢亏比由原来的1.1增加到1.5,平均利润1800,而且可以看到,这个赢亏比发生了很大的变化,还有次数也发生了减少,大家可以看到第三步的时候我们就是一个裸的思路,很裸的一个思路,非多即空,第四步增加了这个条件以后,从500多次的交易次数,减少到300多。那就相当于交易量在减少,但是它的赢亏比很少,单笔利润提高了一点点。那我们再看,如果说增加了呢?这赢亏比,因为我们说赢亏比是最重要的,还有一个最大回撤,由刚才的最大一个亏损,最大回撤是26万,现在减到6万,赢亏比由之前的1.1增加到1.5,平均利润由1000增加到1800,交易次数反而比刚才过滤的更多了,原因是什么?原因是我们平仓更松了,平仓的多了,所以开仓也容易多,但是它在场的时间是减少了。大家认为这样的曲线怎么样?不错是吧,就一句话,那有人说一句话真的能写出模型吗?实践起来画了75行,这75行都是废话或者都是执行或者都是你要实践这句话的过程用了75行。而且大家可以看到,我们这个是没有未来函数的,不可能有未来函数的,我可以直接实盘的,为什么这样子呢?你看到这一点,我就把它改掉了,用O价,有人会说O价不是未来函数吗?大家看到前面有个ref,它不可能会少,就相当于前一根周期实现了我在下一根K线的开盘价格,我为什么要这样做?因为我有一个跟踪止损,我的跟踪止损一定是动态的,每一秒钟扫描一次,不是走完K线,因为走完K线容易出现一个问题,就是被秒,光大事件那种,如果一分钟它可以涨50个点,里面有几十手的话,那就完蛋了。那我们就必须采用指令价模式,用指令价我们下面也必须用指令价,那我们就得用O价,那下面就是测试报告,认为这种不错啊,那这种失效概率有多少?不知道,是吧?但是你让它长期做,会大亏吗?我认为也不怎么会大亏。
接下来我们再看测试反转一下,K线反转。这条线,红色线,它是向上的,再接下来,我们再来一次多周期的进行,因为我们用的是当前K线的前35周的最高、最低做,所以我们多周期应该可以看出什么样的效果。看看10分钟的,净利润应该有56,K线反转就不用看了,反正是对称编写的,它一定差不了,15分钟的,是这样的;30分钟的,是这样的;1个小时的,这样的;5分钟的,还有3分钟的。那至少它都是有赢利的,当然很多人是追求完美的,认为这种曲线太差了,比如说我们来看一下,我们来写个未来函数,写个未来函数直接在这边加个O,就闪到你眼睛都睁不开了,就这样是不是很漂亮,这种曲线就很漂亮、完美是吧?咋会亏呢?这期货市场不是指日可待成首富了吗?所以这种思路一定不能分享出去,是吧?可以看到它的赢亏比是多少?3.16,总交易数896,而且平均利润3700,爽歪歪了。最关键的它从开始到现在赚了338万的利润,而且最大回撤是多少,才5万2,是不是亮到眼瞎,但这个是不可能的,没有这种圣杯的,所以有人说胜率可以达到百分之六七十,我认为真的趋势策略能达到,就是你正常一点的不要加一些小窍门的那种,你就把这个35到45之间吧,那有些趋势策略它可以达到百分之五六十,我也就可以写出来,跟大家说一下怎么写出来,利润没增加,胜率上去了,怎么写的,就是我们把硬性止损,比如说我们的硬性止损是10个点,我们在写的过程中涨了十个点以后,我们就拉到成本价附近,那我不拉成本价,我就拉到比成本价高一点,高一跳或者高一个点,这样子的话,长期以来,它一定是大于50%的胜率,但那个没意义,胜率是高的,但是没意义的,跟胜率百分之三十几是一样的。
还有一个环节,就是模拟测试或者少量实盘。在这里我也写了一个模板就是直接的,其实现在对于我来说,我只做一、二、三、四、五,到五步,其实第三步我就跳过了,因为这个模板我已经有了,第二步我也跳过了,这个模板我也有了。这个出来的就不是信号了,就直接的来一根线。这根线是什么呢?这根线就是我要交易的东西,这根线,当这根线为1的时候就代表我当前的仓位是一手;当这根线是0的时候,就代表当时是空仓;当这根线是-1的时候,就代表我有一手空单。这个我沿用金字塔,分享的东西就是后台模板,当时给它加了一个改良的东西就是我有测单功能,这个就不用详细讲了。比如我这个策略我现在觉得表现不错,我要做两手,在这个地方只要改一下,乘以二,它就可以了,就两手,实盘过程中,那这边就是两手。我如果说我有N个策略,那我干嘛呢?在这边重新起一行,CC1、CC2、CC3一直到CC10到后面CC全部加从CC1加到CC10,下面都不用动了,下面测帐户给它动一个,完了以后抄价也不用动了,就是这样子,这个也就是我为什么做金字塔,因为金字塔这一块,对我来说是蛮好,因为我只负责模型编写,研究到后期的实盘这一块已经有很成熟的东西,直接弄上去就行了。
还有一个部分就是我们的“倚天剑”实盘策略, “倚天剑”大家有看CCTV应该都知道,我是在里面展示时间最久的一位,是两年前,在那边展示用的策略,就用三个主策略。跟大家分享一下,同样的,我用的是三个主策略,我分别给它取名叫做”传奇变量五”那就代表这个策略已经升级到第五代了,在下次的话估计就是“传奇变量六”了,每一代我都会留底,然后是“动量变量五”、“均线变量五”那什么意思呢?“传奇变量五”你们不知道,但动量你们应该知道,它是一个波动率的,均线它是用均线的。那看一下,我们是在一分钟里面做的,这个是一个指令价模式,我是用万分之一点五的测试数据来做的。可以看到这个数据是一个什么样的概念呢?总手数十手,也就是说,我这套策略里面,有十手就是最多会加到十手,总交易数,最大回撤,这个最大回撤是当一笔就是一手回撤2万4,之后赢亏比是多少呢?2.25,平均利润5900、6000块,净利润500万,那大家有没有发现从这个位置到这个位置,都蛮像的,就到这个位置就不像了。因为我这个过程中都是这样用的,当然前面是改良过的之前的策略没有那么好。今年如果说本本分分的用这一个策略我就是赚钱的,但是今年最终沦落到亏钱,原因就是不本分,不本分也有好处就是总结经验,至少让我知道是什么原因亏钱的。这个我定位成一个中性的策略,它的进攻性不是很强;这个是一个防守型策略。当然我能做实盘是不可能的,这么多源码,这个肯定是不可能的,但相对来说我们做实盘只加的300根K线,甚至200根K线。这个是一个防守型策略,前面很漂亮,这个地方挖了一个大坑,最终上去了,这段时间有回撤,前段时间还有一个大行情,也上去了,那如果说上去了今年也不亏钱。这里是今年,我们看一下我们的测试数据一定是万分之一点五,不是万分之一,如果万分之一的话,这么多年下来,曲线就会更好一点。那这个策略的话,我们有多少源代码呢?有250行代码,后面都是一个测试报告的部分,前面才是在做的这些东西,变量。那思路简不简单呢?思路也是简单的,我之前都是用的这些,这里是没加滑点,但你可以看到这里有个买点优化。买点优化是什么东西?买点优化就是我对市场的理解加了一点点东西进去,跟别人有一点点不一样,那我们每一个买点优化都不一样,有0.8、0.4、1.0都有。还有看一个均线变量,这个都是同样的万分之一点五的数据,总手数都是十手。所以到现在我总结起来认为最终可能还是加仓策略最稳定,市场怎么再残酷,使用加仓策略,不可能亏的太多。只要有一点行情,它就容易上去。这个就是一个进攻型的策略,这段时间创下了历史最大回撤,之前的最大值是1万7,现在是3万1,最大回撤是3万1,但它的盈亏比还能达到2.0以上。所以这些就是我在做程序化这么多年的所理解的一些结果或者说所研究的一些层面,今天跟大家分享的这些都是我认为没有太多花俏的东西,就是以真实的一面,面对大家的,不管讲的好与不好,不好的多批评,好的希望能够有一个起到借鉴的作用或者说起到一个启发的作用,也没有太多的所谓的神奇指标,谢谢大家。
斑马投诉温馨提示:投资有风险,交易需谨慎!
未经允许不得转载:EagleTrader » 章位福:程序化交易改变了我的人生命运