解决方案:做期货有必要使用程序化交易吗?

由于有免费的CTP接口,期货程序化交易目前比较普遍,很多人都尝试过在文华财经、金字塔之类的软件上回测和编写实盘策略。

期货程序化交易有很多优点:程序会按照设计自动执行股指期货,不受任何其它因素干扰,设计正确的请假下不会出错。借助于程序,交易速度更快,远远超过人工下单的速度。节省人工成本,一个策略可以部署多个机器人,特别当前期货存在夜盘的情况下,耗费非常大的人力成本。可以说,从事期货交易,每个人都应该学习程序化。

期货程序化软件会给你哪些限制?

使用程序化软件可以快速的写一些简单的趋势策略,并进行回测。但由于其语言简陋、语法支持不全 ,再会编程的人看来期货,反而造成了困难,无法自由实现自己的想法。以文华财经自带的麦语言为例,甚至不支持挂单交易,也缺乏必要的控制语句和数据结构。用这些软件完成入门后,反而限制了用户更进一步的提升,很多人使用这些软件很多年,居然没有任何进步,不能不说是一种悲哀。如果你熟悉程序化软件或者打算入门,现阶段学习一门正规的编程语言才是最重要的。

编程语言以及CTP框架的选择:

编程语言推荐Python和C++。Python有很多完善的科学计算、深度学习、统计、金融的包期货程序化交易到底好不好,如果有这方面的需求,学习Python无疑最佳。C++ 性能强大,原生支持CTP接口值得推荐。其实,当你掌握一门语言后,学习另一门语言也不会花费太多时间,特别是对于编写策略,使用不同语言并无太大的区别,也很容易在两者语言之间转换。

CTP的底层是C++,对于新手比较困难,可以选择已经封装好的框架直接使用,如很流行的VNPY仿真回测 和Virtualapi 仿真回测柜台。

现在的量化回测软件和方法有三类,一类是通过文华、TB、MC等商业软件,在商业软件中通过编写交易指标和交易公式,或通过加载用户自己开发的第三方策略库进行交易策略的开发和回测;第二类是直接使用交易所、券商、API软件服务商提供的API或券商等机构提供的行情和交易API直接开发交易策略,或通过一些回测框架调用这些原生API进行回测;第三类是利用聚宽、优矿的网站在线平台进行回测。

若采用第一类商业软件开发量化交易回测系统,虽然对从事量化交易的人来说,开发策略需要的工作量较少,对开发者编程能力要求不高。但缺点也是显而易见的,除了商业软件本身需要收费提高了交易成本以外,采用商业软件开发交易策略不够灵活,使得很多交易策略无法实现。

若采用第二类直接使用API开发策略或采用针对API的回测框架,例如python的各种回测框架、matlaba的各种回测框架、R语言的各种回测框架,PyAlgoTrade、Zipline等、虽然开发策略较为灵活,但缺点是开发交易策略的实盘代码并不能直接进行回测期货程序化交易到底好不好期货配资,必须要采用引入回测框架进行回测,待回测完毕,再将回测完成的参数接入实盘策略代码中或删除回测框架部分的代码接入实盘交易的API,使得量化交易回测代码和实盘的代码有较大的改动,增加了策略开发者的工作,也增加了量化交易爱好者时间成本,甚至对很多编程能力有限的量化爱好者来说提搞了研究难度的门槛。

若采用第三类在线回测平台进行回测,由于需要将编写的策略在网站指定的服务器上运行,由于是多用户共享一台服务器,所以回测性能无法得到保证、网站更倾向于采用精度不高的数据进行回测。还由于对策略开发者来说不是使用原生API进行开发策略,所以策略开发的自由度也不够,很多想法也无法实现。更重要的是,选择网站在线平台的方式来开发量化交易策略,就等于默认了网站管理员可随时查看自己辛辛苦苦开发的策略代码,保密性让人担忧,从事量化交易的专业机构几乎不会采用在线网站的回测方式。

近年来,量化交易在金融领域应用的越来越广发,回测系统的设计是量化交易中不可缺失的一部分,但同时也暴露出一些问题,例如商业软件成本高、自己搭建会测框架时间成本高,难度大、采用第三方回测框架难度大、回测到实盘交易的代码改动较大、量化策略保密性不高等等。

