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

 
Вадим Мотеюнас:
https://www.mql5.com/ru/docs/basis/operators
 
ArturR:

1.是的,代码中存在一个零条的情况,现在没有可能检查哪个情况被测试,我今晚会检查。

2.我通过向图表输出评论值进行了检查,macd、High和Low有值,但min(max)price没有得到相应的值。

我需要看看这些变量是如何声明的。有人怀疑它们是局部变量,每次进入函数都会被重置为零。因此,当他们与价值观在一起的那些时刻,你根本没有时间去看。要看到这些数值,请看日志的内容。毕竟,代码中存在着Print。

 

你好。我有一个任务,在1000行的csv文件中,我需要从字段N中选择参数匹配,并从找到的记录的其他字段中返回任何类型的值。你能告诉我是否有一个专家通过文件进行工作并做出交易决定?谢谢你。

 
mwwm:

你好。我有一个任务,在1000行的csv文件中,我需要从字段N中选择参数匹配,并从找到的记录的其他字段中返回任何类型的值。你能告诉我是否有一个专家通过文件进行工作并做出交易决定?谢谢。

可能需要在代码库中寻找能与新闻一起工作的。

 
Ihor Herasko:

你根本没有时间去看。要看到这些数值,请看日志的内容。毕竟,代码中存在着Print。

是的,谢谢你 )我没有注意到日记中其他垃圾中的这一记录。再次感谢所有回复者,我将继续清理)

 
如何计算指数条,使其数值对应于以下逻辑:如果当前周期的图表 M15,和时间框架的调用指标与功能(MTF)=H1,指数条5,即事实收盘条H1,如果当前周期的图形M30,和时间框架的调用指标与功能(MTF)=H1,指数条3,如果当前周期的图表M5,和时间框架调用指标与功能(MTF)=M15,指数条4。
 
lil_lil:
必须对条形指数进行何种计算,使其数值与以下逻辑相对应:如果图表的 当前周期 M15和被调用的指标时间框架的功能(MTF)=H1,则条形指数为5,即关闭条形H1的事实,如果图表的当前周期M30和被调用的指标时间框架的功能(MTF)=H1,则条形指数为3,如果图表的当前周期M5和被调用的指标时间框架的功能(MTF)=M15,条形指数为4。

这里的错误是在逻辑本身。当前的TF可能是M15,而最后一个M15柱,也就是对应于已经形成的H1柱,将是1。或者它可能是2,或者3,或者4,但不会更多。例如,现在的时间是10:06。当前的M15和H1柱的指数为0,两个TF中的前一个柱子为1,与关闭的H1相对应的最后一个M15柱也是1。在10:15,情况将发生变化:形成H1的最后一个M15柱的指数为2,在10:30为3,在10:45为4。

数学计算在这里不会有什么帮助。我们需要在图表上寻找相应的条形图。该算法如下。

  1. 确定零条H1的开启时间。(iTime)
  2. 识别当前时间框架的第一个条形的指数,它与H1零条的开盘时间相对应。(iBarShift)
  3. 在找到的酒吧指数上加1。

 
Ihor Herasko:

这里的错误是在逻辑本身。当前的TF可能是M15,而最后一个M15柱,也就是对应于已经形成的H1柱,将是1。或者它可能是2,或者3,或者4,但不会更多。例如,现在的时间是10:06。当前的M15和H1柱的指数为0,两个TF中的前一个柱子为1,与关闭的H1相对应的最后一个M15柱也是1。在10:15,情况将发生变化:形成H1的最后一个M15柱的指数为2,在10:30为3,在10:45为4。

数学计算在这里不会有什么帮助。我们需要在图表上寻找相应的条形图。该算法如下。

  1. 确定零条H1的开启时间。(iTime)
  2. 识别当前时间框架的第一个条形的指数,它与H1零条的开盘时间相对应。(iBarShift)
  3. 在找到的酒吧指数上加1。

该指标在上层时间框架(有条件的H1)的零条上,分别对当前时间框架(M15)的所有4条进行绘制。这就是为什么我需要M15的指数5来知道H1收盘时是否有信号。当然,有可能计算出这个指数,以避免为高位和当前时期的每个变体组合写一堆条件。

input ENUM_TIMEFRAMES   TimeFrame=PERIOD_H1;
//  
 if(TimeFrame == PERIOD_H1&&Period()==M15) timef = 5;//timef = 4;

   if(TimeFrame == PERIOD_H1&&Period()==M30) timef = 3;//timef = 2;


Ajk=NormalizeDouble(iCustom(NULL,0,"Ajk",TimeFrame,4,i+timef),Digits);
 
lil_lil:

该指标在较高的时间框架(通常是H1)的零条上,分别在当前时间框架(M15)的所有4条上绘制。

这就是我所说的,当前时间框架的条形可能更小--1、2或3。这意味着读数不会总是显示在4个柱子上。只有在一种情况下会显示4个柱子--这是当前TF的最后一个柱子,对应于零柱H1。对于这个问题的表述,我们只需要找到当前TF中对应于零条H1的第一条。

int nCurTFBarIndex = iBarShift(NULL, 0, iTime(NULL, PEPRIOD_H1, 0));

然后,数据将从当前TF的零条开始显示,直到并包括nCurTFBarIndex。

这就是为什么我需要在M15 TF上专门设置指数5,以便在H1收盘时发现是否有信号留下。当然,有可能计算这个指数,以避免为较高时期和当前时期组合的每个变体写一堆条件。

信号来自哪个TF:来自当前TF,来自H1还是混合版本?如果只是从H1开始,那么根本不需要寻找任何东西,因为最后形成的条形总是有索引1。

 
Ihor Herasko:

从哪个TF中获取信号:当前、H1还是混合版本?如果只是从H1开始,那么根本不需要寻找任何东西,因为最后形成的条形总是有索引1。

我把H1放在MTF指标的外部设置中,并把它附在M15图表上。信号闪动4格。当H1栏关闭时,信号不闪烁,在M15上,信号在第4栏停止闪烁。如果我把它放在М1上,它就会在第60条上停止闪烁。有必要计算指数i+N,这样N就会根据设置中所选择的时期和该时期的图表而变化,指标就在其中。

input ENUM_TIMEFRAMES   TimeFrame=PERIOD_H1;
//  
 if(TimeFrame == PERIOD_H1&&Period()==M15) N = 5;// ВОЗМОЖНО НУЖНО N = 4;

   if(TimeFrame == PERIOD_H1&&Period()==M1) N = 61;//А ЗДЕСЬ ВОЗМОЖНО N = 60;
原因: