Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Y qué tipo de wavelets usaste, yo usé los de Matlab. Parece que los efectos de los bordes son menos visibles, pero por supuesto están ahí (no pueden evitarlo) También intenté aplicar descomposiciones (aproximaciones) y una red neuronal. En los datos en los que la red aprendió muy fresco. y aprende malla parece fácil, pero en los nuevos - el infierno. He llegado a la conclusión de que las ondículas son algo bueno, especialmente si se aplica el espacio de retardo. Pero hasta ahora no lo he aplicado en la práctica.
Utiliza las ondículas de Dobeshi. Dicen que las ondículas de Meyer son menos propensas a los efectos de borde, pero aún no lo he probado.
El caso es que cuesta mucho tiempo programar cada método.
¿Qué son las ondículas de Matlab? Nunca he trabajado en Matlab.
¿Te refieres a los polinomios? ¿Qué tal ha funcionado?
El cruce de niveles no da un resultado muy atractivo. Esto también se me ha ocurrido a mí.
En el indicador la distribución de máximos y mínimos sigue una ley gaussiana, sólo que con diferente MO.
Los máximos tienen aproximadamente 0,3, los mínimos -0,3.
Cuanto más alta es la barra, más fiables son las señales y menos.
Y no es interesante ganar 200 puntos al mes :)
Sí, desgraciadamente, o se distorsiona o se retrasa.
No me gusta la distribución normal de Gauss. Yo prefiero la Lognormal. Pero eso, desgraciadamente, no le conviene a todo el mundo. Llegué a la conclusión de que es razonable hacer una aproximación por ajuste (como escribí arriba). Y si hay un resultado, o algo interesante, entonces ajustaré la función de distribución. En general, las desviaciones no son grandes, por lo que se puede confiar en ellas.
Desperado, cualquier matlab que puedas encontrar en la caja de herramientas de Matlab sobre wavelets. Puedes obtener la descomposición que necesitas y el detalle y la aproximación. Se escribe la función M, luego una dll de transición, y se conecta vía dll a MT. Creo que también hay una función de Mayer, o quizás no, no lo recuerdo. Pero se puede ahorrar tiempo en la programación, aunque tuve muchos problemas para traducir las matrices de Matlab a variables regulares y viceversa. He intentado reescribir la famosa biblioteca escrita en Delphi en C++ (hay muchas en la red). Ahí es donde se observaron las mayores distorsiones de los bordes. Pero Matlab no tiene nada de eso, aunque también hace curvas (le gusta dibujar ganchos en los bordes al hacer la tendencia). Intenta construir simplemente la wavelet requerida en Matlab, y si te gusta el resultado, puedes conectarla a Mt a través de una dll.
Muchas gracias. En realidad, ese es el delph que utilicé :) Sólo había un módulo allí, lo convertí en una biblioteca.
Trataré de encontrar Matlab primero.
No me gusta la distribución normal de Gauss. El lognormal es mejor. Pero eso, desgraciadamente, tampoco le viene bien a todo el mundo. Llegué a la conclusión de que es razonable aproximar por ajuste (como escribí arriba). Y si hay un resultado, o algo interesante, entonces ajustaré la función de distribución. En general, las desviaciones no son grandes, así que también puedo confiar en esta.
He probado su algoritmo. Como se esperaba en principio, elimina el ruido fino. Funciona bien con periodos pequeños y grandes TFs.
Veré lo que puedo hacer con él.
Su resultado se muestra con la línea roja. Y necesito algo como la línea verde.
Ese es el tipo de línea verde que se obtiene en Matlab, con grandes niveles de descomposición. Todo se hace con una línea de código. Hay un modo especial de eliminación de ruido por wavelet, en el que se selecciona el tipo de wavelet, y hay algunos parámetros más. La tarea principal es hacer un dll transitorio. Ese módulo Delph tiene efectos de borde muy fuertes, sí. No sé cómo, pero en Matlab se reducen mucho, a veces incluso parece que no hay ninguno.
El último Matlab ocupa casi 4 gigas en un torrent. )))) Es mejor usarlo. Comprobado y el dll compila bien y se acopla bien.
Del artículo adjunto:
Según tengo entendido, la función no simétrica se basa únicamente en los valores anteriores de la serie temporal.
Simétrico: sobre valores pasados y futuros. Por ejemplo, aquí del algoritmo CDF 9/7:
// Predecir 1
a=-1.586134342;
for (i=1; i<n-2; i+=2) {
x[n-1]+=2*a*x[n-2];
}
x[i]+=a*(x[i-1]+x[i+1]);
Los efectos de borde que crea la última línea.
Según el artículo, por cierto, lo escribió un indyuke:
Aquí, cada coeficiente de wavelet se calcula únicamente sobre los valores anteriores de la fila.
Es posible alinear, por supuesto:
La región desconocida es una función simétrica y se rellena con algo como x[n-1]+=2*a*x[n-2]
Se supone que debe ser redibujado.
Si quieres jugar con él, haz clic aquí.
Ese es el tipo de línea verde que se obtiene en Matlab, con grandes niveles de descomposición. Todo se hace con una línea de código. Hay un modo especial de eliminación de ruido por wavelet, en el que se selecciona el tipo de wavelet, y hay algunos otros parámetros. La tarea principal es hacer un dll transitorio. Ese módulo Delph tiene efectos de borde muy fuertes, sí. No sé cómo, pero en Matlab se reducen mucho, a veces incluso parece que no hay ninguno.
El último Matlab ocupa casi 4 gigas en un torrent. )))) Es mejor usarlo. Lo he comprobado y la dll compila bien y se acopla bien.
Perdona por la pregunta estilo RTFM, pero podrías describir en pocas palabras,
¿cómo crear una dll en MathLab y llamarla desde MT4?
Si es posible, con un ejemplo.
Oh, lo habría tenido fácil hace un par de meses. Lo he olvidado todo. Pero es estándar en Matlab, hay una descripción en el manual. En general, encontrarás una ayuda de muy buena calidad en Matlab. Después de la compilación se crea un archivo .dll y lib junto con un par de otros menos importantes. En el archivo m tendrás una función en lenguaje matlab y esta función es llamada desde la dll intermedia. Sólo tienes que llamar a la inicialización allí primero, bueno la helpe lo tiene. Sin embargo, hay un "pero". Necesitamos sobrecargar las variables double string, etc. en mxArray y luego llamar a la función en Matlab y luego de vuelta en C.
Este es un ejemplo de cómo trabajar con mxArray en C
mxArray *inm = mxCreateDoubleMatrix(1,size,mxREAL); se crea una variable mxArray de tamaño para la matriz de entrada
memcpy(mxGetPr(inm), &in[0], size*sizeof(double)); se rellena con las variables de la matriz de entrada
entonces la función de matlab se llama
entonces el array de salida de mxArray se convierte en un doble
// ---------------------- convertir mxArray a doble ------
memcpy(out, mxGetPr(outm), size*sizeof(double))
Esto es más o menos ahora, es difícil de recordar exactamente.
Inclusiones para trabajar con mxArray
#include "mex.h"
se encuentran en la carpeta matlab