【发布时间】: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() 函数会产生什么样的结果,我也不知道它需要哪个附加参数。目前我不知道,上面的代码对于这些点是完整的。