📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    七拼八凑修改出来的EA

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

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

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

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

    请大家斧正!
    回复

    回答|共 27 个

    匿名 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 LV20

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

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

    引章小姐 LV5

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

    不错!  

    kevinyang88 LV5

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

    说的不错  

    和其正 LV5

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

    很棒的 EA  

    K线 LV6

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

    楼主QQ多少  

    q826418559 LV5

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

    留个脚印```````  

    衣冠禽兽 LV5

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

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

    金道贵金属GTS LV0

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

    看看是什么东西啊
    123下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服