基于利润的封闭订单

问题描述

我正在尝试编写代码以在新开盘价低于/高于 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...