错误、漏洞、问题 - 页 367

 
Yedelkin:
问题很可能出在其他方面。我在OnInit()中的数组声明 完全一样,工作正常,现在也是如此。你在ArrSybols数组的名称中省略了一个拉丁字母m。也许这是一个程序员的问题?

可能会被错过,但这有什么区别吗?

如果我用本地语言编写(据我所知,这并不被禁止),整个终端应该崩溃?

没有这样的数组声明,代码也能正常工作,即使你只指定维度,也能正常工作。

//Вот так работает
string ArrSybols[10];

原来的数组声明是这样的

//List of symbols for trade on the Championship 2010
string ArrSymbolsChampionship2010[10] = {"EURUSD","GBPUSD","USDJPY","USDCHF","USDCAD",
                                        "AUDUSD","EURJPY","EURCHF","GBPJPY","GBPCHF"};
 

这个问题 仍然有效。

我已经设法将指标附在OBJ_CHART的一个单独窗口中,但是当你改变指标窗口的大小时,就不太妙了,因为如果OBJ_CHART的高度是500,那么指标窗口的高度就被设置为最大493。结果是,它给你留下了一个丑陋的顶部。如何摆脱它?

代码。

   if(ObjectFind(0,"MW_chart")!=0)
     {
      ObjectCreate(0,"MW_chart",OBJ_CHART,0,time[0],close[0]);
      ObjectSetString(0,"MW_chart",OBJPROP_SYMBOL,_Symbol);
      ObjectSetInteger(0,"MW_chart",OBJPROP_PERIOD,_Period);
      ObjectSetInteger(0,"MW_chart",OBJPROP_CORNER,CORNER_LEFT_UPPER);
      ObjectSetInteger(0,"MW_chart",OBJPROP_XSIZE,1000);

      ObjectSetInteger(0,"MW_chart",OBJPROP_DATE_SCALE,false);
      ObjectSetInteger(0,"MW_chart",OBJPROP_PRICE_SCALE,false);
      ObjectSetInteger(0,"MW_chart",OBJPROP_SELECTABLE,1);
      ObjectSetInteger(0,"MW_chart",OBJPROP_CHART_SCALE,2);
      ObjectSetInteger(0,"MW_chart",OBJPROP_YSIZE,500);
     }
   int h=iCCI(Symbol(),Period(),14,PRICE_TYPICAL);
   long id=ObjectGetInteger(0,"MW_chart",OBJPROP_CHART_ID);
   ChartIndicatorAdd(id,1,h);
   ChartSetInteger(id,CHART_HEIGHT_IN_PIXELS,1,493);
 
Interesting:

可能已经错过了,但这有什么区别吗?

当然是这样。我没有必要向你解释 :)如果一个数组被定义为一个名字,但这个数组的元素被调用时却有一个不同的数组名称,那么... :)

如果在没有手动初始化数组的情况下一切正常,你应该看一下代码,因为你自己也明白。毕竟,没有明确的字符串数组初始化并不妨碍客户终端自己初始化这个数组。

我重复一遍:这样的绳子曾经并且仍然 "尽其所能 "地发挥作用。

 
Yedelkin:

当然是这样。我没有必要向你解释 :)如果一个数组用一个名字声明,但这个数组的元素却用不同的数组名字访问,那么... :)

如果在没有手动初始化数组的情况下一切正常,你应该看一下代码,因为你自己也明白。毕竟,没有明确的字符串数组初始化并不妨碍客户终端自己初始化这个数组。

我重复一遍:这样的绳子曾经而且仍然有效。

不,不,问题不在名字上,而是在声明时,数组被填上了一个枚举。

除了字符串之外,它对所有类型都能很好地工作。有了字符串,任何程序(专家或脚本并不重要)都会真正崩溃。

这是一个明显的错误,写给serviced

这就是它的工作方式。

// string a[2]={"a","b"};
long   b[2]={2,3};
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  Print("Работает");   
  }
//+------------------------------------------------------------------+

但如果你取消对字符串数组声明的注释,它就不起作用了。

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Renat:
在设置中检查窗口中的最大条数
从100000改为1000000。有帮助,但只是在重启终端之后(帮助中说到了按下确定后的修改效果)。
 

雷纳特,另一个野生太妃糖,你确定你找到了错误吗?


 
流量问题已经解决了,但问题是我们还没有在liveupdate中发布服务器组件。到目前为止,客户终端的更新 已经发布,服务器将在下一次更新中。它们还没有经过测试。
 
Renat:
流量问题已经解决了,但问题是我们还没有在liveupdate中发布服务器组件。到目前为止,客户终端的更新 已经发布,服务器将在下一次更新中。它们还没有经过测试。
我明白了。谢谢你的答复。就我而言,我也会向你们通报情况。
 

最后一次构建(430),当用正向周期和自定义最大值测试时--挂起(似乎是在切换到正向测试的时刻)。起初我把它归咎于我的专家顾问,但后来我检查了以下代码。

input int a1;
input int a2;
input int a3;
int OnInit(){return(0);}
void OnDeinit(const int reason){}
void OnTick(){}
double OnTester() {
   return(rand());
}

我已经设置了参数,从1到1000,所有的ticks,USDCAD,M4从01.01.2011到今天(与Forward - 任何时期)进行优化。冻结。禁用了远程代理 - 我重新启动了终端 - 它也挂了。去掉了向前的句号--它起作用了。Custom Max是否有责任--没有检查。在这次构建之前--一切都在工作。

 

它是什么意思?

2011.04.17 15:21:22 测试仪 测试仪代理失败