Tiempo de lectura estimado: 7 min

PrescienTrader incluye funciones de múltiples marcos de tiempo que se integran con la potente funcionalidad de análisis y backtesting de AmiBroker. También incluye scripts AFL que demuestran cómo usar las funciones de análisis. Las funciones de análisis requieren una suscripción a PrescientAPI Professional.

El siguiente video muestra cómo configurar y ejecutar una exploración. Mire el video, luego regrese a este artículo para continuar con el tutorial.

Miniatura

Exploración

Cuando ejecuta una exploración utilizando el script de prueba de PrescienTrader incluido, AmiBroker escanea a través de su lista especificada de instrumentos y su rango de fechas especificado. Genera una fila para cada combinación de un instrumento y una fecha. En el ejemplo anterior, solo estamos analizando un solo instrumento (CHF / JPY) para el rango de fechas del 1 de octubre al 31 de diciembre de 2018.

Los scripts generan las siguientes columnas de exploración:

  • Símbolo ticker
  • Fecha y hora
  • Abierto, Alto, Bajo, Cerrar, Volumen, Interés abierto
  • Salvado - Esta columna se resalta en amarillo para cualquier fila que use configuraciones de parámetros guardadas. Cuando guarda los parámetros en PrescienTrader, los parámetros se guardan solo para el instrumento y el marco de tiempo seleccionados. Esto le permite utilizar configuraciones de parámetros personalizados para cada instrumento y cada marco de tiempo. Cuando ejecuta una exploración, PrescienTrader aplicará automáticamente cualquier configuración de parámetros personalizados. El resaltado amarillo en la columna Guardado es para recordarle que la fila está usando configuraciones guardadas, no las configuraciones que ingresó en la ventana Parámetros.
  • Pendiente PL - Esto indica la pendiente de la tendencia de la Línea Presciente. Las pendientes positivas predicen una tendencia alcista mientras que las negativas predicen una tendencia bajista.
  • Puntuación FLD - La suma de los FLD para todos los ciclos válidos multiplicada por la Fuerza o la Amplitud de cada ciclo, dependiendo de su configuración de Base PL. Los valores positivos indican que el mercado está en una tendencia alcista cíclica. Los valores negativos indican que el mercado está en una tendencia bajista cíclica.
  • Barra de tendencia - El número de barra relativa dentro de la tendencia actual predicha. La primera barra en una tendencia es la barra cero.
  • Barras de tendencia - El número total de barras en la tendencia prevista actual.
  • Tendencia Pct - El porcentaje de finalización de la tendencia actual prevista. Por ejemplo, si Trend Bar = 5 y Trend Bars = 10, Trend Pct sería 50%. Tenga en cuenta que Trend Pct nunca alcanzará 100%, porque eso significaría que ha comenzado una nueva tendencia. En el punto de superposición entre la antigua tendencia y la nueva tendencia, Trend Pct será 0%. Además de la visualización numérica, esta columna también muestra un gráfico de barras que cambia de verde a rojo a medida que avanza la tendencia.
  • Acción - Esta es la señal, Buy / Sell / Short / Cover, para la fila actual. Las señales generadas a partir de los scripts incluidos se basan simplemente en Trend Slope. Cuando la tendencia de la tendencia es positiva, mostrará una señal de compra y cuando la tendencia de la tendencia es negativa, mostrará una señal corta. Esto pretende ser muy simple ejemplo de cómo podría comenzar a construir un sistema de comercio utilizando los indicadores PrescienTrader. ¡NO use estas señales de ejemplo para operar en vivo, ya que lo más probable es que pierda dinero! La idea es desarrollar sus propios sistemas de negociación utilizando nuestros indicadores y posiblemente otros indicadores, y luego realizar una prueba exhaustiva del sistema. Una vez que tenga un sistema válido probado, puede conectar ese sistema a la columna Acción para mostrar sus señales de negociación.

Backtesting

