自定义合约功能的妙用
2020-01-14 17:12

机器学习、数据挖掘、大数据分析、深度学习……

这些名词这些年是不是都看烦了?计算机科学从来没有如此风靡于交易领域。然而,大部分人光记住了这些名词,却无法理解他们背后的意义。人工智能到底在做什么?

人工智能听起来十分高大上,其实无非是计算机科学家希望计算机像人一样去思考问题而采用的一些办法。计算机现在看起来似乎很强大,其实仍然逃脱不了计算机科学家的控制,因为计算机没有自我学习能力。

举个简单的例子,小朋友在学校里学习知识,参加考试。如果用同一份内容的考卷来反复测试小朋友,小朋友的成绩一定会提升,到最后变成满分。但是,如果用相同的方法去测试计算机,得到的结果无论多少次,永远是一样的。

人类会对外部激励做出正负反馈,如果你告诉小朋友有一道题做错了,小朋友会思考为什么做错,怎样才是对的,下一次再遇到这样的问题就不会再错了。这个过程我们称之为人类的成长进步。

而计算机对于外部激励不会有任何反应,它只会机械地按照命令去执行操作。如果命令本身存在错误,计算机是不会修改这些指令的。这就是计算机和人最大的区别,如果指导理论和实践发生冲突,人会修正指导理论,计算机不会。

那么如何让计算机可以像人一样去修正指导自己运行的指令呢?这是一件非常困难的任务!因为计算机本来就是设计出来严格执行指令的机器而已,现在反而要让计算机按照自己想法去运作?

计算机科学家做了非常多的工作去完成这件事,探索之路十分漫长而艰辛。欣慰的是,现在确实有了很多种训练计算机进行深度思考的方法,这些方法也就是开头所提到的机器学习、深度学习、数据挖掘等等。对于普通人而言,没有必要完全掌握这些背后的工作,只要学会如何应用计算机科学家们发明的方法即可。

那么,教会计算机去反思错误以后,工作是不是就完成了?还差一步。

小朋友虽然非常聪明,会从错误中吸取教训从而成长进步,但是一张白纸是无法胜任任何工作的。培养一个人才需要大量的实际工作来累积经验,而一个能自我学习的交易模型,也可以通过大量的模拟交易来提升绩效。

稍等!去哪里找行情数据来进行模拟交易呢?

这个问题可能困扰过很多策略开发者。一些比较容易开发的模型一般都运行在大周期比如日线上,但是日线的样本数据实在是不够做数据验证。小周期例如分钟级别虽然样本数量足够,但是很难开发出相应频率的优秀模型。

那怎么办?很简单,没有样本,我们可以创造样本。

TBQuant的最新语言提供了自定义合约的命令,用户可以通过一系列指令构造具有特定统计分布的价格序列。伴随着之前加入的重载命令,TBQuant可以反复创造样本,让模型不间断地受训,反复进化。这个新功能可以说为机器学习极大地铺平了前进道路。

系统自带构造自定义合约案例:

创造服从均匀随机分布的价格序列:

推送自定义行情数据供模型学习:

虽然建立自定义合约的功能推出之初只是为了给用户提供一个录入外部数据的渠道,但是意外地非常适合机器学习啊!大家不想动手试试吗?


评论区
顶部