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

    账号净值低于设定值关闭所有订单并退出EA

    老周 LV16
    2017-03-16 · 4053 阅读

    该函数模块能够有效的控制风险。在账号净值小于某个数值的时候平仓所有订单并停止EA交易。

    1. extern string 关闭EA并发邮件   = "账户低于净值,关闭所有订单并退出EA";
    2. extern double 低于净值停止     = 0.0;
    3. ////
    4. bool 开关返回值 = FALSE;
    5. ////
    6. int start()
    7. {
    8. A_Stop();////
    9. return(0);
    10. }

    11. //////
    12. void A_Stop() {
    13.    int res;
    14.    bool 判断开关;
    15.    double 账户净值;
    16.    if (低于净值停止 <= 0.0) return;
    17.    if (!开关返回值) {
    18.       if (AccountNumber() == 0 || AccountEquity() == 0.0 || AccountBalance() == 0.0) return;
    19.       判断开关 = FALSE;
    20.       账户净值 = AccountEquity();
    21.       if (账户净值 < 低于净值停止 && 低于净值停止 > 0.0) {
    22.          判断开关 = TRUE;
    23.       }
    24.       if (判断开关) 开关返回值 = TRUE;
    25.    }
    26.    if (开关返回值) {
    27.       for (int l = OrdersTotal() - 1; l >= 0; l--) {
    28.          if (OrderSelect(l, SELECT_BY_POS)) {
    29.              {
    30.                switch (OrderType()) {
    31.                case OP_BUY:
    32.                case OP_SELL:
    33.                   res=OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 9999);
    34.                   ExpertRemove();
    35.                   SendMail("帐户低于净值警告","目前净值低于设置最低净值警告,EA已自动关闭!");break;
    36.                default:
    37.                   res=OrderDelete(OrderTicket());
    38.                   ExpertRemove();
    39.                   SendMail("帐户低于净值警告","目前净值低于设置最低净值警告,EA已自动关闭!");break;                 
    40.                }
    41.             }
    42.          }
    43.       }
    44.    }
    45. }
    复制代码


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

    举报

     

    回答|共 2 个

    qq_Michael_FNk LV1

    发表于 2021-7-12 19:50:30 | 显示全部楼层

    感谢分享

    alltime168 LV6

    发表于 2022-5-12 21:22:24 | 显示全部楼层

    老师你好,我想问一下,账号净值低于设定值关闭所有订单并退出EA 这段代码如何加到其他人发的ea里面呢?谢谢
    您需要登录后才可以回帖 登录 | 注册

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

    微信二维码

    有问题联系客服