Para ejecutar un backtest o una optimización, comience cargando el script PrescienTrader Backtesting AFL. Te sugerimos hacer una copia del guión, en lugar de modificar el guión original. Nuestras funciones de análisis generan resultados para columnas de exploración y también crean matrices y matrices AFL que contienen los resultados. Al ejecutar un backtest u optimización, utilizará las matrices y matrices AFL generadas, que incluyen lo siguiente:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies (Matrix)
  • ptStaticSlopes (matriz)
  • ptStaticFLDPrices (matriz)

Si está ejecutando un análisis para varios marcos temporales, las funciones crearán un conjunto separado de matrices y matrices para cada marco temporal. Los nombres serán los mismos que los anteriores, excepto que cada nombre tendrá un sufijo HTPx, donde x representa el índice de período de tiempo más alto. Por ejemplo, las matrices y matrices para el primer período de tiempo superior se denominarán, ptStaticPLHTP1, ptStaticPLSlopeHTP1, etc. Las matrices y matrices para el segundo período de tiempo superior se denominarán ptStaticPLHTP2, ptStaticPLSlopeHTP2, etc.

El analizador de AmiBroker es extremadamente poderoso. Es compatible con verdaderas pruebas de cartera, pruebas de avance, simulaciones de Monte Carlo, pruebas de marcos de tiempo múltiples, piramidación y escalado, monedas múltiples y más. Toda esta funcionalidad y potencia está disponible para realizar pruebas y la salida de PrescienTrader. Está más allá del alcance de este artículo discutir los detalles de las pruebas de respaldo en AmiBroker. Para eso, es mejor leer la documentación de AmiBroker.

Parámetros y Variables de Parámetros

Al ejecutar un análisis, PrescienTrader utilizará los valores de los parámetros que especifique en la ventana Parámetros. Sin embargo, si previamente guardó la configuración del instrumento para el mercado y el marco de tiempo actual, el la configuración guardada anulará la configuración que se muestra en la ventana Parámetros. Esto le permite realizar un análisis de cartera utilizando diferentes valores de parámetros para cada instrumento en la cartera. Cuando vea la ventana Parámetros, mostrará la última configuración que ingresó, que puede no ser necesariamente la configuración guardada. Haga clic en el Resetear todo botón para mostrar la configuración guardada del instrumento.

Además, puede guardar la configuración predeterminada. A diferencia de la configuración guardada del instrumento, la configuración predeterminada guardada NO anular la configuración mostrada. Esto le permite aprovechar el hecho de que AmiBroker recuerda automáticamente la última configuración que ingresó, por lo que si está probando un determinado conjunto de configuraciones varias veces, no tiene que volver a ingresarlas cada vez. Sin embargo, siempre puede volver a la configuración predeterminada guardada haciendo clic en Resetear todo botón. Manten eso en mente la configuración guardada del instrumento tiene prioridad sobre la configuración predeterminada guardada, así que si haces clic Resetear todo y no muestra su configuración predeterminada, eso significa que ha guardado la configuración del instrumento para el instrumento y el marco de tiempo que se muestran actualmente.

Finalmente, puede anular la mayoría de los parámetros configurando una variable AFL correspondiente a cada parámetro. Las variables disponibles incluyen:

  • ptPolarity (0 = Positivo, 1 = Negativo)
  • ptPLBasis (0 = Amplitud, 1 = Fuerza)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Cada variable también tiene mayores variaciones de período de tiempo para el análisis de múltiples marcos de tiempo. Para establecer una variable de período de tiempo superior, agregue HTP1, HTP2, HTP3, etc. al nombre de la variable. Por ejemplo:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

Las variables siempre anulan la configuración de la ventana de parámetros y cualquier configuración guardada. Si establece una variable de parámetro en AFL, el parámetro correspondiente desaparecerá de la ventana Parámetros. Debe establecer todas sus variables de parámetros ANTES de llamar al Análisis premonitorio o Análisis premonitorio funciones

Análisis de subprocesos individuales o subprocesos múltiples

