加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MT4指标的编写

(2012-07-07 20:04:30)
标签:

mt4

c语言

实时行情

交易系统

金融衍生产品

指标

编写

股票

互联网年代了,金融壁垒和神秘已不复存在。股票也好,外汇、期货等也好,一切金融衍生产品都可以在网上获得实时行情。当然,还需要一个好的软件平台,不但要看行情,最好还要有技术分析指标,而证券公司提供的软件很早就做到了这一点,虽然那是个大多股民还不懂技术指标的年代。后来股民要求越来越高了,于是在国内就有了“分析家”、“大智慧”、“飞狐交易师”,而且多数券商提供紧跟潮流的软件--可自定义指标;可以根据指标做条件选股、实时预警;可以利用历史数据做成功率测试,做模拟交易分析。
我现在也使用“飞狐”+“倚天”接口,接收港股、外汇黄金原油的实时行情。
外汇交易做市商中,有CMS推出VTTrader交易平台,可以直接在图表下单,可以自设技术指标,实行自动化交易系统。
早闻俄国人推出的MT4交易软件功能强大,一直没有试用。当然,我最感兴趣的就是MT4可获得的历史数据,据说包括16个月的1小时图(H1)、29个月的4小时图(H4)、长达25年的日线图(D1)及周线图(W1)。
初接触MT4,果然耳目一新:MT4.0和FoxTrader/VTTrader相比,编程语言迥然不同,基本上是C语言的翻版,所以要学会MT编程,最好要有一些C语言基础:简单的,比如“++”、“+=”等运算符,条件语句、循环语句等等,深一点就是函数的概念和如何调用。网络上可以搜索出大量的MT编程实例,而且很多技术细节,可以查阅官方网页:http://www.metaquotes.net/
MT4功能之强大来源于它的开放性,但对编程者的逻辑细节要求更高。
比如飞狐公式中对变量的赋值,会写表达式就行了,其他就由系统完成。如:DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
而在MT4中,你需要定义变量(数组),然后通过循环语句对数组进行赋值,如:
for(int i = limit; i >= 0; i--)
MACDLineBuffer[i]=iMA(NULL,0,FastMAPeriod,0,MODE_EMA,PRICE_CLOSE,i) - iMA(NULL,0,SlowMAPeriod,0,MODE_EMA,PRICE_CLOSE,i);}
//其中,iMA()-系统函数
其编程思想相当于:它只负责提供数据和调用该数据相应的接口,当然提供预警和交易下单等功能的实现方式,剩下的事情由--客户自己设计完成。等于说:没有做不到的,只有想不到的。
我把TII指标移植到MT4上,花了一个通宵,因为变量的赋值--要考虑具体到每根BAR上的逻辑细节。但是MT4的编程让人感觉更精确更可靠,因为你了解每个变量、指标数值是怎么算出来的。
自定义的指标编写OK后,以后在其他指标或交易系统上调用,就方便多了:MT4提供了一个自定义指标的调用函数iCustom()。
MT4已经很流行了,相信以后会有更多的外汇及期货交易商使用该平台,这也是一种开放的潮流吧!
本该如此。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有