设为首页 收藏本站 切换语言

小修改同时平仓问题!小问题!

| 发表于 2024-11-23 19:59:09 | 显示全部楼层 |复制链接
任务编号:131642 悬赏任务2H币 悬赏任务 : 按雇主需求进行任务后提交稿件,被采纳后即获得佣金。

距截止: 任务已圆满完成 雇主已托管赏金:2 H币
雇主发布需求24.11.23 雇主托管佣金24.11.23 投稿者投稿 雇主开始选稿 任务完成24.12.07

任务大厅共需1个合格投稿 | 每稿将获得2 H币 | 每人交稿次数不限 可多次任务

投诉举报 联系Ta 我来承接 已有0 个投稿 | 已采纳0 稿 | 拒绝0 稿 | 还需要1 稿

任务需求:
EA开单是马丁 0.01 0.02 0.03 0.04 ...  0.1
1,在开多空单时,盈利平仓是从大手数0.1顺序到0.01平仓!
2,平仓代码我已经找出来,在下面!
3,修改代码,盈利平仓时,多单(空单)平仓时是同时平,不是顺序平!
4,是多单(空单)同时平,不是多空单一起同时平!
  1. int CloseOrders(string symbol,
  2.                 int mag,
  3.                 ENUM_ORDER_TYPES type,
  4.                 string com,
  5.                 int    slippage = 0,
  6.                 color  arrow_color = clrFireBrick,
  7.                 int cycles = 2)
  8.   {
  9.    ResetLastError();
  10.    int cnt = 0;
  11.    bool Res;
  12.    for(int j = 1; j <= cycles; j++)
  13.      {
  14.       ::RefreshRates();
  15.       bool res = true;
  16.       int total = ::OrdersTotal();
  17.       for(int i = total; i >= 0; i--)
  18.         {
  19.          if(::OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
  20.             if(symbol == NULL || ::OrderSymbol() == symbol)
  21.                if(mag == -1 || ::OrderMagicNumber() == mag)
  22.                   if(com == NULL || com == "" || ::StringFind(::OrderComment(), com) == 0 || ::OrderComment() == com)
  23.                      if(CheckType(OrderType(), type) == true)
  24.                        {
  25.                         if(OrderType() < 2)
  26.                           {
  27.                            Res = ::OrderClose(::OrderTicket(), ::OrderLots(), ::OrderClosePrice(), slippage, arrow_color);
  28.                            if(Res == false)
  29.                              {
  30.                               res = false;
  31.                               if(j == cycles)
  32.                                  ::PrintFormat("%d,Position Closed failed, code =%d", ::OrderTicket(),  ::GetLastError());
  33.                              }
  34.                            else
  35.                              {
  36.                               cnt++;
  37.                              }
  38.                           }
  39.                         else
  40.                           {
  41.                            Res =  ::OrderDelete(::OrderTicket(), arrow_color);
  42.                            if(Res == false)
  43.                              {
  44.                               res = false;
  45.                               if(j == cycles)
  46.                                  ::PrintFormat("%d,pending order delete failed, code =%d", ::OrderTicket(),  ::GetLastError());
  47.                              }
  48.                            else
  49.                              {
  50.                               cnt++;
  51.                              }
  52.                           }
  53.                        }
  54.         }
  55.       if(res == true)
  56.         {
  57.          break;
  58.         }
  59.       else
  60.         {
  61.          ::Sleep(200);
  62.         }
  63.      }
  64.    return(cnt);
  65.   }
复制代码
举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

天眼云VPS
简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)