Guia Prático Estatística do Trader: Hipóteses

22 maio 2015, 13:18
Denis Kirichenko
0
1 767

Introdução

Qualquer trader disposto a criar o seu próprio sistema de negociação se tornará um analista, mais cedo ou mais tarde. Eles estão permanentemente tentando encontrar as tendências do mercado e testando idéias de negociação. O teste de uma idéia pode ser baseado em abordagens diferentes - desde uma busca dos melhores valores para os parâmetros no modo de otimização do Strategy Tester até pesquisas científicas de mercado (as vezes pseudo científica).

Neste artigo, eu sugiro a consideração de uma hipótese estatística - um instrumento de análise estatística para a investigação e verificação da inferência. Vamos testar várias hipóteses e exemplos com o pacote Statistica e com a biblioteca de análise numérica ALGLIB MQL5.


1. O Conceito de Hipótese

Existem várias definições sobre o conceito "hipótese estatística". Alguns deles envolvem uma suposição sobre as propriedades estatísticas do objeto ou fenômeno em questão.

Uma hipótese estatística é uma suposição sobre leis probabilísticas em que um fenômeno em questão se adere.

Outras definições apontam que as propriedades estatísticas devem ser conectadas com alguma variável ou parâmetro de distribuição aleatória ​​desta distribuição.

A hipótese estatística é uma suposição sobre parâmetros da distribuição estatística ou do princípio distributivo de uma variável aleatória.

Na literatura sobre estatística matemática, a noção de "hipótese" é interpretada da segunda maneira. Então, podemos distinguir:

  1. Hipótese Paramétrica (Hipótese sobre os valores dos parâmetros de distribuição ou sobre o valor comparativo dos parâmetros de duas distribuições);
  2. Hipótese Não Paramétrica (Hipótese sobre o tipo da distribuição de valor aleatório).

Na próxima seção, vamos discutir um método de verificação de hipóteses.


2. Testando as Hipóteses. Teoria

A hipótese a ser testada é chamada de hipótese nula (Н0). Uma hipótese concorrente (Н1) é a sua alternativa. Ela esta do outro lado da moeda de Н0, ou seja, ela logicamente não admite a hipótese nula.

Imagine que há uma população de dados sobre o Stop Loss de algum sistema de negociação. Vamos indicar duas hipóteses formando uma base para o teste.

Н0 - valor médio do Stop Loss igual a 30 pontos;

Н1 - valor médio do Stop Loss diferente de 30 pontos.

Variantes de aceitação e rejeição das hipóteses:

  1. Н0 é verdade e é aceito;
  2. Н0 é falso e é rejeitado em favor de Н1;
  3. Н0 é verdade, mas é rejeitado em favor de Н1;
  4. Н0 é falso, mas é aceitável.

As duas últimas variantes estãa ligadas aos erros.

Agora, o valor do nível de significância deve ser especificado. Ela é a probabilidade de que a hipótese alternativa será aceita desde que a hipótese verdadeira seja a nula (terceira variante). Esta probabilidade é preferível ser minimizada.

No nosso caso tal erro ocorrerá se assumirmos que Stop Loss médio não é igual a 30 pontos, mesmo que ele realmente seja.

Normalmente, o nível de significância (α) é igual a 0.05. Isso significa que o valor estatístico do teste da hipótese nula pode povoar a região crítica em não mais que cinco casos em cada 100.

Em nosso caso, o valor da estatística de teste serão avaliados em um gráfico clássico (Fig.1).

Fig.1 Distribuição do valor estatístico do teste pela lei de probabilidade normal

Fig.1. Distribuição do valor estatístico do teste pela lei de probabilidade normal

Para a hipótese nula ser aceita, os valores do teste estatístico não devem chegar às zonas vermelhas. Para efeitos de exemplo, vamos supor que os valores do teste estatístico são distribuídos normalmente.

Cada teste tem sua própria fórmula para calcular o valor estatístico de teste.

A variante 4 implica que existe um erro do segundo tipo (β). No nosso caso, tal erro ocorrerá se presumirmos que o Stop Loss médio seja igual a 30 pontos e não igual a este número de pontos.


3. Exemplos Estatísticos de Teste de hipóteses

A fonte de dados utilizados para os exemplos são armazenados no arquivo DATA.XLS.

3.1. Teste Simples de Dependência

Imagine a seguinte situação. Assuma que exista um sistema de negociação gerando uma população de negociações. Vamos pegar uma amostra de negócios rentáveis ​​com um volume de 100 unidades. Os dados de origem estão na planilha "Profits".

A estatística descritiva da amostra Profits após a exclusão dos casos periféricas são apresentados na Tabela 1:

