Discussão do artigo "Classificador Bayesiano Ingênuo para sinais de um conjunto de indicadores"
A parte de programação, como sempre, está no mais alto nível! A parte prática eu quase não entendi por causa da fraca preparação teórica.
Observando o fmtprnt2.mqh, há muitos avisos. Por que eles decidiram criar esse estilo de modelo?
template<typename T> CFormatOut *operator<<(const T v) { if(typename(v) == "int" || typename(v) == "uint" || typename(v) == "long" || typename(v) == "ulong" || typename(v) == "short" || typename(v) == "ushort")
Afinal, para cada tipo, seria possível escrever uma variante de operador diferente e evitar as advertências do compilador correspondentes.
ZЫ Acho que entendi. A Bíblia foi escrita quando a linguagem ainda não permitia isso.
Observando o fmtprnt2.mqh, há muitos avisos. Por que eles decidiram criar esse estilo de modelo?
Afinal, para cada tipo, seria possível escrever uma variante de operador diferente e evitar as advertências do compilador correspondentes.
ZЫ Acho que entendi. A Bíblia foi escrita quando a linguagem ainda não permitia isso.
Posso esclarecer a ideia? Em geral, esse arquivo não é o mais importante em termos de número de avisos. Algumas coisas podem realmente ser limpas.
Se estivermos falando de funções com tipos específicos, na verdade, sempre queremos descrever tudo de maneira uniforme em um modelo, e não copiar variantes com tipos diferentes, porque então por que precisamos de modelos?
Posso esclarecer a ideia? Em geral, esse arquivo não é o melhor em termos de avisos. Algumas coisas podem realmente ser limpas.
Se estivermos falando de funções com tipos específicos, na verdade, sempre queremos descrever tudo uniformemente em um modelo, e não copiar variantes com tipos diferentes, porque então por que precisamos de modelos?
Estou entendendo a fórmula corretamente? P(H|E) = P(E|H) * P(H) / P(E) (1), fazendo o cálculo da seguinte forma:
P(H|E) = K2 *(1 / K1 )
Nesse caso, considero o indicador para compra; se estiver acima de zero, eu compro.
K2= é o resultado da divisão (proporção) do número de barras em que o indicador está acima de zero e a operação foi lucrativa / número total de barras.
K1= a proporção do número de barras em que o indicador está acima de zero / número total de barras.
Estou entendendo a fórmula corretamente? P(H|E) = P(E|H) * P(H) / P(E) (1), fazendo os cálculos da seguinte forma:
P(H|E) = K2 *(1 / K1 )
Nesse caso, considero o indicador para compra; se estiver acima de zero, eu compro.
K2= é o resultado da divisão (proporção) do número de barras em que o indicador está acima de zero e a operação foi lucrativa / número total de barras.
K1= a proporção do número de barras em que o indicador está acima de zero / número total de barras.
Sim. No entanto, essa abordagem exige que a duração da negociação seja de 1 barra, ou que sejam permitidas várias posições abertas no Expert Advisor, ou que a probabilidade não seja calculada por meio da porcentagem de posições lucrativas, mas, por exemplo, como uma dependência do tamanho do lucro em relação ao valor do indicador (mais ou menos), ou seja, mudar para densidades de probabilidade.
Sim, o resultado com essa abordagem será desfocado. Provavelmente substituirei o indicador acima de zero pela barra em que o indicador cruzou a marca zero.
Planejo criar um indicador com base nisso, as negociações nele serão virtuais e verei o que ele mostrará. Talvez alguns extremos significativos possam ser vistos.
A parte de programação, como sempre, está no mais alto nível! A parte prática eu quase não entendi por causa da fraca preparação teórica.
Tentarei recontar em minhas próprias palavras de forma mais simples:
1. Vamos considerar três estratégias:
- estratégia Strat_A baseada no indicador A com probabilidade de uma negociação vencedora P(Win|A) =0,63
- estratégia Strat_B baseada no indicador B com uma probabilidade de uma negociação vencedora P(Win|B) =0,58
- estratégia Strat_C baseada no indicador C com probabilidade de uma negociação vencedora P(Win|C) =0,57
2. Todos os três indicadores A, B e C não estão correlacionados entre si, ou seja, eles dão sinais para entrar no mercado independentemente um do outro.
3) É necessário calcular a porcentagem teórica de negociações vencedoras para a estratégia Start_ABC, na qual a entrada no mercado ocorre somente se todos os três indicadores mostrarem entrada na mesma direção simultaneamente.
Então, P(Win|ABC) = P(Win|A)* P(Win|B)* P(Win|C) /[ P(Win|A)* P(Win|B)* P(Win|C) - (1 - P(Win|A))*(1 - P(Win|B))*(1 - P(Win|C))) ]
Certo, @Stanislav Korotky?
Tentarei recontar com minhas próprias palavras de forma mais simples:
Certo, @Stanislav Korotky?
Sim, é mais ou menos assim que eu estava colocando as coisas ;-)
Sim, é quase isso que eu estava dizendo ;-)
Em seguida, o tópico de outro artigo - como encontrar indicadores que sejam independentes uns dos outros automaticamente?
E então temos quase um simples KnowHow para criar robôs a partir de qualquer coleção de indicadores. Além disso, você pode adicionar trailing, gerenciamento de mani e assim por diante ao algoritmo básico por meio do Assistente MQL5.
- 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 Classificador Bayesiano Ingênuo para sinais de um conjunto de indicadores foi publicado:
O artigo analisa a aplicação da fórmula de Bayes para melhorar a fiabilidade dos sistemas de negociação através do uso dos sinais de vários indicadores independentes. Os cálculos teóricos são verificados com um EA universal simples, personalizado para trabalhar com indicadores exploratórios ou customizados.
As fórmulas consideradas acima são baseadas na suposição de independência dos processos aleatórios analisados, que são, neste caso, os sinais dos indicadores. Mas será que esta condição é atendida?
Obviamente, certos indicadores, incluindo muitos dos que são padrão, têm muito em comum. A figura 2 mostra alguns dos indicadores internos.
Fig. 2 Grupos de indicadores padrão similares
Autor: Stanislav Korotky