Discussão do artigo "Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores"

 

Novo artigo Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores foi publicado:

No final do tópico sobre trabalho com séries temporais, realizaremos o armazenamento, a pesquisa e a classificação dos dados armazenados em buffers de indicadores, o que nos permitirá realizar análises posteriores com base nos valores dos indicadores criados assentes na biblioteca para nossos programas. O conceito geral por trás de todas as classes-coleções da biblioteca torna mais fácil encontrar os dados necessários na coleção correspondente, assim, o mesmo será possível na classe que será criada hoje.

Vamos compilar o Expert Advisor e executá-lo no gráfico, especificando nas configurações usar apenas o símbolo atual e o período gráfico atual. Os comentários no gráfico exibirão os dados da primeira e da barra zero (atual) de todos os indicadores criados:


Para maior clareza, os mesmos indicadores com exatamente as mesmas configurações são plotados no gráfico - os dados do indicador nos comentários no gráfico e na janela de dados (Ctrl+D) coincidem e os valores na barra atual são atualizados.

Autor: Artyom Trishkin

 
Parece que o trem a vapor percorreu um longo caminho e os passageiros estão ficando para trás.
 
Sim, é isso mesmo sobre a locomotiva a vapor. Acho que, com base no que fizemos até agora.
você poderia escrever um manual sobre como usá-la. Eu estava pensando
Considerando o estado atual da biblioteca, eu gostaria de obter todos os dados sobre os resultados
da negociação em um determinado período no passado, como quantas negociações foram feitas,
em quais símbolos, com qual lucro, etc. e não consegui descobrir isso.
Você pode me dizer como fazer isso?

 
Alexander:
Sim, é isso mesmo sobre a locomotiva a vapor. Parece-me, com base no que já foi feito.
você poderia escrever um manual sobre como usá-la. Eu estava querendo
dado o estado atual da biblioteca, para obter todos os dados sobre os resultados
resultados de negociação para um determinado período no passado, por exemplo, quantas negociações foram feitas no total,
em quais símbolos, com qual lucro, etc. e ainda não consegui descobrir.
Você pode me dizer como fazer isso?

Um guia com exemplos de como resolver vários problemas será criado depois que a biblioteca estiver totalmente concluída.

Por enquanto, cada artigo tem exemplos de como usar a funcionalidade descrita no artigo.

 

O autor deveria receber uma medalha pelo recorde absoluto do número de partes de uma biblioteca :)

 
Aleksey Mavrin:

O autor deveria receber uma medalha pelo recorde absoluto do número de partes de uma biblioteca :)

O que o impede de escrever e receber essa medalha você mesmo?

 
Você consegue imaginar se todos os programadores que escrevem programas e os aprimoram constantemente, por exemplo, fossem os mesmos
A Metaquotes, antes de escrever uma ajuda sobre a plataforma e a linguagem MQL, disse a todos quando lançou a plataforma pela primeira vez.
MT4, espere, vamos lançar o MT5, e depois a integração com o SQL, e depois com o Piton.
Vamos liberar a ajuda para tudo de uma vez. E, em segundo lugar, não encontrei o EA em sua versão mais recente.
ToDoEasyPart56 nem uma única linha sobre como trabalhar com ordens históricas.
 
Alexander:
Você consegue imaginar se todos os programadores que escrevem programas e os aprimoram constantemente, por exemplo, fossem os mesmos
A Metaquotes, antes de escrever uma ajuda sobre a plataforma e a linguagem MQL, disse a todos quando lançou a plataforma pela primeira vez.
MT4, espere, vamos lançar o MT5, e depois a integração com o SQL, e depois com o Piton.
Vamos liberar a ajuda para tudo de uma vez. E, em segundo lugar, não encontrei o EA em sua versão mais recente.
ToDoEasyPart56 nem uma única linha sobre como trabalhar com ordens históricas.
Essa série de artigos é sobre o processo de criação da biblioteca. Não se trata de melhorar sua primeira implementação, mas da criação consistente de funcionalidade. Os exemplos de trabalho com o sistema de pedidos estão, obviamente, nos artigos dedicados à criação da funcionalidade dessa biblioteca.
 
Artyom Trishkin:
Esta série de artigos trata do processo de criação de uma biblioteca. Não se trata de melhorar sua primeira implementação, mas da criação consistente de funcionalidade. Os exemplos de trabalho com o sistema de pedidos estão, obviamente, nos artigos dedicados à criação da funcionalidade dessa biblioteca.

O problema é que, após os aprimoramentos subsequentes e a criação consistente da funcionalidade, os exemplos que aparentemente funcionaram nos artigos são os mesmos,

os exemplos que aparentemente funcionaram nos artigos dedicados a essa funcionalidade agora nas próximas

versões não funcionam, pelo menos para mim. Foi por isso que pedi sua ajuda, pois achei que você teria

eles funcionarão.

 
Alexander:

O problema é que, após refinamentos adicionais e criação consistente de funcionalidade,

exemplos que aparentemente funcionavam antes nos artigos dedicados a essa funcionalidade agora estão nos seguintes

As versões não funcionam, pelo menos para mim. Foi por isso que pedi sua ajuda, pois achei que você tinha

que elas funcionariam.

É claro que a biblioteca se expande, algo muda. Mas os princípios básicos permanecem os mesmos. Os exemplos mostram a lógica, não um plano de ação claro.
Basta mostrar seu código e me dizer o que não está funcionando para você.
 
Artyom Trishkin:
Naturalmente, a biblioteca se expande e as coisas mudam. Mas os princípios básicos permanecem os mesmos. Os exemplos mostram a lógica, não um plano de ação claro.
Basta nos mostrar seu código e nos dizer o que não está funcionando para você.

Na função TestDoEasyPart56, void OnInitDoEasy(), em seu final, inseri este código para

obter uma coleção de ordens históricas desde a data D'2020.12.11 10:00' até a atual. E não obtive uma única

ordens não obtiveram esse código.

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());
                    }
                 }
              }

No local onde imprimo Print(list_positions.Total()); recebo "0".

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