龙听期货论坛's Archiver

龙听 发表于 2019-6-1 14:38

放弃文华财经,自己编程实现期货程序化交易

一、目前期货程序化现状:
[p=30, 2, left]由于有免费的CTP接口,期货程序化交易目前比较普遍,很多人都尝试过在文华财经、金字塔之类的软件上回测和编写实盘策略。[/p][p=30, 2, left]期货程序化交易有很多优点:程序会按照设计自动执行,不受任何其它因素干扰,设计正确的请假下不会出错。借助于程序,交易速度更快,远远超过人工下单的速度。节省人工成本,一个策略可以部署多个机器人,特别当前期货存在夜盘的情况下,耗费非常大的人力成本。可以说,从事期货交易,每个人都应该学习程序化。[/p][p=30, 2, left]本文将劝你自己实现量化交易,摆脱文华财经之类的软件,看完不会后悔。[/p]二、期货程序化软件会给你哪些限制?[p=30, 2, left]首先是费用,文华财经的价格太贵,甚至手动下单也要收费,为0.2元/手,文华程序化交易软件8C套餐基本配置7800元/年/账号。TB交易开拓者交易费用太高,按成交量计费,每手交易都按交易所手续费的25%收取,对于成交频率较高的策略十分不友好。[/p][p=30, 2, left]其次是编程限制:使用程序化软件可以快速的写一些简单的趋势策略,并进行回测。但由于其语言简陋、语法支持不全 ,再会编程的人看来,反而造成了困难,无法自由实现自己的想法。以文华财经自带的麦语言为例,甚至不支持挂单交易,也缺乏必要的控制语句和数据结构。用这些软件完成入门后,反而限制了用户更进一步的提升,很多人使用这些软件很多年,居然没有任何进步,不能不说是一种悲哀。如果你熟悉程序化软件或者打算入门,现阶段学习一门正规的编程语言才是最重要的。[/p]三、编程语言以及CTP框架的选择:[p=30, 2, left]编程语言推荐Python和Java,主要原因是解释性语言,方便新人上手。Python有很多完善的科学计算、深度学习、统计、金融的包,如果有这方面的需求,学习Python无疑最佳。Java性能强大,更容易学习,也值得推荐。其实,当你掌握一门语言后,学习另一门语言也不会花费太多时间,特别是对于编写策略,使用不同语言并无太大的区别,也很容易在两者语言之间转换。[/p][p=30, 2, left]CTP的底层是C++,对于新手比较困难,可以选择已经封装好的框架直接使用,如很流行的VNPY已经FMZ量化框架等。这里推荐FMZ量化( [url]www.fmz.com[/url] ),优点有:网页控制(甚至能网页下单),支持回测模拟以及实盘,用户多社区活跃,入门教程和范例很多,方便自学入门,收费极低,约合1元/天。[/p]四、使用编程语言的强大之处:[p=30, 2, left]1.一个机器人多账户多合约交易[/p][p=30, 2, left]文华财经一个机器人只能控制一个合约,这无疑为账户管理和策略管理带来了不必要的麻烦,FMZ框架可以在一个机器人内交易多个账户,同时操作多个合约,机器人页面也可以有自己完全控制。图是一个多品种海龟的例子。[/p][p=30, 2, left][attach]8864[/attach][/p][p=30, 2, left]2.突破交易所tick限制[/p][p=30, 2, left]在FMZ的策略模型下,你很容易就能操作N家不同期货公司的账户,并把他们的行情融合处理,以最快的速度下单。一般情况下,最多可以从期货公司服务器上得到两个Tick/秒, 但通过把多个期货公司的数据融合,以MA801为例,我们可以拿到最多一秒6次不重复的Tick,可以用来做高频交易。这是目前任何交易软件和其它框架都不能实现的功能。原帖地址:[url]https://www.fmz.com/bbs-topic/1184[/url][/p][p=30, 2, left][attach]8865[/attach][/p][p=30, 2, left]下图为实现这一功能的源码:[/p][p=30, 2, left][attach]8866[/attach][/p][p=30, 2, left]3.一切由自己操作的自由[/p][p=30, 2, left]自己挂单之类的只是基础,你可以自由控制一切,如何开仓,如何平仓。有一部分期货品种平今仓的手续费较贵,你可以选择锁仓。类似这样的操作,使用编程语言易如反掌。那些为了方便的程序化软件在实现这些特殊的需求时,反而变得笨重繁琐。图为Python平仓的定制代码:[/p][p=30, 2, left][attach]8867[/attach][/p]五、总结[p=30, 2, left]引用我在”比特币价格近期新高,该学习量化交易了"的一段话:[/p][p=30, 2, left]”重要的一点,要在实践中学习。没有必要所有的事情都搞明白才去写自己的策略。大致看一下Python或者Java最基础的语法,策略有一些思路,就可以动手写量化策略程序。遇到的问题百度、看文档,几乎能找解答。从零开始程序化交易,最难的是行动的第一步。可能很多人考虑过开始学习量化交易,但90%的人都没有写出一行代码,跑过一次程序。“[/p][p=30, 2, left]如果你想要学习商品期货量化或者讨厌软件给你的限制,现在就开始学习吧。[/p]

页: [1]