我认为 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);
我认为 MetaTrader 5 有一个很大的错误。当我把这个指标添加到我的 EA 中时,它会自我克隆数百次。
*****************************************************************************************************************************
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void tickProcess(int index)
{
orderClose(index);
int bbMACDDefinition = iCustom(sympol,0, "BB stops - MACD"); //Doesnt work !我猜是 MT 的错误。
...
MT5 在这方面没有任何问题
您强制(不检查自定义指标 是否已加载)进行了多次加载。更正代码
亲爱的拉基奇
我是编码新手。
请告诉我哪里出错了?
多重加载 "是什么意思?
谢谢
那就请在论坛主题中发帖,而不是在代码库中发帖
您的错误可能有多种解决方案:
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; // // 按照代码中的方法进行其余处理 // }至于其他:我认为 "多重加载 "表达式中没有需要进一步解释的内容
请在论坛主题发帖,而不是在代码库发帖
可能的(多种)解决方案之一:
至于其他解决方案:我认为在 "多重加载 "表达式中没有什么需要进一步解释的。
BB Stops - MACD:
MACD 指标使用众所周知的 BB Stops,而非使用信号线作为信号。
作者: Mladen Rakic