Discussão do artigo "Trabalhando com séries temporais na biblioteca DoEasy (Parte 36): objeto das séries temporais de todos os períodos usados do símbolo"

 

Novo artigo Trabalhando com séries temporais na biblioteca DoEasy (Parte 36): objeto das séries temporais de todos os períodos usados do símbolo foi publicado:

No artigo, veremos como combinar listas de objetos-barras para cada período usado no objeto da série temporal do símbolo. Consequentemente, teremos para cada símbolo um objeto pronto armazenando as listas de todos os períodos usados da série temporal.

Executamos no testador no modo visual no período gráfico M5:


Primeiro, o testador carrega os dados históricos de todos os períodos gráficos, depois o EA exibe os dados das séries temporais criadas e, em seguida, no log são exibidas as mensagens sobre a abertura de novas barras nas séries temporais criadas durante o progresso do teste.

Tudo funciona como planejado neste estágio de criação de funcional para trabalhar com séries temporais de um único símbolo.

Autor: Artyom Trishkin

 

Olá, gostaria de expressar meu desejo de que fosse possível criar séries temporais não apenas pelo número especificado no método timeseries.SyncData(PERIOD_M15,2), mas também por data, no campo em que o número (2) é definido. Isso pode ser útil ao estudar a correlação de 2 ou mais instrumentos no histórico, por exemplo, separadamente em uma seção plana e de tendência. E mais uma coisa, é possível combinar 2 métodos em 1 - timeseries.SyncData(PERIOD_M15,2) e timeseries.Create(PERIOD_M15), e apenas escrever timeseries.Create(PERIOD_M15,2), porque a criação da própria série temporal implica a sincronização dos dados primeiro.

 
Alexander:

Olá, gostaria de expressar meu desejo de que fosse possível criar séries temporais não apenas pelo número especificado no método timeseries.SyncData(PERIOD_M15,2), mas também por data, no campo em que o número (2) é definido. Isso pode ser útil ao estudar a correlação de 2 ou mais instrumentos no histórico, por exemplo, separadamente em uma seção plana e de tendência. E mais uma coisa, é possível combinar 2 métodos em 1 - timeseries.SyncData(PERIOD_M15,2) e timeseries.Create(PERIOD_M15), e apenas escrever timeseries.Create(PERIOD_M15,2), porque a criação da própria série temporal implica a sincronização dos dados primeiro.

Olá. As séries temporais são sempre criadas a partir da barra zero (a barra mais à direita no gráfico - com a última data) no valor especificado. Afinal de contas, o programa pode precisar de outros dados além dos dados históricos - e também dos dados atuais. E a criação de uma base é a operação mais cara, portanto, se você criar inicialmente uma série temporal de uma seção distante no histórico e depois recriar a série temporal sob demanda, isso será muito caro.

Mas a biblioteca permite que você obtenha da base criada uma vez qualquer número de barras da série temporal, em qualquer intervalo de tempo. Para fazer isso, basta primeiro obter a lista completa de barras da série temporal e, em seguida, selecionar a seção necessária nela. Para fazer isso, você precisa usar CSelect().

Os métodos de sincronização e criação de séries temporais são separados porque a sincronização não pode ser esperada nos indicadores para não tornar o fluxo mais lento. É por isso que tudo é feito separadamente - exemplos de obtenção de dados em indicadores serão apresentados mais tarde - após a criação de toda a funcionalidade de trabalho com séries temporais.

 

O uso de um grande número de cores de fundo e de texto multicoloridas reduz a legibilidade dos artigos. Isso atrapalha os olhos e desvia a atenção da essência. No passado, os moderadores de artigos costumavam impedir isso....

 
Sergey Pavlov:

O uso de um grande número de cores de fundo e de texto multicoloridas reduz a legibilidade dos artigos. Isso atrapalha os olhos e desvia a atenção da essência. No passado, os moderadores de artigos costumavam impedir isso....

Muitas vezes, os autores de artigos são forçados a enfatizar a atenção, especialmente se o artigo for de natureza educacional e informativa. E eles precisam fazer isso destacando o fragmento de código descrito e sua descrição com a mesma cor de fundo. Eu mesmo não estou muito satisfeito com o que vejo, mas é uma medida forçada. Se você tiver alguma sugestão sobre como comparar duas seções de texto de outra forma que não seja destacando-as com a mesma cor de fundo, terei prazer em ouvi-la.

 

Há duas opções: estática e dinâmica.

Estática: reduzir o tamanho de cada fragmento de código descrito a algumas linhas, de modo que o contexto da descrição e o código coincidam o máximo possível. Não é necessário mostrar toda a função, você pode deixar algumas linhas importantes para cada nuance e descartar o restante marcando-o com reticências.

Dinâmico: disponível somente com MQs. Eles podem criar hotspots no editor de publicações, ao passar o cursor do mouse sobre os quais as "âncoras" correspondentes serão destacadas no texto (código). Quando o cursor não está sobre um ponto de acesso, não há destaque. Os hotspots são marcados no texto como links fracamente sublinhados e sem cor (alguns sites têm isso). Se isso existisse, seriam necessárias as mesmas ações no layout que agora exigem a coloração do plano de fundo, apenas o botão na paleta de ferramentas seria diferente. Mas é improvável que isso seja feito.

 
Stanislav Korotky:

