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

 
Roman Sharanov:

没有,空的

在这里

 
Artyom Trishkin:

在这里

如果有帮助,它应该画出箭头,在欧元、欧元-日元、澳元上,在其他货币上,它不会。

附加的文件:
Hydra.mq4  9 kb
 
Roman Sharanov:

如果有帮助,就应该画出箭头,对欧元,对欧元兑日元,对澳元,对其他的则没有。

只是一种猜测。

在设置上有这样一种价值。

input int so_slowma = 233;//Медленная МА

然后在OnInit()中。

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

我看到计算时使用的是日线数据

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

你确定在没有绘图 的符号上有足够的条数 吗?在so_slowma 变量中放一个较小的值--至少是100。如果会有渲染,那么你就没有足够的历史数据。

这只是我第一次看代码时想到的一个假设。而这可能是错误的。但你需要先检查一下。

 

如何使一个矩形https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle,在不混合它们的颜色的情况下画在另一个矩形的上面?

例如,在这里,后来的横线被画在先前的横线之上,而没有混合它们的颜色,但我不知道是什么原因导致与矩形的区别。

谢谢。

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

只是一种猜测。

在设置上有这样一种价值。

然后在OnInit()中。

我看到计算时使用的是日线数据

你确定在没有渲染 的符号上有足够的条数 吗?在so_slowma 变量中放一个较小的值--至少是100。如果会有渲染,那么你就没有足够的历史数据。

这只是我第一次看代码时想到的一个假设。而且这可能是错误的。但你首先需要检查一下。

也就是说,因为我在代码中的某个地方从日线图中获取数据,所以指标不会绘制前233天的数据?
 
Roman Sharanov:
也就是说,因为我在代码中从日数据中取了一次数据,所以指标不会绘制前233天的数据?

不,它不是。这个值表示指标将从哪个条形图的编号开始绘制。但这个条数是用来计算移动平均线 的。如果图表中的条数较少,将不计算MA。为了避免这种情况,在第73行,代码中包含了在没有条形计算的情况下从OnCalculate()返回。

if (Bars <= so_slowma) return (0);

好吧,关于每天的数据 - 它可能也不存在,但它更像是 "历史的延续"...

 
Artyom Trishkin:

不,它不是。该值表示指标将从哪个条形图的编号开始绘制。但这个条数是用来计算移动平均线 的。如果图表中的条数较少,将不计算MA。为了避免这种情况,在代码的第73行,我们写了在没有条形计算的情况下从OnCalculate()返回。

好吧,关于每日数据--它可能也不存在,但它更像是 "历史的延续"...

例如,英镑在日线和M15上有1000多个柱子,但它并没有画出...

 
Roman Sharanov:

例如,英镑在日线和M15上都超过了1000条,但它并没有画出来。

你有源代码。打印出日志中所有变量的值,看看他们得到了什么。

 
Artyom Trishkin:

你有源代码。打印出日志中所有变量的值,看看他们得到了什么。

这是从哪里来的?


 
Roman Sharanov:

这是从哪里出来的?


缓冲区内的垃圾。首先,你必须在你绘制的所有缓冲区中输入一个空白值(如果它们是箭头缓冲区),然后才执行指标的计算。我在手机上看不到代码,所以我不能准确地说。
原因: