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

 
Aleksey Vyazmikin:

好了,接下来就是思想的可视化了 :)

白色表示我们在哪里提出请求,黄色表示我们应该得到的酒吧时间。

这是否更清楚?如果没有,请提出问题加以澄清。

阿列克谢,在上面的帖子中,你提出了一个关于REVEAL任务的要求......。

"我需要当前时间框架的最后一个柱子的日期,它指的是上层时间框架的选定柱子

清楚了吗?"

所以很难理解你真正需要什么。

关于之前的请求--我回答了--https://www.mql5.com/ru/forum/6343/page869#comment_7537714。

如果在最后一个 "有可视化的想法",那么只需要求上层TF的条形图的开盘时间,移位为0。

不太清楚--问题是什么?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.05.23
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Kirill Belousov:

Alexey,在上面的帖子中,你提出了一个RETURN任务的要求......

"我需要当前时间框架的最后一个柱子的日期,它指的是上层时间框架的选定柱子

清楚了吗?"

所以很难理解你真正需要什么。

关于之前的请求--我回答了--https://www.mql5.com/ru/forum/6343/page869#comment_7537714。

如果在最后一个 "有可视化的想法",那么只需要求上层TF的条形图的开盘时间,移位为0。

不太清楚--问题是什么?

对不起,错过了你的回复。

基里尔-贝卢索夫

如果我对你的要求理解正确,那么。

1.确定上层TF的所需栏的关闭时间。

这就是我不能做的事!

基里尔-贝卢索夫

如果通过后者 "用可视化的思想",那么只需要求上层TF的条形图的开放时间,偏移量为0。

我不太清楚--问题是什么?

如果我这样要求,我得到的是10:00,而我需要得到的时间是23:49!

 
Aleksey Vyazmikin:

好了,接下来就是思想的可视化了 :)

白色表示我们在哪里提出请求,黄色表示我们应该得到的酒吧时间。

这是否更清楚?如果没有,请提出问题加以澄清。

问题。

在10:30,我们应该在M5图表上得到时间为23:45的H1周期的条形图。

我说对了吗?

 
Alexey Viktorov:

问题。

在10:30,我需要在M5图表上获得时间为23:45的H1期条形图的编号。

我说对了吗?

在这种情况下,我需要得到 23:45的时间(事实上我没有M5,而是M1的当前TF,但这并不重要)--它是当前TF的最后一个条形结构中的最后一个条形的时间。图表上的转变是H1的1条,但可能还有另一个转变,比方说我需要在11点获得信息,即转变将是2。

 
Aleksey Vyazmikin:

对不起,错过了你的回复。

这就是我不能做的事!

如果我要求这样做,我得到的是10:00,而我需要得到23:49的时间!

1. 定义你想要的高TF的移位(栏)。- 这个条形图的开盘和收盘之间的时间(据我理解),你要分析的是其中的低位TF的条形图。

2.获得其开放时间

3.将该TF的持续时间(以秒为单位)添加到开放时间。- 也就是说,这就是你如何获得主要TF的小节的收盘时间。

4. 减去初级TF的持续时间(如果是M1,则为60秒)--这是高级TF结构中初级TF最后一小节的开场时间。根据计算出的时间,找出这根柱子的位移。(你可以简单地从主要TF的条形闭合时间中减去2-3秒,然后找到这个时间所指向的初级TF的条形)。如果查询不严格,只需获得左边最近的可用条形图(从要求的时间开始),如果突然间初级TF上的最后一条条形图不存在。

 
Kirill Belousov:

1.确定较高TF所需的移位(bar)。- 这个条形图的开盘和收盘之间的时间(按我的理解),你是在分析其中的低位TF的条形图。

2.获得其开放时间

3.将该TF的持续时间(以秒为单位)添加到开放时间。- 也就是说,这就是你如何获得主要TF的小节的收盘时间。

4. 减去初级TF的持续时间(如果是M1,则为60秒)--这是高级TF结构中初级TF最后一小节的开场时间。根据计算出的时间,找出这根柱子的位移。(你可以简单地从主要TF的条形闭合时间中减去2-3秒,然后找到这个时间所指向的初级TF的条形)。如果要求不严格,那么只需获得左边最近的可用条形(从要求的时间开始),以防最年轻的时间框架上的最后一条条形不存在。

你不会相信,但一小时前我在纸上写了一个类似的算法!但这有点麻烦,我以为有一个更简单的方法。

只有第4点可能不起作用,我的检查恰恰相反--如果情况不标准,我必须循环使用时间,直到栏杆超出范围。

 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 

我想声明一个 结构数组--没有问题,直到我在某处看到一个结构可以有一个构造函数......。

如何用构造函数声明一个结构数组?(我知道如何去掉这个构造函数)

它的作用。

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100);

不起作用,但我希望它起作用。

struct MyStruct
  {
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; }
  };
//+------------------------------------------------------------------+
MyStruct cluster(100)[47];
 

一个糟糕的解决方案。最好是使用类而不是结构。它是一样的,但你可以用指针工作。

class MyClass : 
  {
   public:
   int               arr[];
   int               size;
                     MyStruct(int sz){ if(ArrayResize(arr,sz)>0) size=sz; else Print(__FUNCTION__,"Ошибка инициализации массива"); }
                    ~MyStruct(){ ArrayFree(arr); size = -1; } // этого не надо
  };
//+------------------------------------------------------------------+
MyClass * cluster[47];

for(int n = 0; n < 47; n++)
        cluster[n] = new MyClass;

我是在浏览器中写的,我想我没有弄错。我在外面跑了一个小时。

 
我知道,我知道把变数放在公共场合是不舒服的,但我没有时间。