Este sistema de trading está diseñado cuantitativamente por Barue. Somos un equipo que se ha comprometido a investigar estrategias de trading cuantitativas durante mucho tiempo.
El año pasado, hemos logrado excelentes resultados en el Concurso Cuantitativo Tokeninsight.
Gracias a la comunidad FMZ por proporcionar una plataforma así. Con el fin de apoyar mejor la construcción de comunidades cuantitativas, el concepto de diseño y las ideas de diseño de esta estrategia se publican ahora aquí. Espero que puedas aprender el diseño y la aplicación del comercio cuantitativo.
La inspiración para el sistema de tasa de digitación cuantitativa es principalmente de la física
La definición de velocidad en física es: la distancia desplazada por unidad de tiempo. Si consideramos el precio como distancia, entonces en el mercado financiero, la definición de velocidad es el tamaño del cambio de precio por unidad de tiempo.
Si el precio cambia mucho en un tiempo unitario, este tipo de mercado generalmente se llama mercado rápido; si el cambio de precio en un tiempo unitario es pequeño, este tipo de mercado se llama mercado lento. Por lo tanto, la velocidad es una ley natural que integra el tiempo y el precio. Una comprensión profunda de la velocidad puede ayudarnos a comprender el mercado en mayor medida.
Si la tasa aumenta, significa que la energía está aumentando y puede predecir eficazmente la tendencia al alza del mercado.
Si la tasa cae, significa que hay un fallo energético y se puede percibir el riesgo de condiciones de mercado estables o decrecientes.
Cada transacción utiliza un cierto número de lotes para la transacción, por lo que se llama un sistema de negociación de tipos cuantitativos.
Precio más alto (HHV): el precio más alto alcanzado en un período determinado. Precio más bajo (LLV): el precio más bajo alcanzado en un período determinado. En el caso de los instrumentos financieros, el valor de los activos financieros es el valor de los activos financieros. Pendiente de regresión (SLOPE): la pendiente de una regresión lineal con un período específico. (Eso es lo que llamamos tasa)
La fórmula de pendiente de la ecuación lineal OLS es la siguiente:
La fórmula matemática es muy complicada, pero la plataforma FMZ ya ha escrito la fórmula gramatical (SLOPE) del lenguaje M para nosotros.
Podemos ver que el algoritmo es el siguiente:
El proceso es un poco más complicado, pero no todo el mundo tiene que pensar en ello.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
A través del diseño de los indicadores, podemos ver que en el gráfico principal, tenemos el punto más alto (línea amarilla), el punto más bajo (línea verde), su promedio (línea roja), y el precio suavizado promedio móvil calculado por línea roja (línea morada gruesa)
Entonces podemos calcular la pendiente de regresión ss en la figura adjunta, que representa la tasa de aumento y disminución de la media móvil.
Como se puede ver en la figura anterior, las flechas verdes indican los puntos de inflexión en la pendiente más baja, y las flechas naranjas indican los puntos de inflexión en la pendiente más alta.
La reacción a lo largo del gráfico está en la línea k, y el debilitamiento de la subida y el debilitamiento de la caída también se pueden sentir claramente.
Si usted compra y vende en el punto de inflexión, usted puede operar eficazmente el comercio en la etapa inicial, en lugar de perseguir el aumento o la caída en el punto alto o bajo.
La inclinación ascendente significa que el impulso del mercado está aumentando, que puede dejar de caer o comenzar a subir. La disminución continua de la pendiente significa que el impulso del mercado es débil y puede dejar de subir o comenzar a bajar.
El diseño y la expresión que utiliza el lenguaje M son los siguientes:
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;
De esta manera, hemos completado el diseño de este algoritmo, y luego usaremos el sistema para probar la situación durante un año.
El objeto es el contrato trimestral btc de okex;
El período de prueba de retroceso es del 1 de enero de 2019 a la actualidad y el período de tiempo es de 1 hora;
3 btc para la cuenta inicial, cuota de manejo del 0,05%;
Establecer un número fijo de 200 lotes por transacción.
Se puede ver a partir del backtest que este ingreso es relativamente suave y estable.
En este backtest, se realizaron 1261 transacciones a lo largo del año; Ingresos estimados de 4,68 en criptomonedas; El ingreso anualizado es de alrededor del 140%; El aprovechamiento máximo es del 14%; La proporción de Sharpe es 0.117.
Haga clic para ir a la estrategia de copiahttps://www.fmz.com/strategy/183416
El intercambio anterior es algunas ideas y contenido de mi diseño, lo siguiente es todo el código del lenguaje M, Para su referencia, estudio e investigación. Si necesita reimprimir, por favor indique la fuente.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;