PrescienTrader admite análisis de subprocesos múltiples y subprocesos múltiples. La función de un solo subproceso solo requiere una sola línea de código, por lo que es bueno para ejecutar exploraciones rápidas o simples backtests. La desventaja es que el análisis se ejecuta en un solo hilo, por lo que solo puede analizar una fila a la vez. Sin embargo, si su análisis solo consta de unos cientos de filas, la diferencia de tiempo sería insignificante. En este escenario, le tomaría más tiempo escribir el código adicional para un análisis multiproceso que el tiempo ahorrado al ejecutarlo.

PrescienTrader Backtester Script - Sección de un solo hilo

El script de análisis de ejemplo se llama PrescienTrader Backtester. Si ve este script, verá que contiene una sección de subproceso único y una sección de subprocesos múltiples, que puede alternar entre el uso de una configuración de parámetros. La sección de análisis de hilo único contiene una sola línea de código:

PTBacktest ();

los PTBacktest La función no toma parámetros porque configura todos los parámetros en la ventana Parámetros. Cuando se ejecuta, crea una solicitud de API, envía la solicitud a PrescientAPI, analiza la respuesta, envía los resultados a las columnas de exploración y genera las matrices AFL descritas anteriormente.

Para realizar un análisis de marco de tiempo múltiple, simplemente llame a la función de Análisis Presciente varias veces. Por ejemplo, si desea analizar el período de tiempo base y dos períodos de tiempo más altos, usaría el siguiente código:

PTBacktest (); PTBacktest (); PTBacktest ();

Cada instancia de la función crea otro marco de tiempo en la ventana Parámetros, por lo que en el ejemplo anterior, la ventana Parámetros contendría configuraciones para el período de tiempo base, HTP1 y HTP2. No confunda multi-threading con multi-timeframe; Estos son dos conceptos completamente diferentes. Multi-threading se refiere a ejecutar más de un análisis a la vez, como analizar una cartera de instrumentos. El marco de tiempo múltiple se refiere al análisis de cada instrumento en más de un marco de tiempo. Por ejemplo, podría analizar los plazos diarios, semanales y mensuales del S&P 500. En ese ejemplo, también se beneficiaría de ejecutar en modo de subprocesos múltiples, ya que analizaría los tres marcos de tiempo simultáneamente. Sin embargo, podría ejecutar un análisis de marcos múltiples en modo de subproceso único, en cuyo caso analizaría los marcos secuencialmente.

Script de análisis de PrescienTrader: sección de subprocesos múltiples

La sección de subprocesos múltiples es más complicada que la secuencia de comandos de subproceso único y requiere varias líneas de código:

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    si (ih) {
        respuesta = "";
        while ((line = InternetReadString (ih))! = "")
            respuesta + = línea;
        PTBacktestExecute (respuesta);
        InternetClose (ih);
    }
    más {
        msg = "Sin respuesta de la API - Posible tiempo de espera o problema de conectividad a Internet - Esperando 60 segundos";
        _RASTREO (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

La razón del código adicional es que AmiBroker no admite subprocesos múltiples en complementos como PrescienTrader. Entonces, en lugar de realizar toda la operación de análisis en una sola función de complemento, el complemento maneja todo excepto la solicitud de API, que es la parte que consume más tiempo y, por lo tanto, produce el mayor beneficio de ejecutarse en múltiples hilos.

Analicemos esto paso a paso ...

  1. En el primer paso, llamamos a PTBacktestPrepare y asignamos el resultado a la variable postVars. Esta función utiliza los parámetros definidos en la ventana Parámetros para generar los datos en el formato adecuado para una solicitud de API.
  2. En el segundo paso, hacemos la solicitud de API utilizando las funciones InternetPostRequest e InternetReadString. Dado que está interactuando con un servidor remoto, esta es la parte más lenta del proceso y, por lo tanto, se beneficia al máximo al ejecutarse en varios subprocesos.
  3. En el paso final, ejecutamos PTBacktestExecute en los datos devueltos por la API. Esta función analiza los datos, envía los resultados a las columnas de exploración y genera las matrices AFL descritas anteriormente.

Como puede ver, no es tan complicado, pero requiere mucho más código que el enfoque de un solo hilo. Si está analizando una gran cantidad de datos, el enfoque de subprocesos múltiples puede ser hasta 32 veces más rápido, dependiendo de la cantidad de núcleos de CPU que tenga su computadora.

Al igual que con el enfoque de subproceso único, puede analizar varios marcos de tiempo insertando el bloque de código anterior varias veces o envolviendo el bloque de código en un bucle for.

Mejoramiento

La optimización es el proceso de ajuste de parámetros para lograr los mejores resultados para un mercado o grupo de mercados. AmiBroker permite optimizar hasta 64 parámetros simultáneamente, admite la optimización de la cartera e incluye tres motores de optimización inteligente, Optimización estándar de enjambre de partículas, Tribus y CMA-ES.

PrescienTrader admite la optimización de todos sus parámetros sin tener que escribir código para cada parámetro. Para establecer los parámetros de optimización, mantenga presionada la tecla Cambio tecla y haga clic en el icono de la barra de herramientas de parámetros. Esto mostrará la ventana de parámetros de optimización, donde puede ingresar un rango (De y Para) para cada parámetro y un paso para parámetros numéricos El rango representa el rango de optimización. Por ejemplo, para optimizar el rango al pasado, puede seleccionar algo como:

Rango de LookBack Desde: 5
Rango al pasado: 10
Paso de rango al pasado: 1

Ingresar estos parámetros optimizaría el rango al pasado entre 5 y 10 con un incremento de 1, por lo que probaría valores de 5, 6, 7, 8, 9, 10.

Inicio sesión

Al ejecutar un análisis, PrescienTrader envía continuamente información a la ventana de seguimiento. Cada línea contiene la siguiente información:

  • Tipo de análisis (backtest, optimización, exploración, etc.)
  • Símbolo del instrumento analizado.
  • Período de tiempo (diario, semanal, mensual, etc.)
  • Serie de datos (Cerrar, Promedio, etc.)
  • Valores paramétricos:
    • Polaridad
    • Base PL
    • Frecuencia mínima
    • Frecuencia máxima
    • Rango al pasado
    • Filtro armónico
    • Min Confianza
    • Mejores ciclos X

Para cada valor de parámetro, indica su fuente entre paréntesis. La fuente puede ser una de las siguientes:

  • Parámetros: el valor se tomó de la ventana Parámetros.
  • Opt: el valor se generó en función de la configuración de optimización especificada en la ventana Parámetros.
  • Guardado: valor guardado para este instrumento y período de tiempo.
  • AFL: el valor se tomó de la variable AFL correspondiente al parámetro.
  • Matriz: el valor se tomó de una matriz AFL. Dado que las matrices pueden usar un valor diferente para cada barra, no se mostrará ningún valor.

Las variables AFL tienen la mayor prioridad, seguidas de los valores guardados y luego los valores especificados en la ventana Parámetros.

Además de la ventana Rastreo, puede habilitar el registro en un archivo ingresando la ruta del archivo en la ventana Parámetros.

¿Te resultó útil este artículo
Disgusto 0
Puntos de vista: 497
SIEMPRE LIBRE
Señales comerciales diarias
por PrescientSignals
SUSCRIBIR
Suscríbase para recibir diariamente señales de trading GRATUITAS en su bandeja de entrada de correo electrónico
Las señales gratuitas se retrasan una semana. Esto le permite evaluar nuestro servicio PrescientSignals sin riesgos, comparando las predicciones de la semana anterior con los resultados reales.
SIEMPRE LIBRE
Señales comerciales diarias por PrescientSignals
SUSCRIBIR
Suscríbase para recibir diariamente señales de trading GRATUITAS en su bandeja de entrada de correo electrónico
Las señales gratuitas se retrasan una semana. Esto le permite evaluar nuestro servicio PrescientSignals sin riesgos, comparando las predicciones de la semana anterior con los resultados reales.