为了克服现有技术存在的上述不足,VirtualApi仿真API的回测技术应运而生,它是模拟原生API来实现的。例如通过模拟原生交易API和行情API,例如通过模拟原生API的库方法的定义、头文件的定义等,使得回测和实盘交易代码,简单的将实盘代码替换为仿真API,对底层代码可不作改动或改动较少即可实现回测和参数优化。

支持的编程语言

VirtualApi Api支持多种编程语言,包括C++、Python、Java、C#、Golang、易语言等 。

支持的操作系统

VirtualApi Api支持Windows操作系统,版本要求Windows7、Windows2008及以上。

支持的量化交易框架

VirtualApi 支持各种基于CTP接口的自编程序和框架,例如vn.py、Quicklib、海风等。

CTP实盘程序流程图(C++)

五、使用编程语言的强大之处:

1.一个机器人多账户多合约交易

文华财经一个机器人只能控制一个合约,这无疑为账户管理和策略管理带来了不必要的麻烦,FMZ框架可以在一个机器人内交易多个账户,同时操作多个合约,机器人页面也可以有自己完全控制。

2.突破交易所tick限制

在FMZ的策略模型下,你很容易就能操作N家不同期货公司的账户,并把他们的行情融合处理,以最快的速度下单。一般情况下,最多可以从期货公司服务器上得到两个Tick/秒, 但通过把多个期货公司的数据融合,以MA801为例,我们可以拿到最多一秒6次不重复的Tick,可以用来做高频交易。这是目前任何交易软件和其它框架都不能实现的功能。

3.一切由自己操作的自由

自己挂单之类的只是基础,你可以自由控制一切,如何开仓,如何平仓。有一部分期货品种平今仓的手续费较贵,你可以选择锁仓。类似这样的操作,使用编程语言易如反掌。那些为了方便的程序化软件在实现这些特殊的需求时,反而变得笨重繁琐。

从零开始程序化交易,最难的是行动的第一步。可能很多人考虑过开始学习量化交易,但90%的人都没有写出一行代码,跑过一次程序。“

重要的一点,要在实践中学习。没有必要所有的事情都搞明白才去写自己的策略。大致看一下Python或者Javascript最基础的语法,策略有一些思路,就可以动手写量化策略程序。遇到的问题百度、看文档,几乎能找解答。

如果你想要学习量化或者讨厌软件给你的限制,现在就开始学习吧。

在交易上面交易员就可以有各异不同的策略去交易。在进行实盘交易时,先看看程序化交易的回测,对了解自己的交易思路有一定的帮助。虽然从理论上来说,使用历史数据进行的回测可能会造成过度优化参数;虽然是这样,但是优化的过程也是交易者了解,这个交易策略的特性和情况的过程,从而获得一些观察值的实例。它的作用就是让你更好地完善你的策略。

在交易上面交易员就可以有各异不同的策略去交易。在进行实盘交易时,先看看程序化交易的回测,对了解自己的交易思路有一定的帮助。虽然从理论上来说,使用历史数据进行的回测可能会造成过度优化参数;虽然是这样,但是优化的过程也是交易者了解,这个交易策略的特性和情况的过程,从而获得一些观察值的实例。它的作用就是让你更好地完善你的策略。

其次,人体器官上是有极限的,但是程序化交易没有。

程序化的交易因为有了上面提到的好处,越来越多使用程序化交易的人和团队出现。占有大比例的是程序化交易的管理期货策略 (CTA策略)和高频交易。还有另一部分的主流策略中,比如股票策略,可能狭义上的程序化交易他们不会应用,但是利用计算机技术进行决策和交易,同样也是他们的主要方式。

程序化的交易因为有了上面提到的好处,越来越多使用程序化交易的人和团队出现。占有大比例的是程序化交易的管理期货策略(即CTA策略)和高频交易。还有另一部分的主流策略中,比如股票策略,可能狭义上的程序化交易他们不会应用,但是利用计算机技术进行决策和交易,同样也是他们的主要方式。

由此可想而知,未来程序化交易的重要性。

欢迎关注我的专栏酷宽​

图标

期货程序化交易到底好不好

我放在张江的高频交易服务器

期货程序化交易到底好不好

我使用Virtualapi进行期货TICK仿真回测

文章来源:期货开户,如若转载,请注明出处:http://www.sfgs.com.cn/2008.html

发表评论

电子邮件地址不会被公开。

返回顶部