Constructor de condiciones
<< Click to Display Table of Contents >> Constructor de condiciones |
La Condición Constructor es una característica muy poderosa que le permite definir condiciones complejas para sus sistemas de operación automatizada sin tener que saber programar.
Comprender el generador de condiciones
Constructor de condicionesLa mayoría, si no todos, los asistentes de código del sistema de comercio automatizado tienen un alcance limitado, ya que proporcionan expresiones predefinidas enlatadas y solo le permiten cambiar algunos parámetros en esas expresiones. El generador de condiciones NinjaTrader es avanzado en el sentido de que puede desarrollar expresiones potentes sin limitaciones. Debido a su potencia y flexibilidad, es extremadamente importante que lea y comprenda sus capacidades.
El creador de condiciones también es una ayuda muy poderosa para aquellos de ustedes aprender NinjaScript o aprender a programar. Puede crear sus condiciones dentro del Creador de condiciones y ver instantáneamente el código NinjaScript generado al tener abierto el Editor NinjaScript (presionando el botón Ver código ... en la pantalla del Creador).
El creador de condiciones se puede acceder a través de las condiciones y acciones de pantalla en el NinjaTrader Strategy Builder. Operación básicaEl concepto general del Generador de condiciones es generar una expresión booleana también conocida como expresiones de comparación o expresiones condicionales. Qué significa eso? Es simplemente una expresión que da como resultado un valor VERDADERO o FALSO. Por ejemplo, la expresión
2 < 7 (2 es menor que 7)
es una expresión booleana porque el resultado es VERDADERO. Todas las expresiones que contienen operadores relacionales son booleanas. Las expresiones booleanas o "Condiciones" como se conocen en NinjaTrader se utilizan para determinar cuándo tomar una acción específica, como enviar una orden o dibujar en el gráfico.
Mirando la imagen a continuación, puede ver instantáneamente que el Creador de condiciones está configurado como una expresión booleana. Seleccione un elemento de la ventana izquierda (1), compárelo con un elemento seleccionado en la ventana derecha (1) y luego seleccione el operador relacional (2).
1. Elementos disponibles como indicadores, datos de precios, etc. para usar en la comparación 2. Lista de operadores relacionales.
Operador relacional comparaciones inválidasDado que el operador relacional le permitirá seleccionar cualquier elemento de la izquierda para compararlo con la derecha en el Creador de condiciones, debe tener en cuenta lo que intenta comparar. Por ejemplo , no sería posible comparar un valor basado en el precio, como el valor del indicador DEMA , con la caída de la categoría Misc , y solicitar al Creador de condiciones que emita un error como se muestra a continuación
"El tipo de expresión izquierda y expresión derecha no coinciden, seleccione expresiones similares"
Para evitarlo, deberá seleccionar expresiones con un valor de retorno similar que permita una comparación programática. En el ejemplo utilizado anteriormente, el indicador DEMA proporciona un valor doble a cambio que se intenta comparar con un valor booleano (verdadero / falso), que Falling devolvería.
A continuación se muestra el enfoque correcto, el indicador DEMA se pasaría a Falling como series de entrada y luego el valor de retorno podría compararse con True de la categoría Misc para crear una condición exitosa.
|
Cómo hacer comparaciones de datos de precios
Comparaciones de datos de preciosPuede comparar los datos de precios de una barra, como verificar un cierre más alto. El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
1. Expanda la categoría Precio en el lado izquierdo y seleccione Cerrar . 2. Expanda la categoría Precio en el lado derecho y seleccione Cerrar . 3. Seleccione el operador relacional mayor 4. Establezca el parámetro Bars ago en un valor de "1"
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El precio de cierre actual es mayor que el precio de cierre de hace 1 bar" |
Cómo compensar el valor de un artículo
Compensación de un valor de artículoPuede compensar el valor de la mayoría de los elementos disponibles en el Creador de condiciones . Un desplazamiento es un valor que se agrega, resta, multiplica o divide desde / en el valor del elemento real. Cuando se selecciona un artículo, como un indicador o datos de precios, los parámetros de tipo Offset y Offset se hacen visibles en la ventana directamente debajo del artículo seleccionado. Esto se muestra como los números 5 y 6 en la imagen a continuación.
El tipo de compensación se puede establecer en:
Una vez que se selecciona el tipo de compensación , debe establecer el valor de compensación . Además del ejemplo a continuación, puede ver la sección " Verificación de expansión de volumen " a continuación para ver otro ejemplo que utiliza el tipo de Desplazamiento porcentual .
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles:
1. Expanda la categoría Precio y seleccione Cerrar 2. Expanda la categoría de Precio y seleccione el Alto 3. Seleccione el operador relacional mayor 4. Establezca el parámetro Bars ago en un valor de "1" 5. Establezca el parámetro Tipo de desplazamiento en Ticks 6. Establezca el parámetro Offset en un valor de "1"
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El precio de cierre actual es mayor que el alto precio de 1 bar hace 1 tick" |
Cómo hacer comparaciones de indicadores para valorar
Indicador de comparaciones de valorPuede comparar el valor de un indicador con un valor numérico. Esto puede ser útil si desea verificar si ADX está por encima de un valor de 30 (tendencia) o si Stochastics está por debajo de un valor de 20 (sobreventa) o cualquier otra condición que se le ocurra.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles:
1. Expanda la categoría Indicador y seleccione el indicador ADX 2. Establezca los parámetros del indicador, para nuestro ejemplo con los valores predeterminados no se necesitan cambios 3. Expanda la categoría Varios y seleccione Valor numérico 4. Seleccione el operador relacional mayor 5. Ingrese el valor numérico con el que desea comparar el indicador (30 en nuestro ejemplo)
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El valor actual de un ADX de 14 períodos es mayor que 30" |
Cómo comparar los valores de trama de los indicadores de varias parcelas
Comparación de valores de trazado de indicadores de trazado múltiplePuede comparar gráficos en el mismo indicador o seleccionar cualquier gráfico individual dentro de un indicador para crear una condición.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles:
1. Expanda la categoría Indicador y seleccione el indicador Estocástico 2. Establezca los parámetros de entrada del indicador y seleccione la gráfica K (flecha verde) 3. Expanda la categoría Indicador y seleccione el indicador Estocástico 4. Seleccione el operador relacional mayor 5. Configure los parámetros de entrada del indicador y seleccione el diagrama D (flecha verde)
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El valor actual de la gráfica K de un indicador estocástico es mayor que el valor actual de la gráfica D del mismo indicador estocástico" |
Cómo usar las entradas del usuario
Entradas de usuarioLas entradas del usuario son simplemente variables que pueden usarse en lugar de valores absolutos. Aumentan la flexibilidad de su estrategia, ya que puede sustituir una variable por el parámetro de período de un promedio móvil simple en lugar de proporcionar un valor absoluto.
SMA (9) es cómo expresa un promedio móvil simple de 9 períodos en NinjaScript . Si ejecuta una estrategia, siempre usaría un promedio móvil simple de 9 períodos. En tiempo de ejecución, es posible que desee cambiar este valor a 10. Las entradas definidas por el usuario logran esto. Si creó una entrada llamada "MyInput", podría expresar el promedio móvil simple como SMA (MyInput). En tiempo de ejecución, puede configurar su estrategia estableciendo el valor de "MyInput" en el valor que desee. Además, se requieren entradas del usuario al optimizar una estrategia .
Las variables de usuario (que no deben confundirse con las entradas) se comportan de la misma manera, con la excepción de que no se pueden configurar al iniciar una estrategia, sino que solo se pueden configurar mediante programación durante el tiempo de ejecución.
•Las entradas del usuario se crean desde la pantalla del generador •Las variables de usuario se pueden establecer en la lógica de la estrategia a través del Creador de condiciones (consulte las secciones anteriores)
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles; el ejemplo demuestra el uso de una entrada del usuario; sin embargo, el enfoque de muestra se aplica a las variables del usuario.
1. Expanda la categoría Precio y seleccione Cerrar . 2. Expanda la categoría Indicador y seleccione el indicador SMA 3. Seleccione el operador relacional mayor 4. Establezca el parámetro Período en una entrada definida por el usuario presionando el botón " Establecer " (flecha verde) para abrir la ventana Valor
5. Expanda la categoría de entrada de usuario y seleccione el valor MAPeriod y presione el botón OK
6. El Creador de condiciones ahora se verá según la imagen a continuación con la entrada del usuario "MAPeriod" asignada al parámetro Período. Cuando aplique esta estrategia a un gráfico, podrá establecer el valor para la entrada del usuario directamente desde la interfaz de usuario que luego se utilizará para controlar el indicador SMA.
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El precio de cierre actual es mayor que el período definido por el usuario promedio móvil simple" |
Cómo crear una condición cruzada
Condiciones cruzadasPuede verificar si hay una condición CrossAbove o CrossBelow con un período retrospectivo definido por el usuario. El período de retrospectiva establece el número de barras para repasar y verificar la condición de cruce.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
1. Expanda la categoría Indicador y seleccione el indicador EMA 2. Establezca el parámetro Período en el valor deseado (en este ejemplo se usa "9") 3. Expanda la categoría Indicador y seleccione el indicador EMA 4. Establezca el parámetro Período en el valor deseado ("20" se usa en este ejemplo) 5. Seleccione el operador relacional CrossAbove 6. Establecer el período de retrospectiva
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"La media móvil exponencial de 9 períodos cruza por encima de la media móvil exponencial de 20 períodos en la última barra" |
Cómo usar entradas de indicadores en otros indicadores
Indicador en IndicadorPuede usar indicadores como entrada para otros indicadores ... en realidad, ¡puede anidar indicadores dentro de los indicadores infinitamente si realmente lo desea!
El siguiente ejemplo es un ejemplo de aplicación de un promedio móvil simple ( SMA ) a un indicador ADX de 14 períodos y es una de las muchas combinaciones posibles.
1. Expanda la categoría Indicador y seleccione el indicador SMA 2. Establezca la Serie de entrada en el indicador ADX presionando el botón " Editar entrada " para abrir la ventana Valor 3. Seleccione el indicador ADX y configure las propiedades en la ventana Parámetros
3. Seleccione el indicador ADX y configure las propiedades en la ventana Propiedades 4. Presione el botón OK
5. Una vez que haya presionado el botón OK , notará que en la ventana inferior izquierda, los parámetros de "Serie de entrada" se han configurado en ADX (14), que es el indicador ADX de 14 períodos .
|
Cómo verificar la expansión del volumen
Comprobación de expansión de volumenPuede comparar si el volumen de la barra actual es mayor que el volumen de la barra anterior más una cantidad de compensación.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
1. Expanda la categoría Indicador y seleccione el indicador VOL 2. Expanda la categoría Indicador y seleccione el indicador VOL 3. Seleccione el operador relacional mayor o igual 4. Establezca el parámetro Bars ago en un valor de "1" 5. Establezca el parámetro Tipo de desplazamiento en Porcentaje 6. Establezca el parámetro Offset en un valor de "3" - 3 equivale a 300% por ciento aquí, es decir, 10% sería 0.1
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El valor actual del Volumen es mayor o igual que el valor del Volumen de 1 bar hace 300%" |
Cómo crear comparaciones de posición de mercado
Creación de comparaciones de posición de mercadoPuede comparar información del estado de la estrategia, como, entre otros, la posición actual del mercado o el tamaño actual de la posición.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
1. Expanda la categoría Estrategia y seleccione Posición actual en el mercado . 2. Expanda la categoría Estrategia y seleccione Posición de mercado 3. Seleccione el operador igual a relacional 4. Seleccione Plano en el menú desplegable Posición de mercado en Varios
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"La posición actual del mercado es igual a plana" |
Cómo crear comparaciones de tiempo
Creando comparaciones de tiempoPuede comparar los datos de tiempo de una barra con un valor de hora o fecha definido por el usuario.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
Nota: Las series de tiempo representan una colección de valores de fecha / hora de barra de una serie de barras
1. Expanda la categoría de Tiempo y seleccione Series de tiempo 2. Expanda la categoría de Tiempo y seleccione Series de tiempo 3. Seleccione el operador relacional mayor o igual 4. Establezca el parámetro Tiempo en un valor definido por el usuario de "10:00"
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El horario actual de la barra es mayor o igual a las 10:00 a.m." |
Negar una condiciónTambién puede negar una condición, lo que permite, por ejemplo, que un determinado filtro o configuración de indicador técnico sea lo contrario y evaluar como falso.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles.
1. Expanda la categoría Varios y seleccione la Cruz arriba 2. Haga clic en el campo de entrada Serie 1 y seleccione el indicador DEMA como serie para usar en la comparación cruzada 3. Expanda la categoría Varios y seleccione Falso 4. Seleccione el operador relacional igual
Una vez que se presiona el botón OK , se crea una condición que se traduciría en lo siguiente:
"El indicador de DEMA (14) no ha sido cruzado por el precio de cierre en las últimas 10 barras" |
Crear un filtro de tiempoLos filtros de tiempo pueden ser una herramienta útil de su estrategia personalizada para ayudar a que sus operaciones sean más eficientes y diseñar una forma de probar varias partes de la sesión de negociación. El editor de grupo de condiciones es ideal para configurarlos para sus scripts de Strategy Builder.
El siguiente es un ejemplo y representa una de las muchas combinaciones posibles (así como los tiempos de filtro de tiempo reales a continuación):
1. Presione el ícono de grupo en la pantalla Condiciones y acciones para abrir el Editor de grupo de condiciones
2. Opcionalmente, configure un nombre personalizado para su Grupo de condiciones, es decir, Filtro de tiempo. 3. Selecciona si se deben cumplir todas las condiciones individuales del grupo para permitir una evaluación de resultados "verdadera", o si alguna será suficiente. 4. Presione agregar , editar o eliminar para agregar una nueva condición al grupo o administrar las existentes.
5. Agregue una nueva condición y expanda la categoría Tiempo y seleccione Serie de tiempo 6. Expanda la categoría Tiempo y seleccione el valor Tiempo 7. Ingrese su Tiempo deseado en Varios para el inicio del filtro de tiempo, es decir, 9:31 8. Seleccione el operador relacional igual mayor
9. Presione el botón OK y luego regrese al Editor de grupo de condiciones con su primera condición de filtro creada.
Una vez configurada la segunda condición opuesta, el Grupo de condiciones para el filtro de tiempo podría verse así:
Presione OK ahora en el Editor de grupo de condiciones para salir de él y volver a la pantalla de Condiciones y acciones para configurar otros criterios, como su entrada comercial, así como las acciones resultantes para tomar.
El filtro de tiempo creado se traduciría a:
"Permitir que este grupo de condiciones sea verdadero solo si la hora del día es mayor o igual a las 9:31 a.m. y menor o igual a las 11:30 a.m." |