25评论

1收藏

七拼八凑修改出来的EA

| 8709 人阅读 | 25 人评论 | 2012-11-15

根据自己的思路七拼八凑修改出来的EA,2楼是源代码。大家看看有什么可以优化的。

在开仓条件方面,原来是设想读取已平仓单子总数,每变化一次,扫描返回货币和开仓价,然后按原来开仓价重新挂单。

因为函数不了解改成读取挂单和持仓总和,和总持仓对比,少了1单,就补一单(现在担心EA会不会补错货币)

另外EA是不是在本地端计算后,出结果后上传到服务器端的?(发现相近的时间平掉2个不同货币,EA会按最后的货币补2仓,该怎么修改)平仓后EA补仓好像要间隔30秒以上,正常么?还是我机子计算不够快。

请大家斧正!
""
还没有人打赏,支持一下

评论|共 25 个

匿名 182.149.114.x

匿名  发表于 2012-11-15 17:22:45

  1. //+------------------------------------------------------------------+
  2. //| 实验室001.mq4 |
  3. //+------------------------------------------------------------------+
  4. #property show_inputs

  5. #include <Stdlib.mqh>

  6. extern double Lots = 0.1;
  7. extern int AllCount = 50;
  8. int Slippage = 0;
  9. extern double StopLoss = 50;
  10. extern double TakeProfit = 50;
  11. string Comments = "BatchOpen Auto Generated";
  12. extern int Delay = 0;
  13. datetime Expiration = 0;

  14. #define BATCH_OPEN_MAGIC 06021610

  15. //+------------------------------------------------------------------+
  16. //| script program start function |
  17. //+------------------------------------------------------------------+
  18. int init()
  19. { return(0); }
  20. int deinit()
  21. { return(0); }
  22. int start()
  23. {
  24. int NowTotal = OrdersTotal();
  25. double _RangeStart ;
  26. double _StopLoss=StopLoss*Point ;
  27. double _TakeProfit=TakeProfit*Point;

  28. if (NowTotal >= AllCount)
  29. {return (-1); }
  30. else
  31. OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS,MODE_HISTORY);
  32. if(OrderOpenPrice()>0 && OrderSymbol()==Symbol()) _RangeStart=OrderOpenPrice();

  33. double sl ;
  34. double tp ;
  35. int cmd;
  36. //inputs checking

  37. if (_RangeStart<Bid)
  38. { sl = _RangeStart - _StopLoss;
  39. tp = _RangeStart + _TakeProfit;
  40. cmd = OP_BUYLIMIT;
  41. OrderSend(Symbol() , cmd , Lots , _RangeStart , Slippage , sl , tp,Comments, BATCH_OPEN_MAGIC, Expiration, CLR_NONE); }
  42. if (_RangeStart>Bid)
  43. { sl = _RangeStart - _StopLoss;
  44. tp = _RangeStart + _TakeProfit;
  45. cmd = OP_BUYSTOP;
  46. OrderSend(Symbol() , cmd , Lots , _RangeStart , Slippage , sl , tp,Comments, BATCH_OPEN_MAGIC, Expiration, CLR_NONE); }


  47. //----
  48. //Print(cnt + " orders placed, " + AllCount + " requested, " + failed + " failed");
  49. return(0);
  50. }
  51. //+------------------------------------------------------------------+
复制代码

admin

发表于 2012-11-16 09:04:28 | 显示全部楼层

测试了下,发现在黄金和白银中不能正常补仓,一直循环显示 XAUUSD,M5: invalid stoploss for OrderSend function
,是否EA不支持黄金和白银,或者说黄金白银的代码并不一样

引章小姐

发表于 2012-11-22 00:12:46 | 显示全部楼层

不错!  

kevinyang88

发表于 2012-11-22 00:12:46 | 显示全部楼层

说的不错  

和其正

发表于 2012-11-22 00:12:46 | 显示全部楼层

很棒的 EA  

K线

发表于 2012-11-22 00:12:46 | 显示全部楼层

楼主QQ多少  

q826418559

发表于 2012-11-22 00:12:46 | 显示全部楼层

留个脚印```````  

衣冠禽兽

发表于 2012-11-22 00:12:46 | 显示全部楼层

嘿嘿......哈哈......呵呵.....哟~呼  

金道贵金属GTS

发表于 2014-10-31 20:24:11 | 显示全部楼层

看看是什么东西啊

123下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则