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

    定时下单(开多单)ea

    2018-12-11 · 3340 阅读
    用来设定固定时间开多仓,并且自动设置止盈、止损操作系统。其中参数设置:

    小时=指定小时数。常数12 代表12点,以MT4系统时间为准;

    分钟=指定分钟数。常数 1代表01分。

    (说明:如果时间参数设为:小时=12,分钟=02,则限定在时间12:02内自动下单,其余时间不操作。)

    止损、止盈,均采用5位数平台,具体可根据你平台填入相应的数位,如:200=20点。

    1. //

    2. #define MAGICMA 20050610 //系统单编码



    3. extern double 手数 = 0.1; //下单量



    4. extern int 小时 = 12; //系统小时数



    5. extern int 分钟 = 1; //系统分钟数



    6. extern int 止损 = 200; //5位平台,4位平台为20



    7. extern int 止盈 = 300; //5位平台,4位平台为30



    8. //自定义函数:返回/整数型——计算下单量



    9. int CalculateCurrentOrders(string symbol)



    10. {



    11. int buys=0,sells=0; //设局部变量



    12. for(int i=0;i<OrdersTotal();i++) //循环查找历史仓单



    13. {



    14. if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;



    15. //如果 仓单类型=假 则跳出循环



    16. if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)



    17. //如果 货币对=当前货币对 且 仓单号=本系统仓单号



    18. {



    19. if(OrderType()==OP_BUY) buys++;



    20. //如果 仓单类型=多单 则 多单数=多单数+1



    21. if(OrderType()==OP_SELL) sells++;



    22. //如果 仓单类型=空单 则 空单数=空单数+1



    23. }



    24. }



    25. if(buys>0) return(buys);



    26. //如果 多单数>0,则 返回(多单数)



    27. else return(-sells);



    28. //否则,返回(-空单数)



    29. }



    30. //自定义函数:无返回型-开仓操作



    31. void CheckForOpen()



    32. {



    33. int res; //设局部变量-整数型



    34. if( TimeHour(TimeCurrent()) == 小时 && TimeMinute(TimeCurrent()) == 分钟)



    35. //如果 取当前小时数=小时 且 取当前分钟数=分钟



    36. {



    37. res=OrderSend(Symbol(),OP_BUY,手数,Ask,3,0,0,"",MAGICMA,0,Red);



    38. //发送订单(当前货币对,买入,手数,买价,滑点3,无止损,无止赢,编号,挂单,标示红色箭头)



    39. return;



    40. }



    41. }



    42. //自定义函数:无返回型-平仓操作



    43. void CheckForClose()



    44. {



    45. for(int i=0;i<OrdersTotal();i++)



    46. //循环检查



    47. {



    48. OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point*止损,



    49. OrderOpenPrice()+Point*止盈,0,Red);



    50. //修改挂单(仓单号,开仓价,止损价=开仓价-止损*点,止赢价=开仓价+止盈*点,挂单,标示红色箭头)



    51. }



    52. }



    53. //主运行程序



    54. void start()



    55. {



    56. if(Bars<100 || IsTradeAllowed()==false) return;



    57. //如果 K线数<100 或者 允许自动交易=假 返回



    58. if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();



    59. //如果 持仓=0 则 进行开仓操作



    60. else CheckForClose();



    61. //否则 进行平仓操作



    62. }
    复制代码


    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 4 个

    alang LV5

    发表于 2019-3-12 14:02:59 | 显示全部楼层

    好东西,学习了

    华仔0ne LV3

    发表于 2019-3-17 14:23:27 | 显示全部楼层

    好啦,谢谢学习一下啦,8888

    150194012 LV4

    发表于 2023-12-30 14:28:00 | 显示全部楼层

    只有BUY,没有SELL?请问SELL怎么改?
    您需要登录后才可以回帖 登录 | 注册

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

    微信二维码

    有问题联系客服