新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1139

 
ascerdfg:
我在哪里要右击?

按Ctrl T键,调出下面的菜单,交易,资产,.....,最后是日志。单击日志,右键单击其中一个条目以查看

 
Alexey Viktorov:

有可能对象坐标的价格和时间都等于零。这样检查:按Ctrl+B,在出现的对话框中按 "全部 "按钮,看到现有对象的列表。如果有,打开属性,看看坐标。

经过调试,在创建所有对象时,一切正常。

 
ascerdfg:
你应该在哪里点击右键?

特别是,Rzewski:在正确的地方捅了一只老鼠

 
Maxim Kuznetsov:

特别是对Rzewski来说:在正确的地方点击的鼠标

说实话,摸索着找到了日志的调用方法,喜欢上了查看这个词,按下了。还有就是日志)))))顺便问一下,是否没有办法通过反语调用日志或什么?

 

下午好。

是否可以将一个物体设置为总是在其他物体之上,包括新放置的物体。这样,当物体重叠时,所需的物体永远不会与顶部重叠?

我最初认为OBJPROP_ZORDER属性可以提供帮助,如果所需的对象总是被设置为最高值。但在实践中发现,这只是抓取点击率的优先事项。从视觉上看,该物体不会比所有的人都高。

另外在实践中,我发现如果一个物体是最后画的,那么它在视觉上肯定会比其他物体高。因此,我必须要么创建一些我不知道的属性,要么重新绘制对象,每次图表上的对象数量发生变化时,都不应该重叠在上面。但在重绘时,我遇到了一个问题--被删除的物体在重绘时出现闪烁。有什么办法可以很好地重绘对象,不闪烁,或者从上面使其不重叠?


 
Oleg Remizov:

下午好。

是否可以将一个物体设置为总是在其他物体之上,包括新放置的物体。这样,当物体重叠时,所需的物体永远不会与顶部重叠?

我最初认为OBJPROP_ZORDER属性可以提供帮助,如果所需的对象总是被设置为最高值。 但在实践中发现,这只是抓取点击率的优先事项。从视觉上看,该物体不会比所有的人都高。

另外在实践中,我发现如果一个物体是最后画的,那么它在视觉上肯定会比其他物体高。因此,我必须要么创建一些我不知道的属性,要么重新绘制对象,每次图表上的对象数量发生变化时,都不应该重叠在上面。但在重绘时,我遇到了一个问题--被删除的物体在重绘时出现闪烁。有没有一种方法可以很好地重绘对象,不闪烁,或者从上面使其不重叠?


objprop_timeframes。

OBJ_NO_PERIODS - 在所有时期都看不见。

OBJ_ALL_PERIODS - 在所有时期都可见

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Oleg Remizov:

下午好。

是否可以将一个物体设置为总是在其他物体之上,包括新放置的物体。这样,当物体重叠时,所需的物体永远不会与顶部重叠?

我最初认为OBJPROP_ZORDER属性可以提供帮助,如果所需的对象总是被设置为最高值。 但在实践中发现,这只是抓取点击率的优先事项。从视觉上看,该物体不会比所有的人都高。

另外在实践中,我发现如果一个物体是最后画的,那么它在视觉上肯定会比其他物体高。因此,我必须要么创建一些我不知道的属性,要么重新绘制对象,每次图表上的对象数量发生变化时,都不应该重叠在上面。但在重绘时,我遇到了一个问题--被删除的物体在重绘时出现闪烁。有没有一种方法可以很好地重绘对象,不闪烁,或者从上面使其不重叠?


对象是根据索引显示的。

string  ObjectName( 
   int    object_index   // номер в списке объектов
   );

由此可见,在视觉上,指数最高的物体将处于前景。

我通过以下方式摆脱了这种情况。

