Multitarts De Media Móvil Variable
Copie y pegue el código anterior en su entorno de desarrollo en Tradestation o MultiCharts como Indicador. A continuación, haga clic en compilar o verificar. Este código detecta si el precio de cierre de hoy es mayor o menor que el precio de cierre de ayer. (Esto se puede poner en gráficos diarios o gráficos de minutos y el close1 se refiere a la barra anterior o el día anterior) Si escribió close2 se referiría a la cerca de 2 días o barras hace en su lugar. Luego tenemos la suma de las últimas barras (longitud 20). Para ver cómo funciona, puede cambiar esta línea de código plot1 (summove, quotup-downcountquot) a esta parcela1 (mover, quotup-downcountquot) A continuación, haga clic en compilar. A continuación, puede ver el indicador traza una línea que es 1, -1 o 0. Las entradas escritas en la parte superior representan valores que el usuario puede cambiar al trazar el indicador en el gráfico. Una vez que trace el indicador en su forma original puede cambiar la longitud a 50 o 20 o 100 para ver cómo afecta a la trama. Las variables se muestran aquí como quotvarsquot y estos son valores que he creado para almacenar los valores emitidos por las 3 líneas de código que comienzan si se cierra. Y la variable summove. Summove summation (movimiento, longitud) Esto significa que el summove variable se crea mediante la suma de las últimas barras de 20 barras (o longitud) con todos los valores 1 y -1 y 0. Puede experimentar jugando con diferentes valores. Ejemplo de principiante no2 (Porcentaje de ponderación ajustable media móvil combinada) promedio lento (cierre, longitud1) promedio rápido (cierre, longitud2) si valor1lt0 valor10 si valor1gt1 entonces valor11 Puede leer primero el código anterior antes de crear este indicador y ver si puede ver Lo que está haciendo. Hay dos promedios móviles usados con longitud lenta de 50 y una longitud rápida de 20, la entrada llamada factor es ajustable para asignar una ponderación a cada uno. Si el factor se fija en 0.5 agregará 50 de la media lenta a 50 del promedio rápido y creará un promedio combinado del período dos. Para ver los valores máximos del factor de ajuste medio lento a 1, para ver la trama construida enteramente con el promedio más rápido, puede establecer el factor 0. Puede experimentar con valores como 0,1 y 0,9 para ver los efectos de los ajustes en la ponderación. Si utiliza el nombre value1 o value2 o el valor 99 como variables, entonces no necesita declarar los nombres de estos en la parte superior. Value2 factor 1 es una manera muy ordenada para obtener 2 variables para asignar automáticamente 1 de una parte y 99 de la otra parte por lo que cuando se agrega siempre 100 Limitar el error del usuario mediante la restricción de las entradas haciendo las variables leerlos. (El código de value1 hace esto después de leer la entrada de factor) Trucos de código para probar Si observa las variables lentas y rápidas verá que ambos utilizan promedios (promedio es este código significa promedio simple). Usted puede intentar hacer el lento en un promedio ponderado o un promedio exponencial y mezclando éstos para hacer su propia combinación media combinada. Ejemplo de principiante no3 (indicador de tendencia binaria simple) si promedio (cierre, longitud rápida) gt average (close, slowlength) comienza binarytrend1 end else binarytrend -1 Este indictor decide la tendencia quotbinaryquot, lo que significa que lo convierte en un número. Por lo tanto, la tendencia alcista 1 bajada -1 y el valor inicial se asigna como 0. Si representa el promedio móvil de 80 periodos y el promedio móvil de 12 períodos en el gráfico puede comprobar que el indicador de tendencia está funcionando. Utilizar instrucciones end else para reducir la longitud del código. EG supra asume que si la tendencia no es 1 entonces debe ser -1. Trucos de código para probar Si intenta usar otro método para asignar la tendencia es hacia arriba o hacia abajo y reemplazar el código con su idea. P. EJ. Se utiliza el oscilador estocástico con más de 50 de tendencia alcista y por debajo de 50 de tendencia hacia abajo. El igual a 50 puede ser capturado por decir esto. Si estocástico es gt50 entonces cuente como tendencia alcista (código psuedo) Ejemplo de principiante no4 (Algoritmo de ajuste de longitud simple) si cierre mayor (cerca, longitud básica) o cierre menor (cierre, longitud básica) entonces comience monitor monitor1-1 fin monitormonitor10.5 si monitor Lt minlength entonces monitorea minlength si monitor gt maxlength entonces monitorea maxlength Esta es la primera etapa de hacer un algoritmo para controlar la longitud aplicada a un indicador. Puede ver que si traza este indicador en el subgrafo 2 oscila entre 50 y 10 que son las longitudes max y min permitidas. (Pero estas son entradas ajustables) Si el precio está haciendo una nueva alta o baja para el período de longitud básica se ralentizará por 1 incremento de longitud para cada barra que la condición es verdadera. Si el precio no hace una nueva alta o baja para el mismo período, se reducirá la longitud de 0,5 de longitud de incremento para cada barra de la condición es verdadera. Trucos de código para probar Si intenta cambiar los valores de -1 y 0,5 a cantidades mayores o menores, puede ajustarlo para adaptarlo a sus necesidades. A continuación le mostraré cómo construir este código en un indicador de cambio de longitud. (Close, basiclength) o close lower (close, basiclength) entonces begin monitor monitor1-1 end else monitormonitor10.5 si monitor lt minlength entonces monitorea minlength si monitor gt maxlength entonces Monitor maxlength Puede ver que se ha añadido otra variable que es una media móvil ponderada y el truco aquí es reemplazar el campo de longitud habitual con el monitor de algoritmo que está ajustando la longitud aplicada. Trucos de código para probar Si traza un promedio ponderado de 20 períodos junto a él en el subgrafo uno. Puede ver cómo el código por encima del promedio de cambio de longitud es más lento en algún período y más rápido en otros períodos. El indicador anterior se encuentra en el subgrafo no1 superpuesto con el precio. El código de ejemplo no4 se coloca en el sub 2. Puede observar el algoritmo de cambio de longitud en acción y ver cómo afecta a la velocidad del promedio ponderado. Ejemplo de principiante no6 (Cómo evitar la división por cero errores) La división por cero es un problema frecuente experimentado en la programación. La respuesta es siempre infinita, así que tenemos que evitar que nada se divida por cero en primer lugar. Hay dos métodos para hacer esto. Si value1 0 entonces value1value10.0000000001 Así que simplemente agregamos un número diminuto, que es tan pequeño que no hará demasiada diferencia en las salidas. Si value1 ltgt 0 entonces value2 value3 / value1 Esto obliga a la computadora a preguntar si el valor1 es 0 o no antes de hacer sus cálculos. Si es 0, devolverá el valor predeterminado que se asignó a value1 en las variables cuando lo creó. Aprenda a ejecutar expresiones de código basadas en condiciones En la lección de today8217s aprenderá cómo controlar el flujo de su programa y hacer que ejecute partes sólo cuando ciertas Se cumplan las condiciones. Aquí es donde se usan las sentencias. Usted puede encontrarlos en básicamente todos los lenguajes de programación de alto nivel y son el motor que impulsa cada programa. Por ejemplo, si las declaraciones pueden usarse para colorear un promedio móvil de manera diferente en función de su relación con el cierre de una barra. Si desea cerrar todas las posiciones abiertas después de un cierto tiempo, una declaración if entrará en juego. En caso de que desee activar una alerta cuando se cumpla una condición predefinida, también utilizará una instrucción if para ello. Esta lista podría continuar durante bastante tiempo, pero creo que ya entiendes que si las declaraciones son no sólo muy útil, sino también muy importante. Ningún tutorial de programación podría estar completo sin pasar por encima de ellos y una buena comprensión es esencial antes de que podamos pasar a cosas más complejas. If8230then8230 La instrucción 8220if8230then82308221 es la forma más simple de una instrucción condicional. La condición se comprueba y si es verdadera, se ejecutará la instrucción de código siguiente. Si la prueba es falsa no se hará nada ya que no se ejecutará la instrucción de código siguiente. Cuando digo que la prueba es cierta, don8217t se confunde y piensa que está limitado a probar condiciones que incluyen 8220true8221 solamente. En caso de que 8220ii8221 sea una variable numérica y 8220MyCondition18221 y 8220MyCondition28221 sean variables booleanas, éstas son tres declaraciones válidas 8220if8230then82308221. En el caso de la primera declaración el código comprueba 8220MyCondition1 false8221. Si 8220MyCondition18221 es de hecho falsa, el resultado de la prueba será, de hecho, 8220true8221 (porque la expresión a comprobar coincide). Esto puede ser un poco confuso al principio, pero si recuerda que hemos hecho verificaciones similares en la última lección de trabajo con el 8220 while loop8221. Puede imprimir el resultado de una prueba en la barra de salida del Editor de PL con el comando print. La instrucción de código que sigue a la instrucción 8220if8230then82308221 sólo se ejecutará cuando la condición de comprobación coincida. En caso de que la prueba regrese falsa, el código continuará con la siguiente parte. Si desea que su código realice una instrucción si la condición de prueba es verdadera y otra si es falsa, puede utilizar dos instrucciones 8220if8230 o 82308221 o utilizar otro tipo de sentencia. If8230then8230else8230 La instrucción 8220if8230then8230else82308221 ejecutará una instrucción de código si la prueba de condición de comprobación es verdadera y una segunda instrucción si la prueba es falsa. Volviendo a nuestro ejemplo de media móvil podemos cambiar el color del promedio de acuerdo a la relación del precio de cierre con el promedio. Si el cierre está por encima del promedio entonces el promedio debe ser coloreado en verde, si no debe ser rojo. Tenga en cuenta que esto significa que el promedio también sería de color rojo en caso de que el cierre coincide con el promedio. El uso de la 8220if8230then8230else8221 declaración y la palabra reservada 8220SetPlotColor8221 hará el truco aquí. SetPlotColor tiene dos parámetros: el primero es el número de la parcela que desea cambiar el color para (it8217s 1 para Plot1 y 5 para Plot5 etc.) y el segundo es para el color que desea que la parcela para utilizar. Según lo planificado, el promedio cambiará de color de acuerdo con la relación de la barra cerca de la media. Como mencioné el caso en que el cierre es igual a la media también se coloreó en rojo. Una característica muy útil para las sentencias 8220if82308221 es que puedes combinarlas o anidarlas para crear árboles lógicos más complejos. Podríamos alterar ligeramente la 8220if8230then8230else8221 declaración utilizada en el código anterior y añadir un tercer color para el caso en que el cierre coincide con el promedio. La pieza de código agrupa una 8220if8230then82308221 y una 8220if8230then8230else82308221 instrucción para realizar la tarea. Tenga en cuenta que sólo la última línea de código en una única 8220if8221 o múltiples agrupados 8220if8221 declaraciones tiene que ser seguido por un punto y coma. If8230then begin8230end Las instrucciones 8220if8230then8221 y 8220if8230then8230else82308221 son geniales si solo tiene una expresión de código que debe ejecutarse. Para los bloques de código más complejos, tendrá que usar instrucciones de bloque. La instrucción de bloque 8220if8230then begin8230end8221 es similar a la 8220if8230then8221, pero permite múltiples expresiones de código entre los 8220begin8221 y 8220end8221. Los 8220begin8221 y 8220end8221 son comunes para las sentencias de bloque, así es como comienzan y terminan. Al compararlos con los 8220if8230then82308221 regular o 8220if8230then8230else8221 declaraciones en un 8220if8230then begin8230end8221 bloquear todas las declaraciones completas dentro del 8220begin8230end8221 tienen que ser seguido por un punto y coma. Let8217s agrega una simple declaración de bloque a nuestro promedio que traza una cruz (para esto usted necesita para cambiar el estilo de trazado a cruzar en las propiedades) y nos da una alerta cuando la barra completa está por debajo de la media. If8230then begin8230end else begin8230end Por supuesto, también hay un 8220if8230then begin8230end else begin8230end8221 declaración de bloque si desea utilizar más declaraciones de código dentro de una rama condicional. Con esto y el otro 8220begin8230end otro. 8221 hay una cosa a tener en cuenta: El 8220end8221 después de la primera 8220begin8221 no es seguido por un punto y coma, sólo el último 8220end8221 que completa la instrucción necesita el punto y coma. También puede utilizar dos instrucciones 8220if8230then begin8230end8221 de este modo, para resaltar las barras que están completamente por encima de la media. Once8230begin8230end Para el resto de la sesión today8217s tenemos dos más declaraciones para ir más. Hemos utilizado una de estas declaraciones un par de veces antes de que ya está familiarizado con ella. Como usted puede ser que conjeture it8217s la 8220once8282explicación de la declaración 8220begin8230end8221. Incluso lo hemos utilizado al principio de esta sesión, simplemente sin una condición de evaluación. El beneficio de esta declaración es, una vez que la expresión booleana se vuelve verdadera por primera vez, nunca se probó de nuevo. Sólo se omitirá en el código después de que se haya ejecutado una vez. Esto, por ejemplo, es excelente para inicializar variables y hacer algunos cálculos que sólo tiene que hacer una vez. En general, 8220once8221 inicia una instrucción que se ve así: La expresión booleana que sigue a 8220once8221 es opcional y se puede dejar como se verá en el siguiente ejemplo. En caso de que sólo tenga una instrucción que se ejecute una vez, también puede dejar las palabras reservadas 8220begin8221 y 8220end8221. La imagen de abajo contiene tres ejemplos de cómo 8220once8221 podría ser utilizado. El primer ejemplo borrará la barra de salida y borrará cualquier información de impresión antigua. La segunda instrucción de código hará lo mismo, pero como el código comprueba para 8220if CurrentBar 18221, esta comprobación se realizará de nuevo con cada ejecución de código. Con la instrucción 8220once8221, el código se ejecutará una vez y luego no volverá a comprobarse. En otras palabras, esto también le da un rendimiento ligeramente mejor. El segundo ejemplo muestra cómo calcular el movimiento de la señal y los espacios decimales de un símbolo y almacenar los resultados en dos variables. El último ejemplo mostrado, comprueba si el día en el gráfico es un lunes. Una vez que esto sea cierto, el registro de impresión de salida se borrará y se imprimirá un nuevo texto. Switch / case La declaración 8220switch / case8221 es la declaración final que veremos hoy. La instrucción switch y case es útil para gestionar operaciones de ramificación condicional más complejas. En lugar de anidar múltiples 8220if8230else8221 u otras declaraciones, varias secciones de caso se pueden ejecutar en función de la expresión de conmutación. Esto suena mucho más difícil de lo que realmente es. Let8217s echar un vistazo a un ejemplo de código simple que ayudará a aclarar la 8220switch / case8221 declaración. Cree el siguiente indicador y cargarlo en un gráfico. A continuación, compruebe los diferentes números para la entrada y el resultado de impresión en la barra de salida. Las instrucciones de impresión sólo se dividen en dos líneas para una mejor legibilidad aquí, normalmente me gustaría dejarlos en una línea a menos que se están convirtiendo en demasiado largo. El código pasa la entrada 8220Number8221 a través de la instrucción switch a la primera expresión de caso coincidente y ejecuta la siguiente instrucción. Si se encuentra una expresión de caso coincidente, todas las sentencias para esta expresión se ejecutan y el código continúa después de la instrucción 8220switch / case8221. Que 8217s por qué la declaración para el caso 2 a 5 nunca se ejecuta 8211 el caso se incluye en 2 a 10 ya. Cambie la posición de los dos casos y ambos podrían ejecutarse dependiendo de la entrada de número. La instrucción 8220default8221 es opcional y se puede utilizar para asegurarse de que se ejecuta una instrucción incluso si no se combina ninguna expresión de caso. También puede utilizar varias sentencias diferentes para cada caso, solo utilizé una declaración de impresión para cada caso en este ejemplo. Las declaraciones que observamos durante esta lección tienen en común que puede anidarlas y agruparlas para una lógica más compleja. A veces tendrá que ser muy creativo para lograr lo que tiene en mente. Esa es la razón por la cual un buen esquema de su lógica es tan importante. Tómese su tiempo antes de comenzar con la codificación, tal vez dibuje un diagrama de flujo o un árbol lógico. Esto realmente puede ayudarle a ahorrar mucho tiempo al final. Sé que he subrayado esto antes y lo diré de nuevo, ya que es importante. Aprender algo nuevo es mucho más fácil que desaprender un mal hábito. Si empiezas aprendiendo a codificar en EasyLanguage o PowerLanguage, haz que sea tu buen hábito planificar correctamente tu programación antes de empezar. Esto concluye la lección sobre si las declaraciones y la ramificación condicional. También marca el final de las primeras lecciones básicas y con las lecciones siguientes vamos a sumergir más en la programación y echar un vistazo a nuevas ideas y teorías a lo largo del way. Variable Moving Average El estudio Variable Moving Average le permite ser muy creativo con el Promedios móviles. Se aplican tres medias móviles (normales, exponenciales y suavizadas). Propiedades Period1. Para el promedio móvil normal, el número de barras en un gráfico. Si el gráfico muestra datos diarios, entonces el período indica días en gráficos semanales, el período permanecerá durante semanas, y así sucesivamente. La aplicación utiliza un valor predeterminado de 10. Period2. Para el promedio móvil exponencial, el número de barras en un gráfico. Si el gráfico muestra datos diarios, entonces el período indica días en gráficos semanales, el período permanecerá durante semanas, y así sucesivamente. La aplicación utiliza un valor predeterminado de 10. Period3. Para el Promedio móvil suavizado, el número de barras en un gráfico. Si el gráfico muestra datos diarios, entonces el período indica días en gráficos semanales, el período permanecerá durante semanas, y así sucesivamente. La aplicación utiliza un valor predeterminado de 10. Aspecto: El campo de símbolo en el que se calculará el estudio. El campo se establece en Predeterminado, que al visualizar un gráfico para un símbolo específico es el mismo que Cerrar. Interpretación Los promedios móviles son una de las herramientas técnicas más utilizadas. Siguen la tendencia, suavizar las fluctuaciones normales de los datos y señalar claramente las posiciones largas y cortas al inversor. Un Promedio móvil se puede mostrar como un sistema de comercio crossover normal cuando se selecciona hasta tres medias diferentes. La mayoría de los inversores y los servicios de gráficos utilizan tres promedios móviles. Sus longitudes suelen consistir en corto, intermedio y largo plazo. Un sistema de uso común es de 4, 9 y 18 intervalos. Un intervalo puede ser garrapatas, minutos, días, semanas o incluso meses depende del tipo de gráfico. Las señales normales de compra / venta de crossover de media móvil son las siguientes: Una señal de compra se muestra cuando los promedios a corto y medio plazo se cruzan de abajo a arriba del promedio a más largo plazo. Por el contrario, se emite una señal de venta cuando los promedios a corto y medio plazo se cruzan desde arriba hasta por debajo del promedio a más largo plazo. Otro enfoque consiste en utilizar los precios de cierre con la (s) media (s) móvil (es). Cuando el precio de cierre está por encima de la (s) media (s) móvil (es), usted mantiene una posición larga. Si el precio de cierre cae por debajo de la media móvil, liquida cualquier posición larga y establece una posición corta. Recuerde, cualquier sistema de media móvil funciona mejor en los mercados de tendencias. Contenido Fuente: FutureSource Ver Otros Estudios de Análisis Técnico Primary Sidebar Últimos Tweets TRADERS DE STOCK: Aprenda a transitar fácilmente en el comercio de futuros con nuestra guía gratuita. Descargar el tuyo hoy: t. co/IeO9a1Taur Hace un tiempo 23 Horas a través del búfer Craig Turner analiza la reacción del mercado a las elecciones y lo que debe buscar en este podcast ICF. Escuche aquí t. co/qto1ZxXJyO Hace un tiempo 1 Día a través de Buffer Obtenga gráficos de amplificadores de presupuesto personalizados para los mercados que más le importan en nuestro sitio web: t. co/k4WstPGPcf Hace 2 Días a través de Buffer Copyright xA9 2016 xB7 Daniels Trading. Todos los derechos reservados. Este material se transmite como una solicitud para entrar en una transacción de derivados. Este material ha sido preparado por un corredor de Daniels Trading que ofrece comentarios sobre el mercado de investigación y recomendaciones comerciales como parte de su solicitud de cuentas y solicitud de operaciones, sin embargo, Daniels Trading no mantiene un departamento de investigación como se define en CFTC Regla 1.71. Daniels Trading, sus principales, corredores y empleados pueden operar en derivados para sus propias cuentas o para las cuentas de otros. Debido a diversos factores (como la tolerancia al riesgo, los requisitos de margen, los objetivos comerciales, las estrategias a corto plazo y las estrategias a largo plazo, el análisis técnico y fundamental del mercado y otros factores), dicha negociación puede dar lugar a la iniciación o la liquidación de posiciones distintas de O contraria a las opiniones y recomendaciones contenidas en ellas. El desempeño pasado no es necesariamente indicativo del desempeño futuro. El riesgo de pérdida en contratos de futuros o opciones de productos básicos puede ser sustancial y, por lo tanto, los inversionistas deben comprender los riesgos involucrados en la toma de posiciones apalancadas y deben asumir la responsabilidad de los riesgos asociados con dichas inversiones y sus resultados. Debe considerar cuidadosamente si tal negociación es adecuada para usted a la luz de sus circunstancias y recursos financieros. Debe leer la página web de divulgación de riesgos accesada en DanielsTrading en la parte inferior de la página principal. Daniels Trading no está afiliado ni respalda ningún sistema comercial, boletín u otro servicio similar. Daniels Trading no garantiza ni verifica las reclamaciones de rendimiento hechas por dichos sistemas o servicios.
Comments
Post a Comment