Há duas opções: estática e dinâmica.

Estática: reduza o tamanho de cada fragmento de código descrito para algumas linhas, de modo que o contexto da descrição e o código coincidam o máximo possível. Não é necessário mostrar toda a função, você pode deixar algumas linhas importantes para cada nuance e descartar o restante marcando-o com reticências.

Dinâmico: disponível somente com MQs. Eles podem criar hotspots no editor de publicações, ao passar o cursor do mouse sobre os quais as "âncoras" correspondentes serão destacadas no texto (código). Quando o cursor não está sobre um ponto de acesso, não há destaque. Os pontos de acesso são marcados no texto como links fracamente sublinhados e sem cor (alguns sites têm isso). Se isso existisse, seriam necessárias aproximadamente as mesmas ações no layout que agora exigem a coloração do plano de fundo, apenas o botão na paleta de ferramentas seria diferente. Mas é improvável que eles façam isso.

Sim, a segunda opção é bastante preferível.
E a primeira não é adequada pelo fato de que muitos iniciantes tentam escrever logo no decorrer do artigo.
 
Artyom Trishkin:

E a primeira não funcionará pelo fato de que muitos iniciantes tentam escrever à medida que o artigo avança.

Pelo contrário. A primeira opção tem o estilo de um guia "passo a passo" muito lento - é mais preferível para iniciantes.

 
Stanislav Korotky:

O contrário. A primeira opção tem o estilo de um guia "passo a passo" muito lento - é mais preferível para iniciantes.

Entendi o que você estava falando. Mas essa é uma sugestão para cortar uma parte do código da função e se concentrar na parte importante - e descrevê-la. Mas, nesse caso, a integridade visível da função será quebrada, e isso é ruim para um iniciante - ele deve ver a função inteira e a descrição de cada uma de suas partes - o quê, por quê, para quê e por quê.

 
Artyom Trishkin:

... e isso é ruim para um iniciante - ele precisa ver a função completa e uma descrição de cada parte dela - o que, por que, para que e por quê.

Artyom, seus "acentos" na forma de esquemas de cores no texto não ajudarão os programadores-comerciantes iniciantes. E algo sugere que os "iniciantes" não entenderão o texto de qualquer forma (ou não desejarão entendê-lo).

Nesse caso, estou do lado dos "iniciantes": como você pode colocar 100500 artigos em sua cabeça e aplicá-los em seus Expert Advisors?

 
Sergey Pavlov:

Artem, seus "acentos" na forma de esquemas de cores no texto não ajudarão os operadores-programadores iniciantes. E algo sugere que os "iniciantes" não o entenderão de qualquer forma (ou não desejarão entendê-lo).

Nesse caso, estou do lado dos "iniciantes": como você pode colocar 100.500 artigos em sua cabeça e aplicá-los em seus Expert Advisors?

No entanto, aqueles que querem entender, escrevem em particular com perguntas - é nisso que me concentro (embora eu peça que escrevam diretamente na discussão dos artigos, mas eles escrevem mais em particular por algum motivo - talvez a publicidade da pergunta seja embaraçosa, não sei).

E não acho que você precise ter mais de 100500 artigos em sua cabeça.
Por exemplo, você sabe a referência de cor? Eu não sei. E mesmo que não seja a primeira vez que consigo encontrar um ponto interessante nela para "refrescar minha memória".
Mas eu procuro, encontro, releio e atualizo. E não sou um iniciante...
Ou, digamos, com que precisão você se lembra do livro didático de Kovalyov?

Não é necessário lembrar e saber de cor. Mas lendo e relendo, analisando e organizando-o em sua mente, você percebe algo que faz com que a pessoa não seja mais um iniciante.
Se você prestar atenção ao estilo e aos métodos de apresentação do material nos primeiros artigos e ao estilo e à apresentação nos últimos, poderá ver uma mudança - menos mastigação. Simplesmente quando uma pessoa começa a ler e não sabe como fazer algo, inicialmente você pode aprender como. Mas depois não vale a pena repetir a mesma coisa todas as vezes.
E aqui está algo novo que ainda não foi descrito - aqui, por que não destacar os acentos na cor.... No entanto, se houvesse outras maneiras convenientes de acentuar a atenção além de destacar a mesma cor, eu certamente as usaria - não gosto desse tipo de destaque.

E para usá-la em seus EAs, você não precisa aprender como a biblioteca é feita. Basta ler a finalidade dos métodos públicos e sua aplicação nos Expert Advisors de teste. E o que não estiver claro - pergunte na discussão dos artigos.
É que se você se desviar da descrição da criação da biblioteca e se aprofundar nos momentos de seu uso, será um tópico completamente diferente.
Entretanto, após a conclusão da criação da biblioteca, haverá um volumoso material de referência sobre todos os seus métodos públicos e formas de uso com exemplos.