初学者的问题 MQL5 MT5 MetaTrader 5 - 页 88

 
WindSW:
请告诉我,如何查看Expert Advisor占用多少内存以及如何重新分配?

Windows任务管理器对你来说应该是足够了。

请看 篇文章。

一般来说,把你的专家顾问拆成脚本,使所有的功能都能工作,然后把它们组装成一堆。

 
WindSW:

而我却搞不清楚为什么不使用ObjectCreate来创建关卡。所有函数都工作,但没有创建OBJ_TREND对象

有一些变量是在全局层面定义的。

字符串oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3。

应该创建水平的代码。

朋友们,请帮助解决这个问题。请

层次已经创建,只是不可见)

设定坐标--时间/价格。你的地方到处都是零。

 
Dima_S:

关卡已被创建,只是你看不到它们)

设定坐标--时间/价格。你在那里设置了坚实的零。

它制作一个没有绑定的对象,然后修改它。在这里

由于名称不正确(未分配),该对象没有被创建。(以上已经回答)。因此,它不能被修改,无法看到它。

 
fyords:

好吧,假设你已经在全局层面上声明了变量,你有没有给这些变量赋值?

如果没有,那么你就对程序说 "创建一个具有这样那样特征的对象,名称为......",这就有问题了--名称没有给出。所以它没有创造它。

直接在ObjectCreate代码中指定它不是更容易吗?

谢谢你!由于某些原因,我没有马上想到这样做,因为在第4版中,对象的名称 也被定义了。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

我无法修复数组溢出的错误。我在第88页写到了这一点。专家顾问工作了一段时间就崩溃了。更确切地说,它从Expert Advisor的开始到结束工作了一次,在下面的循环中的第二次工作时,数组溢出显示了一个字符串。

H=高[j]。

void CreateLevels()
   {
      double High[];
      ArrayResize(High,0);
      ArraySetAsSeries(High,true);
      CopyHigh(_Symbol,_Period,0,Candle,High);
      ArrayResize(HBar,0);
      ArrayResize(HBar,1000);
      int countH=0;
      int f1;
      double H;
      for(int j=Nachalo;j<=Candle;j++)
         {
          //--- поиск макс -----------------------------------
          if(iHighest(Symbol(),0,10,MN*2,j-MN)==j)
            {
             f1=0;
             H=High[j];                                 // отметка текущего хая
             ...                                        // здесь обработка флага f1
             if(f1==0)                                  // если занесение хая в массив разрешено
               {
                HBar[countH][0]=High[j];
                countH++;
               }
            }
         }
   }

最重要的是,我不明白High[]数组是如何溢出的,因为指定了一个特定的拥有数量?还有,为什么终端在字符串H=High[j]中显示溢出;?

请你告诉我如何正确地实现它?是否可以将High[]数组设为空,或以其他方式将某支蜡烛的高点写入变量H中?

 
WindSW:

这样试试吧。

for(int j=Nachalo;j< Candle;j++)

基础:数组的索引从零开始,所以当Candle==100时,数组的 最后一个元素 的索引是数字99,而不是数字100。

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Yedelkin:

这样试试吧。

基础:数组的索引从零开始,所以当Candle==100时,数组的 最后一个元素 的索引是数字99,而不是数字100。

谢谢你!这很有帮助!
 

下午好!我遇到了以下问题...生成了一个专家顾问...在RTS指数期货上运行它。而在那里,手数不是小数=资金管理不起作用,报价是10的倍数=追踪止损不起作用。请告知,是否有可能解决这个问题?

我知道如何将iMa值四舍五入到10或5,作为最后的手段,我认为要单独运行追踪止损。

 
oldiol: 如果我的EA没有小数手=没有资金管理,报价是10的倍数=没有跟踪止损。请告知,是否有可能解决这个问题?

该工具有一个Volume_Step属性。看看你是否可以把它用于非分量级。

对于被10整除的报价,你只需要使尾随止损的步骤相同。

 
Yedelkin:

该工具有一个Volume_Step属性。看看你是否可以把它用于非分量级。

而对于被10整除的报价,你只需要使尾随止损的步骤相同。

非常感谢您)我会试一试的。