Estatísticas da amostra Profits

Tabela 1. Estatísticas da amostra Profits

O histograma da amostra tem o seguinte aspecto (Fig.2).

Fig.2 Histograma da amostra

Fig.2. O histograma da amostra Profits

O valor médio é de 83.4 pontos e a mediana é de 83 pontos.

O que vai acontecer se o ponto de entrada no mercado for alterado em alguns pontos? Por exemplo, uma ordem limite melhorando o preço de entrada pode ser colocada após o sinal de negociação aparecer.

Como isso vai afetar os resultados? Esta questão pode ser respondida com hipóteses estatísticas.

No pacote Statistica nós verificamos formalmente se as amostras não foram retiradas de uma população:

Se mudamos o preço de entrada por 15 pontos, nos devemos receber a amostra NewProfits. Idealmente, a imagem resultante tem o seguinte aspecto (Figura 3).

Fig.3 Gráfico para as amostras Profits e NewProfits

Fig.3. Gráfico para as amostras Profits e NewProfits

A probabilidade de que a hipótese alternativa seja aceita é alta já que as medianas das amostras se diferem.

Este cenário, no entanto, vai ser difícil de obter, porque pode não haver preços melhores no mercado. No meu caso, a segunda amostra foi composta por 84 negociações após o preço de entrada ser alterado. As outras 15 negociações simplesmente não foram executadas. Esta amostra corrigida será nomeada de NewProfitsReal.

Na plotagem do tipo "box-and-whisker" não há muita diferença entre as duas amostras.

Fig.4 Plotagem das amostras Profits e NewProfitsReal

Fig.4. Plotagem das amostras Profits e NewProfitsReal

Vamos conduzir o teste não paramétrico de Wilcoxon, conhecido como Wilcoxon signed-rank test, para a amostra conectada.

Os resultados estão na Tabela 2:

Os resultados do teste de Wilcoxon para as amostras Profits e NewProfitsReal

Tabela 2. Os resultados do teste de Wilcoxon para as amostras Profits e NewProfitsReal

O nível de significância é muito alto, o que favorece a hipótese nula.

Dessa forma, podemos dizer que a mudança do ponto de entrada não influenciou no rendimento do sistema. Isto é, em termos relativos. Em termos absolutos, o sistema acabou sendo menos rentável por causa dos pontos de entrada não atendidos.

O Teste de Wilcoxon pode ser realizado por meio da programação em MQL5. Embora ele comparar a mediana da distribuição com o valor especificado de m, esta diferença não é significativa.

Vamos verificar:

A biblioteca ALGLIB contém o seguinte procedimento: CAlglib::WilcoxonSignedRankTest(). Ele dá um resultado para três tipos de teste: dois lados, do lado esquerdo e do lado direito.

O Script test_profits.mq5 fornece um exemplo deste cálculo Na aba "Experts" temos os seguintes resultados para a amostra NewProfitsReal:

OO      0       12:04:08.814    test_profits (EURUSD.e,H1)      p-value for the two-sided test: 0.7472
HD      0       12:04:08.814    test_profits (EURUSD.e,H1)      p-value for the left-sided test: 0.6285
CM      0       12:04:08.814    test_profits (EURUSD.e,H1)      p-value for the right-sided test: 0.3736

O teste do lado esquerdo tem o seguinte aspecto:


Aqui verificamos a alternativa de que a mediana da amostra NewProfitsReal possa ser superior ou igual a 83. A probabilidade do erro em rejeitar H0 é de 0.63. Portanto H0 é aceito.

O teste do lado direito tem o seguinte aspecto:


Neste teste, nós verificamos a alternativa de que a mediana da amostra NewProfitsReal possa ser inferior ou igual a 83. A probabilidade do erro em rejeitar H0 é igual a 0.37. Portanto H0 é aceito.


3.2. Testando Amostras Independentes

Vamos supor que temos que verificar a rapidez com que as diferentes corretoras processam as ordens de negociação e se existe uma diferença entre as corretores em relação ao tempo de execução das ordens de negociação.

Assim, há duas amostras de dados para a análise. Cada amostra continha inicialmente 50 observações. Depois de eliminar os casos extremos, 48 ​​observações foram deixados na primeira amostra (corretora А), e 49 observações na segunda (corretora B). Os dados podem ser encontrados na planilha "ExecutionTime".

Vamos verificar:


Vamos representar os índices de amostra em uma imagem (Fig.5). De acordo com a plotagem, os valores das medianas diferem entre si, embora que, não sejam de forma significativa.

Fig.5 Plotagem das amostras de dados das corretores A e B

