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

 
Silent:

它甚至可能会更快...虽然我不知道在内存重新分配后会是什么样子。

请你告诉我,如何查看专家顾问占用多少内存,以及如何重新分配?
 

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

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

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

应该创建水平的代码。

void OnInit()
  {
   TimeOpenBar();
   ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oRes,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oRes,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oRes,OBJPROP_RAY,false);
   ObjectCreate(0,oSup,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup,OBJPROP_COLOR,clrNavy);
   ObjectSetInteger(0,oSup,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oSup,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oSup,OBJPROP_RAY,false);
   CreateLevels();

   ObjectCreate(0,oPP,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oPP,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oPP,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,oPP,OBJPROP_WIDTH,2);
   ObjectSetInteger(0,oPP,OBJPROP_RAY,false);
   ObjectCreate(0,oRes1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oRes1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oRes1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oRes1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oRes1,OBJPROP_RAY,false);
   ObjectCreate(0,oSup1,OBJ_TREND,0,0,0,0,0);
   ObjectSetInteger(0,oSup1,OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,oSup1,OBJPROP_STYLE,STYLE_DASH);
   ObjectSetInteger(0,oSup1,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,oSup1,OBJPROP_RAY,false);
   PPlevel();
  }
朋友们,请帮助解决这个问题。请
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
fyords:
打印ObjectCreate的结果,也许有一个错误。
那么,它是怎么说的呢?你打印了结果吗?
 
请告诉我如何找到一份易于理解(尽可能简单)的技术分析文献。开始时似乎可以理解,但当我开始阅读时,我的大脑却拒绝理解它 :(
 
fyords:
那么它是怎么说的呢?你做了一个结果的输出吗?
它对我不起作用,我是做错了什么。打印 没有输出任何东西。
 
NeSezon:
请告诉我如何找到一份清晰的(尽可能简单的)技术分析文献。当我开始读它时,我理解它,但当我开始读它的细节时,我的大脑拒绝理解它 :(
试试奈曼的 "交易员小百科全书"。
 
WindSW:
它对我不起作用,我是做错了什么。印刷品没有给我任何东西。
ResetLastError();
bool result=ObjectCreate(0,oRes,OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
一定是做错了。
 
fyords:
这一定是做错了的事情。
是的,我真的不是这样做的。它产生了错误 "5040 -污染的字符串类型的参数"。我在全局层面设置了对象的参数(编译器没有警告),其形式如下:字符串oRes, oSup, oPP, oRes1;等等。如何解决这个问题,如何正确地指定正确的参数字符串,以便一切都能正常工作,编译器也不会发誓?
 
WindSW:
是的,我真的不是这样做的。它产生了错误 "5040 -污染的字符串类型的参数"。我有在全局层面定义的对象的参数(编译器没有警告),比如:字符串oRes, oSup, oPP, oRes1; 等等。如何解决这个问题,如何正确地指定正确的参数字符串,以便一切都能正常工作,编译器也不会发誓?

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

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

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

ResetLastError();
bool result=ObjectCreate(0,"Name1",OBJ_TREND,0,0,0,0,0);
Print("result=",result," GetLastError()=",GetLastError());
 
WindSW:
试试尼曼的《小商人百科全书》吧
谢谢你!找到了。很想在这些天里读到它。