Código para rollover automatizado (Parte 2)

Nov 3, 2022 | EasyLanguage, TradeStation

Código para rollover automatizado. ¿Pueden los traders de futuros confiar en los contratos continuos? [Parte 2]

Este artículo fue redactado por George Pruitt y publicado en su blog el 09 de septiembre del 2022. Tal como le planteamos en artículos anteriores, para un trader cuantitativo, entender y programar sistemas de trading es una tarea común. Aquí le presentamos un código que le permite de manera automática cambiar de contrato en el momento más oportuno:

Síntesis de la primera parte

Tuve que terminar la Parte 1 muy rápido y probablemente no logré transmitir mis ideas por completo. Esto es lo que se hizo en la Parte – 1.

  1. utilicé mi función para localizar la fecha de la primera notificación en crudo
  2. utilicé la misma función para que imprimiera una sintaxis exacta con EasyLanguage
  3. elegí hacer un roll de ocho días antes de la FND e hice que la función imprimiera la sintaxis exacta con EasyLanguage
  4. la salida creó asignaciones de matrices y cargó los puntos de roll calculados en formato YYYMMDD en la matriz
  5. inspeccionó visualmente los contratos continuos no ajustados que se empalmaron ocho días antes de FND
  6. se añaden las fechas en la matriz para que coincidan con los puntos de roll, como lo ilustra la caída del interés abierto

El sexto paso es muy importante, ya que debe asegurarse de que está fuera de la posición en la fecha correcta de renovación. Si no lo hace, entonces absorberá el descuento entre los contratos en su beneficio/pérdida cuando salga de la operación.

Paso 2 – Crear el código que ejecuta las operaciones de rollover

Este es el código que maneja las operaciones de rollover.

...
...
...
...
rollArr[118]=20220314;
rollArr[119]=20220411;
rollArr[120]=20220512;
rollArr[121]=20220613;
rollArr[122]=20220712;
rollArr[123]=20220812;

//  If in a position and date + 1900000 (convert TS date format to YYYYMMDD),
//  then exit long or short on the current bar's close and then re-enter
//  on the next bar's open

if d+19000000 = rollArr[arrCnt] then
begin
	condition1 = true; 
	arrCnt = arrCnt + 1;
	if marketPosition = 1 then
	begin
		sell("LongRollExit") this bar on close;
		buy("LongRollEntry") next bar at open;
	end;
	if marketPosition = -1 then
	begin
		buyToCover("ShrtRollExit") this bar on close;
		sellShort("ShrtRollEntry") next bar at open;
	end;
	
end;

Código para la renovación de la posición abierta

Este código nos saca de una posición abierta durante la transición del antiguo contrato al nuevo. Recuerde que nuestra función creó y cargó el rollArr por nosotros con las fechas apropiadas. Esta simulación es lo mejor que podemos hacer – en realidad saldríamos/entraríamos al mismo tiempo en los dos contratos diferentes. Esperar hasta la apertura de la siguiente barra introduce un deslizamiento. Sin embargo, a largo plazo este coste de deslizamiento puede desaparecer.

Paso 3 – Crear un sistema de trading con entradas y salidas

    El sistema será un simple Donchian en el que se entra al cierre cuando el máximo/mínimo de la barra penetra en el máximo/mínimo de las últimas 40 barras. Si está largo, saldrá al cierre de la barra cuyo mínimo sea menor que el mínimo de las últimas 20 barras. Si está corto, saldrá al cierre de la barra que sea mayor que el máximo más alto de las últimas veinte barras. La primera prueba mostrará el resultado de utilizar un contrato continuo ajustado con 8 días de antelación a FND.

    A nice trade. For the month of August 2014

    Un bonito negocio. Por el mes de agosto de 2014

    Esta prueba utilizará exactamente los mismos datos para generar las señales, pero la ejecución tendrá lugar en un contrato continuo no ajustado con rollovers. Aquí data2 es el contrato continuo ajustado y data1 es el no ajustado.

    The same Trade but with rollovers

    El mismo Trade pero con rollovers

    Sigue siendo una operación muy bonita, pero en realidad tendría que soportar seis operaciones de rollover y los costes de ejecución asociados.

    Conclusión:

    Este es el mecanismo de la operación de vuelco.

    Withdrawal of the old contract and transfer to the new one

    Retirada del antiguo contrato y traslado al nuevo

    A continuación, los resultados del rendimiento utilizando 30 dólares para los costes de ejecución de las rotaciones.

    Sin rollover:

    Without Rollovers

    Sin Rollovers

    Ahora, con rollovers:

    Many more operations with rollovers!

    ¡Muchas más operaciones con rollovers!

    Los resultados son muy parecidos, si se tienen en cuenta los costes de ejecución adicionales. Dado que TradeStation no está construido en torno al concepto de rollovers, muchas de las métricas de las operaciones no son precisas. Métricas como la media de las operaciones, el porcentaje de ganancias, la media de ganancias/pérdidas y el Drawdown máximo de las operaciones no reflejarán las entradas y salidas basadas puramente en el algoritmo. Estas métricas tienen en cuenta las entradas y salidas promovidas por los rollovers. El primer gráfico de operaciones en el que se mantuvo el corto durante varios meses debería considerarse como una entrada y una salida. Los rollovers deberían ejecutarse en tiempo real, pero las métricas de rendimiento deberían ignorar estas operaciones intermedias.

    Probaré estos rollovers con diferentes algoritmos, y veré si seguimos obteniendo resultados similares, y los publicaré más adelante. Como usted puede ver, las pruebas en los datos no ajustados con rollovers no es una tarea sencilla.

    Artículo cedido por cortesía de George Pruitt

    Para leer nuestro anterior artículo referente a la parte 1, haga clic en este enlace: ¿Pueden los traders de futuros confiar en los contratos continuos? [parte – 1]

    Si desea ver parte del código que se ha utilizado en este artículo, lo tenemos disponible para quien los desee, para solicitarlo haga clic en este enlace: Contacto

    Canal de YouTube de Quantified Models

    En nuestro canal de YouTube tenemos varios videos disponibles que pueden resultarle muy útiles para desarrollar sistemas de trading.

    Esperamos que esta información te haya sido de utilidad.

    Easylanguage | Sistema de trading: Tortugas

    Easylanguage | Sistema de trading: Tortugas

    He visto una plétora de publicaciones sobre las estrategias de comercio de tortugas donde se proporcionan las reglas y el código. Los códigos van desde una mera ruptura de Donchian hasta una representación bastante cercana. Sin retroalimentación de...

    leer más

    Subscribe to our Newsletter

    Join our mailing list to receive the latest news and updates from Quantified Models team.

    Subscribe to our Newsletter

    You have Successfully Subscribed!

    Ir al contenido