0

我正在开发一个 EA,它要求我比较前 2 个柱的高点,无论哪个更高,将其用作止损值。

对于反向交易也是如此,我需要比较前 2 个低点并将较低的一个用作止损值。

我正在做的是:-

void onTick()
{
  static int ticket=0;

  double ab=(//calculation for ab);
  double de=(//calculation for de); 
   if(Low[1]<Low[2])
      double sll=Low[1];
   if(Low[1]>Low[2])
      double sll=Low[2];
  if(buy logic comes here) 
  {
   double entryPrice=////////;
   double stoploss=sll-xyz;
   double takeprofit=entryPrice+((entryPrice-stoploss)*3);
   ticket = OrderSend(Symbol(),...entryPrice,stoploss,takeprofit,.....);
  }
    if(ticket == false)
         {
           Alert("Order Sending Failed");
         }
}

问题是我无法引用 sll 的值并收到一条错误消息,说“sll 未声明的标识符”

我对编程相当陌生,如果有人能帮助我解决这个问题,我将不胜感激。我已经添加了大部分代码让你理解逻辑。

4

1 回答 1

0

如果您想在其他任何地方使用变量,则必须在 if 语句的范围之外声明它们,所以不要这样做,看看这个

double sll; // declare sll outside the if statements
if(Low[1]<Low[2])
   sll=Low[1];
if(Low[1]>Low[2])
   sll=Low[2];
if(buy logic comes here) 
{
 bool res = OrderSend(..........);
} 

从您写的内容来看,您可能res也在其他地方使用它,然后您需要在 if 语句之外定义,因为范围。

于 2015-04-05T07:55:03.843 回答