错误、漏洞、问题 - 页 2136

 
Igor Golieniev:
   PrintFormat("%.3f %.3f", 123.2, 0.1);
 
Vitaly Muzichenko:

为什么?

因为SILVER,H1:OrderModify函数 的止损无效

OrderStopLoss() = 15,15 应该是 = 15,155
 
Комбинатор:
我想让它用于订单修改,而不是打印
 
Igor Golieniev:

因为SILVER,H1:OrderModify函数 的止损无效

第三位数字中会有一个 "0",这也解决不了问题。

你必须在其他地方寻找

 
Igor Golieniev:
NormalizeDouble(value,3);
 
Pavel Kolchin:

这很疯狂:我开始修改我刚打开的订单...以及如何!!!?1912619.624!!!

白银,M15: 修改 #1 在16.965卖出0.01白银 sl: 1912619.624 tp: 0.000 ok

 
Igor Golieniev:

这很疯狂:我开始修改我刚打开的订单...以及如何!!!?1912619.624!!!

白银,M15: 修改 #1 在16.965卖出0.01白银 sl: 1912619.624 tp: 0.000 ok

NormalizeDouble()是一个函数,它将使小数点后 的数字达到一定数量,它不会纠正代码中的错误,看看你传递的参数和它们来自哪里?

 
Pavel Kolchin:

NormalizeDouble()是一个函数,它将使小数点后 的数字达到一定数量,它不会纠正代码中的错误,看看你传递的参数和它们来自哪里?

简单的拖网。但是:SILVER,H1:OrderModify函数 的无效止损。为什么?如何解决这个问题?在所有其他市场上,它是有效的。
void Trailing()
  {
   if(Digits==3 || Digits==5)
     {
      TrailingStep *= 10;
      TrailingOpen *= 10;
      TrailingStop *= 10;
     }
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid>OrderOpenPrice()+TrailingOpen*Point)
                 {
                  if(OrderStopLoss()<Bid-(TrailingStop+TrailingStep)*Point)
                    {
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),0,0))
                        Print("Oshibka =", DoubleToString(OrderStopLoss(), Digits()));
                    }
                 }
              }
            if(OrderType()==OP_SELL)
              {
               if(Ask<OrderOpenPrice()-TrailingOpen*Point)
                 {
                  if(OrderStopLoss()>Ask+(TrailingStop+TrailingStep)*Point)
                    {
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*Point,Digits),0,0))
                        Print("Oshibka", DoubleToString(OrderStopLoss(), Digits()));
                    }
                 }
              }
           }
        }
     }
  }
 
Igor Golieniev:
简单的拖网。但是:SILVER,H1:OrderModify函数 的无效止损。为什么?如何解决这个问题?在所有其他市场上,它是有效的。

符号_交易_停止_级别

 

编译时出错

#define  MACRO1( x, y )  x
#define  MACRO2                  MACRO1( , unsigned )
void OnStart()
{
         MACRO2 int i; //Error: 'MACRO1' - undeclared identifier
}

预计将被替换为。

void OnStart()
{
                int i;
}