Sistema de Trading de las Tortugas 2023

Ago 1, 2022 | General, TradeStation

Sistema de Trading de las Tortugas

He visto una plétora de publicaciones sobre el sistema de trading de las tortuga 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 cartera dinámica es bastante imposible programar las restricciones de la cartera como explica Curtis Faith en su bien recibido. Camino de la Tortuga. Pero los otros componentes se pueden programar bastante cerca de las descripciones deCurtis. Quería proporcionar este código sobre sistema de trading de las tortuga de una manera concisa para ilustrar algunas de las construcciones esotéricas de EasyLanguage y algunos atajos limpios. En primer lugar vamos a echar un vistazo a cómo el sistema de trading de las tortuga ha funcionado en crudo durante los últimos 15 años.

 

Clave del sistema de trading de las tortugas: las tendencias

Si hay tendencias en el mercado, el sistema de trading de las tortuga lo atrapará. Mira cómo el mercado se recuperó en 2007 e inmediatamente se recuperó en 2008, y mira cómo el sistema de trading de las tortuga atrapó los movimientos – impresionante. Pero vea cómo el sistema de trading de las tortuga deja de funcionar en la congestión. Tomó una pequeña porción del movimiento de 2014 hacia abajo y ha hecho un gran trabajo de atrapar el colapso de la pandemia y el rebote. En mi último post, programé la función LTL (Last Trader Loser) para determinar el éxito/fallo de la entrada Turtle System 1. Lo modifiqué ligeramente para este post y lo usé en conjunto con Turtle System 2 Entry y el comercio piramidal AddOn de 1/2N para acercarme lo más posible al núcleo de la lógica de entrada/salida de tortugas.

Voy a proporcionar el ELD para que lo pueda revisar en su tiempo libre, pero aquí están las piezas importantes del código que es posible que no sea capaz de derivar sin una gran experiencia de programación.

quantified modles sistema tortuga pruitt crude oil

 

If mp[1] <> mp and mp <> 0 then

begin

if mp = 1 then

begin

origEntry = entryPrice;

origEntryName = «Sys1Long»;

If ltl = False and h >= lep1[1] then origEntryName = «Sys2Long»;

end;

if mp =-1 then

begin

origEntry = entryPrice;

origEntryName = «Sys1Short»;

If ltl = False and l <= sep1[1] then origEntryName = «Sys2Short»;

end;

end;

 

Este código determina si la posición actual del mercado no es plana y es diferente de la posición de mercado de la barra anterior. Si este es el caso, entonces se ha ejecutado una nueva operación. Esta información es necesaria para saber qué salida aplicar sin tener que vincularlas por la fuerza usando las palabras clave De Entry de EasyLanguage. Sólo necesito saber el nombre de la entrada. El entryPrice es el precio de entrada. Aquí sé si el LTL es falso, y el entryPrice es igual o mayor /menor que (basado en la posición actual del mercado) que los niveles de entrada del sistema 2, entonces sé que el sistema 2 nos metió en al mercado con una negociación.

If mp = 1 and origEntryName = «Sys1Long» then Sell currentShares shares next bar at lxp stop;

If mp =-1 and origEntryName = «Sys1Short» then buyToCover currentShares shares next bar at sxp stop;

//55 bar component – no contingency here

If mp = 0 and ltl = False then buy(«55BBO») next bar at lep1 stop;

If mp = 1 and origEntryName = «Sys2Long» then sell(«55BBO-Lx») currentShares shares next bar at lxp1 stop;

If mp = 0 and ltl = False then sellShort(«55SBO») next bar at sep1 stop;

If mp =-1 and origEntryName = «Sys2Short» then buyToCover(«55SBO-Sx») currentShares shares next bar at sxp1 stop;

 

La clave de esta lógica son las palabras clave currentShares shares. Este código indica a TradeStation que liquide todas las acciones o contratos actuales en los niveles stop. Podría utilizar los contratos currentContracts si se siente más cómodo con los futuros vernáculos.

Activación de la opción de piramidar en TradeStation

Antes de poder piratear, debe activarla en Propiedades de estrategia.

Before you can pyramid, you must activate it in Strategy Properties.

If mp = 1 and currentShares < 4 then buy(«AddonBuy») next bar at entryPrice + (currentShares * .5*NValue) stop;

If mp =-1 and currentShares < 4 then sellShort(«AddonShort») next bar at entryPrice – (currentShares * .5*NValue) stop;