Fig.5. Plotagem das amostras de dados das corretores A e B


Já que nós não sabemos o a que distribuição cada amostra pertence, nós vamos referir-se a testes não paramétricos para comparação.

Por exemplo, vamos realizar o teste Mann - Whitney U-test (Tabela 3). Acredita-se que esta seja a mais informativa.

Resultados de Mann — Whitney U-test para as amostras de dados das corretoras A e B

Tabela 3. Resultados de Mann — Whitney U-test para as amostras de dados das corretoras A e B

Conclusão: os resultados dos testes são diferentes e, portanto, as hipóteses nulas sobre a igualdade de amostras são rejeitadas a favor de Н1.

Mann — Whitney U-test pode ser conduzido por meio da programação MQL5. Na biblioteca ALGLIB há o procedimento CAlglib:: MannWhitneyUTest(). Ele dá um resultado para três tipos de teste: dois lados, do lado esquerdo e do lado direito.

O Script test_time_execution.mq5 fornece o exemplo de cálculo. Na aba "Expert" há o seguinte resultado que pode ser utilizado para comparar as amostras:

MR      0       12:55:08.577    test_time_execution (EURUSD.e,H1)       p-value for the two sided test: 0.0001
QF      0       12:55:08.577    test_time_execution (EURUSD.e,H1)       p-value for the left-sided test: 1.0000
PF      0       12:55:08.577    test_time_execution (EURUSD.e,H1)       p-value for the right-sided test: 0.0001

O teste do lado esquerdo tem o seguinte aspecto:


A hipótese nula é de que a mediana da amostra de dados da corretora A possa ser maior ou igual à mediana da amostra de dados da corretora B. A alternativa é a sua rejeição. Probabilidade de erro em rejeitar H0 é de 1.0. Portanto H0 é aceito.

O teste do lado direito tem o seguinte aspecto:


A hipótese nula é de que a mediana da amostra de dados da corretora A possa ser menor ou igual à mediana da amostra de dados da corretora B. A alternativa é a sua rejeição.

Probabilidade de erro em rejeitar H0 é de 0.0. Portanto H0 é rejeitado em favor de Н1.


3.3. Teste de Correlação

Imagine um portfólio de estratégias. O objetivo é reduzir o número de estratégias neste portfólio.

O critério de escolha será o seguinte: se duas estratégias são as mesmas em comparação com a série de Stop Loss, então, uma das estratégias será removida do portfólio. Tomemos duas amostras com dados de Stop Loss de dois sistemas diferentes. Premissas: os sistemas reagem a entrada do mercado da mesma forma e reagem a saída do mercado de forma diferente.

