微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于利润的封闭订单

如何解决基于利润的封闭订单

我正在尝试编写代码以在新开盘价低于/高于 300 点时打开新订单。然后在盈利时比较两个订单的利润,我同时关闭两个订单。如果没有,第二个订单损失超过 300 点,我将再次打开新订单。我将继续打开订单10次。 我想平仓的方式是:当开单总数超过3个时,我想比较第一个和最后一个开单的利润,如果低于利润,我先平仓。然后我将比较第二和第三个订单,如果它们低于利润,我将关闭它们,否则当它超过 300 点时我将创建新订单。请帮助我理解或编写此方法。提前致谢

void CloseallOrders()
{
   if(AccountEquity()>AccountBalance())
   {
   for (int i=OrdersTotal()-1;i>=0; i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TradES);
      OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);

   }
   }
 }

void drawdown()
{
      if (OrdersTotal()>=0)
      {
      for (int i=OrdersTotal()-1; i>=0; i--)
      {
        OrderSelect(i,MODE_TradES);
        if(OrderProfit())
        {
        if(OrderType==OP_BUY)
        {
        double ddBuy=0;
        ddBuy= OrderOpenPrice()- (300*pips)
            if(!ddBuy)continue;
                {
                    if(Ask<=ddBuy)
                    {
                    int buyticketDD= OrderSend(Symbol(),(LotSize*1.5),Ask,NULL,MagicNumber,Green);
                    }
                 }
         }

        if(OrderType==OP_SELL)
        {
        double ddSell=0;
        ddSell= OrderOpenPrice()+ (300*pips)
            if(!ddSell)continue;
                {
                    if(Bid>=ddSell)
                     {
                        int sellticketDD= OrderSend(Symbol(),1,Red);
                     }
                }
        }
        }
      }

    CloseallOrders();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。