Im que todavía trabaja en groaking la cosa de F - intentando resolver cómo pensar en F algo que apenas traduciendo de otros idiomas que conozco. Ive ha estado pensando recientemente en los casos donde usted no tiene un 1: 1 mapa entre antes y después. Casos en los que se desplaza List. map. Un ejemplo de esto son los promedios móviles, donde típicamente tendrás los resultados len-n1 para una lista de longitud len al promediar sobre n items. Para los gurús por ahí, ¿es esto una buena manera de hacerlo (utilizando la cola pinchada de Jomo Fisher) (Tal vez una mejor manera sería implementar un MovingAverageQueue por la herencia de Fifo) preguntó 17 de noviembre 08 a las 11:12 tuve que declarar Lo que permite MovingAverage n (s seqltfloatgt) con el fin de poner esto en un módulo de utilidad, lejos del sitio de la llamada, para aplacar el sistema de tipo. Por lo que puedo decir, esto sólo funciona con flotadores, debido a una limitación de Array. average. MSDN afirma que puedo reemplazar eso con Array. averageBy para usar esto en una secuencia int, pero que da un error diferente. Brian, ¿puedes reformular esta respuesta para que funcione en contextos genéricos, de modo que funcione con tipo seq-of-any-arithmetic, sin la inferencia de tipos? Ndash Warren Young Jun 27 13 at 19:04 Debo señalar que mi necesidad de Esta función de media móvil es obtener una ventana corta (30ish) sobre una secuencia de enteros que son casi todos en los millones, por lo que don39t necesidad de punto flotante. Incluso un solo dígito a la derecha del punto decimal no es de uso práctico en mi aplicación. La conversión de mis números enteros a FP y el resultado de nuevo a int apenas para aplacar la biblioteca estándar de F doesn39t apelación. Ndash Warren Young Jun 27 13 a las 19:30 Si te importa el rendimiento, entonces puedes calcular una media móvil eficientemente usando algo como esto (suponiendo que estuvieran calculando una media móvil en una ventana de 3 días) La parte difícil de esto es la celebración En su total de ejecución anterior y número de N-ventana. Vine para arriba con el código siguiente: Esta versión no está tan guapa como el código de Haskell, pero debe evitar problemas del funcionamiento asociados con recomputing su ventana en cada funcionamiento. Mantiene un total de ejecución y mantiene los números utilizados anteriormente en una cola, por lo que debe ser muy rápido. Sólo por diversión, escribí un punto de referencia simple: Si te preocupas por el rendimiento y como el código elegante, a continuación, intente Usar FSUnit podemos probarlo El truco del algoritmo es la primera suma de los primeros n números y luego mantener un total de correr mediante la adición de la cabeza De la ventana y restando la cola de la ventana. La ventana deslizante se logra haciendo un auto zip en la secuencia, pero con el segundo argumento a zip avanzado por el tamaño de la ventana. Al final de la tubería sólo dividimos el total de ejecución por el tamaño de la ventana. El escaneado de notas es igual que el doblez, pero produce cada versión del estado en una secuencia. Una solución aún más elegante, aunque posiblemente con éxito de rendimiento es hacer la observación de que si ponemos cero la secuencia no necesitamos calcular la suma inicial. Podría haber un golpe de rendimiento debido a la indirección segundo relacionados con el envoltorio de las dos secuencias, pero tal vez no es significativo en función del tamaño de la ventana respondida 31 de agosto a las 8:06 Funcional Diversión Cálculo SMA y EMA Para probar FI decidió Para hacer una función para calcular el promedio móvil simple (SMA) y el promedio móvil exponencial (EMA). El SMA y EMA tienen matemáticas suficientes para probar muchas de las características de F y la programación funcional. La primera cosa que aprendí fue F tiene una manera de ejecutar rápidamente el código. Si no has jugado con Fs Interactive su tipo de como un bucle REPL. Mientras codifica, puede resaltar el código y hacer una Alt-Enter para ejecutarlo. Es muy conveniente. Para mantener con el estilo funcional de la programación puse el SMA y EMA en un tipo. En OO esto sería el equivalente de usar una clase base para los promedios móviles y luego crear clases para SMA y EMA. Como se puede ver en F, se trata de una cantidad muy pequeña de código que utiliza declaraciones de tipo / discriminadores. Puedes ver comentarios en mi código de abajo para las cosas que aprendí y recogidas mientras hacías este ejercicio. Un gran agradecimiento a esta serie de indicadores técnicos F. Deja un comentario Cancelar respuestaMensajes móviles exponenciales Uno de los primeros indicadores que la mayoría de los comerciantes aprenderán al encontrar el fascinante campo de análisis técnico es el promedio móvil. Los promedios móviles pueden tener múltiples propósitos, y pueden usarse en una variedad de maneras a menudo-veces dependiendo de los objetivos del traderrsquos. El precio, de cualquier activo, rara vez exhibirá un patrón directamente lineal. En la mayoría de los casos, el precio oscilará en ambas direcciones ndash, incluso en fuertes tendencia alcista o fuertes tendencias bajistas. El promedio móvil puede ayudar a menudo al comerciante lsquosmooth, rsquo estas fluctuaciones de la vela-a-vela para llegar a un lsquoaverage, valor del rsquo. Letrsquos mirar un ejemplo para ilustrar: En el GBP / USD Daily gráfico de arriba, está viendo el período de 200 Media móvil simple aplicado. Esta es una de las medias móviles más comunes que utilizan los analistas técnicos. Observe que la tendencia es hacia arriba durante la mayor parte del período observado. El promedio móvil asiste al comerciante tomando las oscilaciones del corto-a-intermedio del término, y promediando ésos con los movimientos alcistas del precio para trazar esto como lsquosmoothed price. rsquo El cálculo de la media móvil simple arriba es bastante fácil. El valor de la media móvil de la vela actual de arriba puede calcularse tomando los últimos 200 precios de cierre, sumándolos y luego dividiéndolos por 200. A medida que los nuevos precios tienden más alto, estos valores más altos ayudarán a aumentar el valor de El MA (aunque marginalmente, ya que el nuevo precio más alto es sólo 1/200 del promedio móvil). Ahora usted puede notar, por la naturaleza misma de los indicadores, los promedios móviles se lsquolag, precio rsquo. Si el precio duplica este bar, una vez más, sólo tendrá un impacto marginal en el Promedio móvil, ya que el nuevo precio (al doble del precio anterior) es sólo 1/200 del cálculo. Aquí es donde el promedio móvil exponencial (también conocido como EMA) puede ayudar. Es importante señalar que la cuestión del retraso nunca puede eliminarse por completo de los promedios móviles, ya que el indicador siempre va a retrasarse en el mercado por la naturaleza de su composición. Pero los comerciantes pueden tratar de mitigar este inconveniente, y una de las maneras de hacerlo es la EMA. Con el promedio móvil exponencial, un lsquoweighting más pesado, rsquo se utiliza en los valores más recientes ndash clasificación de los cambios recientes en el precio más fuertemente que los cambios posteriores en el precio. En el ejemplo anterior en el cual el precio se duplicó hoy, el EMA debería reflejar más de este movimiento que el promedio móvil simple, como lsquoweight adicional, rsquo está siendo asignado a la barra actual. Debajo está la misma carta que habíamos mirado arriba, pero esta vez tiene una EMA de 200 periodos, así como la Media móvil sencilla de 200 periodos. El Promedio Móvil Exponencial se representa en Verde en el gráfico anterior, e Irsquove también identificó 2 instancias indicadas por los números 1 y 2. En primer lugar, observe que el precio está haciendo una ascensión muy rápida. La pendiente del promedio móvil simple (en naranja) comienza a moverse para arriba, registrando estos nuevos valores. Pero también notar cuánto más rápidamente la línea verde se mueve hacia arriba (la media móvil exponencial también se establece en 200 períodos). Y más adelante en el gráfico, por ejemplo 2, el precio invierte al downside. Una vez más, la EMA verde registra estas fluctuaciones de precios más recientes más rápidamente que la media móvil simple en naranja y podemos decirnos que la línea verde comienza a moverse hacia abajo antes, ya un ritmo más rápido. Esto es algo que podemos ver una y otra vez, ya que la fórmula matemática detrás de los dos promedios permitirá a los EMAs mostrar los movimientos de precios recientes con mayor frecuencia. A pesar de sus diferencias, también hay muchas similitudes entre los diversos tipos de promedios móviles. La elección de cuál usar es a menudo va a ser gobernado por cada traderrsquos individual preferencia personal o gusto, y tal vez incluso más importante ndash sus objetivos. --- Escrito por James B. Stanley Para ponerse en contacto con James Stanley, por favor envíe un correo electrónico a InstructorDailyFX. Puedes seguir a James en Twitter JStanleyFX. Para unirse a la lista de distribución de James Stanleyrsquos, haga clic aquí. DailyFX proporciona noticias forex y análisis técnico sobre las tendencias que influyen en los mercados de divisas globales.
No comments:
Post a Comment