Vamos usar o teste de correlação de Spearman (Spearman's Rank-Order). Existem três amostras na planilha do arquivo de daos "Correlation".

Verifique se o coeficiente de correlação é igual a zero:

A comparação do par de amostras Stops1-Stops2 dará o resultado a seguir (Tabela 4).

Correlação de Spearman para as amostras Stops1 e Stops2

Tabela 4. Correlação de Spearman para as amostras Stops1 e Stops2

Neste caso, a hipótese nula sobre a ausência de conexão entre os elementos das amostras não podem ser rejeitadas a favor da alternativa. Por isso, ela é aceita.

A plotagem na Fig.6 mostra que os dados não formam qualquer configuração perceptível. Os dados são espalhados na plotagem plana.

Fig.6 Gráfico de dispersão para as amostras Stops1 e Stops2

Fig.6. Gráfico de dispersão para as amostras Stops1 e Stops2

Os resultados da relação entre a verificação das amostras Stops1-Stops3 são mostradas na Tabela 5:

Resultados do teste de correlação Spearman para as amostras Stops1 e Stops3

Tabela 5. Resultados do teste de correlação Spearman para as amostras Stops1 e Stops3

Neste caso, a hipótese nula pode ser rejeitada já que a probabilidade de erro é muito baixa.

Por isso, a alternativa sobre uma relação existente é aceito. A relação tem o seguinte aspecto (Fig.7).

Fig.7 Gráfico de dispersão para as amostras Stops1 e Stops3

Fig.7. Gráfico de dispersão para as amostras Stops1 e Stops3

Confirme o resultado com o código em MQL5. O arquivo test_correlation.mq5 contém um exemplo de cálculo.

A biblioteca ALGLIB contém o procedimento CAlglib::SpearmanRankCorrelationSignificance(), que implementa o teste de significância do coeficiente de correlação de Spearman.

O diário contém os seguintes registros:

OO      0       12:57:43.545    test_correlation (EURUSD.e,H1)  ---===Samples Stops1 and Stops2===---
GO      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the two-sided test: 0.9840
KK      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the left-sided test: 0.4920
JJ      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the right-sided test: 0.5080
DM      0       12:57:43.545    test_correlation (EURUSD.e,H1)  
HJ      0       12:57:43.545    test_correlation (EURUSD.e,H1)  ---===Samples Stops1 and Stops3===---
NS      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the two-sided test: 0.0002
RO      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the left-sided test: 0.9999
FG      0       12:57:43.545    test_correlation (EURUSD.e,H1)  p-value for the right-sided test: 0.0001

O teste do lado esquerdo tem o seguinte aspecto:

Neste teste a hipótese nula é de que exista uma correlação entre as variáveis não negativas ​​(isto é, a correlação é zero, ou negativa), é verificada.

O teste do lado esquerdo mostra que para o par de amostras Stops1-Stops2, a hipótese nula é aceita. O teste do lado esquerdo mostra que para o par de amostras Stops1-Stops3 a hipótese nula é aceita também. A questão lógica a se perguntar é "Por que não há conexão entre as amostras Stops1-Stops2 e há uma entre Stops1-Stops3? "A razão está na declaração de vericação que é "maior ou igual a zero". No primeiro caso, "igual a zero" é importante para H0, já no segundo caso é "superior a zero".

O teste do lado direito tem o seguinte aspecto:

Aqui, a hipótese nula do que é uma correlação negativa foi verificada.

Para o par de amostras Stops1-Stops2, o teste do lado direito mostra que a hipótese nula é aceita. Para o par de amostras Stops1-Stops3 o teste do lado direito mostra que a hipótese nula é rejeitada.

Um último comentário. O teste revelou que existe uma relação probabilística positiva entre as amostras Stops1-Stops3. A força desta ligação é média. Portanto, cabe ao trader decidir se irá rejeitar a estratégia 1 ou 3.


Conclusão

Neste artigo eu tentei mostrar em exemplos como as variáveis ​​quantitativas podem ser avaliados através da estatística matemática. Espero que os desenvolvedores iniciantes achem este artigo útil para seus futuros sistemas de negociação. Eu espero também que a série de artigos sobre a utilização dos métodos matemáticos sobre estatística continue.

Os arquivos da biblioteca ALGLIB devem ser baixados separadamente.


Traduzido do russo pela MetaQuotes Software Corp.
Artigo original: https://www.mql5.com/ru/articles/1240

Arquivos anexados |
test_profits.mq5 (3.59 KB)
data.zip (12.04 KB)
Princípios da Precificação da Bolsa Tomando como Exemplo o Mercado de Derivativos da Bolsa de Moscou (MOEX) Princípios da Precificação da Bolsa Tomando como Exemplo o Mercado de Derivativos da Bolsa de Moscou (MOEX)

Este artigo descreve a teoria de precificação cambial e das especificidades da Câmara de Compensação (Clearing) do Mercado de Derivativos da Bolsa de Moscou (MOEX). Este é um artigo abrangente para iniciantes que querem obter uma primeira experiência na negociação de derivativos cambial, bem como para os traders experientes do mercado forex que estão considerando a negociação em plataforma centralizada da bolsa de valores.

Gráfico Líquido Gráfico Líquido

Você gostaria de ver um gráfico horário com barras que variam sua abertura de segundos até o quinto minuto da hora? Como que se parece um gráfico redesenhado quando o tempo de abertura das barras está mudando a cada minuto? Que vantagens temos em negociar em tais gráficos? Você irá encontrar as respostas para estas perguntas neste artigo.

Redes Neurais Simples e Econômica - Conecte o NeuroPro com o MetaTrader 5 Redes Neurais Simples e Econômica - Conecte o NeuroPro com o MetaTrader 5

Se os programas de redes neurais específicos para negociação parecem ser caros e complexos ou, pelo contrário, muito simples, tente o NeuroPro. Ele é gratuito e contém o melhor conjunto de funcionalidades para amadores. Este artigo irá dizer-lhe como usá-lo em conjunto com o MetaTrader 5.

Freelance MQL5.com: Fonte de Renda dos Desenvolvedores (Infográfico) Freelance MQL5.com: Fonte de Renda dos Desenvolvedores (Infográfico)

Por ocasião do quarto aniversário do Serviço Freelance MQL5, nós preparamos uma infográfico demonstrando os resultados do serviço durante todo o tempo de sua existência. Os números falam por si mesmo: mais de 10.000 pedidos no valor total de 600 mil dólares foram executados até a presente data, enquanto que 3.000 clientes e 300 desenvolvedores já utilizaram o serviço.