Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
E que tipo de wavelets você usou, eu usei os Matlab. Parece que os efeitos de borda são menos visíveis, mas é claro que eles estão lá (eles não podem ajudar) Eu também tentei aplicar decomposições (aproximações) e uma rede neural. Sobre os dados nos quais a rede aprendeu muito bem. e aprende malha parece fácil, mas sobre os novos - inferno. Cheguei à conclusão de que as ondas são uma coisa boa, especialmente se o espaço de defasagem for aplicado. Mas até agora ainda não o apliquei na prática.
Ondas Dobeshi usadas. Dizem que as ondas Meyer são menos propensas a efeitos de borda, mas eu ainda não experimentei.
A questão é que custa muito tempo para programar cada método.
O que são as ondas Matlab? Eu nunca trabalhei em Matlab.
Você quer dizer polinômios? Até que ponto funcionou bem?
O cruzamento de níveis não dá um resultado muito atraente. Isto também me ocorreu.
No indicador, a distribuição de altos e baixos segue uma lei gaussiana, apenas com diferentes MO.
Os altos têm aproximadamente 0,3, os baixos -0,3.
Quanto mais alta a barra, mais confiáveis são os sinais e menos são.
E não é interessante ganhar 200 pontos por mês :)
Sim, infelizmente ou distorções ou desfasamentos.
Não gosto da distribuição gaussiana normal. Eu prefiro Lognormal. Mas isso, infelizmente, não agrada a todos. Cheguei à conclusão de que é razoável fazer uma aproximação, encaixando (como escrevi acima). E se houver um resultado, ou algo interessante, então eu ajustarei a função de distribuição. Em geral, os desvios não são grandes, portanto, pode-se confiar nele.
Desperado, qualquer matlab você pode encontrar na caixa de ferramentas Matlab em wavelets. Você pode obter a decomposição necessária, os detalhes e a aproximação. A função M é escrita, depois uma dll de transição, e conectada via dll à MT. Acho que também há uma função Mayer, ou talvez não, eu não me lembro. Mas você pode economizar tempo na programação, embora eu tenha tido muitos problemas para traduzir matrizes de Matlab para variáveis regulares e de volta. Eu tentei reescrever a renomada biblioteca escrita em Delphi em C++ (há muitos deles na Rede). Foi onde foram observadas as mais fortes distorções de borda. Mas Matlab não tem nada disso, apesar de curvar também (gosta de desenhar ganchos nas bordas quando tem tendência). Tente simplesmente construir o wavelet necessário em Matlab, e se você gostar do resultado, você pode conectá-lo ao Mt através de uma dll.
Muito obrigado. Na verdade, esse é o delfo que eu usei :) Somente havia um módulo lá, eu o converti em uma biblioteca.
Vou tentar encontrar primeiro o Matlab.
Não gosto da distribuição gaussiana normal. Lognormal é melhor. Mas isso, infelizmente, também não agrada a todos. Cheguei à conclusão de que é razoável fazer uma aproximação, encaixando (como escrevi acima). E se houver um resultado, ou algo interessante, então eu ajustarei a função de distribuição. Em geral, os desvios não são grandes, portanto, também posso confiar neste.
Eu tentei seu algoritmo. Como esperado em princípio, ele remove o ruído fino. Funciona bem com períodos pequenos e grandes TFs.
Vou ver o que posso fazer com ele.
Seu resultado é mostrado com a linha vermelha. E eu preciso de algo como uma linha verde.
Esse é o tipo de linha verde que se obtém em Matlab, com grandes níveis de decomposição. Tudo isso é feito com uma linha de código. Há um modo especial de denoising wavelet, onde você seleciona o tipo de wavelet, e há mais alguns parâmetros. A tarefa principal é fazer uma dll transiente. Esse módulo Delph tem efeitos de borda muito fortes, sim. Não sei como, mas em Matlab eles são muito reduzidos - às vezes até parece que não há nenhum.
O último Matlab é quase 4 gigs em uma torrente. )))) É melhor usá-lo. Verificado e dll compila bem e atraca bem.
A partir do artigo no anexo:
Pelo que entendi, a função não simétrica baseia-se apenas em valores anteriores da série temporal.
Simétrico - sobre valores passados e futuros. Por exemplo, aqui a partir do algoritmo CDF 9/7:
// Predição 1
a=-1.586134342;
para (i=1; i<n-2; i+=2) {
x[n-1]+=2*a*x[n-2];
}
x[i]+=a*(x[i-1]+x[i+1]);
A borda afeta a última linha criada.
De acordo com o artigo, a propósito, foi escrito por um indyuke:
Aqui cada coeficiente wavelet é calculado apenas sobre os valores anteriores da linha.
É possível alinhar, é claro:
A região desconhecida tem funções simétricas e está cheia de algo como x[n-1]+=2*a*x[n-2].
É suposto ser redesenhado.
Se você quiser brincar com ele, clique aqui.
Esse é o tipo de linha verde que se obtém em Matlab, com grandes níveis de decomposição. Tudo isso é feito com uma linha de código. Há um modo especial de denoising wavelet, onde você seleciona o tipo de wavelet, e há mais alguns parâmetros. A tarefa principal é fazer uma dll transiente. Esse módulo Delph tem efeitos de borda muito fortes, sim. Não sei como, mas em Matlab eles são muito reduzidos - às vezes até parece que não há nenhum.
O último Matlab é quase 4 gigs em uma torrente. )))) É melhor usá-lo. Eu verifiquei e a dll compila bem e atraca bem.
Desculpe pela questão do estilo RTFM, mas poderia descrever em poucas palavras,
como criar um dll no MathLab e chamá-lo a partir do MT4?
Se possível, com um exemplo.
Oh, teria sido fácil há alguns meses atrás. Eu esqueci tudo isso. Mas é padrão em Matlab, há uma descrição no manual. Em geral, você encontrará uma ajuda de muito boa qualidade em Matlab. Após a compilação, um arquivo .dll e lib são criados junto com outros dois arquivos menos importantes. No arquivo m você terá uma função em linguagem matlab e esta função é chamada a partir da dll intermediária. Você só precisa chamar a inicialização lá primeiro, bem, a pessoa que a tem tem. No entanto, há um "mas". Precisamos sobrecarregar as variáveis de dupla cadeia, etc. em mxArray e depois chamar a função em Matlab e depois voltar para C.
Aqui está um exemplo de trabalho com a mxArray em C
mxArray *inm = mxCreateDoubleMatrix(1,size,mxREAL); a variável mxArray com tamanho é criada para a matriz de entrada
memcpy(mxGetPr(inm), &in[0], size*sizeof(double)); ela é preenchida com variáveis da matriz de entrada
então a função matlab é chamada de
então a matriz de saída do mxArray é convertida em um doble
//
converter mxArray para o dobro ---------------------- memcppy(out, mxGetPr(outm), size*sizeof(double))
Trata-se neste momento, é difícil de lembrar exatamente.
Inclusões para trabalhar com o mxArray
#incluir "mex.h"
estão localizados na pasta do matlab