[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 364

 
我现在在真实账户 上检查了这段代码,一切正常,我修改了所有市场订单,但唯一没有触及的是待定订单。有什么问题呢?你怎么看?
 
Noterday:
我在我的真实账户上检查了这段代码,一切正常,我修改了所有市场订单,但我没有触及挂单。有什么问题呢?你怎么看?


在这个条件下

         if(cmd==OP_BUY || cmd==OP_SELL)

并在条件

if(cmd==OP_BUY)
 
我不明白 :(
 
Noterday:
我不明白 :(

脚本的名称中还有一句话,说是只做市场订单...删除这些市场订单的条件,那么市场订单和挂单的条件将得到满足--仅此而已。不,这还不是全部 - 仔细阅读 - 要求和限制......并确保你将这些最低要求添加到你的待处理订单中,以便它们也能得到满足。
 
KONDOR:


所以我根本没有这样的字符串,我根本不选择类型,而是修改我拥有的所有类型,无论它是一个待定的还是一个市场的。
 
Noterday:
因此,我根本没有这样的线条,我根本不选择类型,我修改所有的线条,无论是待定还是市场。 。

我写信给你是为了仔细阅读:"FreezeLevel距离 限制。 如果StopLoss或TakeProfit值违反FreezeLevel参数要求,市场订单不会被关闭。


如果StopLoss或TakeProfit值违反StopLevel参数要求,则不能修改StopLoss或TakeProfit市场订单。如果订单的申报开盘价违反FreezeLevel参数要求,则不执行删除和修改挂单。
 

就是这样,错误就在那里。

if (OrdersTotal()!=0)
  {
   
   bool   modify;
   int    Done=0;
   for (i = 1; i <= OrdersTotal(); i++)
      {
       if (OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES) == true)
         {
          Stop = OrderStopLoss();
          Take = OrderTakeProfit();
          Print("Пробую модифицировать ",i," ордер (#",OrderTicket(),")");
          modify = OrderModify(OrderTicket(),0,SL,TP,0,0);                          <<<--------------------- во втором параметре OrderModify нужно ставить не ноль а Orderopenprice()
          if (modify==true) Done++;
          if (modify==false)
            {
             int error = GetLastError();
             Print("                 Неудача... Ошибка ",error);
             Sleep(5000);
            }
         }
       }
    Alert("Модифицировано  ",Done,"  из  ",OrdersTotal());
    Sleep(10000);
   }
 
Noterday:
所以我根本没有这样的线条,我根本不选择类型,我修改所有的类型,无论是待定还是市场。


也是在这个条件下

( cmd==OP_BUYLIMIT || cmd==OP_SELLSTOP)

在要选择的订单下做类似的改变(将订单类型定义条件改为其中之一。

恒定 价值 描述
OP_BUY 0 购买位置。
销量 1 出售的位置。
OP_BUYLIMIT 2 买入限额的待定头寸。
OP_SELLLIMIT 3 卖出限制性 的待定头寸。
OP_BUYSTOP 4 买入止损待定的位置。
OP_SELLSTOP 5 卖出止损待定头寸。
然后你检查这个或那个选定的订单是否符合 "交易要求和限制",每种选定的订单都有自己的要求和限制而这里的脚本只针对市场订单...通过类比编辑,就是这样--你有所有的信息。平静地、仔细地、有条不紊地。

 
是的,所有的东西原来都写得很正确,错误在上面的东西。谢谢大家!=)))
 
有可能加快测试过程吗?