string pref="own"; //префикс в именах своих объектов
bool CheckOtherObj(string &arrObjOther[]){
   CheckOtherObjDelete(&arrObjOther);
   for(int i=ObjectsTotal(0,-1,-1)-1; i>=0; i--){
      string name=ObjectName(0,i,-1,-1);
      if(StringFind(name,pref)>=0)continue;
      bool add=true;
      for(int k=ArraySize(arrObjOther)-1; k>=0; k--){
         if(arrObjOther[k]==name){
            add=false;
            break;
         }
      }
      if(add){
         AddToArr(name,arrObjOther);
         return(true);
      }
   }
   return(false);
}
void CheckOtherObjDelete(string &arrObjOther[]){
   string arrdel[];
   ArrayFree(arrdel);
   for(int k=0; k<ArraySize(arrObjOther); k++){
      bool add=true;
      for(int i=0; i<ObjectsTotal(0,-1,-1); i++){
         string n=ObjectName(0,i,-1,-1);
         if(StringFind(n,pref)>=0)continue;
         if(n==arrObjOther[k]){
            add=false;
            break;  
         }
      }
      if(add) AddToArr(arrObjOther[k],arrdel);
   }
   if(ArraySize(arrdel)>0){
      string temp[];
      ArrayCopy(temp,arrObjOther);
      ArrayFree(arrObjOther);
      for(int i=0; i<ArraySize(temp); i++){
         bool add=true;
         for(int k=0; k<ArraySize(arrdel); k++){
            if(arrdel[k]==temp[i]){
               add=false;
               break;
            }
         }
         if(add)AddToArr(temp[i],arrObjOther);
      }
   }
}
void AddToArr(string value, string &arr[]){
   int s=ArraySize(arr);
   ArrayResize(arr,s+1);
   arr[s]=value;
}


在这种情况下,我的代码中有一个数组的对象名称不是由程序创建的(其他)。一旦有新的其他对象出现,我就删除所有由程序创建的对象(我自己的),并重新创建它们。在这种情况下,自己的对象在对象列表中总是有最高的索引,因此在视觉上是在前台。但也有必要经常清除数组中的其他对象,以备它们从图表中被移除,这样数组就不会不受控制地增长。

如果你需要控制你的对象,那就更容易了。你只需要控制对象的索引。

 
Maksym Mudrakov:
对象是根据索引显示的。

由此可见,在视觉上,指数最高的物体将处于前景。

这就是我摆脱这种状况的方法。


在这种情况下,我的代码中有一个未在程序中创建的对象的名称数组(其他)。一旦有新的其他对象出现,我就删除所有由程序(我自己的)创建的对象,并重新创建它们。在这种情况下,自己的对象在对象列表中总是有最高的索引,因此在视觉上是在前台。但也有必要经常清除数组中的其他对象,以防它们从图表中被删除,这样数组就不会不受控制地增长。

如果你想控制你的对象,那就更容易了。你只需要控制对象的索引。

我在上面说明了该怎么做。既然有开发者推荐的方法,为什么还要如此大费周章?

 
你好。

我想把ATP指标转移到价格图上。但我不知道如何去做。我希望它能显示出从同一时期的中线开始的最大波动幅度。如果有人有代码,谢谢你的分享。
 
你好!我不知道从哪里开始,因为经过一个月的寻找无果后,我的脑子里一片混乱。我决定在这个主题中写一个信息。如果我在这里走错了地方,我很抱歉。也许有人会告诉你,这个话题在哪个部门提出比较好?我的问题的核心是:在MT4中从第三方网站获取数据,以便使用专家顾问、指标或脚本在符号图表上进一步显示这些信息,最好和最简单的方法是什么?目前,我正在使用我自己的脚本,它在 "MT4数据目录"/MQL4/Files的地址上打开Book1.csv文件。在运行脚本 之前,我必须启动Chrome浏览器,进入资源页面,在这个页面上选择一个符号,然后选择这个符号的显示数据类型(页面地址不会改变),在将这个符号的数据以表格的形式显示出来后,在有限的价格水平范围内的参数值,我使用Chrome浏览器的表格捕捉扩展,将资源页面上的表格数据复制到剪贴板,然后打开Excel,将剪贴板上的数据粘贴到Exel表中。然后我在Exel中转换数字数据(将数字中的逗号替换为点),并将csv格式的文件保存到终端数据目录。而在执行完这组动作后,我已经运行了脚本。显然,WebRequest函数不适合这项任务,因为一开始页面地址上没有数据(它在选择工具和数据类型后出现)。如果有人能告诉我正确的方向(显然,可能有几个方向),我将非常感激。
原因: