OrderSend函数使用问题

 

部分程序源码如下,问题如图所示,请求指导这是怎么回事

价格是两位小数的double数字吗,可以直接进行运算吗 

 

//+------------------------------------------------------------------+
//| 获取获取近20根K线最高最低价                                      |
//+------------------------------------------------------------------+
  double getmin()
  {   
   double low;
   low=iLowest(NULL,0,MODE_LOW,20,0);//---20根K线最低价
   return(low);
  }
  double getmax()
  {
   double high;
   high=iHighest(NULL,0,MODE_LOW,20,0);//---20根K线最高价
   return(high);
  }
//----------------------------
//---多单止盈点位
//----------------------------
  double mybuytakeprofit()
  {
   double buytakeprofit=NormalizeDouble(getmax()+(getmax()-getmin())*1.618,2);
   return(buytakeprofit);
  }
//---空单止盈点位
  double myselltakeprofit()
  {
   double selltakeprofit=NormalizeDouble(getmin()-(getmax()-getmin())*1.618,2);
   return(selltakeprofit);
  }
//+------------------------
//计算最大开仓量
//+------------------------
double myLots(double lot)
 {
  lot=NormalizeDouble(AccountBalance()/1000.0*(getmax()-getmin()),2);
  return(lot);
  }
附加的文件:
1.png  94 kb
 
那个提示可能是你设置的手数不对。。。我以前也碰到过这个问题。。。。比如我的MT4外汇货币对最低的仓位0.1手,我如果算得出myLots=0.01手程序就执行不了。。。
 
当然有问题 iLowest(NULL,0,MODE_LOW,20,0);返回的是最低点的K线位置,而不是最低点的具体价格,你可以看下iLowest的返回类型是int 不是 double
原因: