找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 30|回复: 0

【平设定时间持仓单】开仓后超出设定时间平仓

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-27 21:18:00 | 显示全部楼层 |阅读模式
//------------------------------------------------------
void             平N时间前单(long magic,long 时间)
  {
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionGetTicket(i)>0)
        {
         magic=魔术幻数(magic);
         if(PositionGetInteger(POSITION_MAGIC)==magic)
           {
            if(PositionGetInteger(POSITION_TIME)<TimeCurrent()-时间)
              {
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
                 {
                  MqlTradeRequest request= {};
                  MqlTradeResult  result= {};
                  request.action=TRADE_ACTION_DEAL;
                  request.magic=PositionGetInteger(POSITION_MAGIC);
                  request.position=PositionGetInteger(POSITION_TICKET);
                  request.volume=PositionGetDouble(POSITION_VOLUME);
                  request.symbol=PositionGetString(POSITION_SYMBOL);
                  request.type_filling=返回交易量指令(request.symbol);
                  request.price=SymbolInfoDouble(request.symbol,SYMBOL_BID);
                  request.deviation=deviation(slippage,request.symbol);;
                  request.type=ORDER_TYPE_SELL;
                  request.comment=PositionGetString(POSITION_COMMENT);
                  bool X=OrderSendAsync(request,result);
                  if(X==false)
                    {
                     Print("订单发送失败代码:"+IntegerToString(GetLastError()));
                     Print("交易返回代码:"+IntegerToString(result.retcode));
                    }
                 }
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                 {
                  MqlTradeRequest request= {};
                  MqlTradeResult  result= {};
                  request.action=TRADE_ACTION_DEAL;
                  request.magic=PositionGetInteger(POSITION_MAGIC);
                  request.position=PositionGetInteger(POSITION_TICKET);
                  request.volume=PositionGetDouble(POSITION_VOLUME);
                  request.symbol=PositionGetString(POSITION_SYMBOL);
                  request.type_filling=返回交易量指令(request.symbol);
                  request.price=SymbolInfoDouble(request.symbol,SYMBOL_ASK);
                  request.deviation=deviation(slippage,request.symbol);;
                  request.type=ORDER_TYPE_BUY;
                  request.comment=PositionGetString(POSITION_COMMENT);
                  bool X=OrderSendAsync(request,result);
                  if(X==false)
                    {
                     Print("订单发送失败代码:"+IntegerToString(GetLastError()));
                     Print("交易返回代码:"+IntegerToString(result.retcode));
                    }
                 }
              }
           }
        }
     }
  };
//+------------------------------------------------------------------+


ENUM_ORDER_TYPE_FILLING 返回交易量指令(string symbol)
  {
// 获取现价单开仓的交易命令类型 ( 如果一个交易币种同时允许SYMBOL_FILLING_FOK和SYMBOL_FILLING_IOC成交指令,则交易命令类型为ORDER_FILLING_FOK )

   ENUM_ORDER_TYPE_FILLING 指令类型=ORDER_FILLING_FOK;
   if(SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)==SYMBOL_FILLING_IOC)
      指令类型=ORDER_FILLING_IOC;
   if(SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)==SYMBOL_FILLING_FOK)
      指令类型=ORDER_FILLING_FOK;
   return(指令类型);
  }
//+------------------------------------------------------------------+复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-9 20:20 , Processed in 0.103508 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表