文章 "DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列"

 

新文章 DoEasy 函数库中的时间序列(第五十八部分):指标缓冲区数据的时间序列已发布:

关于操控时间序列的主题总结,诸如组织存储、针对存储在指标缓冲区中的数据进行搜索和分类,如此即可在程序里利用函数库创建指标值,并进一步据其执行分析。 函数库的所有集合类的一般概念,能够轻松地在相应的集合中找到必要的数据。 在今天创建的类中,也可分别完成同样功能。

编译 EA,并在图表上启动它,设置为仅使用当前品种和当前时间帧。 在图表的注释中,将显示所有已创建指标的第一号和零号(当前)柱线的数据:


为了更清晰起见,在图表上绘制了含有相同设置的相同指标 - 图表注释里的信息和数据窗口(Ctrl+D)中的指标数据,且与当前柱线更新数值相匹配。

作者:Artyom Trishkin

 
感觉就像蒸汽火车走了很远的路,而乘客却落在后面。
 
是的,关于蒸汽机车的事就是这样。我觉得根据我们目前的成果
你可以写一本使用手册我在想
我在想,考虑到目前资料库的状况,我想得到过去某段时间内
过去一段时间的交易结果,比如有多少次交易
在什么符号上进行了多少次交易,获得了多少利润等等,但我怎么也想不出来。
您能告诉我怎么做吗?

 
Alexander:
是的,蒸汽机车就是这样。在我看来,根据已经完成的工作。
你可以写一本使用手册。我一直想
我一直想根据库的现状,获取关于结果的所有数据
例如,过去某段时间的交易结果,总共有多少笔交易
在什么符号上进行了多少次交易,获得了多少利润等,但仍然无法弄清楚。
您能告诉我怎么做吗?

我们将在资料库全部完成后制作一份指南,其中将举例说明如何解决各种问题。

目前,每篇文章都有如何使用文章中所述功能的示例。

 

作者应该获得一枚奖章,以表彰他创下了一个图书馆部件数量的绝对记录:)

 
Aleksey Mavrin:

作者应该获得一枚奖章,以表彰他创下了一个图书馆部件数量的绝对记录:)

是什么阻碍了您亲自撰写并获得这枚奖章?

 
你能想象,如果所有编写程序并不断改进程序的程序员,例如,同样的
Metaquotes 在编写关于平台和 MQL 语言的帮助之前,在首次发布平台时就告诉大家。
MT4,等等,我们将发布 MT5,然后与 SQL 整合,然后与 Piton 整合。
我们会一次性发布所有帮助。其次,我在你们的最新版本中没有找到 EA。
ToDoEasyPart56 中没有一行是关于历史订单 的。
 
Alexander:
你能想象,如果所有编写程序并不断改进程序的程序员都是这样吗?
Metaquotes 在撰写关于平台和 MQL 语言的帮助之前,在首次发布平台时就告诉大家。
MT4,等等,我们将发布 MT5,然后与 SQL 整合,然后与 Piton 整合。
我们会一次性发布所有帮助。其次,我在你们的最新版本中没有找到 EA。
ToDoEasyPart56 中没有一行是关于历史订单 的。
这一系列文章是关于创建库的过程。不是关于改进其首次实施,而是关于持续创建功能。使用订单系统的示例当然可以在专门介绍创建该库功能的文章中找到。
 
Artyom Trishkin:
本系列文章讲述的是创建程序库的过程。不是关于改进其首次实施,而是关于持续创建功能。使用订单系统的示例当然可以在专门介绍创建该库功能的文章中找到。

问题是,在对功能进行了后续改进和持续创建之后、

在专门介绍该功能的文章中明显有效的示例,在下一个版本中却不起作用了。

至少对我来说是这样。这就是我向您求助的原因,因为我认为您会有

他们会工作的。

 
Alexander:

问题是,在进一步完善和持续创建功能之后、

先前在专门介绍该功能的文章中明显有效的示例,现在却出现在以下文章中

版本中不起作用,至少对我来说是这样。这就是我向您求助的原因,因为我认为您已经

它们可以工作。

当然,随着图书馆的扩大,有些东西会发生变化。但基本原则是不变的。示例显示的是逻辑,而不是明确的行动计划。
只需展示你的代码,告诉我哪些地方对你不起作用。
 
Artyom Trishkin:
当然,图书馆在不断扩大,情况也在不断变化。但基本原则是不变的。示例显示的是逻辑,而不是明确的行动计划。
只需向我们展示你的代码,并告诉我们哪些地方不适合你。

在 TestDoEasyPart56 函数 void OnInitDoEasy() 的最后,我插入了以下代码

获取从 D'2020.12.11 10:00' 到当前日期的历史订单 集合。但我没有得到一个

订单没有产生这段代码。

CArrayObj* list_positions=engine.GetListHistoryOrders();
           // list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_SYMBOL,Symbol(),EQUAL);
            list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_TIME_CLOSE,D'2020.12.11 10:00',MORE);
            //--- Выбираем позиции с прибылью болше нуля
            list_positions=CSelect::ByOrderProperty(list_positions,ORDER_PROP_PROFIT_FULL,0,MORE);
            if(list_positions!=NULL)
              {Print("OK1");
               //--- Сортируем список по прибыли 
               //list_positions.Sort(SORT_BY_ORDER_PROFIT);
               list_positions.Total();
               Print(list_positions.Total());//                                здесь получаем 0
               //--- Получаем индекс позиции с наибольшей прибылью
               int index=CSelect::FindOrderMax(list_positions,ORDER_PROP_PROFIT);
               if(index>WRONG_VALUE)
                 {Print("index= ",index);
                  COrder* position=list_positions.At(index);
                  if(position!=NULL)
                    {
                     //--- Получаем тикет позиции с наибольшей прибылью и закрываем позицию по тикету
                     Print("OK");
                     Print(engine.GetListDeals());
                    }
                 }
              }

在打印 Print(list_positions.Total()); 的地方,我得到了 "0"。

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...