Esta lógica agrega posiciones desde la entrada originalPrecio en incrementos de 1/2N. La descripción de esta lógica es un poco borrosa. ¿Es el valor N la lectura ATR cuando se puso el primer contrato o se vuelve a calcular dinámicamente? Me equivoqué en el lado de la precaución y usé la N cuando se puso el primer contrato. Por lo tanto, para calcular las entradas largas de AddOn, basta con tomar el entryPrice original y agregar currentShares * 0.5N. Así que si currentShares es 1, entonces el siguiente nivel de pirámide sería entryPrice + 1* 0.5N. Si currentShares es 2 , entonces entryPrice + 2* 0.5N y así sucesivamente. La parada 2N senderos de la última entradaPrecio. Así que si pones 4 contratos (especificados en el libro de Curtis), entonces la salida final sería 2N desde donde agregaste el 4o contrato. Aquí está el código para eso.

Liquidar todos los contratos en la última entrada – 2N

vars: lastEntryPrice(0);

If cs <= 1 then lastEntryPrice = entryPrice;

If cs > 1 and cs > cs[1] and mp = 1 then lastEntryPrice = entryPrice + ((currentShares-1) * .5*NValue);

If cs > 1 and cs > cs[1] and mp =-1 then lastEntryPrice = entryPrice – ((currentShares-1) * .5*NValue);

//If mp = -1 then print(d,» «,lastEntryPrice,» «,NValue);

If mp = 1 then sell(«2NLongLoss») currentShares shares next bar at lastEntryPrice-2*NValue stop;

If mp =-1 then buyToCover(«2NShrtLoss») currentShares shares next bar at lastEntryPrice+2*NValue Stop;

Presento una nueva variable aquí: cs. CS significa currentShares y yo hago un seguimiento de ella de barra en barra. Si currentShares o cs es menor o igual a1 sé que la última entradaPrice era la entrada originalPrice. Las cosas se complican un poco más cuando empiezas a añadir posiciones – inicialmente no podía recordar si el entryPrice de EasyLanguage contenía el último entryPrice o el original – resulta que es el original – bueno saber. Por lo tanto, si currentShares es mayor que uno y currentShares de la barra actual es mayor que currentShares de la barra anterior, entonces sé que agregué otro contrato y por lo tanto debo actualizar lastEntryPrice. LastEntryPrice se calcula tomando el entryPrice original y agregando (currentShares-1) * 0.5N. Ahora esta es la entrada teóricaPrecio, porque no tengo en cuenta el deslizamiento en la entrada. Podrías hacer este ajuste. Por lo tanto, una vez que conozca el lastEntryPrice puedo determinar 2N a partir de ese precio.

Salir en 2N Trailing Stop

If mp = 1 then sell(«2NLongLoss») currentShares shares next bar at lastEntryPrice-2*NValue stop;

If mp =-1 then buyToCover(«2NShrtLoss») currentShares shares next bar at lastEntryPrice+2*NValue Stop;

Ese es todo el código ingenioso. A continuación se muestra la función y ELD para mi implementación del sistema de entrada dual Turtle. Verá un código bastante sofisticado cuando se trata de la entrada del sistema 1 y esto es debido a estos escenarios:

¿Qué pasa si usted es teóricamente corto y son teóricamente detenidos para un verdadero perdedor y se puede entrar en la misma barra en una operación larga.

¿Qué pasa si usted es teóricamente corto y el punto de inversión resultaría en una operación perdedora. No registraría al perdedor a tiempo para entrar en la posición larga en el punto de inversión.

Qué pasa si usted es realmente corto y el punto de inversión daría como resultado un verdadero perdedor, entonces usted querría permitir la inversión en ese punto

Probablemente haya otros escenarios, pero creo que cubrí todas las bases. Sólo avísame si ese no es el caso. Lo que hice para validar las entradas fue que programé una ruptura/fallo de 20/10 días con una parada 2N y luego revisé la lista y eliminé las operaciones que siguieron a una pérdida no 2N (10 salida de barra para una pérdida o una victoria.) Entonces me aseguré de que esas operaciones no estaban en la salida del sistema completo. Hubo un poco de prueba y error. Si ves un error, como dije, avísame.

Recuerda que publiqué los resultados de diferentes permutaciones de esta estrategia incorporando comentarios dinámicos de cartera en mi otro sitio web https://www.trendfollowingsystems.com/. Estos resultados reflejan la cartera bastante cercana que Curtis sugiere en su libro.

Esperamos le haya gustado este artículo sobre el sistema de trading de las tortuga en EasyLanguage para TradeStation. 

Este artículo escrito por George Pruitt

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