指标: BB Stops - MACD

 

BB Stops - MACD:

MACD 指标使用众所周知的 BB Stops,而非使用信号线作为信号。

作者: Mladen Rakic

 

我认为 MetaTrader 5 有一个很大的错误。当我把这个指标添加到我的 EA 中时,它会自我克隆数百次。

*****************************************************************************************************************************

//+------------------------------------------------------------------+

//||

//+------------------------------------------------------------------+

void tickProcess(int index)

{


orderClose(index);

int bbMACDDefinition = iCustom(sympol,0, "BB stops - MACD"); //Doesnt work !我猜是 MT 的错误。

double macd[];

double bmax[];

double bmin[];

double bblu[];

double bbld[];

double bba[];

double bbc[];

ArraySetAsSeries(macd,true);

ArraySetAsSeries(bmax,true);

ArraySetAsSeries(bmin,true);

ArraySetAsSeries(bblu,true);

ArraySetAsSeries(bbld,true);

ArraySetAsSeries(bba,true);

ArraySetAsSeries(bbc,true);

CopyBuffer(bbMACDDefinition,0,0,6,macd);

CopyBuffer(bbMACDDefinition,1,0,6,bmax);

CopyBuffer(bbMACDDefinition,2,0,6,bmin);

CopyBuffer(bbMACDDefinition,3,0,6,bblu);

CopyBuffer(bbMACDDefinition,4,0,6,bbld);

CopyBuffer(bbMACDDefinition,5,0,6,bba);

CopyBuffer(bbMACDDefinition,6,0,6,bbc);

int adxDefinition=iADXWilder(sympol,0,14); // Works well !

double adxArray[];

double dipArray[];

double dinArray[];

ArraySetAsSeries(adxArray,true);

ArraySetAsSeries(dipArray,true);

ArraySetAsSeries(dinArray,true);

CopyBuffer(adxDefinition,0,0,11,adxArray);

复制缓冲区(adxDefinition,1,0,11,dipArray);

CopyBuffer(adxDefinition,2,0,11,dinArray);




循环

 
cuneytates:

我认为 MetaTrader 5 有一个很大的错误。当我把这个指标添加到我的 EA 中时,它会自我克隆数百次。

*****************************************************************************************************************************

//+------------------------------------------------------------------+

//||

//+------------------------------------------------------------------+

void tickProcess(int index)

{


orderClose(index);

int bbMACDDefinition = iCustom(sympol,0, "BB stops - MACD"); //Doesnt work !我猜是 MT 的错误。

...





MT5 在这方面没有任何问题

您强制(不检查自定义指标 是否已加载)进行了多次加载。更正代码

 
Mladen Rakic:

MT5 在这方面没有任何问题

您强制(不检查自定义指标 是否已加载)进行了多次加载。更正代码

亲爱的拉基奇

我是编码新手。

请告诉我哪里出错了?

多重加载 "是什么意思?

谢谢

 
cuneytates:

亲爱的拉基奇

我是编码新手。

请告诉我哪里出错了?

多重加载 "是什么意思?

谢谢

那就请在论坛主题中发帖,而不是在代码库中发帖

您的错误可能有多种解决方案:

void tickProcess(int index)
{

   //...

   static int bbMACDDefinition=INVALID_HANDLE;
          if (bbMACDDefinition==INVALID_HANDLE) bbMACDDefinition = iCustom(_Symbol,_Period,"BB stops - MACD");    //不起作用!我猜是 MT 的 bug。
          if (bbMACDDefinition==INVALID_HANDLE) return;

   //
   // 按照代码中的方法进行其余处理
   //
}
至于其他:我认为 "多重加载 "表达式中没有需要进一步解释的内容
 
Mladen Rakic:

请在论坛主题发帖,而不是在代码库发帖

可能的(多种)解决方案之一:

至于其他解决方案:我认为在 "多重加载 "表达式中没有什么需要进一步解释的。
谢谢。我将在论坛发帖。