Foi publicado um artigo Measuring the informativeness of an indicator (Medindo a informatividade de um indicador):
Autor: Francis Dube
Obrigado por levantar esse tópico.
Por favor, comente sobre as informações um tanto contraditórias, citando duas partes do artigo:
"
Para aplicar a equação da entropia a variáveis contínuas, precisamos discretizar os valores do indicador. Isso é feito dividindo o intervalo de valores em intervalos de igual tamanho e, em seguida, contando o número de valores que se enquadram em cada intervalo. Usando esse método, o conjunto original que enumera o intervalo máximo de todos os valores de indicadores é substituído por subconjuntos, cada um representando intervalos selecionados.
...
Intervalos - o número de intervalos a serem amostrados. O autor do TTMTS especifica 20 intervalos para um tamanho de amostra de vários milhares, sendo 2 um valor mínimo rígido. Acrescentei minha própria abordagem a um valor adequado implementando a capacidade de variar o número de intervalos em relação ao tamanho da amostra, especificamente 51 para cada 1.000 amostras. Essa opção estará disponível se o usuário inserir qualquer valor menor que 2. Portanto, ao definir Intervalo como qualquer valor menor que 2, o número de intervalos usados variará de acordo com o número de barras sendo analisadas.
"
Pergunta: isso tem a ver com a mesma coisa? Se sim, por que o número de separadores do intervalo de valores do indicador depende do número de barras? Qual é a lógica aqui? Até agora, posso supor que isso seja útil apenas para indicadores que tenham algum componente acumulativo.
Caso contrário, qual é o número de divisores de intervalo?
O artigo carece de uma tabela que mostre claramente o benefício da transformação dos valores do indicador.
Olá, Francis
Você poderia explicar como testar um indicador personalizado para EntrophyAnalysis?
Estou tentando usar o seguinte:
input ENUM_TIMEFRAMES Timeframe=PERIOD_H1;
input ENUM_INDICATOR IndicatorType=IND_CUSTOM;
input string CustomIndicatorName="Indicators\\NKGold\\Regression\\iNonLinRegress.ex5";
input bool UseDefaults=true;
string de entrada IndicatorParameterTypes="int,CENUM_APPLIED_PRICE";
string de entrada IndicatorParameterValues="34,priceHA_WEIGHTED";
e recebo o erro abaixo
2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) custom indicator 'Indicators\NKGold\Regression\iNonLinRegress.ex5' cannot load [4802]
2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) Identificador de indicador inválido, código de erro: 4802
Por que tantas letras? O autor identificou um indicador válido? Em outras palavras, ele encontrou algo para ganhar dinheiro? A pergunta é simples: existe uma ferramenta para ganhar dinheiro com alta probabilidade de lucro? Ou é tudo a mesma coisa, como a roleta: ou funciona ou não funciona.
O artigo não afirma ter descoberto um Santo Graal que imprimirá cédulas com certeza. Seu objetivo é mais modesto: mostrar como medir a riqueza de informações que um indicador traz para um modelo de aprendizado.
-
Uma alta pontuação de entropia significa apenas que a variável não é trivial (varia o suficiente para que o algoritmo aprenda). Isso não garante a direção, o momento certo ou uma gestão de dinheiro vencedora.
-
Mesmo um indicador altamente informativo pode não ser preditivo se o mercado já for eficiente no horizonte de tempo escolhido, se os custos de transação absorverem o sinal ou se o modelo for mal projetado.
-
Na prática, vários blocos de construção são empilhados: seleção de indicadores com boa entropia, testes rigorosos fora da amostra, gerenciamento de risco, execução robusta e monitoramento em tempo real. É somente com a combinação de todas essas etapas que esperamos obter uma pequena vantagem, e isso deve ser constantemente verificado à medida que o mercado se adapta.
-
O autor fornece uma ferramenta de diagnóstico acadêmico. Ela não garante o sucesso. Todos são livres para usá-la para refinar seus recursos ou, ao contrário, para perceber que um indicador favorito não acrescenta nada de novo.
Em resumo, a entropia é um termômetro, não um elixir. Ela o ajuda a identificar rapidamente variáveis mortas ou pouco exploradas. Não é um substituto para a estratégia ou o controle de risco.
...
Intervalos - o número de intervalos a serem amostrados. O autor do TTMTS especifica 20 intervalos para uma amostra de vários milhares de pessoas, sendo 2 o mínimo absoluto. Acrescentei minha própria abordagem a um valor adequado implementando a capacidade de variar o número de intervalos em relação ao tamanho da amostra, especificamente 51 para 1.000 amostras. Essa opção estará disponível se o usuário inserir um valor menor que 2. Portanto, ao definir Intervalo como um número menor que 2, o número de intervalos usados variará de acordo com o número de barras analisadas.
"
Pergunta: isso é a mesma coisa? Em caso afirmativo, por que o número de separadores no intervalo de valores do indicador depende do número de barras? Qual é a lógica por trás disso? Até agora, só posso supor que isso seja útil para indicadores que tenham um componente acumulativo.
Se esse não for o caso, a que corresponde o número de divisores no intervalo?
O artigo não contém uma tabela que mostre claramente o benefício da transformação dos valores do indicador.
Para estimar a entropia de uma variável contínua, dividimos seu intervalo de valores em intervalos iguais e contamos as observações em cada intervalo. O script permite que você escolha o número deintervalos. Se você inserir < 2 (ou deixar o valor padrão), o script acionará sua própria heurística: 51 intervalos por 1.000 observações, ou seja, um número proporcional ao tamanho da amostra. Se você inserir um valor > 2, ele o usará como está, portanto, esses não são dois métodos concorrentes. Um descreve o conceito, o outro explica como o código escolhe o parâmetro quando você não o define.
Quando você tem poucos intervalos, você cola artificialmente os valores. A entropia é subestimada (viés). Quando você tem muitos intervalos para uma amostra pequena, há muitos compartimentos vazios ou compartimentos com uma observação. A entropia é muito ruidosa (variância). Existem várias regras automáticas para histogramas: Sturges, raiz quadrada, Freedman-Diaconis, Scott etc.). Todas elas têm a mesma ideia: aumente a resolução quando tiver mais dados, pois assim você poderá estimar probabilidades mais finas sem aumentar a variância.
Para 1.000 barras, 51 intervalos => 20 pontos por compartimento se a distribuição fosse uniforme. Essa proporção (entre 15 e 30 observações/classe) é um compromisso clássico que o autor retirou da literatura. Isso não tem nada a ver com o fato de um indicador ser ou não acumulativo. A lógica é puramente estatística. O refinamento da grade é adaptado à quantidade de informações disponíveis.
-
mais visível será a distribuição fina do indicador,
-
mais detalhes (picos e depressões) o cálculo da entropia pode capturar,
-
mas mais dados são necessários para que essas frequências sejam estáveis.
É verdade que o artigo teria se beneficiado se mostrasse, por exemplo, a entropia do mesmo indicador antes e depois das transformações. Mas a demonstração é fácil de ser feita por você mesmo. Basta marcar ApplyTransform=true no script e ler a saída dupla: antes / depois. O código deixou essa parte deliberadamente interativa para que todos possam testar seus próprios ativos e horizontes.
Quanto mais barras verticais houver no histograma:
-
mais perceptível é a sutileza da distribuição do índice,
-
mais detalhes (picos e depressões) o cálculo da entropia pode capturar,
-
mas são necessários mais dados para tornar essas frequências estáveis.
Pelo que entendi, a visualização das pontuações do indicador em uma amostra por meio de um histograma não tem nada a ver com os métodos de transformação de dados do autor. Estou correto?
Estou mais interessado na questão do efeito de treinamento dessas transformações. Posso presumir isso para redes neurais, mas não para métodos de árvore.
Se entendi corretamente, a visualização das pontuações dos indicadores em uma amostra usando um histograma não tem nada a ver com os métodos de transformação de dados do autor. Estou certo?
Estou mais interessado na questão do efeito indireto dessas transformações. Posso presumir isso para redes neurais, mas não para métodos de árvore.
O histograma desenhado pelo script é simplesmente uma ferramenta de diagnóstico visual. Ele mostra como os valores de um indicador são distribuídos na amostra, antes ou depois da transformação. As funções sqrt, log, tanh etc. atuam sobre os dados. O histograma simplesmente exibe o resultado. Os dois estágios são, portanto, independentes. Primeiro, a série é transformada (ou não) e, em seguida, seu histograma é desenhado para verificar se a entropia foi alterada.
Transformar um indicador que se tornou bastante monótono (log, sqrt) geralmente não altera a pontuação. Por outro lado, as transformações não monotônicas (tanh que satura) alteram a ordem de determinados pontos. Isso significa que determinadas transformações preparam melhor o terreno para a criação de interações não lineares.
O histograma criado pelo script é simplesmente uma ferramenta de diagnóstico visual. Ele mostra como os valores do indicador são distribuídos na amostra antes ou depois da transformação. As funções sqrt, log, tanh etc. afetam os dados. O histograma simplesmente exibe o resultado. Portanto, as duas etapas são independentes. Primeiro, a série é transformada (ou não) e, em seguida, seu histograma é plotado para ver se a entropia foi alterada.
Ok, então já entendi o ponto. Originalmente, eu estava pensando em outra coisa.
Transformar um expoente que se tornou razoavelmente monotônico (log, sqrt) geralmente não altera o resultado. Por outro lado, as transformações não monotônicas (tanh, saturates) alteram a ordem de determinados pontos. Isso significa que determinadas transformações preparam melhor o terreno para a criação de interações não lineares.
Como isso altera a ordem dos pontos? Você poderia dar um exemplo de uma transformação desse tipo? Até agora, entendi que o ditado significa que havia pontos ABC com valores próprios em ordem crescente e, após a transformação, a ordem em ordem crescente tornou-se, alternativamente, BAC.
Ok, agora entendi a ideia. Originalmente, eu estava pensando em outra coisa.
Como isso altera a ordem dos pontos? Você pode dar um exemplo dessa transformação? Até agora, entendi que há pontos ABC com valores próprios em ordem crescente e que, após a transformação, a ordem crescente se tornou, alternadamente, BAC.
As funções no script (raiz, log, tanh, etc.) são todas monotonicamente crescentes. Todas elas mantêm a ordem dos pontos. Minha frase anterior era ambígua. A ordem só muda de ABC para BAC se for usada uma transformação não monotônica. Por exemplo, a menos que eu esteja enganado, a função f(x)=∣x-50∣ não é monotônica porque dobra o eixo em torno de x= 50. Portanto, a ordem se torna BAC. Em sua introdução, o autor do artigo nos indica o livro"Testing and Tuning Market Trading Systems (TTMTS) by Timothy Masters". No que me diz respeito, pretendo colocar as mãos nele porque, como você, ainda tenho algumas dúvidas. Além disso, não estou muito familiarizado com modelos de aprendizado ou redes neurais. Aparentemente, ele é bastante fácil de encontrar em sites de vendas on-line. Seu conteúdo deve ser de grande ajuda para nós, pois o artigo, por mais interessante que seja, é, sem dúvida, incompleto e/ou, de qualquer forma, bastante sintético.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Medindo o valor informativo do Indicador foi publicado:
O aprendizado de máquina se tornou uma técnica popular de desenvolvimento de estratégias. Na negociação, tradicionalmente, mais atenção é dada à maximização da lucratividade e à precisão das previsões. Enquanto isso, o processamento de dados usado para construir modelos preditivos permanece na periferia. Neste artigo, discutimos o uso do conceito de entropia para avaliar a adequação de indicadores na construção de modelos preditivos, conforme descrito no livro Testing and Tuning Market Trading Systems escrito por Timothy Masters.
Como exemplo, consideremos algumas das propriedades estatísticas dos dois indicadores analisados anteriormente.
A distribuição do intervalo percentual de Williams mostra como quase todos os valores são distribuídos em todo o intervalo. Além de ser multimodal, a distribuição é bastante uniforme. Essa distribuição é ideal e reflete-se no valor da entropia.
Índice de Facilitação de Mercado Isso difere da distribuição do Índice de Facilitação de Mercado, que possui uma cauda longa. Tal indicador não é adequado para a maioria dos algoritmos de aprendizado e requer uma transformação nos valores. A transformação dos valores deve levar a uma melhoria na entropia relativa do indicador.
Autor: Francis Dube