Sunday 13 August 2017

Quantstrat Forex Paz


Na minha última publicação, falei sobre o uso da Desigualdade de Cauchy-Schwarz para combinar períodos semelhantes de histórico de preços entre si. Este post é sobre o teste mais rigoroso dessa idéia. Eu decidi usar o tamanho do efeito como o teste de escolha, para o qual há boas apresentações aqui e aqui. Uma descrição básica da forma como eu implementei o teste é a seguinte: - Escolha aleatoriamente uma seção do histórico de preços, que será usado como o histórico de preços para o algoritmo de seleção para corresponder. Pegue as 5 barras consecutivas imediatamente após a seção acima do histórico de preços E armazene como alvo Crie um grupo de controle de combinações aleatórias com o alvo acima, escolhendo aleatoriamente 10 itens separados de 5 barras de histórico de preços e calculando os valores de Cauchy-Schwarz desses 10 em relação ao alvo e gravando o valor médio desses valores. Repita este passo N vezes para criar uma distribuição de valores de Cauchy-Schwarz, alinhados aleatoriamente, de qualidade média a alvo. Em virtude do teorema do limite central, pode-se esperar que esta distribuição seja aproximadamente normal. Usando o algoritmo de correspondência (conforme descrito na publicação anterior), obtenha as 10 correspondências mais próximas no histórico de preços para a seleção aleatória da etapa 1. Obtenha as 5 barras consecutivas Imediatamente após as 10 partidas da etapa 4 e calcular seus valores de Cauchy-Schwarz viz-a-viz o alvo e registrar o valor médio desses 10 valores. Este valor médio é o valor experimental Usando o desvio padrão e médio da distribuição do grupo de controle do passo 3, calcule o tamanho do efeito do valor experimental e registre esse valor de tamanho de efeito Repita todas as etapas M mais adiante para formar uma distribuição de valor de tamanho de efeito A premissa básica que está sendo testada aqui é que os padrões, até certo ponto, repetem e que eles têm algum valor preditivo para seguir imediatamente as barras de preços. A estatística de teste utilizada é o próprio valor de Cauchy-Schwarz, pelo que um valor alto indica uma semelhança próxima no padrão de preços e, portanto, na previsibilidade. O teste real do tamanho do efeito é a diferença entre os meios. O código para implementar este teste é dado na caixa de código abaixo, e basicamente é uma extensão do código na minha publicação anterior. Resultados Executando o código no par forex do EURUSD e os histogramas de traçado dão isso: onde os números 1 e 2 são para os valores de Cauchy-Schwarz e as figuras 3 e 4 são valores de correlação de distância para fins comparativos e que eu não discuto nesta publicação. Ao ver isso pela primeira vez, fiquei um pouco surpreso, pois esperava que a (s) distribuição (s) de tamanho do efeito fosse aproximadamente normal porque todos os cálculos de teste são baseados em médias. No entanto, foi uma agradável surpresa devido ao pico de valores no lado direito, mostrando um possível tamanho de efeito substancial. Para tornar as coisas mais claras, aqui estão os percentis dos quatro histogramas acima: onde a primeira coluna contém os percentis e as colunas 2, 3, 4 e 5 correspondem às figuras 1, 2, 3 e 4 acima e contêm os valores do tamanho do efeito . Olhando para a 1ª coluna, pode-se ver que se a escala de Cohens é aplicada, mais de 50 dos valores do tamanho do efeito podem ser descritos como grandes, com aproximadamente 15 demais, sendo efeito médio. Em suma, um teste bem sucedido, o que me encoraja a adotar a desigualdade de Cauchy-Schwarz, mas antes de eu faço, há um ou dois ajustes mais que eu gostaria de testar. Este será o assunto da minha próxima postagem. Domingo, 6 de abril de 2014 Na minha publicação anterior, eu disse que estava olhando para o meu código para o ciclo dominante. Principalmente com vista a melhorar o meu código ou talvez substituir o seu posicionamento por algum outro método de cálculo do período do ciclo. Para este fim, recentemente inscrevi-se em um curso discreto de sinais e sistemas oferecidos pela edx. Uma das palestras foi sobre a desigualdade de Cauchy-Schwarz. Sobre o qual é essa publicação. O uso básico que tenho em mente é usar a desigualdade para selecionar seções de histórico de preços que são mais parecidas entre si e usá-las como casos de treinamento para o treinamento de rede neural. Meu código inicial de oitava é fornecido na caixa de código abaixo: - Depois de algum código básico de limpeza para carregar o arquivo de preço de interesse e normalizar os preços, uma seção aleatória do histórico de preços é selecionada e, em um loop, o N superior Na história são encontrados usando a desigualdade como a métrica de correspondência. Um valor de 0 significa que a série de preços a ser comparada é ortogonal. E, portanto, tão diferentes quanto possível, enquanto um valor de 1 significa o contrário. Existem dois tipos de correspondência com o preço bruto combinado com o preço bruto, e um preço suavizado alinhado com o preço suavizado. Primeiro, embora o código acima escolha aleatoriamente uma seção de histórico de preços para corresponder, eu deliberadamente da mão escolhei uma seção para corresponder para fins ilustrativos nesta publicação. Abaixo está a seção onde a seção termina no ponto em que o cursor vertical cruza o preço e começa no alto logo abaixo do cursor horizontal, para um período de retrocesso de 16 barras. Para o contexto, aqui está uma visualização ampliada. Eu escolhi esta seção porque representa um conjunto difícil de preços, ou seja, movendo-se de lado no final de um retracement e talvez reagindo a uma ação de baixo desempenho anterior como resistência, além de estar em uma zona de retracement Fibonacci. O primeiro conjunto de saídas de código é este gráfico que mostra os valores de Cauchy-Schwarz para todo o intervalo da série de preços, sendo o painel superior valores da combinação de preços brutos eo painel inferior sendo a combinação de preços suavizados. Observe que no código os valores são ajustados para zero depois que a função máxima selecionou a melhor combinação e, portanto, as espigas a zero mostram os pontos no tempo em que o N superior, neste caso 10, foram tiradas partidas. O próximo resultado do gráfico mostra os preços normalizados com os quais a correspondência é feita, sendo o ciano a amostra original (o mesmo em todas as subparcelas), sendo o vermelho o preço bruto combinado e o amarelo sendo o preço suavizado. A correspondência mais próxima é a subtrama superior esquerda e, em seguida, a leitura horizontal e inferior ao 10º melhor na subtração inferior direita. O próximo gráfico mostra as correspondências de preços não normalizadas, para a combinação de preços brutos, sendo a amostra original azul e próxima para a correspondência suavizada e, finalmente, lado a lado para facilitar a comparação visual. N. b. Para todas as parcelas alisadas acima, embora a correspondência seja feita em preços suavizados, os preços não suavizados e brutos para essas partidas são plotados. Depois de plotar tudo o que precede, o código imprime para o terminal alguns detalhes assim: lookback 16 resultados 0,95859 0,98856 0,89367 0,86361 0,95733 0,98753 0,93175 0,86839 0,95589 0,98697 0,87398 0,67945 0,95533 0,98538 0,85346 0,83079 0,95428 0,98293 0,91212 0,77225 0,94390 0,98292 0,79350 0,66563 0,93908 0,98150 0,71753 0,77458 0,93894 0,97992 0,86839 0,72492 0.93345 0.97969 0.74456 0.79060 0.93286 0.97940 0.86361 0.61103 que, em coluna, são os valores de Cauchy-Schwarz para a combinação de preços brutos e a alocação de preços suavizados, e os valores de correlação de distância para a combinação de preços brutos e a combinação de preços suavizados, respectivamente. O código usado para calcular a correlação de distância é dado abaixo. Esses resultados são promissores, e pretendo aplicar um teste mais rigoroso para o assunto de uma publicação futura. Um novo método para medir os períodos de freqüência instantâneos. Alguns posts atrás afirmei que estava reavaliando meu código de ciclo dominante e, para esse fim, eu Tem feito um pouco de pesquisa na web e encontrou algumas coisas realmente legais, como o código OctaveMATLAB de trabalho para a decomposição do modo empírico. disponivel aqui. E algumas caixas de ferramentas aqui e aqui. No entanto, o objetivo desta publicação é apresentar uma nova ideia inspirada em uma tese de mestrado, de autor da Yizheng Liao. A grande idéia contida nesta tese é a medição de freqüência instantânea online por meio da medição de cruzamentos zero de um sinal e sua transformada de Hilbert. Também conhecido como o sinal analítico. Uma demonstração simples é mostrada abaixo, onde a linha ciana é o sinal original (parte real) e a transformada de Hilbert (parte imaginária) de um sinal de onda senoidal ruidosa. A transformação de Hilbert do pecado (x) é - cos (x), que é o equivalente ao pecado (x-90) usando graus em vez de notação de radianos para a fase de x. Uma vez que podemos atrasar a fase por qualquer quantidade, é possível ter uma série de atrasos de fase para produzir mais cruzamentos zero por período de ciclo completo do que apenas os 4 que ocorrem apenas com o sinal analítico. Isto é mostrado abaixo, onde, como antes, o ciano é o sinal de onda senovel ruidosa, o azul escuro é o sinal de onda sinusoidal suave original ao qual o ruído é adicionado, o vermelho é a onda senoidal medida extraída do sinal ruidoso e verde , As linhas magenta e amarela são parcelas senotais da fase do seno vermelho atrasada em 30, 60, 90, 120, 150 e 180 graus. Esta última linha de atraso de 180 graus é realmente supérflua à medida que atravessa a linha zero ao mesmo tempo que o sinal original, mas mostro apenas por completo. A linha branca do cursor mostra a linha zero e o início de um ciclo completo. Além de poder aumentar o número de cruzamentos zero mensuráveis, outra vantagem que posso ver ao usar este método de extração de onda sinusoidal é que as ondas senotais extraídas são muito mais lisas do que o sinal analítico, portanto os próprios cruzamentos de zero podem ser usados ​​em vez de Cruzamentos de linhas de histerese (leia o papel), evitando qualquer atraso devido à espera para cruzar as referidas linhas de histerese. Para aqueles que estão interessados, o indicador de onda senoidal que usei para isso é o indicador de onda senoidal John Ehlers, uma ótima exposição sobre o qual está aqui e o código disponível aqui. Mais sobre isso no devido tempo.

No comments:

Post a Comment