the first tick问题

最近做策略研究,框架越铺越大,随之而来问题也不断出现。其中最重要的一点就是the first tick问题。

先说说最近的进展吧,通过许多时间的研究,对量化交易其实有点不报希望,谁叫你在这个量化交易扎堆的外汇市场呢。外汇市场的量化交易不仅机构在做,由于著名metatrader交易软件的极其普及,普通的小散户也相当人在做,而且还发展出类似darwinex这样越发火爆的pamm平台。当然这么多年来,每次放弃一段时间,就又各种原因开始继续折腾手里的这玩意了。时隔几个月回头一看,发现写得真是so fucking good! 老实说,做软件这么多年来,这个算是我投入最用心,做得时间最长的一款了,重要的是许多量化交易软件无法实现的功能,它都能实现。然而可惜的是,它还没给我挣来一毛钱呢!

言归正传。the first tick问题,主要是我希望能在策略中调用策略而出现的。框架是这样的,一个命名为commander的策略时刻监视着市场,同时不断通知main trader调用controller程序,让controller程序启动连接上的slave trader进行分布式计算。当计算结果收集完毕后,controller程序返回给main trader,main trader将结果提交给commander策略。commander策略根据返回结果决定是否加载或卸载某组策略。这就是我称之为adaptive system!

a

然而回测时候发现,有些策略虽然载入了,但是没有顺利执行,以致于遗漏了部分交易信号。经过反复查阅,发现是the first tick这里出了问题。也就是激发commander选择某个策略的那个tick,并没有顺利提交到刚刚被载入的策略。原因何在呢?

原因在于系统执行时候的框架,是先计算indicator list,然后执行expert list。这个是很自然的,如果指标值没有算出来,那么依据指标的策略就无法顺利执行。而执行expert list时是顺序调用的,激发ontick事件的过程中某个expert被加载到expert list尾端,所以外循环可以将这个expert立即执行,也就是说这个tick可以发送到刚刚载入的expert。但是这个expert载入过程中,会在indicator list中进行操作,那么由于当前tick已经在indicator list中穿过了,就无法回退到indicator list上进行计算。

既然如此,解决办法对于自编写的程序就比较简单了,我在这里偷了个懒,给凡是需要被commander加载的expert都添加了一个参数,来标志是否是被策略嵌套加载,如果是的话,则在这个expert加载完indicator后,立即将当前的tick计算一遍即可。至此first tick的关键部分就解决了。当然里面还有许多细节问题,不一一阐述。第一说不完,第二也没几个人真有兴趣看。;D

好了,说点别的。最近泡在海洋论坛很久,不断翻阅老帖子,记录了不少名句。海洋论坛是国内少有的量化交易高端论坛,内部时常潜龙出没,可惜最近几年帖子越发少了,不过许多老帖,依然沉着有力。这里摘选一二:


“这里的核心问题,或者说绕不开的问题依然是:一个人在生活中究竟要不要坚持原则?

在生活中坚持原则的人极少,同样在交易中能够坚持原则的也极少。你设计的那种依市场条件的不同采用不同交易系统加以应对的办法,其实也是多数人的想法和做法。我个人认为:这种想法和做法,一个坚持原则的人是不会接受、不会采纳的。因为,这种做法压根不准备为坚持原则付出代价。

有部电影《末日危途》(The Road),以艺术的方式展示了:一个坚持原则的人所面临的处境。尽管电影相当沉闷无趣,我还是推荐你看看。因为,它表达得比我清楚。 ” - niming

"交易一般说来是艺术和技术的结合。一般人使用的技术少些,而专业的人员常常很依靠技术。而交易行为则是建立在他自己头脑里的模式和技算机提供的模式共同作用产生的,这点,就比较艺术些。

机械式的交易系统,做好了,其实是一个”智能生物“。它能通过历史数据,即对经验的学习,来改进自己的行为,或对变化了的环境作出反应。由于使用统计分析,博弈机制,以及优化技术,一个完整的交易系统很不容易冲动,其结果常常也很稳定。

但这样的“智能生物”毕竟是人造的。设计制作它的人常常知道这个生物的主要弱点,而这些弱点,由于技术原因,也未必能把它改掉。所以造物主,即设计者,常常会在这个生物上做上很多的“穴位”,在必要时,可以“点穴”。

至少,我作出来的自动交易系统是这样的。 " - 野狐禅


"我们谈的是如何进行交易,而并非是:什么样的人适合去交易.
就交易本身而言就涉及知识与知识的应用.
前者的知识即指:对交易规律的科学洞见以及由此基础上的交易规则的技术构建
后者的知识应用又分为:执行交易规则的自我管理.即对自我的管理技术.
两者所涉及的都是技术.

胆敢从事交易的人,最后拼的压根不是什么勇敢.不是什么交易人的道德修为.那都是忽悠新人或是一些不知所谓的人写的,交易最后拼的就是技术.
东方诸国被西方蛮夷征服,是泰西蛮夷更勇敢吗?更人道吗?更民主化吗?更自由化吗?缺的是什么?就是技术.一种集权技术(指政治动员技术,金融融资技术).以及科学技术
忽视技术的人,无论个人或一个民族多么勇敢,若非机运照顾你,最终难免失败与被奴役的命运. " - traderworld

祝各位交易顺利!

Leave a Reply