Sistema simples de negociação de regressão linear.
Figura 1: Explicação sobre os indicadores
O indicador LinearRegSlope flutua em volta de uma linha zero.
Ele exibe as coisas:
1-Quando a linha está abaixo da linha zero e está apontando para baixo, a tendência é absolutamente negativa. As velas estão abaixo do centro da linha de regressão linear.
2-Quando a linha está abaixo da linha zero e está apontando para cima, a tendência é negativa. Muitas vezes, as velas estão acima do centro da linha de regressão linear.
3-Quando a linha está acima da linha zero e está apontando para baixo, a tendência é absolutamente positiva. As velas estão acima do centro da linha de regressão linear.
4-Quando a linha está acima da linha zero e está apontando para cima, a tendência é positiva. Muitas vezes, as velas estão abaixo do centro da linha de regressão linear.
FOTO: COMÉRCIO DE TENDÊNCIAS.
Figura 5: Entradas e Saídas. Além disso, contrate comércios de tendência.
Figura 6 = Adicionando o nível 10 Se preferir, você pode um nível 10 para R-Quadrado e minimizar o risco. Tomando apenas as negociações quando o indicador R-Quadrado cruza este nível.
Se R-Squared for "flat" no nível zero, você terá os melhores negócios.
Ao olhar a última foto no post anterior, pudemos ver todos os elementos alinhados e nos dando um curto comércio.
Nosso canal está apontando para baixo, LinRegSLope está abaixo de zero e apontando para baixo e R-Squared está dormindo perto de zero.
Ao entrar em curto em algum ponto entre 1.4600 / 20 e definir a nossa parada em que poderíamos sair à direita neste momento quando R-Squared está atingindo o nível superior e dinheiro 50/70 pips ou esperar algumas horas visando 1.4500.
Sobre a GBP, nosso SL foi movido para o ponto de equilíbrio, nossa meta é de 1.9480.
Primeiro comércio Quase pronto.
Alguns minutos atrás nós mudamos nossa SL para 1.9530 para manter um pequeno lucro e estabelecer uma nova meta para 1.9460 perto da baixa do dia. Se você tivesse definido o nosso objetivo anterior de 1.9480, seu comércio está feliz nos lucros de hoje.
Se você não fez. Você poderia fechar o negócio agora sem ver o R-Quadrado porque nós não temos a sessão americana e Londres está quase pronta.
Nosso comércio do euro também está tendo lucros. Nosso alvo de 1.4500 foi atingido.
Nós temos um sinal curto hoje. Veja a imagem para detalhes. Este comércio é um pouco fora do tempo, mas tem potencial.
Se os preços continuarem a baixar, poderíamos mover o nosso SL para 1.4650 primeiro e depois para o brakeven. Se o R-squaed tocar o extremo 80, vamos sair.
Nós temos um sinal curto hoje. Veja a imagem para detalhes. Este comércio é um pouco fora do tempo, mas tem potencial. Se os preços continuarem a baixar, poderíamos mover o nosso SL para 1.4650 primeiro e depois para o brakeven. Se o R-squaed tocar o extremo 80, vamos sair.
Bem, um bom dia um pouco de lucro e baixo risco comercializa. O melhor é que o nosso SL está seguro, mesmo depois de ter mudado para um novo nível.
No entanto, a nossa meta não foi atingida e, para o preço dos comerciantes da Finonacci, recuperou-se apenas no retracement de 50%.
O dia está quase no fim e a idéia de pagar capotagens por algumas horas não me agrada. Se, nós podemos fechar nosso comércio aqui com 30 pips lucros para seguro.
Nós tivemos muitos negócios possíveis em várias moedas hoje, mas eu decidi por este clássico.
Lembre-se, neste tópico você não deve ver como funciona este sistema no passado, escrevendo as negociações depois que elas aconteceram.
A ideia é aprender e desenvolver juntos e a única maneira é postar os negócios antes que eles aconteçam. Além disso, você tem um comentário de sinal gratuito.
O que é 'R-Squared'
O R-quadrado é uma medida estatística que representa a porcentagem de um fundo ou movimentos do título que pode ser explicada por movimentos em um índice de referência. Por exemplo, um R-quadrado para uma garantia de renda fixa versus o Barclays Aggregate Index identifica a proporção de variação da segurança que é previsível a partir da variação do Barclays Aggregate Index. O mesmo pode ser aplicado a um título de patrimônio em comparação ao Standard and Poor's 500 ou a qualquer outro índice relevante.
Index Hugger.
Termo de erro.
Covariância.
Soma dos Quadrados.
QUEBRANDO 'R-Quadrado'
Valores de R-quadrado variam de 0 a 1 e são comumente declarados como porcentagens de 0 a 100%. Um R-quadrado de 100% significa que todos os movimentos de um título são completamente explicados pelos movimentos no índice. Um alto R-quadrado, entre 85% e 100%, indica que os padrões de desempenho do fundo estão alinhados com o índice. Um fundo com um R-quadrado baixo, a 70% ou menos, indica que a segurança não age muito como o índice. Um valor de R ao quadrado mais alto indica um valor beta mais útil. Por exemplo, se um fundo tem um valor de R-quadrado próximo a 100%, mas tem um beta abaixo de 1, é mais provável que ele ofereça retornos ajustados ao risco mais altos.
Exemplo de Cálculo de R-Quadrado.
O cálculo do R-quadrado requer várias etapas. Primeiro, assuma o seguinte conjunto de pontos de dados (x, y): (3, 40), (10, 35), (11, 30), (15, 32), (22, 19), (22, 26) , (23, 24), (28, 22), (28, 18) e (35, 6).
Para calcular o R-quadrado, um analista precisa ter uma equação de "linha de melhor ajuste". Essa equação, baseada na data exclusiva, é uma equação que prevê um valor Y com base em um determinado valor X. Neste exemplo, suponha que a linha de melhor ajuste seja: y = - 0.94x + 43.7.
Com isso, um analista poderia calcular os valores Y previstos. Por exemplo, o valor Y previsto para o primeiro ponto de dados é:
y = - 0,94 (3) + 43,7 = 40,88.
Todo o conjunto de valores Y previstos é: 40,88, 34,3, 33,36, 29,6, 23,02, 23,02, 22,08, 17,38, 17,38 e 10,8. Em seguida, o analista toma o valor Y previsto de cada ponto de dados, subtrai o valor Y real e esquadra o resultado. Por exemplo, usando o primeiro ponto de dados:
Erro ao quadrado = (40,88 - 40) ^ 2 = 0,77.
A lista completa de erros ao quadrado é: 0,77, 0,49, 11,29, 5,76, 16,16, 8,88, 3,69, 21,34, 0,38 e 23,04. A soma desses erros é 91,81. Em seguida, o analista pega o valor Y previsto e subtrai o valor real médio, que é 25,2. Usando o primeiro ponto de dados, isto é:
(40,88 - 25,2) 2 = 15,68 2 = 245,86. O analista resume todas essas diferenças, que neste exemplo, é igual a 763,52.
Por fim, para encontrar o R-quadrado, o analista pega a primeira soma de erros, divide-a pela segunda soma de erros e subtrai esse resultado de 1. Neste exemplo, é:
R-quadrado = 1 - (91,81 / 763,52) = 1 - 0,12 = 0,88.
Confirmando Tendência de Preço.
por Barbara Star, PhD Aqui está uma técnica usando inclinação de regressão linear e r-quadrado para confirmar a tendência de preço.
A regressão linear é um método estatístico usado por alguns traders para filtrar a estática, ou "ruído", criada pelos movimentos cotidianos ou bar-to-bar dos preços. Usando o método de mínimos quadrados, ele minimiza a quantidade de desvio entre os valores de preço para determinar uma linha de melhor ajuste. Em uma anterior STOCKS & amp; COMMODITIES artigo, mostrei que aplicar um indicador de regressão linear ao preço cria menos lag e mais oportunidades de negociação do que uma média móvel da mesma duração.
Tão útil quanto o indicador de regressão linear é para detectar desvios de preço, duas outras saídas derivadas de uma regressão linear podem ter valor igual para os operadores. Neste artigo, apresentarei dois indicadores menos conhecidos, r-quadrado e inclinação de regressão linear, que podem servir como adjuntos úteis ao determinar a tendência dos preços e a direção dos preços.
R-quadrado é uma medida de associação. Mede a proporção da variação explicada entre a regressão linear e os dados subjacentes que está rastreando. Para os comerciantes, isso significa que o cálculo do r-quadrado identifica o quão próximo o indicador de regressão linear corresponde ao movimento do preço subjacente; quanto maior o valor de r-quadrado, maior a correlação com o componente de tendência de preço. O código do eSignal pode ser encontrado na barra lateral 1, "código eSignal para r-quadrado".
O comprimento do parâmetro de lookback escolhido desempenha um papel na determinação do nível numérico no qual o r-quadrado assume uma correlação positiva com a regressão linear subjacente e o movimento de preços no nível de confiança de 95% estatístico; quanto menor o comprimento de r quadrado, maior o nível de r quadrado necessário. Por exemplo, um r-quadrado de 10 períodos atinge uma correlação positiva no nível de 0,40, enquanto um período de 50 só precisa exceder um nível de 0,08.
Embora não exista um parâmetro padrão para o comprimento do r-quadrado na negociação, ele deve corresponder ao comprimento da regressão linear subjacente. Acho que um indicador de r quadrado ao longo de 20 a 30 anos funciona bem para fins de negociação no final do dia. O período de 20-r-quadrado, que atinge uma correlação positiva em 0,20, será usado ao longo dos exemplos deste artigo.
O R-quadrado se move em uma escala de zero a 1,0. Um aumento de r-quadrado indica força de associação com um preço que está tendendo, enquanto leituras de r-quadrado em declínio sugerem uma correlação fraca ou enfraquecida entre regressão linear e preço.
O gráfico de preços da Nicor na Figura 1 contém uma sobreposição de uma regressão linear de 20 períodos sobre o preço e um indicador de período r de 20 anos no painel inferior. As setas vermelhas no gráfico de preços mostram quando o indicador de aumento de r quadrado atingiu ou ultrapassou ligeiramente os níveis de 0,20.
Em geral, quando o r-quadrado sobe de um nível baixo (por exemplo, zero, 0,01 ou 0,02), ele serve como um alerta de que o preço pode estar entrando ou retomando uma condição de tendência. No gráfico Nicor, as setas azuis no indicador após os pontos 1, 2 e 3 mostram um aumento de r ao quadrado. No entanto, como as setas na tabela de preços também ilustram, um aumento de r quadrado não corresponde necessariamente ao aumento dos preços. Dos baixos níveis em 1 e 3, o indicador subiu como o preço, mas não foi o caso do ponto 2, quando um aumento do r-quadrado foi seguido pela queda dos preços.
. Continua na edição de dezembro da Technical Analysis of STOCKS & amp; COMMODITIES.
Extraído de um artigo publicado originalmente na edição de dezembro de 2007 da Technical Analysis of.
STOCKS & amp; Revista COMMODITIES. Todos os direitos reservados. &cópia de; Copyright 2007, Análise Técnica, Inc.
Método R-Squared em Forex Trading.
& laquo; Índice de Momento Relativo.
Ciclo de Tendência Schaff & raquo;
Método R-Squared.
Esta lição cobrirá o seguinte.
Explicação e cálculo Como interpretar este indicador Sinais de negociação gerados pelo indicador.
Este é um método de regressão linear, que tenta determinar a força das tendências. Se os preços se moverem em linha reta mais de perto durante um certo período de tempo, isso sugere que a tendência será mais forte. As leituras de R-quadrado refletem a porcentagem do movimento de preços em termos de regressão linear. Caso a leitura do R-Quadrado durante 14 períodos esteja em 60%, isso indica que 60% do movimento do preço pode ser explicado usando a regressão linear. Os restantes 40% são considerados como ruído aleatório.
Uma tendência é estatisticamente significativa para uma linha de regressão linear de um determinado período, se tivermos um nível de confiança de 95%. Caso a leitura do R-Quadrado esteja abaixo do nível de confiança de 95% para um período específico, então não há tendência estatisticamente significativa.
Abaixo do número recomendado de períodos R-R e os correspondentes níveis de confiança de 95% são mostrados.
Número de períodos / valor crítico ao quadrado R igual a 95% Confiança:
A regressão linear e o R-Squared podem ser usados de várias maneiras para gerar sinais de negociação. Uma das abordagens combina o R-Squared com o Slope de Regressão Linear. O R-Squared determinará quão forte é a tendência subjacente, enquanto a inclinação da regressão linear determinará a direção da tendência & # 8211; se é positivo ou negativo. Os sinais serão produzidos de acordo com a direção da Inclinação da Regressão Linear, enquanto o R-Quadrado deve permanecer acima de seu nível de confiança de 95%.
Outra abordagem combina o R-Quadrado com um oscilador. Nesse caso, os sinais serão produzidos de acordo com as leituras do oscilador entre os níveis de sobrecompra e sobrevenda, enquanto o R-Squared deve permanecer em níveis baixos (significativamente abaixo do nível de confiança de 95%, o que sugere que market & # O comportamento da empresa é "menos moderno").
R-quadrado como uma estimativa de qualidade da curva de equilíbrio da estratégia.
Índice.
Introdução.
Toda estratégia de negociação precisa de uma avaliação objetiva de sua eficácia. Uma ampla gama de parâmetros estatísticos é usada para isso. Muitos deles são fáceis de calcular e mostram métricas intuitivas. Outros são mais difíceis na construção e interpretação de valores. Apesar de toda essa diversidade, existem muito poucas métricas qualitativas para estimar um valor não trivial, mas ao mesmo tempo óbvio - a suavidade da linha de saldo do sistema de negociação. Este artigo propõe uma solução para esse problema. Consideremos uma medida não trivial, como o coeficiente de determinação R-quadrado (R ^ 2), que calcula a estimativa qualitativa da linha de equilíbrio mais atraente, suave e ascendente que cada comerciante deseja.
É claro que o terminal MetaTrader 5 já fornece um relatório resumido desenvolvido, mostrando as principais estatísticas do sistema de negociação. No entanto, os parâmetros apresentados nem sempre são suficientes. Felizmente, o MetaTrader 5 fornece a capacidade de escrever parâmetros personalizados de estimativa, que é o que vamos fazer. Não apenas construiremos o coeficiente de determinação R ^ 2, mas também tentaremos estimar seus valores, compará-los com outros critérios de otimização, obter regularidades seguidas das estimativas estatísticas básicas.
Crítica das estatísticas comuns para avaliação do sistema de negociação.
Toda vez que um relatório comercial é gerado ou os resultados dos backtests do sistema de negociação são estudados, são apresentados vários "números mágicos", que podem ser analisados para tirar conclusões sobre a qualidade do negócio. Por exemplo, um relatório de teste típico no terminal MetaTrader 5 é assim:
Fig. 1. Resultado do backtest de uma estratégia de negociação.
Ele contém várias estatísticas ou métricas interessantes. Vamos analisar o mais popular deles e considerar objetivamente seus pontos fortes e fracos.
Lucro Líquido Total. A métrica mostra o montante total de dinheiro que foi ganho ou perdido durante o período de teste ou negociação. Este é um dos parâmetros comerciais mais importantes. O principal objetivo de cada comerciante é maximizar o lucro. Existem várias maneiras de fazer isso, mas o resultado final é sempre um, que é o lucro líquido. O lucro líquido nem sempre depende do número de negócios e é praticamente independente de outros parâmetros, embora o contrário não seja verdadeiro. Assim, é invariante em relação a outras métricas e, portanto, pode ser usado independentemente delas. No entanto, essa medida também tem sérios inconvenientes.
Primeiro, o lucro líquido é diretamente dependente de se a capitalização é usada ou não. Quando a capitalização é usada, o lucro cresce de forma não linear. Freqüentemente há um crescimento exponencial e explosivo do depósito. Nesse caso, os números registrados como lucro líquido no final do teste geralmente atingem valores astronômicos e não têm nada a ver com a realidade. Se um lote fixo é negociado, os incrementos de depósito são mais lineares, mas, mesmo neste caso, o lucro depende do volume selecionado. Por exemplo, se o teste, com o resultado mostrado na tabela acima, foi realizado usando um lote fixo com o volume de 0,1 contato, então o lucro obtido de $ 15.757 pode ser considerado um resultado notável. Se o volume da transação foi de 1,0 lote, o resultado do teste é mais do que modesto. É por isso que os testadores experientes preferem definir um lote fixo para 0,1 ou 0,01 no mercado Forex. Nesse caso, a variação mínima no saldo é igual a um ponto do instrumento, o que torna a análise dessa característica mais objetiva.
Em segundo lugar, o resultado final depende da duração do período testado ou da duração do histórico comercial. Por exemplo, o lucro líquido especificado na tabela acima poderia ter sido recebido em 1 ano ou em 5 anos. E em cada caso, o mesmo valor significa uma eficácia completamente diferente de uma estratégia.
E terceiro, o lucro bruto é fixado no momento da última data. No entanto, pode haver uma forte redução do capital naquele momento, embora possa não ter existido há uma semana. Em outras palavras, esse parâmetro é profundamente dependente dos pontos inicial e final selecionados para testar ou gerar o relatório.
Fator Lucro. Esta é sem dúvida a estatística mais popular para os comerciantes profissionais. Enquanto os novatos querem ver apenas o lucro total, os profissionais acham essencial conhecer o volume de negócios dos fundos investidos. Se a perda de um negócio é considerada como um tipo de investimento, então o Fator de Lucro mostra a marginalidade da negociação. Por exemplo, se forem feitos apenas dois negócios, o primeiro perdeu $ 1000 e o segundo ganhou $ 2000, o fator de lucro desta estratégia será $ 2000/1000 = 2.0. Esta é uma figura muito boa. Além disso, o fator de lucro não depende do período de tempo de teste nem do volume do lote de base. Portanto, os profissionais gostam tanto. No entanto, também tem desvantagens.
Um deles é que os valores do fator de lucro são altamente dependentes do número de transações. Se houver apenas alguns negócios, obter um fator de lucro igual a 2,0 ou mesmo 3,0 unidades é bem possível. Por outro lado, se houver vários acordos, obter um Fator de Lucro de 1,5 unidades seria um grande sucesso.
Expectativa de pagamento. É uma característica muito importante, indicando o retorno médio da transação. Se a estratégia é lucrativa, o resultado esperado é positivo; estratégias perdedoras têm um valor negativo. Se o retorno esperado for comparável aos custos de spread ou comissão, a capacidade de tal estratégia ganhar em uma conta real é duvidosa. Normalmente, o Pagamento Esperado pode ser positivo no Testador de Estratégia sob condições ideais de execução, e o gráfico de balanço pode ser uma linha ascendente suave. No comércio ao vivo, no entanto, o retorno médio do negócio pode ser um pouco pior do que o resultado calculado teoricamente devido a possíveis re-cotações ou derrapagens, que podem ter um impacto crítico no resultado da estratégia e causar perdas reais.
Também tem suas desvantagens. O principal deles está relacionado ao número de transações também. Se houver poucos negócios, obter um grande retorno esperado não é um problema. Por outro lado, com um grande número de negócios, o retorno esperado tende a zero. Como é uma métrica linear, não pode ser usada em estratégias de implementação de sistemas de gerenciamento de dinheiro. Mas os traders profissionais o consideram altamente e usam em sistemas lineares com um lote fixo, comparando-o com o número de negócios.
Número de negócios. Esse é um parâmetro importante que afeta a maioria das outras características, explicitamente ou indiretamente. Suponha que um sistema de negociação vença em 70% dos casos. Ao mesmo tempo, os valores absolutos de vitória e perda são iguais, sem outros possíveis resultados de um acordo na tática de negociação. Tal sistema parece ser excelente, mas o que acontece é que a eficiência é avaliada apenas com base nos dois últimos negócios? Em 70% dos casos, um deles será lucrativo, mas a probabilidade de ambos os negócios serem lucrativos é de apenas 49%. Ou seja, o resultado total de dois negócios será zero em mais da metade dos casos. Consequentemente, em metade dos casos, as estatísticas mostram que a estratégia é incapaz de ganhar dinheiro. Seu fator de lucro será sempre igual a um, o retorno esperado e o lucro será zero, outros parâmetros também indicarão eficiência zero.
É por isso que o número de transações deve ser suficientemente grande. Mas o que se entende por suficiência? É geralmente aceito que qualquer amostra deve conter pelo menos 37 medições. Este é um número mágico nas estatísticas, marca o limite inferior da representatividade de um parâmetro. Naturalmente, essa quantidade de negócios não é suficiente para avaliar um sistema de negociação. Pelo menos 100-10 negócios precisam ser feitos para que o resultado seja confiável. Além disso, isso também não é suficiente para muitos comerciantes profissionais. Eles projetam sistemas que fazem pelo menos 500 a 1000 negócios e depois usam esses resultados para considerar a possibilidade de executar o sistema para negociação ao vivo.
Comportamento de parâmetros estatísticos comuns ao testar sistemas de negociação.
Os principais parâmetros nas estatísticas dos sistemas de negociação foram discutidos. Vamos ver o seu desempenho na prática. Ao mesmo tempo, vamos nos concentrar em suas desvantagens para ver como a adição proposta na forma de estatística R ^ 2 pode ajudar a resolvê-los. Para fazer isso, usaremos o EA 2.0 do CImpulse pronto para uso, que é descrito no artigo "Expert Advisor Universal: Uso de Pedidos Pendentes". Ele foi escolhido por sua simplicidade e por ser otimizável, diferentemente dos especialistas do pacote padrão MetaTrader 5, que é extremamente importante para os propósitos deste artigo. Além disso, uma certa infraestrutura de código será necessária, o que já foi escrito para o mecanismo de negociação do CStrategy, portanto, não há necessidade de fazer o mesmo trabalho duas vezes. Todos os códigos-fonte para o coeficiente de determinação são escritos de forma que possam ser facilmente usados fora do CStrategy - por exemplo, em bibliotecas de terceiros ou especialistas em procedimentos.
Lucro Líquido Total. Como já mencionado, o lucro líquido (ou total) é o resultado final do que o comerciante quer obter. Quanto maior o lucro, melhor. No entanto, a avaliação de uma estratégia baseada no lucro final nem sempre garante o sucesso. Vamos considerar os resultados da estratégia CImpulse 2.0 no par EURUSD para o período de teste de 2015/01/15 a 2017.10.10:
Fig. 2. A estratégia ICmpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 120, StopPercent: 0.67.
A estratégia é vista mostrando um crescimento constante do lucro total neste intervalo de teste. É positivo e equivale a 11.894 dólares para negociação de um contrato. Este é um bom resultado. Mas vamos ver como é um cenário diferente, onde o lucro final está próximo do primeiro caso:
Fig. 3. A estratégia ICmpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 110, StopPercent: 0.24.
Apesar do fato de que o lucro é quase o mesmo em ambos os casos, eles parecem sistemas de negociação completamente diferentes. O lucro final no segundo caso também parece aleatório. Se o teste tivesse terminado em meados de 2015, o lucro teria sido próximo de zero.
Aqui está outra execução mal sucedida da estratégia, com o resultado final, no entanto, também muito próximo do primeiro caso:
Fig. 4. ICmpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 45, StopPercent: 0.44.
É claro no gráfico que o principal lucro foi recebido no primeiro semestre de 2015. É seguido por um período prolongado de estagnação. Tal estratégia não é uma opção viável para negociação ao vivo.
Fator Lucro. A métrica do fator de lucro é muito menos dependente do resultado final. Esse valor depende de cada acordo e mostra a proporção de todos os fundos ganhos para todos os fundos perdidos. Pode ser visto que na figura 2, o fator de lucro é bastante alto; na Fig. 4, é menor; e na Fig. 3, está quase na fronteira entre sistemas lucrativos e não rentáveis. Mas, no entanto, o fator de lucro não é uma característica universal que não pode ser enganada. Vamos examinar outros exemplos, em que as indicações do Profit Factor não são tão óbvias:
Fig. 5. ICmpulse, EURUSD, 1H, 2015.01.15 - 2017.10.01, PeriodMA: 60, StopPercent: 0.82.
A Fig. 5 mostra o resultado de um teste de estratégia executado com um dos maiores valores de fator de lucro. O gráfico do balanço parece bastante promissor, mas a estatística obtida é enganosa, pois o valor do Fator Lucro é superestimado devido ao pequeno número de negociações.
Vamos verificar essa afirmação de duas maneiras. A primeira maneira: descobrir a dependência do fator de lucro no número de negociações. Isso é feito otimizando a estratégia CImpulse no testador de estratégias usando uma ampla gama de parâmetros:
Fig. 6. Otimização do ICmpulse usando uma ampla gama de parâmetros.
Salve os resultados da otimização:
Fig. 7. Exportando resultados de otimização.
Agora podemos construir um gráfico de dependência do valor do Fator Lucro no número de negociações. No Excel, por exemplo, isso pode ser feito simplesmente selecionando as colunas correspondentes e pressionando o botão para plotar um gráfico de dispersão na guia Gráficos.
Fig. 8. Dependência do Fator Lucro no número de negócios.
O gráfico mostra claramente que as execuções com um fator de lucro alto sempre têm poucas negociações. Por outro lado, com um grande número de negociações, o fator de lucro é virtualmente igual a um.
A segunda maneira de determinar que os valores do ProfitFactor, nesse caso, dependem do número de negociações e não da qualidade da estratégia está relacionada à realização de um teste O uto de teste geral (OOS). Aliás, essa é uma das formas mais confiáveis de determinar a robustez dos resultados obtidos. Robustez é uma medida da estabilidade de um método estatístico em estimativas. OOS é eficaz para testar não apenas o ProfitFactor, mas também outras indicações. Para os nossos propósitos, os mesmos parâmetros serão selecionados, mas o intervalo de tempo será diferente - a partir de 2012.01.01 a 2015.01.01:
Fig. 9. Testando a estratégia fora da amostra.
Como pode ser visto, o comportamento da estratégia vira de cabeça para baixo. Gera perda em vez de lucro. Este é um resultado lógico, pois o resultado obtido é quase sempre aleatório com um número tão pequeno de negociações. Isto significa que uma vitória aleatória em um intervalo de tempo é compensada por uma perda em outra, o que é bem ilustrado pela Fig. 9.
Expectativa de pagamento. Nós não vamos nos debruçar muito sobre este parâmetro, porque suas falhas são semelhantes às do Profit Factor. Aqui está o gráfico de dependência do resultado esperado sobre o número de negociações:
Fig. 10. Dependência do Pagamento Esperado no número de negócios.
Pode ser visto que quanto mais negociações são feitas, menor é o retorno esperado. Essa dependência é sempre observada para estratégias lucrativas e não rentáveis. Portanto, Expected Payoff não pode servir como único critério para a otimização de uma estratégia de negociação.
Requisitos para o critério de teste do sistema de negociação.
Após considerar os principais critérios de avaliação estatística de um sistema de negociação, concluiu-se que a aplicabilidade de cada critério é limitada. Cada um deles pode ser anulado com um exemplo em que a métrica tem um bom resultado, enquanto a estratégia em si não tem um bom resultado.
Não há critérios ideais para determinar a robustez de um sistema de negociação. Mas é possível formular as propriedades que um forte critério estatístico deve ter.
Independência da duração do período de teste. Muitos parâmetros de uma estratégia de negociação dependem de quanto tempo o período de teste é. Por exemplo, quanto maior o período testado para uma estratégia lucrativa, maior o lucro final. Depende da duração e do fator de recuperação. É calculado como a relação entre o lucro total e o rebaixamento máximo. Como o lucro depende do período, o fator de recuperação também cresce com o aumento no período de teste. Invariância (independência) em relação ao período é necessária para comparar a eficácia de diferentes estratégias em diferentes períodos de teste; Independência do endpoint de teste. Por exemplo, se uma estratégia "permanece à tona" meramente esperando que as perdas passem, o ponto final pode ter um impacto crucial no saldo final. Se o teste for concluído no momento de tal "overstaying", a perda flutuante (patrimônio líquido) se tornará o saldo e uma redução significativa será recebida na conta. A estatística deve ser protegida de tal fraude e fornecer uma visão geral objetiva da operação do sistema de negociação. Simplicidade de interpretação. Todos os parâmetros do sistema de negociação são quantitativos, isto é, cada estatística é caracterizada por uma figura específica. Este valor deve ser intuitivo. Quanto mais simples a interpretação do valor obtido, mais compreensível é o parâmetro. Também é desejável que o parâmetro esteja dentro de certos limites, uma vez que a análise de números grandes e potencialmente infinitos é frequentemente complicada. Resultados representativos com um pequeno número de negócios. Este é sem dúvida o requisito mais difícil entre as características de uma boa métrica. Todos os métodos estatísticos dependem do número de medições. Quanto mais deles, mais estáveis são as estatísticas obtidas. Claro, resolver este problema em uma pequena amostra é completamente impossível. No entanto, é possível mitigar os efeitos causados pela falta de dados. Para este propósito, vamos desenvolver dois tipos de função para avaliar R ao quadrado: uma implementação irá construir este critério com base no número de transações disponíveis. O outro calcula o critério usando o lucro flutuante da estratégia (equity).
Antes de prosseguir diretamente para a descrição do coeficiente de determinação R ^ 2, vamos examinar seus componentes em detalhes. Isso ajudará a entender o propósito desse parâmetro e os princípios nos quais ele se baseia.
Regressão linear.
A regressão linear é uma dependência linear de uma variável y de outra variável independente x, expressa pela fórmula y = ax + b. Nesta fórmula, um é o multiplicador, b é o coeficiente de polarização. Na realidade, pode haver várias variáveis independentes, e esse modelo é chamado de modelo de regressão linear múltipla. No entanto, vamos considerar apenas o caso mais simples.
A dependência linear pode ser visualizada na forma de um gráfico simples. Pegue o gráfico diário EURUSD de 2017/06/21 a 2017/09/21. Este segmento não é selecionado por acaso: durante este período, uma tendência ascendente moderada foi observada neste par de moedas. É assim que fica no MetaTrader:
Fig. 11. Dinâmica do preço do EURUSD de 21 de junho de 2017 a 21 de agosto de 1717, período de tempo diário.
Salve esses dados de preço e use-os para plotar um gráfico, por exemplo, no Excel.
Fig. 12. Taxas EURUSD (preço de fechamento) como um gráfico no Excel.
Aqui, o eixo Y corresponde ao preço e X é o número ordinal de medição (as datas foram substituídas por números ordinais). No gráfico resultante, a tendência ascendente é visível a olho nu, mas precisamos obter uma interpretação quantitativa dessa tendência. A maneira mais simples é desenhar uma linha reta, que se ajustaria à tendência examinada com mais precisão. É chamado de regressão linear. Por exemplo, a linha pode ser desenhada assim:
Fig. 13. Regressão linear descrevendo uma tendência de alta, desenhada manualmente.
Se o gráfico é bastante suave, é possível desenhar tal linha, que os pontos do gráfico se desviam da distância mínima. E, inversamente, para um gráfico com uma grande amplitude, não é possível escolher uma linha que descreva com precisão suas alterações. Isso se deve ao fato de que a regressão linear tem apenas dois coeficientes. De fato, os cursos de geometria nos ensinaram que dois pontos são suficientes para traçar uma linha. Devido a isso, não é fácil encaixar uma linha reta em um gráfico "curvo". Esta é uma propriedade valiosa que será útil mais adiante.
Mas como descobrir como desenhar uma linha reta corretamente? Métodos matemáticos podem ser usados para calcular de forma otimizada os coeficientes de regressão linear de tal forma que todos os pontos disponíveis tenham a soma mínima de distâncias para esta linha. Isso é explicado no gráfico a seguir. Suponha que haja 5 pontos arbitrários e duas linhas passando por eles. Das duas linhas, é necessário selecionar aquele com a menor soma de distâncias aos pontos:
Fig. 14. Seleção da regressão linear mais adequada.
É claro que, das duas variantes de regressão linear, a linha vermelha descreve melhor os dados dados: os pontos # 2 e # 6 estão significativamente mais próximos da linha vermelha do que da linha preta. Os pontos restantes são aproximadamente equidistantes tanto da linha preta quanto da vermelha. Matematicamente, é possível calcular as coordenadas da linha que melhor descrevem essa regularidade. Não vamos calcular esses coeficientes manualmente e usar a biblioteca matemática AlgLib pronta para uso.
Correlação.
Depois que a regressão linear é calculada, é necessário calcular a correlação entre essa linha e os dados para os quais ela é calculada. Correlação é relação estatística de duas ou mais variáveis aleatórias. Nesse caso, a aleatoriedade das variáveis significa que as medidas dessas variáveis não são interdependentes. A correlação é medida de -1,0 a +1,0. Um valor próximo de zero indica que as variáveis examinadas não possuem inter-relações. O valor de +1.0 significa uma dependência direta, -1.0 mostra uma dependência inversa. Correlação é calculada por várias fórmulas diferentes. Aqui, o coeficiente de correlação de Pearson será usado:
dx e dy na fórmula correspondem às variâncias calculadas para as variáveis aleatórias xe y. Variância é uma medida da variação do traço. Nos termos mais gerais, pode ser descrito como a soma dos quadrados das distâncias entre os dados e a regressão linear.
O coeficiente de correlação dos dados para sua regressão linear mostra quão bem a linha reta descreve esses dados. Se os pontos de dados estão localizados a uma grande distância da linha, a variação é alta e a correlação é baixa, e vice-versa. A correlação é muito fácil de interpretar: um valor zero significa que não há inter-relação entre a regressão e os dados; um valor próximo a um mostra uma forte dependência direta.
Relatórios no MetaTrader têm uma métrica estatística especial. Chama-se Correlação LR e mostra a correlação entre a curva de equilíbrio e a regressão linear encontrada para essa curva. Se a curva de equilíbrio for suave, a aproximação a uma linha reta será boa. Neste caso, o coeficiente de correlação LR será próximo de 1,0, ou pelo menos acima de 0,5. Se a curva de equilíbrio for instável, as subidas são alternadas por quedas e o coeficiente de correlação tende a zero.
A Correlação LR é um parâmetro interessante. Mas nas estatísticas, não é habitual comparar os dados e a regressão descritiva diretamente através do coeficiente de correlação. The reason for this will be discussed in the next section.
Coefficient of determination R^2.
Calculation method for the coefficient of determination R^2 is similar to calculation method for LR Correlation. But the final value is additionally squared. It can take values from 0.0 to +1.0. This figure shows the share of the explained values from the total sample . Linear regression serves as an explanatory model. Strictly speaking, the explanatory model does not have to be a linear regression, others can be used as well. However, the R^2 values do not require further processing for a linear regression. In more complex models, the approximation is usually better and the R^2 values must be additionally reduced by special "penalties" for a more adequate estimation.
Let us have a closer look at what the explanatory model shows. To do this, we will perform a small experiment: use the specialized programming language R-Project and generate a random walk, for which the required coefficient will be calculated. Random walk is a process with characteristics quite similar to real financial instruments. To obtain a random walk, it is sufficient to consecutively add several random numbers distributed according to the normal law.
The source code in R with a detailed description of what is being done:
The rnorm function returns different data every time, so if you want to repeat this experiment, the graph will have a different look.
The result of the presented code:
Fig. 15. Random walk and linear regression for it.
The resulting chart is similar to that of an arbitrary financial instrument. Its linear regression has been calculated and output as a black line of the chart. At first glance, its description of random walk dynamics is quite mediocre. But we need a quantitative estimation of the linear regression quality. For this purpose, the 'summary' function is used, which outputs the summarized statistics on the regression model:
Here, one figure is of the most interest — R-squared. This metric indicates a value of 0.5903. Consequently, the linear regression describes 59.03% of all values, and the remaining 41% are left unexplained.
This is a very sensitive indicator that responds well to a smooth, flat line of data. To illustrate this, let us continue the experiment: introduce a stable growth component to the random data. To do this, change the mean value or the expected value by 1/20 of the variance of the initially generated data:
The resulting graph is now much closer to a straight line:
Fig. 16. Random walk with positive expected value, equal to 1/20 of its variance.
The statistics for it are as follows:
It is clear that R-squared is significantly higher and has a value of 0.8829. But let us go for the extra mile and double the determination component of the chart, up to 1/10 of the standard deviation of the initial data. The code to process this is similar to the previous code, but with division by 10.0 and not by 20.0. The new graph is now almost completely resembles a straight line:
Fig. 17. Random walk with positive expected value, equal to 1/10 of its variance.
Calculate its statistics:
R-squared became even higher and amounted to 0.9485. This graph is very much like the balance dynamics of the desired profitable trading strategy. Let us go for the extra mile again. Increase the expected value up to 1/5 of the standard deviation:
Fig. 18. Random walk with positive expected value, equal to 1/5 of its variance.
It has the following statistics:
It is clear that R-squared is now almost equal to one. The chart clearly shows that the random data in the form of the green line almost completely lie on the smooth straight line.
The arcsine theorem and its contribution to the estimation of linear regression.
There is a mathematical proof that a random process eventually moves farther away from its original point. It was named the first and second arcsine theorems. They will not be discussed in details, only the corollary of these theorems will be defined.
Based on them, trends in random processes are rather inevitable than unlikely. In other words, there are more random trends in such processes than random fluctuations near the initial point. This is a very important property, which makes a significant contribution to the evaluation of statistical metrics. This is especially evident for the linear regression coefficient (LR Correlation). Trends are better described by linear regression that flats. This is due to the fact that trends contain more movements in one direction, which looks line a smooth line.
If there are more trends in random processes that flats, then LR Correlation will also overestimate its values in general. To see this nontrivial effect, let us try generating 10000 independent random walks with a variance of 1.0 and zero expected value. Let us calculate LR Correlation for each such chart, and then plot a distribution of these values. For these purposes, write a simple test script in R:
The script calculates both LR Correlation and R^2. The difference between them will be seen later. A small addition has been made to the script. The resulting correlation coefficient will be multiplied by the final sign of the synthetic graph. If the final result is less than zero, the correlation will be negative; otherwise it is positive. This is done to easily and quickly separate negative outcomes from positive ones without resorting to other statistics. This is how LR Correlation works in MetaTrader 5, the same principle will be used for R^2.
So, let us plot the distribution of LR Correlation for 10000 independent samples, each of which consists of 1000 measurements:
The resulting graph clearly indicates :correctness of the definition:
Fig. 19. Distribution of LR-Correlation for 10000 random walks.
As seen from the experiment, LR-Correlation values are substantially overestimated in the range of +/- 0.75 - 0.95. This means that LR-Correlation often falsely gives a high positive estimate where it should not.
Now let us consider how R^2 behaves on the same sample:
Fig. 20. Distribution of R^2 for 10000 random walks.
The R^2 value is not too high, although its distribution is uniform. It is surprising how a simple mathematical action (raising to the power of two) completely negates the undesirable tip effects of the distribution. This is the reason why LR-Correlation can not be analyzed directly — additional mathematical transformation is necessary. Also, note that R^2 moves a significant fraction of the analyzed virtual balances of strategies to a point near zero, while LR-Correlation gives them stable average estimates. This is a positive property.
Collecting the strategy equity.
Now that the theory has been studied, it remains to implement R-squared in the MetaTrader terminal. Of course, we could go for the easy way and calculate it for the deals in history. However, an additional improvement will be introduced. As mentioned before, any statistical parameter must be resistant to a small number of deals. Unfortunately, R-squared can unreasonably inflate its value if there are only a few deals on the account, like any other statistic. In order to avoid this, calculate it based on the values of equity — floating profit. The idea behind this is that if the EA makes only 20 deals per year, it is very difficult to estimate its efficiency. Its result is most likely random. But if the balance of this EA is measured at a specified periodicity (for example, once an hour), there will be a fair amount of points for plotting the statistic. In this case, there will be more than 6000 measurements.
In addition, such measurement counteracts systems that do not fix their floating loss, thus hiding it. Drawdown by equity is present, but not by balance. A statistic calculated based on balance does not warn about occurring problems. However, a metric calculated with consideration of the floating profit/loss reflects the objective situation on the account.
The equity of the strategy will be collected in an unconventional way. This is because the collection of these values requires two main points to be taken into account:
Frequency of statistics collection Determination of events, receiving which requires the equity to be checked.
For example, an Expert Advisor works only by timer, on the H1 timeframe. It is tested in the "Opening prices only" mode. Therefore, the data for this EA cannot be collected more than once an hour, and screening of these data can be performed only when the OnTimer event is raised. The most effective solution is simply to use the power of the CStrategy engine. The fact is that CStrategy collects all events into a single event handler, and it monitors the necessary timeframe automatically. Thus, the optima solution is to write a special agent strategy, which calculates all the required statistics. It will be created by the CManagerList strategy manager. The class will only add its agent to the list of strategies, which will monitor the changes on the account.
The source code of this agent is provided below:
The agent itself consists of two methods: redefined OnEvent and a method for returning the equity values. Here, the main interest is on the CTimeSeries class, which appears in CStrategy for the first time. It is a simple table, with the data added in the format: date, value, column number . All stored values are sorted by time. The required date is accessed via binary search, which substantially speeds up the work with the collection. The OnEvent method checks if the current event is the opening of a new bar, and if so, simply stores the new equity value.
R^2 reacts to a situation where there are no deals for a long time. At such times, the unchanged equity values will be recorded. The equity graph forms a so-called "ladder". To prevent this, the method compares the value with the previous value. If the values match, the record is skipped. Thus, only the changes in equity fall into the list.
Let us integrate this class to the CStrategy engine. Integration will be performed from above, at the level of CStrategyList. This module is suitable for calculation of custom statistics. There can be several custom statistics. Therefore, an enumeration listing all possible statistic types is introduced:
The enumeration above shows that the custom optimization criterion has three types: R-squared based on the result of trades, R-squared based on the equity data and no calculation of statistics.
Add the ability to configure the type of custom calculation. To do this, supply the CStrategyList class with additional SetCustomOptimaze * methods:
Each of these methods sets the value of its internal variable of ENUM_CUSTOM_TYPE to m_custom_type and the second parameter, equal to the correlation type ENUM_CORR_TYPE:
This additional parameters must be mentioned separately. The fact is that R^2 is none other but the correlation between the graph and its linear model. However, the correlation type itself may differ. Use the AlgLib mathematical library. It supports two methods for calculating the correlation: Pearson's and Spearman's. Pearson's formula is classic and well-suited to homogeneous, normally distributed data. Spearman's Rank-Order correlation is more resistant to price spikes, which are often observed on the market. Therefore, our calculation will allow working with each variant of calculating R^2.
Now that all data are prepared, proceed to the calculation of R^2. It is moved to separate functions:
They will be located in a separate file named RSquare. mqh. The calculation is arranged in the form of functions, so that users would be able to easily and quickly include this calculation mode in their project. In this case, there is no need to use CStrategy. For example, to calculate R^2 in your expert, simply redefine the OnTester system function:
When it is necessary to calculate the strategy equity, however, users who do not employ CStrategy will have to do it themselves.
The last thing that needs to be done in CStrategyList is to define the OnTester method:
Now consider the implementation of functions CustomR2Equity and CustomR2Balance .
Calculating the coefficient of determination R^2 using AlgLib.
The coefficient of determination R^2 is implemented using AlgLib — a cross-platform library of numerical analysis. It helps calculate various statistical criteria, from simple to the most advanced ones.
Here are the steps for calculating the coefficient.
Get the values of equity and convert them into matrix M[x, y], where x is the number of measurement, y is the equity value. For the obtained matrix, calculate the a and b coefficients of the linear regression equation.
These steps are performed by the CustomR2Equity function. Its source code is presented below:
This code refers to three statistical methods: CAlgLib::LRLine, CAlglib::PearsonCorr2 and CAlglib::SpearmanCorr2. The main one is CAlgLib::LRLine, which directly calculates the linear regression coefficients.
Now let us describe the second function for calculating R^2: CustomR2Balance. As the name implies, this function calculates the value based on the deals made. All its work lies in forming an array of the double type, which contains the dynamics of balance, by iterating over all deals in history.
Once the array is formed, it is passed to the CustomR2Equity function mentioned earlier. In fact, the CustomR2Equity function is universal. It calculates the R^2 value for any data contained in the equity[] array, whether it is the balance dynamics or the value of the floating profit.
The last step is a small modification in the code of the CImpulse EA, namely, the override of the OnTester system event:
This function sets the type of the custom parameter, and then returns its value.
Now we can see the calculated coefficient in action. Once the CImpulse strategy backtest starts, the parameter will appear in the report:
Fig. 21. The value of R^2 as a custom optimization criterion.
Using the R-squared parameter in practice.
Now that R-squared is built-in as a custom optimization criterion, it is time to try it out in practice. This is done by optimizing CImpulse on the М15 timeframe of the EURUSD currency pair. Save the received optimization result to an Excel file, and then use the obtained statistics to compare several runs selected according to different criteria.
The complete list of optimization parameters is provided below:
The range of the EA parameters is listed in the table:
Комментариев нет:
Отправить комментарий