日志存档:09, 2008

做个小调查

2008年9月28日 14:33  |  分类:其它

闲着没事,做个小调查,希望大家多多投票:

[poll id="3"]

如何使用EA

2008年9月26日 12:09  |  分类:EA, MT4使用, MT4编程

初接触MT4的朋友在使用EA时,经常会碰到这样或那样的问题,这里我把这些问题集中一下,希望让大家在遇到问题时能迅速找到答案。
       首先,我们从网上下载到的EA会是两种文件格式中的任意一种:一种是后缀名为mq4的文件;另外一种是后缀名为ex4的文件。后缀名为mq4的文件其实就是EA的源码文件,如果你的电脑上安装了MT4软件,只要双击这个mq4文件就可以直接打开并浏览EA的源代码;而ex4文件就是mq4文件编译后的二进制文件。Mq4格式和ex4格式在使用上没分别,只要放入MT4目录下的experts文件夹内,即可使用,区别是mq4可对EA进行修改并重新编译,而ex4则只能使用,不能修改。把EA文件放入experts文件夹后,打开MT4软件,打开你希望EA进行交易的货币对的图表,然后打开MT4的“导航器”栏(如果没有,可按Ctrl+N调出),其中有一项是“智能交易系统”,把这项展开:

我们可以看到刚才放入experts文件夹的EA文件已经在其中了,双击该EA,就会弹出如下窗口:

其中“允许实时自动交易”一项一定要勾选,其它一般保持默认即可。确定后,如操作正确,即会将该EA添加到当前打开的图表上,这是你可看见图表的右上角有个笑脸的图标:

如果不是笑脸,则检查一下工具栏的“智能交易”按钮是否已按下:

至此,EA即可正常工作。需要注意的是,不是所有使用MT4作为客户端的外汇交易商都允许EA进行交易的,所以有时即使看到笑脸图标,EA也可能没有在工作。

EA是什么

2008年9月26日 07:49  |  分类:EA, MT4使用, MT4编程

很多朋友在浏览我的博客后,经常会问我同样的一些问题:EA是什么?EA能做什么?特别是一些刚从股票转到外汇的朋友,对EA更是觉得陌生,这里我把对EA的一点认识与大家分享一下。
      说到EA,不得不提到MT4。MT4的全名是MetaTrader 4,是由一家叫做MetaQuotes的俄罗斯公司推出的外汇交易客户端软件。MetaQuotes公司只开发外汇交易软件技术,本身并不提供外汇交易服务,很多外汇交易公司向MetaQuotes公司购买其提供的外汇交易软件技术,然后向外汇交易者提供交易服务,实际上,现在大部分面对散户的外汇交易商都采用了MT4作为其外汇交易服务的软件客户端。MT4软件内置了一种叫做MQL(Meta Programming Language)的脚本语言,用户可利用MQL语言把自己的交易思路编写成MT4软件可识别的脚本,然后MT4会根据脚本自动进行判断、下单、平仓、移动止损等交易操作,这就把交易者从繁琐的看盘中解脱出来,把一些可明确定义的模式交由计算机去执行,而交易者可有更多时间去做其它事情了。
       回到我们的主题上来,EA,全名是Expert Advisor。从字面上理解,是专家建议者,我们一般会叫它作智能交易系统。EA实际上就是用MQL语言编写的脚本,可由MT4自动执行。举个例子,假如我希望在两条移动平均线金叉的时候买入,死叉的时候卖出,如果人工操作,就必须坐在电脑前看着屏幕,直到出现信号,并且手工进行交易操作;但如果把这个交易规则编写为EA的话,则只需把电脑开着,在满足上述条件时,EA就会自动帮你进行交易操作,全过程都是自动的,不需要人工干预。

有的朋友提供了这样一种头寸调整方法:资金翻倍,头寸翻倍,简单举个例子,即1000美元交易0.1手、2000美元交易0.2手,如此类推。。。

下面是实现了这种头寸管理办法的v205版本测试结果:

 

使用这种管理方法的话,就会造成资金的回撤相对较大,在实际交易中对交易者的心理影响较大。

v205版本下载地址

经过不断的组合和测试,我选择了SAR作为v204版本的移动止损方式,详细测试结果如下:http://www.dqyau.net/archives/158.html

 

下载地址:v204版本海豚小弟EA下载

在加入SAR作为移动止损策略后,海豚小弟EA的测试结果如下:

从测试来看,无论是最大亏损还是相对亏损均比前一个版本大大减小,这在实际交易中,对交易者的心理影响是非常重要的!

海豚小弟EA 201版本的测试结果

2008年9月18日 17:02  |  分类:EA, MT4编程, 交易系统

按照心情网友的建议,我取消了原来版本的开仓判断,现在是只要出现信号就开仓,以这样的方式来进行加仓。下面是2000-2008.9.4的测试结果:

相对原来版本的测试结果来看,盈利能力无疑是提高了,但需要注意的是:最大亏损与相对亏损也相应提高了。

关于共同开发EA的一些想法

2008年9月18日 16:38  |  分类:EA, MT4编程

之前我曾提出说每个星期发起一个题目,然后大家共同探讨开发,但反应似乎寥寥,不知道是否因为大家对这个都没兴趣。如果是的话,那我倒也不用继续写那么多东西了,呵呵。我考虑了一下,现在我建立了一个MT4开发网上合作平台,我所有的开发、研究都会基于这个平台进行。有兴趣的朋友可以联系我,我会为你在这个平台中开通一个账号,然后我们可以共同就正在开发研究的EA或其它东西进行探讨、改进。

我常用的一段移动止损的MQL代码

2008年9月15日 22:30  |  分类:其它

经常有朋友问我关于如何实现移动止损的问题,我把我常用的一段移动止损的实现代码贴出来,当然不一定是最好的,只是说让初学的朋友有个模板参照一下。

void tr(int magic,int triling_i){ 
  for (int k=0;k<OrdersTotal();k++){
    OrderSelect(k,SELECT_BY_POS);
    if (OrderMagicNumber()==magic){       
      if (OrderType()==OP_BUY && NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=triling_i*Point && OrderStopLoss()<NormalizeDouble(Ask-triling_i*Point,Digits)) {
         if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask-triling_i*Point,Digits),OrderTakeProfit(),0,Blue)){
            Print("Trailing stop error Buy :"+error(GetLastError()));
         }   
      }
      if (OrderType()==OP_SELL && NormalizeDouble(Bid+triling_i*Point,Digits)<=OrderOpenPrice() && (OrderStopLoss()>NormalizeDouble(Bid+triling_i*Point,Digits) || OrderStopLoss()==0)) {
         if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid+triling_i*Point,Digits),OrderTakeProfit(),0,Red)){
            Print("Trailing stop error Sell :"+error(GetLastError())); 
         }
      }
    }
  }
}

1999-2008完整历史数据的网盘下载方式

2008年9月15日 16:57  |  分类:其它

之前用bt的方式发布了1999-2008年完整历史数据的下载,但很多朋友都反映没有种子,所以我把这个压缩文件上传到纳米盘上面去了,需要的朋友可以选择这个方式下载:

纳米盘下载地址

Pages: 1 2 Next