【问题标题】:Why returned value is always 1.797693134862316e+308为什么返回值总是1.797693134862316e+308
【发布时间】:2022-12-11 16:37:15
【问题描述】:

我尝试在我的 ea 中包含一个指标,但如果我从 icustom 函数打印出复制的数据,我仍然得到结果总是“1.797693134862316e+308”。

int iCustomHandle;
double trendline_buy_signal[];
double trendline_sell_signal[];
double trendline_sl_price[];
double trendline_tp1_price[];
double trendline_tp2_price[];
double trendline_tp3_price[];

int OnInit()
{    
   iCustomHandle = iCustom(symbol, time, "\\Indicators\\Market\\myindicator.ex5");      
   if(iCustomHandle == INVALID_HANDLE){ return(INIT_FAILED);   }    
   return (INIT_SUCCEEDED);
}

void OnTick()
{   
int valueDistance = 0; 

    int calculatedInd = BarsCalculated(iCustomHandle);
    
    ArraySetAsSeries(trendline_buy_signal, true);
    ArraySetAsSeries(trendline_sell_signal, true);
    ArraySetAsSeries(trendline_sl_price, true);     
    ArraySetAsSeries(trendline_tp1_price, true);   
    ArraySetAsSeries(trendline_tp2_price, true);   
    ArraySetAsSeries(trendline_tp3_price, true);   
    int copied;    
    
     copied = CopyBuffer(iCustomHandle, 2, 0, calculatedInd, trendline_buy_signal); 
     copied = CopyBuffer(iCustomHandle, 8, 0, calculatedInd, trendline_sell_signal);
     copied = CopyBuffer(iCustomHandle, 9, 0, calculatedInd, trendline_sl_price);
     copied = CopyBuffer(iCustomHandle, 10, 0, calculatedInd, trendline_tp1_price);
     copied = CopyBuffer(iCustomHandle, 11, 0, calculatedInd, trendline_tp2_price);
     copied = CopyBuffer(iCustomHandle, 12, 0, calculatedInd, trendline_tp3_price);    
    
    
    Print("calculatedInd:",calculatedInd," > iCustom bufferr: buy_signal:", trendline_buy_signal[valueDistance],
            " > sell_signal:",trendline_sell_signal[valueDistance],
            " > sl_price:",trendline_sl_price[valueDistance],
            " > tp1:",trendline_tp1_price[valueDistance],
            " > tp2:",trendline_tp2_price[valueDistance],
            " > tp3:",trendline_tp3_price[valueDistance]);
}

这是什么原因,我该如何解决?

非常感谢!

【问题讨论】:

  • 这看起来像是“双精度”浮点数据类型的最大值,可用于表示正无穷大,这可能是除以零而产生的。代码中是否有可能发生被零除的地方?
  • 我的问题是我不知道 icustoms() 函数会产生什么样的结果,我也不知道它需要哪个附加参数。目前我不知道,上面的代码对于这些点是完整的。

标签: mql4 mql5


【解决方案1】:

你得到 EMPTY_VALUE 所以你应该使用这样的东西: 如果(值!= EMPTY_VALUE) 打印(值);

【讨论】:

    猜你喜欢
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多