[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 230

 
doon:

什么原因可能导致错误(错误的价格)?


在代码的某个地方,变量没有被正确初始化。或者选项2--你忘了将价格归一化(NormalizeDouble())。
 
drknn:

在代码的某个地方,变量被错误地初始化了。或者选项2--你忘了将价格归一化(NormalizeDouble())。

我怀疑这种情况,因为它并不总是发生,很少发生,也没有系统地发生。这是由于一些价格因素,但哪一个呢?

 
doon:

我怀疑这种情况,因为它并不总是发生,很少发生,也没有系统地发生。它的发生是因为一些价格因素,但哪一个呢?


那么问题出在哪里?一旦出现这样那样的错误,print(" MyValue = ",MyValue);)就会立即清楚它等于什么。
 

MyValue的价值是什么?

 
doon:

MyValue的价值是什么?


我怎么知道你的变量等于什么?:)让打印机告诉你它相当于什么。
 
doon:

MyValue的价值是什么?


谁能帮帮我。零滞后MACD指标。我需要使0.00线以上的背景是一种颜色,下面是另一种颜色。以下是代码

//+------------------------------------------------------------------+
//| ZeroLag MACD.mq4|
//| RD |
//| marynarz15@wp.pl |
//+------------------------------------------------------------------+
#财产版权 "RD"
#属性链接 "marynarz15@wp.pl"
//----

#属性 indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 blue
#property indicator_color2 Red
//---- 输入参数
外部int FastEMA = 12;
外部int SlowEMA = 24;
外置 int SignalEMA = 9;
//---- 缓冲区
双MACDBuffer[]。
双倍的SignalBuffer[]。
双重FastEMABuffer[]。
双重SlowEMABuffer[]。
双倍的SignalEMABuffer[]。
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{

//---- 指标
IndicatorBuffers(5)。
SetIndexBuffer(0, MACDBuffer)。
SetIndexBuffer(1, SignalBuffer)。
SetIndexBuffer(2, FastEMABuffer)。
SetIndexBuffer(3, SlowEMABuffer)。
SetIndexBuffer(4, SignalEMABuffer)。
SetIndexStyle(0, DRAW_HISTOGRAM)。
SetIndexStyle(1, DRAW_LINE,EMPTY)。
SetIndexDrawBegin(0, SlowEMA)。
SetIndexDrawBegin(1, SlowEMA)。
IndicatorShortName("ZeroLag MACD(" + FastEMA + ", " + SlowEMA + ", " + SignalEMA + ")")。
SetIndexLabel(0, "MACD")。
SetIndexLabel(1,"信号")。
//----
return(0);
}
//+------------------------------------------------------------------+
//|Custor指示器去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int限制。
int counted_bars = IndicatorCounted()。
如果(counted_bars < 0)
返回(-1)。
如果(counted_bars > 0)
counted_bars--。
极限=Bars - counted_bars。
双重EMA, ZeroLagEMAp, ZeroLagEMAq;
for(int i = 0; i < limit; i++)
{
FastEMABuffer[i] = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i)。
SlowEMABuffer[i] = iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i) 。
}
for(i = 0; i < limit; i++)
{
EMA = iMAOnArray(FastEMABuffer, Bars, FastEMA, 0, MODE_EMA, i);
ZeroLagEMAp = FastEMABuffer[i] + FastEMABuffer[i] - EMA。
EMA = iMAOnArray(SlowEMABuffer, Bars, SlowEMA, 0, MODE_EMA, i)。
ZeroLagEMAq = SlowEMABuffer[i] + SlowEMABuffer[i] - EMA。
MACDBuffer[i] = ZeroLagEMAp - ZeroLagEMAq。
}
for(i = 0; i < limit; i++)
SignalEMABuffer[i] = iMAOnArray(MACDBuffer, Bars, SignalEMA, 0, MODE_EMA, i)。
for(i = 0; i < limit; i++)
{
EMA = iMAOnArray(SignalEMABuffer, Bars, SignalEMA, 0, MODE_EMA, i);
SignalBuffer[i] = SignalEMABuffer[i] + SignalEMABuffer[i] - EMA。
}
return(0);
}
//+------------------------------------------------------------------+

 

编译器输出:'MyValue' - 未定义的变量

 
doon:

编译器输出:'MyValue' - 未定义的变量

你一定是使用了终端的旧版本。

在388构建中,这个变量应该已经可以正常编译了。请更新你的终端版本。

 
sergeev:

你一定是在使用一个旧的终端版本。

在388构建中,这个变量应该已经可以正常编译了。更新你的终端版本。


如何才能做到这一点呢?

 
doon:

如何才能做到这一点呢?

你需要给你的经纪公司写一封公函,说明你的护照信息和你在这家经纪公司工作的账户号码

在三个工作日内,你应该通过挂号信收到一张带有更新安装文件和安装说明的磁盘。