想自己学习EA编程,需要准备哪些工作,看什么书籍。今天就和大家分享一下EA开发的过程是怎样的。
EA开发前的准备工作。编写EA是一件需要细细打磨的事情,不要幻想一步登天。和任何一件事情一样,没有捷径,只要扎实的积累。如果你要在程序化EA层面有所建树,我建议你不妨从更底层的东西做起,打好基础。基于MT4的EA语言,使用的是类似于C语言的语法。
当你能够写代码的时候,那么开发一个EA就可以尝试着进行了。
1、整理你的交易模型,用明确的、简洁的语言描述出来。
切记,模型要简洁,后期可以不断补充和修改。好的交易模型都是改出来的,不是一蹴而就想出来的。
2、程序员编写EA代码,从功能上予以实现。
EA代码的实现,和程序员的技术能力有很大的关系。一些看起来很简单的模型,编码的难度可能也很大,这就需要程序员不断地夯实自己的编程水平。
3、对初步成型的EA进行历史数据的回测,修改完善EA代码。
基于历史数据的回测,可以检查EA的执行逻辑是否正确,观察回测和模型之间的不同之处,对代码进行不断的修改和调整,使其更符合EA的需求。
EA的回测是非常重要的一步,会耗费很多的时间。在回测的时候,要测试很多的货币兑、不同的时间周期,不同的月份,同时要观察极端行情中EA回撤的开仓和执行情况。随着数据回测的变多,EA回测的时间会变得很缓慢,这很考验程序员的耐心。
4、成型的EA,开始在模拟账户上运行,进一步观察模拟账户上实际行情的表现情况。同时,有条件的测试者,可以使用小额的实盘账户进行同步的测试。
这是漫长的一个过程,要耗费三到五个月的时间。从实践来看,EA在模拟账户上运行的结果和实盘运行区别不大。因此,可以开多个模拟账户进行回测,观察更多的数据样本。小额实盘的回测可以使用美分账户类型来进行测试。
5、在模拟和小额实盘跑EA的过程中,进一步完善EA的风险控制系统。
要注意服务器宕机、MT4卡死、货币兑的K线图卡死、账户掉线无法自动再登陆等多种情况下,EA的风控应对情况。这个步骤太关键了,其中发生的问题在历史回测中是无法发现的。EA的生产运行环境是复杂的,复杂的环境要靠一定的场景才能激发出EA特定的错误。
6、EA投入到实盘账户中运行,不断观察和进行微调,使其进一步适应市场、客户和收益风险比需求。
在以上这些步骤中,我认为难度比较大的,首先是第二步,即把交易模型编写成EA代码,从功能上予以实现。对于编码不是完全熟练的程序员来说,要实现这个过程需要大量的时间去学习和实践编程。其次,历史数据的回测、模拟和实盘账户的开跑、在实盘账户上的进一步调整,都需要付出大量的时间精力,而且急不来。
EA代码能够为我们节省很多的时间,我们也应该认识到,自动化交易威力很大,代码的严谨性十分关键。一旦使用不慎,出现EA执行上的逻辑错误,那么后果是不堪设想的。
最后祝喜欢EA编码的朋友们都能开发出自己喜爱的EA!如果你热爱编程和量化交易,我们可以多交流!
|