Você está na página 1de 78

INDICE

Introduccin___________________________________________________________
Acceder a la programacin de sistemas de trading..............................................................................2 La ventana de creacin de sistemas de trading...................................................................................3 Atajos de teclado............................................................................................................................ 5

La programacin de sistemas de trading___________________________________


La programacin en lenguaje ProBuilder............................................................................................. 6 Entradas y salidas del mercado............................................................................................................ 6 Los stops y objetivos............................................................................................................................ !tops de proteccin........................................................................................................................ !et "arget Pro#it $objetivo de bene#icios%.......................................................................................&' "railing stops $stops din(micos%.................................................................................................... &' )so de los comandos *!et "arget* y *!et !top* con bucles condicionales +,..................................&& -.ltiples niveles de stop y de objetivos........................................................................................ && /etener un sistema de trading con 0)+"........................................................................................... &5 !eguimiento de posiciones................................................................................................................. &5 1ariables de veri#icacin del estado de las posiciones..................................................................&5 1ariables sobre el tama2o de la posicin......................................................................................&6 "rade+nde3.................................................................................................................................... &6 "radePrice.................................................................................................................................... &6 PositionPer#................................................................................................................................... &4 PositionPrice................................................................................................................................. &4 !trategyPro#it................................................................................................................................ &4 /e#inicin de los par(metros de ejecucin de los sistemas de trading...............................................&5 Acumulacin de rdenes .............................................................................................................. &5 PreLoadBars................................................................................................................................. & ,latBe#ore and ,latA#ter................................................................................................................ & 6o actuali7acin en e#ectivo 8 6o9as:)pdate $slo ProBac;test%...............................................2' Llamadas a indicadores...................................................................................................................... 2' +ndicadores Pro<eal"ime.............................................................................................................. 2' +ndicadores personali7ados.......................................................................................................... 2' 9onsejos de programacin................................................................................................................. 2& <educir el n.mero de llamadas a indicadores Pro<eal"ime........................................................2& Llamadas a indicadores personali7ados.......................................................................................2&

ProBacktest: La simulacin de sus sistemas de trading_______________________


=estin de 9apital o -oney -anagement.........................................................................................25 9apital inicial................................................................................................................................. 25 9omisiones de operativa y gestin de riesgos..............................................................................25 >ptimi7acin de variables.................................................................................................................. 25 /e#inicin del periodo de ejecucin del bac;test................................................................................3& Personali7acin de las :oras de trading en bac;tests........................................................................3& <a7ones por las ?ue puede detenerse un ProBac;test......................................................................32

ProInvest: La ejecucin de sistemas de trading automtico____________________


Prepare un sistema de trading para la ejecucin autom(tica.............................................................3@ 9mo ejecutar sistemas de trading en Pro+nvest y comprobar sus resultados..................................36 9on#iguracin de las pre#erencias de trading y condiciones de ejecucin..........................................@' 9on#iguracin de los sistemas de trading.....................................................................................@' /etencin autom(tica de sus sistemas de trading........................................................................@& 9oe3istencia del trading manual y del trading autom(tico en la plata#orma.......................................@2 Ejecutar m.ltiples sistemas de trading en el mismo valor..................................................................@3 <estriccin de indicadores................................................................................................................. @@

ne!o : "uestre los resultados de sus sistemas de trading__________________ ne!o B: plicaciones prcticas__________________________________________
!istema de trading basado en Aei;in As:i....................................................................................5& !istema de trading basado en el BigBag.......................................................................................5& !istema de trading Brea;out <ange con !top /in(mico..............................................................52 !istema de trading basado en el Estoc(stico Alisado...................................................................53 !Cing "radingD A/E y -edias mviles..........................................................................................5@ !istema de trading basado en contador de posiciones.................................................................55 !istema de trading basado en el "rade+nde3 8 ,ind inside bar....................................................56 Estrategias de money management $gestin de capital%....................................................................54 !top de proteccin $stop loss% F objectivos..................................................................................54 !tops de inactividad...................................................................................................................... 54 Acumulacin de rdenes 8 A2adir rdenes a una posicin e3istente mediante un contador de posicin.............................................................................................................................................. 55 La martingala cl(sica.................................................................................................................... 5 La gran martingala........................................................................................................................ 6' La Pi?uemouc:e........................................................................................................................... 6& La pir(mide de Alembert............................................................................................................... 62 La contra de Alembert................................................................................................................... 63

#losario______________________________________________________________

Introduccin a la programacin de sistemas de trading con Pro$eal%ime v&'


Esta versin del manual de programacin se aplicar( a las versiones &' y superiores de Pro<eal"ime. La :erramienta de programacin de sistemas de trading de Pro<eal"ime le permite crear estrategias de inversin personali7adasD mediante la programacin o a travGs de un asistente incorporado Los sistemas de trading podr(n ejecutarseH 9omo ProBac;tests para probar su e#icacia a lo largo de cual?uier periodo :istrico de un valor. 9omo trading autom(tico gracias al mdulo Pro+nvestH se lan7ar(n rdenes en tiempo real desde su cuenta de trading o de Paper"rading. La programacin de sistemas de trading se basa en el lenguaje de programacin ProBuilderD con e3tensiones aplicables e3clusivamente al desarrollo de sistemas de trading $le aconsejamos la lectura previa del manual ProBuilder%. En este mdulo puede simular aperturas de posicionesD stops y la gestin de riesgos de cada sistema de trading ?ue desee ejecutarD en #uncin de condiciones personali7adas tales ?ueH Los indicadores incluidos por de#ecto en la plata#orma o los programados por )d. Los resultados pasados de su sistema de trading. !us .ltimas rdenes. Los resultados de la ejecucin de un sistema de trading se presentan a travGs de los siguientes elementosH =r(#ico de li?uide7 $o *E?uity 9urve*%D ?ue indica las ganancias o pGrdidas de un sistema en un instrumento en particular. Aistograma de posiciones $verde si la posicin es compradoraD rojo para las posiciones de venta a descubierto% y de 7onas sin transacciones en curso $sin velas%. +n#orme detalladoD ?ue le proporciona estadIsticas generales de su sistemas de trading para el valor y periodo elegidos. El mdulo ProBac;test le permite adem(s la optimi7acin de las variables de su sistemas de trading para seleccionar las ?ue le proporcionen los mejores resultados en los periodos e instrumentos anali7ados. En trading autom(ticoD las rdenes lan7adas por sus sistemas de trading aparecen en su cuenta Paper"rading y la cartera se actuali7a con las plusvalIas reali7adas. Este manual est( organi7ado de la siguiente maneraH comen7amos e3plicando el acceso a las #unciones de edicin de sistemas de trading en la primera seccinD mientras ?ue la segunda parte presenta las instrucciones ProBuilder necesarias para su programacin. La .ltima seccin detalla la simulacin de sistemas de trading en ProBac;test y los ane3os #inales del manual describen la presentacin de resultadosD algunos ejemplos de cdigosD asI como un glosario del lenguaje ProBuilder. Para a?uellos usuarios poco acostumbrados a programarD aconsejamos visuali7ar el vIdeo titulado *Programe estrategias sin escribir una sola lInea de cdigo* El contenido del presente manual tiene como objetivo ense2arle a desarrollar y a probar sus propias ideasJ en ning.n caso debe interpretarse como un asesoramiento en la inversin. Le deseamos una agradable lectura y los mejores resultados en sus inversiones.

& K 43

Introduccin

Introduccin
cceder a la programacin de sistemas de trading
La ventana de creacin de sistemas de trading es accesible a partir del botn *+ndicadorK!istemas de trading* ?ue se encuentra en la parte superior derec:a de cada gr(#ico de su plata#orma Pro<eal"ime.

"ras pulsar ese botnD se abrir( por de#ecto la ventana de gestin en la pesta2a *+ndicadores*. Active la pesta2a *!istemas de "rading* pulsando sobre la misma con el ratn. 9on elloD podr(H Acceder a la lista de sistemas de trading e3istentes $prede#inidos o personali7ados% 9rear un nuevo sistema de trading y ejecutarlo en cual?uier valor -odi#icarD suprimir o duplicar un sistema de trading e3istente +mportar o e3portar sistemas de trading

2 K 43

Introduccin

La ventana de creacin de sistemas de trading


La ventana de creacin de sistemas de trading se compone de 2 7onas principalesH La 7ona de creacin $asistida o programando% en el (rea i7?uierda de la ventana. La 7ona de aplicacin en la parte derec:aD ?ue comprende la pesta2a ProBac;test para probar la e#icacia del sistema de trading y la pesta2a Pro+nvest para su ejecucin en trading autom(tico. Encontrar( la con#iguracin detallada del mdulo ProBac;test en la seccin 3 de este manual.

3 K 43

Introduccin

La 7ona de creacin le permiteH Programar directamente un sistema de trading en la 7ona de te3to. )tili7ar la #uncin de ayuda *+nsertar #uncin* y acceder a la biblioteca de las #unciones disponibles. 9ada una de estas #unciones se acompa2a igualmente de un te3to de ayuda.

Ejemplo: En nuestro caso utili7aremos la biblioteca pulsando *+nsertar #uncin*. /irIjase a la categorIa *9omandos ProBac;test* y seleccione * B()*. A continuacinD pulse el botn *A2adir*H el comando se a2adir( en la 7ona de programacin.

+ntentemos crear un ProBac;test. !upongamosD por ejemploD ?ue deseamos comprar &' valores a precio de mercado. Para elloD reali7aremos la operacin descrita anteriormenteD con el objetivo de recuperar las instrucciones *!AA<E!*D *A"* y *-A<LE"* $recuerde separar cada palabra por un espacio%. !e obtiene entonces la instruccin * B() &' *+ $E* % " $,E%- ?ue ordena la compra de &' tItulos a precio de mercado. La seccin siguiente presenta todas las instrucciones disponibles para la programacin de sistemas de trading. Para ver m(s ejemplosD consulte el Ane3o B del presente manual.

@ K 43

Introduccin

tajos de teclado La ventana de creacin de sistemas de trading tiene varias #unciones a las ?ue se puede acceder mediante atajos de teclado en la versin &' de Pro<eal"imeH !eleccionarlo todo $9trl M A%H !elecciona la integralidad del te3to en la ventana de programacin 9opiar $9trl M 9%H 9opia el te3to seleccionado Pegar $9trl ME%H Pega el te3to copiado /es:acer $9trl M B%H /es:ace la .ltima accin reali7ada en la ventana de programacin <e:acer $9trl M N%H <e:ace la .ltima accin reali7ada en la ventana de programacin Buscar K <empla7ar $9trl M ,%H Busca un te3to preciso en la ventana de programacin K rempla7a un te3to contenido en la ventana de programacin $esta #uncin es sensible a la di#erencia entre min.sculas y may.sculas% 9omentar K /escomentar $9trl M <%H 9omenta el cdigo seleccionado K /escomenta el cdigo seleccionado $el cdigo comentado ser( introducido por *KK* o *<E-* y se colorear( en gris. Esto comentario no ser( tomado en cuenta en la ejecucin del cdigo%.

En -ac es posible utili7ar estos mismos atajos de teclado utili7ando la tecla *-an7ana* en lugar de *9trl*. 9asi todas estas #unciones son accesibles pulsando en el botn derec:o de su ratn en la 7ona de programacin de la ventana de creacin del sistema de trading.

5 K 43

La programacin de sistemas de trading

La programacin de sistemas de trading


La programacin en lenguaje ProBuilder
Le aconsejamos la lectura previa del manual ProBuilder dedicado a la programacin de indicadoresH este documento representa una e3tensin de dic:o manual. ProBuilder es el lenguaje de programacin de Pro<eal"ime. Este lenguaje es muy sencillo y e3:austivo en sus posibles usos. !e basa en los siguientes principiosH )na vela representa la unidad de base y la unidad de tiempo es la misma ?ue la del gr(#ico subyacente. !u #uncionamiento es iterativoH un programa ProBuilder y todas sus sub#unciones se eval.an al cierre de cada velaD desde la m(s antigua :asta la m(s reciente. !e lan7an todas las se2ales de compraKventa una ve7 #inali7ados los c(lculos en la vela actualD es decirD a la apertura de la vela siguiente.

Entradas . salidas del mercado


Es necesario di#erenciar las instrucciones en #uncin del sentido de su posicinH Posiciones de compra /largas0: B)NH instruccin de compra de valores $compra de instrumentos% !ELLH instruccin de venta de valores ad?uiridos $venta de instrumentos% La instruccin B)N permite abrir $o re#or7ar% una posicin compradora en el mercado. !e asocia a la #uncin !ELLD utili7ada para cerrar $o reducir% una posicin de compra. La instruccin !ELL no tiene e#ecto si no e3iste en ese momento ninguna posicin compradora abierta. Posiciones de venta /cortas0: !ELL!A><"H instruccin de venta a descubierto de valores $entrada a corto% EE+"!A><"H instruccin de compra de valores vendidos a descubierto $salida de corto% El #uncionamiento de estas instrucciones es similar al de B)N y !ELL. La instruccin EE+"!A><" no tiene e#ecto si no e3iste en ese momento ninguna posicin de venta a descubierto abierta.

Actualmente no e3iste la posibilidad de abrir una posicin de compra y otra de venta simult(neamente en un mismo valor. En la pr(cticaD resulta posible cerrar una posicin larga con una instruccin !ELL!A><" oD recIprocamenteD cerrar una posicin corta con un comando B)N. Consejo: compruebe la cantidad m(3ima de la posicin de#inida en su gestin de riesgosD ya ?ue la orden de inversin ser( rec:a7ada si la cantidad #inal de la posicin supera este valorD manteniGndose la posicin original.

"odos estos comandos pueden acompa2arse de los elementos ?ue describimos a continuacinH

O>rdenP O9antidadP A" O-odoP


Ejemplo:
B)N &''' 9A!A A" -A<LE" o !ELL & !AA<E A" &.56 L+-+"

6 K 43

La programacin de sistemas de trading

9antidad
E3isten dos maneras de de#inir la cantidad ?ue deseemos invertirH !AA<E!D ?ue representa una unidad del instrumentoH *& s:are* representa & accinD & CarrantD & contrato para #uturos o & lote en ,ore3. >bserve ?ue *!AA<E!* puede utili7arse indistintamente para re#erirse a accionesD contratoD contratosD lote o lotes. En el caso del ,ore3D la cantidad ad?uirida se multiplicar( por el tama2o de un lote. !i la cantidad no est( indicadaD los valores ?ue se toman por de#ecto sonH & unidad por una entrada en posicin $EjH B)N A" -A<LE"D lan7a una orden de *&* a precio de mercado% La cantidad total de la posicin para una salida $EjH !ELL A" -A<LE" venta completa de la posicin% 9A!AD transaccin en unidades monetarias $como Q o R%D .nicamente para acciones. La cantidad de la orden se calcular( al cierre de la vela y se redondear( por de#ecto a la unidad in#erior. Las comisiones de operativa no se toman en cuenta en el c(lculo de la cantidad establecida para comprar o vender en e#ectivo. Ejemplo: B)N &''' 9A!A A" -A<LE" Es posible utili7ar la instruccin <>)6/E/)P para redondear la cantidad a la unidad superior. Ejemplo: B)N &''' 9A!A <>)6/E/)P A" -A<LE"

-odo
/ispone de tres tipos de ejecucin de rdenesH A" -A<LE"H la orden se enviar( a precio de mercado a la apertura de la vela siguiente Ejemplo: B)N & !AA<E A" -A<LE" A" OprecioP L+-+"H se enviar( una orden lImite al precio indicado A" OprecioP !">PH se enviar( una orden stop al precio indicado Ejemplo: B)N & !AA<E A" &'.5 L+-+" Las rdenes l1mites . stops son vlidas durante una 2nica vela3 a partir de la apertura de la vela siguiente4 5uedan anuladas si no se ejecutan4 !on rdenes con umbral de ejecucin. !e oponen a los stops de proteccin y lImites de bene#icios $*!E" !">P*D *!E" "A<=E"*H ver seccin siguiente% asociados a una posicin abierta y v(lidos :asta el cierre de dic:a posicin. lgunas rdenes se comportarn como rdenes a mercado3 en 6uncin de las siguientes condiciones: )na orden LS-+"E de compra B)N #ijada por encima del precio del mercado se gestionar( como una orden a precio de mercado. )na orden !">P de compra B)N #ijada por debajo del precio del mercado se gestionar( como una orden a precio de mercado. )na orden LS-+"E de venta a descubierto !ELL!A><" #ijada por debajo del precio del mercado se gestionar( como una orden a precio de mercado. )na orden !">P de venta a descubierto !ELL!A><" #ijada por encima del precio del mercadoD se gestionar( como una orden a precio de mercado.

4 K 43

La programacin de sistemas de trading

Ejemplo: 9uando el <!+ se :alle en 7ona de sobreventa $<!+ O 3'% y el precio estG por debajo de la banda de Bollinger in#eriorD se generar( una orden de compra a precio de mercado. 9uando el <!+ se :alle en 7ona de sobrecompra $<!+ P 4'% y el precio estG por debajo de la banda de Bollinger in#eriorD se generar( una orden de venta.
-y<!+ T <!+U&@V$9lose% -yBollinger/oCn T Bollinger/oCnU25V$9lose% -yBollinger)p T Bollinger)pU25V$9lose% +, -y<!+ O 3' A6/ 9lose O -yBollinger/oCn "AE6 B)N & !AA<E A" -A<LE" E6/+, +, -y<!+ P 4' A6/ 9lose P -yBollinger)p "AE6 !ELL A" -A<LE" E6/+,

Puede de#inir la duracin de la valide7 de las rdenes lImite y stop.

El siguiente ejemplo le muestra cmo crear una orden lImite con un n.mero especI#ico de velas de valide7 mediante el uso de variables. El cdigo sit.a una orden lImite de compra al precio de cierre de la vela en la ?ue :a concurrido el cruce de medias mviles. Este lImite es v(lido durante &' velasD tras la vela en la ?ue se produjo el cruce. !i no es ejecutado en alg.n momento durante la #ormacin de esas &' velasD se anula.

Ejemplo:
KK /e#inicin de la duracin de valide7 de la orden >69E 6bBarLimitT&' --2'TAverageU2'V$close% --5'TAverageU5'V$close% KK !i la --2' cru7a al al7a la --5'D establecemos 2 variablesD W-yLimitBuyW y W-y+nde3WD ?ue contienen el precio de cierre en ese momento y el Indice de la vela en la ?ue se produce el cruce. +, --2' 9<>!!E! >1E< --5' "AE6 -yLimitBuy T close -y+nde3 T Barinde3 E6/+, +, Bar+nde3 PT -y+nde3 M 6bBarLimit "AE6 -yLimitBuy T ' E6/+,

5 K 43

La programacin de sistemas de trading

KK Lan7ar una orden al precio de -yLimitBuy v(lido mientras la variable sea superior a ' y la posicin no sea compradora. KK <ecordarH -yLimitBuy ser( superior a ' durante el transcurso de las &' velas tras la vela en la ?ue se produjo el cruce. +, -yLimitBuy P ' A6/ 6>" Long>n-ar;et "AE6 B)N & !AA<E! A" -yLimitBuy L+-+" E6/+,

En el caso de ?ue la orden no #uera ejecutadaD ser( posible rempla7ar la orden lImite de compra e3pirada por una orden de compra a precio de mercado. Esto podrIa llevarse a cabo a2adiendo el siguiente cdigo al cdigo anteriorH
+, -y+nde3 M 6bBarLimit A6/ -yLimitBuy P ' A6/ 6>" Long>n-ar;et "AE6 B)N & !AA<E! A" -A<LE" E6/+,

Los stops . o7jetivos


ProBuilder le permite igualmente de#inir objetivos y stops de proteccin. La sinta3is ?ue debemos utili7ar es la siguienteH

!E" !">P OtipoXP OvalorP o !E" "A<=E" O-odoP OvalorP


Ejemplo:
!E" !">P YL>!! 2' KK /e#inir un stop loss al 2Y

/escribimos cada instruccin en los par(metros siguientes.

>bserve la di#erencia entre las rdenes *%8PH % 9precio: *%8P se utili7a para AB<+< una posicin. Esta orden es v(lida durante una vela por de#ecto. *E% *%8P L8** 9precio: sirve para establecer un stop de proteccin cuyo objetivo es 9E<<A< la posicin e3istente. Esta orden es v(lida :asta el cierre de#initivo de la posicin.

*tops de proteccin Los stops de proteccin $stops loss% permiten limitar las pGrdidas de una posicin. Pueden de#inirse de #orma relativa o absolutaH *E% *%8P L8** !H establece un stop loss para cerrar la posicin a 3 unidades del precio de entrada. *E% *%8P pL8** ! H establece un stop loss para cerrar la posicin a 3 puntos del precio de entrada. *E% *%8P ;L8** !H establece un stop loss para cerrar la posicin si la pGrdida alcan7a 3Y. *E% *%8P <L8** !H establece un stop loss para cerrar la posicin si la pGrdida alcan7a 3QD R $en la divisa del instrumento%D sin incluir las comisiones de operativa.

K 43

La programacin de sistemas de trading

En ambos casosD la direccin y la cantidad de la orden stop se adaptan autom(ticamente a la posicin en curso. El stop loss se asocia siempre a una posicinH si no :ay posiciones abiertasD el stop loss se mantendr( inactivo. Para desactivar un stop lossD es necesario utili7ar esta instruccin
!E" !">P L>!! 'D !E" !">P pL>!! 'D !E" !">P YL>!! 'D !E" !">P RL>!! '

*et %arget Pro6it /o7jetivo de 7ene6icios0 Este tipo de instruccin permite li?uidar una posicin cuando las ganancias alcan7an una cantidad determinada. *E% % $#E% P$8=I% !H establece un objetivo de bene#icios para cerrar la posicin a 3 unidades desde el precio de entrada de la misma. *E% % $#E% pP$8=I% ! H establece un objetivo de bene#icios para cerrar la posicin a 3 puntos desde el precio de entrada de la misma. *E% % $#E% ;P$8=I% !H establece un objetivo para cerrar la posicin cuando el bene#icio alcance 3Y. *E% % $#E% <P$8=I% !H establece un objetivo cuando la ganancia alcance 3QD R $en la divisa del instrumento%D sin incluir las comisiones de operativa. +gualmenteD la direccin y la cantidad de la orden stop se adaptan autom(ticamente a la posicin en curso. )n stop loss se desactiva al cierre de la posicin y no se reactiva a la apertura de la posicin siguiente. Para desactivar un objetivo de bene#icios $pro#it target% en el cdigoD podemos utili7ar las siguientes instruccionesH
!E" "A<=E" P<>,+" 'D !E" "A<=E" pP<>,+" 'D !E" "A<=E" YP<>,+" 'D !E" "A<=E" RP<>,+" '

%railing stops /stops dinmicos0 )n stop din(mico $trailing stop% es una orden stop cuyo precio de ejecucin varIa en #uncin de la variacin del precio. Para las posiciones compradorasD cuando el precio gana valorD el nivel del stop aumentaD pero si el precio bajaD el nivel del stop din(mico se mantiene sin cambios. Para las posiciones vendedorasD se produce el comportamiento inversoH cuando el precio bajaD el nivel del stop din(mico tambiGn bajaD pero si el precio subeD el precio del stop din(mimo se mantiene sin cambios. !iguiendo el mismo principio ?ue los stops de proteccinD los stops din(micos pueden de#inirse de #orma relativa o absolutaH *E% *%8P %$ ILIN# .H establece un stop din(mico a y unidades del precio de entrada de la posicin. *E% *%8P p%$ ILIN# . H establece un stop din(mico a y puntos del precio de entrada de la posicin. *E% *%8P ;%$ ILIN# yH establece un stop din(mico a yY del precio de entradaD sin incluir las comisiones de operativa. *E% *%8P <%$ ILIN# .H establece un stop din(mico a y QDR del precio de entrada $en la divisa del instrumento%D sin incluir las comisiones de operativa. La direccin y la cantidad de la orden se adaptan autom(ticamente a la posicin en curso. El stop din(mico se desactiva al cierre de la posicin y no se reactiva a la apertura de la posicin siguiente. !i la cantidad de la posicin cambia $re#or7amos la posicinD por ejemplo% el nivel del stop se reinicia. Para desactivar un stop din(mico en el cdigo $trainlling stop%D podemos utili7ar las siguientes instruccionesH
!E" !">P "<A+L+6= 'D !E" !">P p"<A+L+6= 'D !E" !">P Y"<A+L+6= 'D !E" !">P R"<A+L+6= '

&' K 43

La programacin de sistemas de trading

Ejemplo: Abrimos una posicin en el /AE a 6''' puntos y establecemos un stop din(mico a 5' puntosH
!E" !">P p"<A+L+6= 5'

El stop se sit.a inicialmente en 5 5' puntos. !i el precio sube :asta 6'&' y a continuacin baja :asta 5 5'D el stop subir( &' puntosD :asta 5 6' y se mantendr( estable :asta ?ue el nivel de precio sobrepase los 6'&' puntos. ,inalmenteD se ejecutar( si la coti7acin alcan7a los 5 6' puntos.

(so de los comandos -*et %arget- . -*et *top- con 7ucles condicionales I= Es posible modi#icar el tipo de objetivo o de stop de su cdigo mediante bucles condicionales. Ejemplo:
<E- Establecer un stop loss a &'Y si las ganancias de la transaccin anterior alcan7an al menos el &'Y. En caso contrarioD establecer un stop loss a 5Y +, PositionPer#$&% P '.& "AE6 !E" !">P YL>!! &' Else !E" !">P YL>!! 5 E6/+,

"2ltiples niveles de stop . de o7jetivos !lo pueden estar activos al mismo tiempo un solo comando *!et !top* y un *!et "arget*. !i :ubiera varios comandos *!et !top* o *!et "arget* sucesivamenteD el .ltimo comando reempla7arIa al anterior. Ejemplo:
!E" !">P YL>!! &' KK ,ijar un stop loss a &'Y !E" "A<=E" P<>,+" 5' KK ,ijar un objetivo de bene#icios de 5' unidades !E" "A<=E" YP<>,+" 5 KK Eliminar el objetivo anterior de 5' unidades y reempla7arlo por un objetivo de bene#icios del 5Y !E" !">P Y"<A+L+6= 2 KK Eliminar el stop loss a &'Y anterior y establecer un stop din(mico a 2Y en su lugar

Es posible combinar stops #ijosD din(micos o stops loss y din(micos en una misma instruccinD tal y como describimos a continuacinH

!E" !">P

O-odoP OvalorP #ijo

O"railing"ypeP OvalorP din(mico

-odoH LossD pL>!!DYL>!!D RL>!! "railing"ypeH "<A+L+6=D p"<A+L+6=DY"<A+L+6=D R"<A+L+6= Esta instruccin se presentar( de la siguiente maneraH !E" !">P UL>!!KpL>!!KRL>!!KYL>!!V Y"<A+L+6=V OvalorP OvalorP U"<A+L+6=Kp"<A+L+6=KR"<A+L+6=K

&& K 43

La programacin de sistemas de trading

Ejemplos de uso:

!E" !">P L>!! 3 "<A+L+6= yH establece un stop loss a 3 unidades del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y unidades si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss $esto ocurre cuando el precio actual alcan7a el precio de entrada de la posicin > . ? !%. !E" !">P L>!! 3 p"<A+L+6= y : establece un stop loss a 3 unidades del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y puntos si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss $esto ocurre cuando el precio actual alcan7a el precio de entrada de la posicin > . puntos ? ! unidades %. !E" !">P L>!! 3 R"<A+L+6= yH establece un stop loss a 3 unidades del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y < o @ $divisa del instrumento% si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P L>!! 3 Y"<A+L+6= yH establece un stop loss a 3 unidades del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y ; si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss.

!E" !">P pL>!! 3 "<A+L+6= y: establece un stop loss a 3 puntos del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y unidades si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss $esto ocurre cuando el precio actual alcan7a el precio de entrada de la posicin > . unidades ? ! puntos %. !E" !">P pL>!! 3 p"<A+L+6= y: establece un stop loss a 3 puntos del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y puntos si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss $esto ocurre cuando el precio actual alcan7a el precio de entrada de la posicin > . puntos ? ! puntos%. !E" !">P pL>!! 3 R"<A+L+6= yH establece un stop loss a 3 puntos del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y < o @ $divisa del instrumento% si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P pL>!! 3 Y"<A+L+6= yH establece un stop loss a 3 puntos del precio de entrada de la posicinD ?ue se convierte en un stop din(mico a y ; si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss.

!E" !">P RL>!! 3 "<A+L+6= yH establece un stop loss a 3 < o @ $divisa del instrumento%D ?ue se convierte en un stop din(mico a y unidades si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P RL>!! 3 p"<A+L+6= yH establece un stop loss a 3 < o @ $divisa del instrumento%D ?ue se convierte en un stop din(mico a y puntos si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P RL>!! 3 R"<A+L+6= yH establece un stop loss a 3 < o @ $divisa del instrumento%D ?ue se convierte en un stop din(mico a y < o @ $divisa del instrumento% si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P RL>!! 3 Y"<A+L+6= yH establece un stop loss a 3 < o @ $divisa del instrumento%D ?ue se convierte en un stop din(mico a y ; si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss.

&2 K 43

La programacin de sistemas de trading

!E" !">P YL>!! 3 "<A+L+6= yH establece un stop loss a 3;3 ?ue se convierte en un stop din(mico a y unidades si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P YL>!! 3 p"<A+L+6= y H establece un stop loss a 3;3 ?ue se convierte en un stop din(mico a y puntos si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P YL>!! 3 R"<A+L+6= yH establece un stop loss a 3 ;3 ?ue se convierte en un stop din(mico a y < o @ $divisa del instrumento% si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. !E" !">P YL>!! 3 Y"<A+L+6= yH establece un stop loss a 3;3 ?ue se convierte en un stop din(mico a 3; si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss.

&3 K 43

La programacin de sistemas de trading

Ejemplo: *E% *%8P L8** ! %$ ILIN# .: !e establece un stop a 3 unidades con respecto al nivel de entrada de la posicinD ?ue se convierte en un stop din(mico de y unidades si el nivel del stop din(mico se acerca m(s al precio actual ?ue al nivel del stop loss. Por ejemploD si abrimos una posicin en el #uturo del /AE a 65'' puntosD el siguiente cdigo establecer( un stop din(mico a 2' puntos del nivel de entrada de la posicinD ?ue se convertir( en un stop din(mico de 5' puntos de di#erencia si el precio supera los 653' puntos.
!E" !">P L>!! 2' "<A+L+6= 5'

Las siguientes #iguras ilustran el ejemplo 2. El stop inicial se sit.a a 2' unidades por debajo del precio de entrada de la posicin $6@5'%.

!lo si el nivel del precio alcan7ara 653' $T 65'' M $5'Z2'% %D el stop se convertir( en un stop din(mico a 5' puntos de di#erencia.

!i el nivel de precio aumenta $a?uI :asta 6535%D el stop din(mico aumenta igualmente $en este caso alcan7a los 6@55 puntos%.

&@ K 43

La programacin de sistemas de trading

Detener un sistema de trading con 5(I%


La instruccin *0uit* le permite detener un sistema de trading. En este casoD el sistema se detendr( despuGs de la vela actualD provocando la anulacin de las rdenes pendientes y el cierre de las posiciones abiertas. Esto le permite detener un sistema de trading en caso de ?ue :aya grandes pGrdidas o a partir de una #ec:a precisa.

Ejemplo:
+# date P 2'&3'&'& "AE6 KK /etener la estrategia despuGs del & de Enero de 2'&3 0)+" E6/+,

*eguimiento de posiciones
Aaria7les de veri6icacin del estado de las posiciones Puede utili7ar 3 variables para comprobar el estado de las posiciones de sus sistemas de tradingH 8N" $,E%D ?ue es igual a & si :ay posiciones abiertasD ' en el caso contrario. L8N#8N" $,E%D ?ue es igual a & si :ay posiciones largas abiertasD ' en el caso contrario. *+8$%8N" $,E%D ?ue es igual a & si :ay posiciones cortas abiertasD ' en el caso contrario.

Estas variables pueden utili7arse con corc:etes. Por ejemploD >6-A<LE"U&V tendrIa un valor de & si :ubiera posiciones abiertas al cierre de la vela anteriorD ' en el caso contrario.

Estas variables suelen incluirse en las secuencias condicionales +, previas a la apertura de una posicinH

Ejemplo:
<E- /e#inimos el -A9/ +ndicator& T -A9/U&2D26D V$9lose% <E- >bservamos los cambios de signo del Aistograma del -A9/ c& T $+ndicator& 9rosses >ver '% <E- 9omprarH si no tenemos posiciones de compra abiertas y si -A9/ P'D compramos 3 lotes +, 6>" L>6=>6-A<LE" A6/ c& "AE6 B)N & !AA<E A" -A<LE" E6/+,

&5 K 43

La programacin de sistemas de trading

Aaria7les so7re el tamaBo de la posicin Estas 3 variables permiten conocer la cantidad de una posicin abiertaH C8(N%8=P8*I%I8NH tama2o de la posicin $en lotesD tItulosD o contratos%. Positiva si la posicin es compradora $larga%D negativa si la posicin es vendedora $corta%. C8(N%8=L8N#*+ $E*H tama2o de la posicin larga $en lotesD tItulosD o contratos% si e3iste una posicin compradoraD ' en el caso contrario. C8(N%8=*+8$%*+ $E*H tama2o de la posicin vendedora $en lotesD tItulosD o contratos%. "endr( un valor positivo si e3iste una posicin vendedora abierta. En caso contrarioD el valor ser( '. 9omo en todas las variables ?ue comprueban el estado de las posicionesD estos comandos se incluyen generalmente en secuencias condicionales +,D previamente a la apertura de la posicin. AtencinH compruebe la correcta utili7acin de las variables de estado. El cdigo es evaluado al #inal de cada vela y las rdenes se lan7an en la apertura de vela siguiente. Por ejemploD en el cdigo siguienteD la variable *long* no ser( igual a & al cierre de la primera velaD sino al cierre de la segunda velaD ya ?ue la primera orden de compra se lan7a en la apertura de la segunda vela.
B)N & !AA<E A" -A<LE" +, 6>" L>6=>6-A<LE" "AE6 longT& E6/+,

%radeInde! El comando %$ DEINDEC/n0 permite acceder a la vela de la enGsima transaccin anteriorH

"<A/E+6/EE$enGsima orden anterior%


Nota: es posible utili7ar "rade+nde3 sin asociarlo a un n.mero de vela de#inido entre parGntesis. En este casoD el programa considerar( la barra de la .ltima orden lan7adaH "rade+nde3T"rade+nde3$&%. Aconsejamos utili7ar "rade+nde3 conjuntamente con Barinde3. Ejemplo:
<E-H 9errar si :ay una posicin abierta desde al menos 3 velasH +, L>6=>6-A<LE" A6/ $Bar+nde3 Z "rade+nde3% PT 3 "AE6 !ELL A" -A<LE" E6/+,

%radePrice El comando %$ DEP$ICE/n0 permite encontrar el precio de ejecucin de la transaccin anterior. !u sIntesis es la siguienteH

"<A/EP<+9E$enGsima orden anterior%


Podemos especi#icar entre parGntesis la orden a la ?ue :acemos re#erencia. !i no precisamos este dato tras *"radePrice*D se tomar( como re#erencia el precio de compra de la .ltima ordenH "radePriceT"radePrice$&% Ejemplo:
<E-H 9errar posicin larga si el cierre es superior al precio de ejecucin de la .ltima transaccinD aumentado de un 2Y +, L>6=>6-A<LE" A6/ 9L>!E P &.'2X"<A/EP<+9E "AE6 !ELL A" -A<LE" E6/+,

&6 K 43

La programacin de sistemas de trading

PositionPer6 Este comando nos #acilitaH El rendimiento en Y de la enGsima .ltima posicin cerradaD si n P ' $comisiones de operativa no incluidas% El rendimiento en Y de la posicin en curso si nT' $comisiones de operativa no incluidas% !u sIntesis es la siguiente H

P>!+"+>6PE<,$enGsima orden precedente%


!i n no est( de#inidaD suponemos ?ue nT'H PositionPer#TPositionPer#$'% Ejemplo:
<E- 9omprar si la transaccin precedente registr al menos un 2'Y de ganancias +, 6>">6-A<LE" A6/ PositionPer#$&% P '.2 "AE6 B)N &''' 9A!A A" -A<LE" E6/+,

PositionPrice El comando PositionPrice permite conocer el precio medio de compra de la posicin actual.

P>!+"+>6P<+9E
El precio medio $o precio de coste% de una posicin se de#ine como la suma de los precios de entrada ponderados por la cantidad de cada orden. [nicamente los re#uer7os in#luyen en el precio de coste de la posicin. Esta instruccin puede utili7arse con corc:etesH P>!+"+>6P<+9EU&V devuelve el valor de PositionPrice al cierre de la vela precedente. Ejemplo: 9ompramos una accin a 5QD y a continuacin re#or7amos la posicin comprando una accin a &'QD y despuGs otra a &5Q. El precio de coste de la posicin es de $5M&'M&5% K 3 T &'Q !i decidimos entonces reducir nuestra posicin vendiendo una accin a 2'QD el precio de coste de la posicin se mantendr( sin cambios. *trateg.Pro6it Esta instruccin devuelve las ganancias o pGrdidas $absolutasD en la divisa del instrumento y sin incluir las comisiones de operativa% reali7adas desde el inicio del sistema. Puede asociarse a la instruccin 0)+" para limitar las pGrdidas de un sistema de trading.

!"<A"E=NP<>,+"
Esta instruccin puede utili7arse con corc:etesH !trategyPro#itU&V proporciona el bene#icio al cierre de la vela anterior. Ejemplo:
+, !"<A"E=NP<>,+" O Z5'' "AE6 0)+" E6/+,

Nota: recuerde ?ue los sistemas de trading #uncionan al cierre de las velasD es decirD son evaluados al cierre de cada una. En este ejemplo las pGrdidas pueden ser superiores a 5''Q si se produjera un gap en el transcurso de una vela. Le recomendamos utili7ar un !">P L>!! para protegerse de las pGrdidas de la posicin y este blo?ue de cdigo para detener el sistema de trading.

&4 K 43

La programacin de sistemas de trading

De6inicin de los parmetros de ejecucin de los sistemas de trading


Puede de#inir par(metros adicionales con ayuda de la instruccin /E,PA<A-. cumulacin de rdenes La variable *9umulate>rders* le permite autori7ar o impedir la acumulacin de rdenes para entrar en el mercado o para a2adir a una posicin. Este par(metro est( con#igurado como *"rue* $verdadero% por de#ecto en cdigos creados programandoD lo ?ue signi#ica ?ue un sistema de trading puede a2adir rdenes a una posicin e3istente en cada vela en la ?ue se cumplen las condiciones de la entrada de la posicin. En este casoD tambiGn es posible tener activas varias rdenes lImite o stop listas para lan7arse al mercado al mismo tiempo. Para evitar ?ue un sistema incremente el tama2o de una posicin ya abiertaD es necesario establecer la siguiente instruccin al principio del cdigo
/E,PA<A- 9umulate>rders T ,alse

La instrucciones /e#Param mantienen su valide7 a lo largo de todo el sistema de trading. 6o ser( posible modi#icar la con#iguracin del sistema de trading para la acumulacin o no de rdenes durante su ejecucin. Ejemplos:
KK Este cdigo comprar( una accin en cada velaD :asta un m(3imo de 3 /E,PA<A- 9umulate>rders T "rue +# 9ount>#Position O 3 t:en Buy & s:ares at mar;et Endi# KK Este cdigo comprar( una accin a un precio de 2 y una accin m(s a un precio de 3 /E,PA<A- 9umulate>rders T "rue +# 9ount>#Position O 2 t:en Buy & s:ares at 2 Limit Buy & s:ares at 3 Limit Endi# KK Este cdigo comprar( 5 acciones de una sola ve7 /E,PA<A- 9umulate>rders T ,alse Buy 5 s:ares at mar;et

Es posible programar varias rdenes en la misma direccin incluso cuando el par(metro *9umulate>rders* estG con#igurado como #also. Ejemplo:
KK Este cdigo comprar( 5 acciones. !e vender(n :asta 3 acciones si el precio cru7a la media mvil de @' a la baja. !e li?uidar(n todas las acciones si la pGrdida alcan7a un &'Y. /E,PA<A- 9umulate>rders T ,alse Buy 5 s:ares at mar;et +# price 9<>!!E! )6/E< AverageU@'V "AE6 !ELL 3 !AA<E! A" -A<LE" !et stop Y"railing &' Endi#

Nota so7re los niveles de stop o de o7jetivos mientras Cumulate8rders estD activo: si utili7a las instrucciones para establecer un stop lossD un stop din(mico o una orden de objetivos con la acumulacin de rdenes activadaD el nivel se calcula en base al precio medio de entrada de sus posiciones y se vuelve a calcular cada ve7 ?ue se modi#i?ue la cantidad de la posicin.

&5 K 43

La programacin de sistemas de trading

Ejemplo: !i compra & accin a &'R y establece un stop loss a &'Y y un objetivo a &5'YD los niveles iniciales serIanH stop a R y objetivo a 25R. !i compra una segunda accin a 2'RD el precio medio de entrada serIa de &5R y como resultado los nuevos niveles serIanH stop a &3.5'R y objetivo a 34.5'R $para la posicin entera%. Nota so7re los cdigos creados mediante el asistente de programacin: 9umulate>rders est( con#igurado como #also $#alse% por de#ecto en los sistemas de trading creados mediante el asistente de programacin $la instruccin */e#Param 9umulate>rders T ,alse* estar( presente al principio de estos cdigos%. PreLoadBars La instruccin */e#Param Preloadbars* le permite con#igurar la m(3ima cantidad de velas ?ue puedan cargarse con antelacin al inicio del sistema de tradingD para el c(lculo de los indicadores utili7ados en dic:o sistema antes de ?ue comience a ejecutarse $indicadores personales o prede#inidos%. Este par(metro es igual a 2'' por de#ecto. 6o puede ser in#erior a ' o superior a 5'''. !i ?uiere desactivar esta descarga de datosD introdu7ca PreLoadBars T '. !eleccionamos el m(3imo valor por?ue la cantidad de velas ?ue pueden cargarse con antelacin depende de la cantidad de datos disponibles para un instrumento o vista temporal determinados. Ejemplo:
/E,PA<A- PreLoadBars T 3''

a T $close M open% K 2
+# price 9<>!!E! >1E< AverageU25'V$a% "AE6 B)N & !AA<E A" -A<LE"

!i parametramos PreLoadBars en 3''D signi#icar( ?ue una media mvil de 25' periodos empe7ar( a dibujarse desde la barra siguiente al inicio del sistema de trading. 6o serIa el caso si slo se :ubieran cargado de antemano 2'' velas. "enga en cuenta ?ue 3'' ser( el valor m(3imoH si e3isten menos de 3'' disponibles con antelacin al inicio del sistemaD slo se cargar(n las velas disponibles. En el caso de el ?ue se cargaran 3'' velasD el Bar+nde3 de la primera vela tras el comien7o del sistema de trading ser( igual a 3''. Por otro ladoD si se cargaran ' velasD el Bar+nde3 de la primera vela tras el inicio del sistema ser( '. =latBe6ore and =lat 6ter
/E,PA<A- ,latBe#ore T AA--!! /E,PA<A- ,latA#ter T AA--!!

AA--!! es una #rmula en la ?ue AA indica la :oraD -- indica los minutos y !! indica los segundos. Estas instrucciones le permiten anular las rdenes pendientesD cerrar todas las posiciones y evitar el lan7amiento de nuevas rdenes con anterioridad a un momento preciso del dIa en el caso de ,latBe#ore o despuGs de un momento preciso del dIa en el caso de ,latA#ter. El par(metro ,latBe#ore debe e3presar siempre un momento posterior a la apertura del mercado $personali7ada o no% y ,latA#ter debe indicar siempre un momento anterior al cierre del mercado $peronali7ado o no%J de otro modo estas instrucciones no tendr(n ning.n e#ecto. !i el momento parametrado no es un m.ltiplo de de la vista temporal en la ?ue se ejecuta el sistemaD $esto ocurre en la mitad de una vela% la instruccin /E,PA<A- ,latA#ter surtir( e#ecto al #inal de dic:a vela y la instruccin /E,PA<A- ,latBe#ore ser( v(lida :asta el cierre de la vela anterior.

& K 43

La programacin de sistemas de trading

La rdenes se restringir(n durante este periodoD lo ?ue signi#ica ?ue no se lan7ar( ninguna orden y ?ue tales rdenes tampoco ser(n lan7adas en la apertura del periodo siguienteD cuando el sistema de trading est( autori7ado a lan7arla. Esto implica ?ue las variables de tipo W>n-ar;etW se mantendr(n siempre inactivas $*#alse*% durante esos momentos.
E!ample :

/E,PA<A- ,latBe#ore T ' 3''' KK Anular cual?uier orden pendienteD cerrar todas las posiciones y evitar
?ue el sistema de trading pueda lan7ar nuevas rdenes antes de las H3' del :uso :orario del mercado. /E,PA<A- ,latA#ter T &6'''' KK Anular cual?uier orden pendienteD cerrar todas las posiciones y evitar ?ue el sistema de trading pueda lan7ar nuevas rdenes despuGs de las &6H''H'' del :uso :orario del mercado.

No actualiEacin en e6ectivo ? NoCasF(pdate /slo ProBacktest0


/E,PA<A- 6o9as:)pdate T ,alse

!i esta opcin est( activadaD las unidades en e#ectivo disponibles no se actuali7ar(n con las gananciasD las pGrdidas y las comisiones de operativa. Por de#ectoD 6o9as:)pdate T ,alse. Ejemplo: 9apital inicial &''''QD con 6o9as:)pdate T "rue. La inversin m(3ima ?uedar( limitada a &''''Q sin tomar en cuenta las ganancias reali7adas a lo largo de la ejecucin del ProBac;test. Nota: Los par(metros de#inidos con ayuda de la instruccin /E,PA<A- deben de#inirse al inicio del cdigo $tras los comentarios%.

Llamadas a indicadores
Indicadores Pro$eal%ime "odas las #unciones disponibles para la programacin de indicadores son accesibles tambiGn para la programacin de sistemas de trading $c#. ver glosario del presente manual para acceder a la lista completa%. Le remitimos al manual ProBuilder para conocer estas #unciones al detalle. La cantidad de datos :istricos necesarios para el c(lculo de un indicador depende de la naturale7a de dic:o indicador. Por ejemploD para la #uncin media e3ponencial sobre 6 periodos $E3ponentialAverageU6V%D consideramos generalmente ?ue son necesarias &'X6 para obtener un resultado preciso. Podr( reali7arse una apro3imacin en #uncin de la cantidad de :istrico disponible para el valor. !i la #ec:a de inicio del ProBac;test es pr3ima a la primera #ec:a del gr(#icoD el servidor provee una cantidad adicional de :istrico para ?ue los indicadores puedan proporcionar resultados desde la primera vela. Indicadores personaliEados Al igual ?ue en la programacin de indicadoresD es posible llamar a #unciones personali7adas con la ayuda de la instruccin 9ALL en un sistema de trading. Ejemplo:
aDb T 9ALL **Aisto-A9/U5D6V** KK a y b son los par(metros de salida de la #uncin. 5 y 6 son los par(metros de entrada

Le recomendamos leer atentamente el p(rra#o 4 para asegurarse de ?ue utili7a correctamente la instruccin C LL.

2' K 43

La programacin de sistemas de trading

Consejos de programacin
El tiempo de c(lculo de un sistema de trading depende de la complejidad de los indicadores utili7ados y de la manera utili7ada para llamarlos. El siguiente p(rra#o le o#rece algunos sencillos consejos para optimi7ar el #uncionamiento de sus cdigos. $educir el n2mero de llamadas a indicadores Pro$eal%ime !i desea utili7ar el mismo indicador varias veces en c(lculos distintosD no :aga uso de la #uncin 9ALL y procure en su lugar almacenarlo en una variable intermedia. Cdigo no ptimo Cdigo ptimo

+, 6>" L>6=>6-A<LE" A6/ close P AverageU@'V"AE6 avg@' T AverageU@'V B)N & !AA<E A" -A<LE" E6/+, +, 6>" !A><">6-A<LE" A6/ close O AverageU@'V "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+, +, 6>" !A><">6-A<LE" A6/ close O avg@' "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+, +, 6>" L>6=>6-A<LE" A6/ close P avg@' "AE6 B)N & !AA<E A" -A<LE" E6/+,

Esto es v(lido igualmente si ?uiere utili7ar el mismo indicador varias vecesD pero con di#erente compensacin. Cdigo no ptimo
a T E3ponentialAverageU@'V$close% b T E3ponentialAverageU@'V$closeU&V% c T E3ponentialAverageU@'V$close% +, a P b "AE6 B)N & !AA<E A" -A<LE" E6/+, +, a O cU&V "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+, +, a O aU&V "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+, +, a P aU&V "AE6 B)N & !AA<E A" -A<LE" E6/+,

Cdigo ptimo
a T E3ponentialAverageU@'V$close%

Llamadas a indicadores personaliEados La llamada a indicadores personali7ados a travGs de la instruccin C LL consume m(s tiempo de c(lculo ?ue la llamada a indicadores Pro<eal"ime. En el caso de los indicadores Pro<eal"imeD conocemos de antemano los c(lculos necesarios y dominamos la implementacin. Esto nos permite e#ectuar optimi7aciones en los c(lculos no permitidas por los indicadores personali7adosD cuya programacin es discrecional. Para mejorar el rendimiento de un sistema de tradingD es esencial otorgar la m(3ima e#icacia a la instruccin C LL en el programa.

2& K 43

La programacin de sistemas de trading

Limitar las llamadas idDnticas: Aplicamos la misma regla de limitacin de las llamadas a un mismo indicador para los indicadores Pro<eal"ime. Cdigo no ptimo
myindic&T 9ALL W-i,uncionW +, 6>" L>6=>6-A<LE" A6/ close P myindic& "AE6 B)N & !AA<E A" -A<LE" E6/+, myindic2 T 9ALL W-i,uncionW +, 6>" !A><">6-A<LE" A6/ close O myindic2 "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+,

Cdigo ptimo
myindic T 9ALL W-i,uncionW +, 6>" L>6=>6-A<LE" A6/ close P myindic "AE6 B)N & !AA<E A" -A<LE" E6/+, +, 6>" !A><">6-A<LE" A6/ close O myindic "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+,

Limitar las llamadas im7ricadas: !i desea utili7ar un indicador personali7ado en el cdigo de su ProBac;testD compruebe ?ue no contiene la instruccin 9ALL. Las llamadas a indicadores personales imbricados consumen muc:o tiempo y recursos de c(lculo. Le recomendamos escribir $o duplicar% sus indicadores personali7ados utili7ados en ProBac;testD de manera ?ue slo llamen a indicadores de Pro<eal"ime. !i los cdigos de sus indicadores personales no son muy complejosD podr( incluso integrarlos directamente en el cdigo de sus ProBac;tests. Cdigo no ptimo
Cdigo del sistema de trading: myindic T 9ALL W-y/9L>!E-i3 Linear<egW +, 6>" longonmar;et A6/ close P myindic "AE6 B)N & !AA<E A" -A<LE" E6/+, +, 6>" s:ortonmar;et A6/ close O myindic "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+, CGDI#8 de H".DCL8*E"i! Linear$egH : dayclosemi3 T 9ALL W-y/9L>!E-i3W <E")<6 Linear<egressionU5V$dayclosemi3% CGDI#8 de H".DCL8*E"i!H : mi3 T $ /9lose$'% M 3.5X /9lose$&% M @.5X /9lose$2% M 3X/9lose$3% M '.5X /9lose$@% Z '.5X/9lose$5% Z &.5X/9lose$6% % K &'.5 <E")<6 mi3

Cdigo ptimo
Cdigo del sistema de trading: dayclosemi3 T $ /9lose$'% M 3.5X/9lose$&% M @.5X/9lose$2% M 3X/9lose$3% M '.5X/9lose$@% Z '.5X/9lose$5% Z &.5X/9lose$6% % K &'.5 myindic T Linear<egressionU5V$dayclosemi3% +, 6>" longonmar;et A6/ close P myindic "AE6 B)N & !AA<E A" -A<LE" E6/+, +, 6>" s:ortonmar;et A6/ close O myindic "AE6 !ELL!A><" & !AA<E A" -A<LE" E6/+,

22 K 43

La programacin de sistemas de trading

Limitar el n2mero de condiciones im7ricadas: En el caso de la utili7acin de cual?uier instruccin condicional $+,..."AE6...E6/+,%D le aconsejamos trabajar con una instruccin ?ue veri#i?ue n condiciones en lugar de con n instruccionesH Cdigo no ptimo
+, 9L>!E PT '.''&@ "AE6 +, 9L>!E OT '.''@4 "AE6 +, +6"<A/ANBA<+6/EE PT 5 "AE6 +, +6"<A/ANBA<+6/EE OT 2' "AE6 +, 6>" !A><">6-A<LE" "AE6 B)N & !AA<E! A" -A<LE" E6/+, E6/+, E6/+, E6/+, E6/+,

Cdigo ptimo
+, 9L>!E PT '.''&@ A6/ 9L>!E OT '.''@4 A6/ +6"<A/ANBA<+6/EE PT 5 A6/ +6"<A/ANBA<+6/EE OT 2' "AE6 +, 6>" !A><">6-A<LE" "AE6 B)N & !AA<E! A" -A<LE" E6/+, E6/+,

(tiliEacin de 7ucles =8$: El uso de bucles ,>< es a menudo indispensableD pero conviene limitar su utili7acin cuando esto le sea posible ya ?ue ralenti7a el c(lculo. Le mostramos a continuacin algunos ejemplos comunes en los ?ue no es necesario el uso del bucleH KK /etermina si la condicin c& se :a cumplido al menos una ve7 en el transcurso de las n .ltimas velasH +, A+=AE!"UnV$c&% T & "AE6 ... KK /etermina si la condicin c& se :a cumplido siempre en el transcurso de las n .ltimas velasH +, L>\E!"UnV$c&% T ' "AE6 ... KK /etermina el n.mero de veces en los ?ue se :a comprobado la condicin c& en el transcurso de las n .ltimas velas num T !)--A"+>6UnV$c&% KK /etermina el n.mero de vistas temporales desde ?ue se se cumpli c& +, c& "AE6 lastoccurence T barinde3 E6/+, timesince T barinde3 Z lastoccurence KKEncontrar el ma3 de las variables $aDbDcDdDeD#Dg%H top T -AE$a D -AE$b D -AE$c D -AE$d D -AE$e D -AE$# D g% % % % % %

23 K 43

ProBacktest: La simulacin de sus sistemas de trading

ProBacktest: La simulacin de sus sistemas de trading


La pesta2a *ProBac;test* de la ventana de creacin de sistemas de trading $c#. p(rra#o 2%D permite con#igurar los par(metros de su sistemaH

=estin de capital $-oney management% Periodo de ejecucin >ptimi7acin de variables

2@ K 43

ProBacktest: La simulacin de sus sistemas de trading

#estin de Capital o "one. "anagement


Capital inicial Esta seccin le permite de#inir el capital del ?ue se dispondr( en su sistema de trading. /e ello depender( la inversin m(3ima autori7ada en la ejecucin del sistema. /urante la ejecucin de un ProBac;testD las comisiones de operativa asI como las ganancias o las pGrdidas lo aumentar(n o reducir(n $a menos ?ue el par(metro NoCasF(pdate estG activadoD c# p(rra#o <einvertir las ganancias%. En sistemas de trading autom(ticoD el capital disponible es el capital de su cartera.

!i su ProBac;test no reali7a ninguna compraD le recomendamos aumentar su capital inicial.

Comisiones de operativa . gestin de riesgos En #uncin del tipo de instrumento en el ?ue se base el sistemaD se aplicar(n di#erentes con#iguraciones de operativa. Podr( parametrar su operativa a travGs de las 3 pesta2as disponiblesH *,uturos*D *Acciones* y *,ore3*.

=uturos:

Las comisiones de operativa se de#inen en comisin por lote y por transaccin. El */epsito por contrato* es la cantidad de e#ectivo necesaria para la compra de un contrato. El valor de un punto se calcula autom(ticamente en #uncin del #uturo en el ?ue se apli?ue el ProBac;tets.

25 K 43

ProBacktest: La simulacin de sus sistemas de trading

Encontrar( a continuacin el valor de cada punto en los #uturos m(s negociadosH Nom7re del =uturo ,9E 9A9 @' /AE /] Eurosto33 5' B)6/ Euro ,E -ini !FP 5'' -ini 6asda? &'' -ini /oC Aalor & punto &'Q 25Q &'Q &'Q &2D5R 5'R 2'R 5R

La gestin de riesgos le permite establecer $en n.mero de contratos% los siguientes par(metrosH L1mite m!imo del total invertido /o tamaBo m!imo de la posicin0 H cual?uier orden ?ue represente una cantidad superior a este valor ser( rec:a7ada. "ontante m!imo por transaccinH se ignorar( cual?uier orden de una cantidad superior a este valor. "ontante m1nimo por transaccinH se ignorar( cual?uier orden de una cantidad in#erior a este valor. Nota: una inversin de la posicin se considerarIa como un cierre y una apertura de posicinD por lo ?ue tomarIamos en cuenta la cantidad de la apertura en el c(lculo del montante mInimo. Las comisiones de operativa slo se aplicarIan una ve7.

=ore!:

Los par(metros de con#iguracin de la operativa permiten de#inir el tama2o del loteD el spread y el apalancamiento ?ue se aplica a cada orden.

26 K 43

ProBacktest: La simulacin de sus sistemas de trading

Ejemplo con el E)<)!/H "ama2o de un loteH &'' ''' !preadH 2 pips ApalancamientoH 2'

La instruccin B)N & L>" A" -A<LE" en el E)<)!/ tiene como objetivo la compra de un lote de &'''''RD con un spread de 2 pips $es decir 'D'''2%. Al ser 2' el apalancamiento $margen de 5Y%D es necesario disponer de 5'''R. La gestin de riesgos #unciona de la misma manera ?ue para los #uturosD salvo ?ue las cantidades se de#inen en lotes.

cciones:

Las comisiones de operativa se de#inen por orden en Q o en Y de la transaccin. "ambiGn es posible de#inir una comisin de operativa mInima por transaccin. En accionesD el tama2o de la posicin y la inversin mInima por operacin se pueden con#igurar en la divisa del instrumento o en Y. La gestin de riesgos permite al mismo tiempo #ijar la cantidad invertida al lan7amiento de una orden asI como aplicar un apalancamiento. "omemos un ejemploH LImite m(3imo de inversinH 5''Y capital +nversin m(3ima por operacinH 5''Y capital A travGs de esta con#iguracinD cada orden enviada tendr( un apalancamiento de 5. +nversamenteD si de#ine un Y de &''D limitar( las pGrdidas del ProBac;test a la cantidad de su capital inicial. 6otaH las comisiones de operativa no se toman en cuenta en la seccin *=estin de riesgos*.

24 K 43

ProBacktest: La simulacin de sus sistemas de trading

8ptimiEacin de varia7les
Esta seccin le permite de#inir la optimi7acin de variables. A travGs de esta #uncinD podr( probar m.ltiples combinaciones de variables para encontrar las ?ue le o#re7can los mejores resultados. Para m(s in#ormacin al respecto y un ejemplo concretoD le sugerimos visuali7ar el video */e#ina la gestin de capital $money management%D los stops y la optimi7acin de variables para mejorar sus estrategias*. El resultado de la optimi7acin se presenta en un *+n#orme de optimi7acin*. En Gl se indican las estadIsticas de cada valor para determinar asI la combinacin de variables a utili7ar en la optimi7acin de su sistema de trading. Ae a?uI un ejemplo de sistema con optimi7acin de los periodos de medias mviles n y mH
A1=mTE3ponentialAverageUmV$9lose% A1=nTE3ponentialAverageUnV$9lose% +, A1=m 9rosses >ver A1=n "AE6 B)N &'' !AA<E! A" -A<LE" E6/+, +, A1=m 9rosses )nder A1=n "AE6 !ELL &'' !AA<E! A" -A<LE" E6/+,

/e#inimos las variables n y m pulsando en el botn *A2adir* de la ventana de optimi7acinH

25 K 43

ProBacktest: La simulacin de sus sistemas de trading

Aparece entonces la ventana para la de#inicin de variablesH

Nom7re usado en programa representa el nombre ?ue toma la variable en nuestro cdigo $n y m en este caso%. Es importante distinguir entre may.sculas y min.sculas. EtiIueta en ventana propiedades representa el nombre ?ue se le atribuye a la variable para identi#icarla con mayor #acilidad $por ejemplo *6.mero de PerIodos* para n%. Aalor m1nimo . Aalor m!imo representan los e3tremos entre los ?ue la variable puede oscilar durante las pruebas de optimi7acin. Paso representa el intervalo de valores ?ue la optimi7acin respetar( durante el an(lisis de los resultados. La siguiente imagen muestra un ejemplo de in#orme de optimi7acinH

2 K 43

ProBacktest: La simulacin de sus sistemas de trading

El in#orme del ejemplo o#rece 5 estadIsticas para cada una de las combinaciones de variables estudiadas $en este casoH n y m%. 1eamos las estadIsticas con m(s detalleH

#anancias designa la plusvalIa obtenida con el sistema de trading utili7ado. -atem(ticamenteD se traduce en esta #rmulaH #anancias J Aalor del capital tras la operativa realiEada ? Aalor inicial del capital Esta estadIstica permite evaluar de manera absoluta el potencial de ganancias del sistema de trading durante el periodo :istrico probado y para cada combinacin de variables. Nota: las comisiones de operativa de#inidas en la seccin *=estin de capital* se toman en cuenta en este c(lculo. El ;#anancias es el bene#icio e3presado en Y. -atem(ticamenteD se traduce por la #rmulaH ;#anancias J /&'' ! #anancias0 K Capital inicial +ndica el resultado relativo de este ProBac;testD con#igurado con las correspondientes variables. El Num de posiciones indica el n.mero de posiciones abiertas en el transcurso del ProBac;test. El ; de posiciones ganadoras designa el porcentaje de posiciones ganadoras del ProBac;test empleado. -atem(ticamente se de#ine asIH ; 8peraciones ganadoras J /&'' ! N2m4de posiciones ganadoras0 K N2m4total de posiciones El #anancia media por posicin puede ayudar a determinar la e#icacia de las rdenes enviadas. Esta in#ormacin es particularmente importante cuando no deseamos enviar un gran n.mero de rdenesJ en tal casoD la estadIstica mencionada se convierte en un criterio determinante para decidir si el sistema de trading se aplica o no. -atem(ticamenteD se de#ine asIH #anancia media por posicin J #ananciasK N2mero de posiciones Nota: los valores ptimos de las variables de un mismo ProBac;test pueden cambiar seg.n el instrumentoD las unidades de tiempo o la cantidad de :istrico utili7ados.

3' K 43

ProBacktest: La simulacin de sus sistemas de trading

De6inicin del periodo de ejecucin del 7acktest

Estos campos sirven para de#inir el intervalo de tiempo sobre el ?ue se desee aplicar el ProBac;test $con la condicin de ?ue e3istan su#icientes datos :istricos para el valor en cuestin%. Puede aumentar la cantidad de :istrico de su gr(#ico utili7ando el men. desplegable situado en la parte superior i7?uierda de cada uno. "enga en cuenta ?ue si establece *primera #ec:a disponible* como #ec:a de inicioD ser( necesario cargar en su gr(#ico la cantidad de :istrico deseada antes de lan7ar el ProBac;test.

!i se trata de un ProBac;test en *tiempo real*D las rdenes se #ijan en su gr(#ico cuando se producen las se2ales. "ambiGn es posible asociar estas rdenes a ventanas emergentes o a sonidos desde el men. *>pcionesKcon#iguracin de alertas y sonidos*. !i se de#ine una #ec:a #inalD las posiciones todavIa abiertas en esta #ec:a se cerrar(n autom(ticamente.

Nota: si su ProBac;test tarda en calcularseD le sugerimos reducir su periodo de ejecucinD pues el tiempo de c(lculo es proporcional a la cantidad de :istrico en el ?ue se desee aplicar. "ras la ejecucin de un ProBac;test se muestra la siguiente in#ormacin $ver Ane3o A%H =r(#ico de li?uide7 Evolucin de las posiciones +n#orme detallado Para m(s in#ormacinD consulte el Ane3o A al #inal de este documento.

PersonaliEacin de las Foras de trading en 7acktests


El men. *>pciones K Auso :orario en gr(#icos intradIa* le permite personali7ar los :orarios de negociacin de los mercados. +orarios de negociacin personaliEados: si reduce las :oras de negociacin de un mercadoD .nicamente aparecer(n en el gr(#ico las :oras establecidas $aun?ue en la ejecucin de su ProBac;test se tomar(n en cuenta todos los datos negociados en la sesinD no slo a?uGllos ?ue aparecen en su gr(#ico%. >bserve ?ue slo se pueden reducir las :oras de negociacin en un mismo dIa. Por ejemploD en un mercado ?ue se mantenga abierto las 2@ :orasD )d. podr( mostrar los datos negociados entre &'H'' y &@H''D pero no sGra posible seleccionar los datos negociados entre las 2&H'' de un dIa y las H'' del dIa siguiente. !i se con#igura el lan7amiento de una orden al cierre de la .ltima vela de la sesin y el :orario de este mercado se :ubiera personali7adoD esta orden se lan7ar( a la apertura personali7ada del siguiente dIa de trading. Notas relativas a la personaliEacin de los Forarios de negociacin . los datos del 6in de semana: Los :orarios de negociacin personali7ados slo son visibles en los gr(#icosH los sistemas ProBac;test se ejecutar(n tomando en cuenta los :orarios de negociacin o#iciales del mercado.

3& K 43

ProBacktest: La simulacin de sus sistemas de trading

Algunos mercados ?ue negocian durante las 2@ :oras permiten utili7ar los datos intradiarios para la construccin de las velas diarias. "al y como ocurre en la personali7acion de los :orariosD esta opcin no se toma en cuenta para la ejecucin de sus ProBac;tetsD ?ue siempre utili7ar(n las velas diarias o#iciales basadas en el uso :orario local del mercado. Algunos mercados $como el ,ore3% incluyen datos del #in de semana. E3iste una casilla especial para dic:os mercados en *>pciones K Auso :orario de gr(#icos intradIa* ?ue le permite ocultar los datos negociados durante el #in de semana en los gr(#icosD aun?ue dic:os datos siempre se tomaran en cuenta en la ejecucin de sus ProBac;tets. Los datos del domingo se incluyen en la vela diaria del lunes al aplicar un ProBac;test $el s(bado no :ay negociacin%.

$aEones por las Iue puede detenerse un ProBacktest


)n ProBac;test puede detenerse en los siguientes casosH El bac;test alcan7a el momento #inal ?ue se precis en la ventana de programacin. En este casoD el #inal del bac;test se representa en el gr(#ico como una lInea negra vertical. Presencia de la instruccin *0uit* en el cdigo ?ue :aya sido ejecutada. En este casoD el #inal del bac;test se representa en el gr(#ico a travGs del icono El capital disponible es insu#iciente para cubrir las pGrdidas $el capital *estimado* es negativo%. En este casoD el #inal del bac;test se representa en el gr(#ico mediante el icono !e rec:a7a una orden por e#ectivo insu#iciente. La orden aparecer( en la lista de rdenes del in#orme detallado. En este casoD el #inal de bac;test se representar( mediante el iconoH A?uI le mostramos un ejemplo de ProBac;test interrupido por capital insu#icienteH

32 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

ProInvest: La ejecucin de sistemas de trading automtico


En esta seccin del manual encontrar( toda la in#ormacin necesaria para la ejecucin como sistema de trading autom(tico de cual?uier sistema al ?ue :aya aplicado un ProBac;testH 9mo enviar un sistema de trading a Pro+nvest con el #in de prepararlo para su ejecucin como sistema de trading autom(tico. 9mo ejecutar un sistema de trading autom(tico y comprobar sus resultados. La con#iguracin de sistemas de trading autom(tico y sus condiciones de ejecucin. La coe3istencia del trading autom(tico y del trading manual en la plata#orma. Las condiciones para ejecutar m.ltiples sistemas de trading autom(tico en un mismo instrumento )na lista de indicadores ?ue no pueden utili7arse en estos sistemas autom(ticos debido a su mGtodo de c(lculo

Antes de ejecutar cual?uier sistema de trading autom(ticoD le recomendamos la lectura completa de este manual.

33 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Prepare un sistema de trading para la ejecucin automtica


9omience por abrir la ventana Pro+nvest a partir del menu *"rading*H

Aparecer( la siguiente ventanaD con las instrucciones de preparacin de los sistemas de trading para el trading automatico.

3@ K 43

ProIn vest: La ejecucin de sist emas de trading automtico

En primer lugarD seleccione el gr(#ico y la vista temporal en la ?ue desee ejecutar su sistema de trading automatico y pulse en el boton . !e abrir( a continuacin la ventana *+ndicadores F !istemas de

trading*. Pulse en el botn *Bac;test y trading autom(tico* para acceder a la lista de sus sistemas de tradingH

!eleccione el sistema de trading ?ue desee ejecutar autom(ticamente y pulse en el botn *Preparar para trading autom(tico*. El sistema de trading aparecer( en Pro+nvest.

35 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Cmo ejecutar sistemas de trading en ProInvest . compro7ar sus resultados


)na ve7 a2adido el sistema de trading a Pro+nvestD podr( de#inir el tama2o m(3imo de su posicin y empe7ar a operar con Gl pulsando en el botn *!tart*H

)na ventana emergente le pedir( con#irmar la ejecucin del sistemaD por lo ?ue le recomendamos leer con atencin el contenido de la misma. >bserve ?ue el *"ama2o m(3imo de la posicin* introducido en Pro+nvest prevalece sobre las instrucciones de sus cdigos. El tama2o m(3imo de la posicin para #uturos y #ore3 se de#ine en n.mero de lotes o contratos. Por ejemploD si su cdigo contiene una instruccin para la compra de 3 lotes pero )d. establece el lImite m(3imo de la posicin en &D se ignorar( la instruccin para la compra de 3 lotes. /el mismo modoD si su cdigo contiene una instruccin de compra de & lote y de venta a descubierto de 3 lotesD la orden de venta a descubierto no se ejecutar( y )d. mantendr( slo la posicin compradora. Por lo tantoD deber( veri#icar siempre el tama2o m(3imo de su posicin antes de la ejecucin de cual?uier cdigo. Para el caso de las accionesD el tama2o m(3imo de la posicin se de#ine en e#ectivo $sin incluir las comisiones de operativa%. "ras su con#irmacinD el sistema se mostrar( en la seccin *En curso*D tal y como aparece a continuacin.

36 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

-ientras el sistema de trading estG operativoD sus posicionesD ganancias latentes y ganancias totales aparecer(n en la ventana Pro+nvest. !er( entonces posible pulsar en el enlace *1ersin* para acceder a una copia del cdigo de este sistema. Podr( igualmente pulsar en el botn destacado a continuacin para visuali7ar el gr(#ico de li?uide7 del sistema y el in#orme detallado de sus resultados.

34 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Le mostramos un ejemplo de gr(#ico de li?uide7 de un sistema en curso y su in#orme detalladoH

35 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

NotaH la ganancia mostrada en la seccin *EstadIsticas de posiciones cerradas* puede ser di#erente del valor del gr(#ico de li?uide7D ya ?ue Gste toma en cuenta las posiciones ?ue est(n a.n abiertas y el sistema sigue en curso.

3 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Con6iguracin de las pre6erencias de trading . condiciones de ejecucin


Con6iguracin de los sistemas de trading Antes de ejecutar cual?uier sistema de tradingD deber( pulsar en el botn destacado en amarillo para con#igurar los par(metros y pre#erencias de su tradingH

+ncluimos un enlace :acia las condiciones de ejecucin de sus sistemas de trading en la parte in#erior de esta ventana $*Pulse a?uI%. Le aconsejamos leer estas condiciones con atencin.

@' K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Detencin automtica de sus sistemas de trading =ecFa de valideE: todos los sistemas de trading en curso tienen una #ec:a de valide7 com.n. !i no pulsa en el botn de prolongacin antes de esa #ec:aD Pro+nvest los detendr( autom(ticamente. Puede visuali7ar la #ec:a de valide7 $e3presada en el :uso :orario de su ordenador% y prolongar la valide7 de sus sistemas de trading a travGs del botn de prolongacin situado en la parte in#erior de la ventana Pro+nvest mientras se encuentre operativo alg.n sistema de tradingH

Puede asignar una cantidad de tiempo para cada prolongacin desde la ventana *Pre#erencias de trading*. Es posible aumentar este par(metro mientras su sistema de trading estG operativo. La modi#icacin se aplicar( en la siguiente prolongacin ?ue se e#ect.e. L1mite m!imo de rdenes por d1a: Pro+nvest podr( interrumpir cual?uier sistema de trading tanto si la totalidad de rdenes pendientes como si el n.mero de rdenes ejecutadas por dic:o sistema desde la apertura del mercado $':'' =-" para el ,ore3% es superior o igual a la cantidad establecida en la pesta2a *"rading autom(tico* de la ventana *Pre#erencias de trading*. )na orden pendiente es una orden ?ue :a sido enviada al bro;er y ?ue no se :a ejecutadoD o ?ue :a sido rec:a7ada o anulada. Por ejemploD cada instruccin *!et stop*D *!et "railing stop* o *!et target*D en tanto ?ue la orden correspondiente no :aya sido anuladaD rec:a7ada o ejecutada. Adem(sD 3 rdenes lImites o 3 rdenes stop di#erentes ?ue no :ayan sido anuladasD rec:a7adas o ejecutadas contar(n como 3 rdenes pendientes. Esta condicin se cumple tanto si las rdenes se sit.an en el mismo nivel de precio como en niveles de precio distintos.

@& K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Por ejemploD )d. establece un lImite de 5 rdenes para la detencin de sus sistemas. /esde la apertura del mercadoD un sistema de trading determinado ya :a ejecutado 5 ordenes y tieneD adem(sD una posicin abierta y dos rdenes pendientes $una *set target* y una *set stop*%. !i el sistema necesitara enviar una nueva orden al mercadoD esta octava orden no se lan7arIa ya ?ue 5M2M& representa el nivel de interrupcin establecido. El sistema de trading se detendr( y se anular(n en primer lugar las rdenes pendientes y a continuacin se cerrar( su posicin. $ecFaEo de rdenes4 Pro+nvest podr( detener cual?uier sistema de trading si se rec:a7a un n.mero determinado de sus rdenes. Puede establecer la interrupcin de un sistema de trading al cabo de una sola orden rec:a7ada o #ijar un n.mero de intentos. 6o es posible modi#icar los par(metros de rec:a7o de rdenes mientras un sistema de trading se encuentre operativo.

Coe!istencia del trading manual . del trading automtico en la plata6orma


!i :ay sistemas de trading ejecut(ndose en un valorD no ser( posible lan7ar rdenes manualmente desde la plata#orma en dic:o valorD aun?ue podr( seguir invirtiendo manualmente en otros instrumentos. En a?uellos instrumentos en los ?ue :aya sistemas de trading ejecut(ndoseD las :erramientas para el trading manual ser(n reempla7adas por un botn ?ue indica ?ue el trading autom(tico se encuentra activo en ese instrumentoH

Puede abrir la ventana Pro+nvest pulsando en ese botn y acceder a los sistemas de trading actualmente en curso.

@2 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

Ejecutar m2ltiples sistemas de trading en el mismo valor


!i est( ejecutando varios sistemas de trading en el mismo valorD su posicin neta se determinar( tomando en cuenta todos ellos. Por ejemploD si :ay 2 sistemas de trading y uno compra & lote mientras ?ue el otro vende & loteD su posicin neta ser( de '. [nicamente la posicin neta le proporcionar( los resultados del conjunto de sus sistemas de trading abiertos en el mercado en un momento dado. 9uando muestre el gr(#ico de li?uide7 de un sistema de tradingD acceder( a la ventana *Posiciones*. Esta ventana le indica las posiciones de un sistema concreto de trading en ese valorD y puede ser di#erente de su posicin neta en dic:o instrumento $determinada por el conjunto de sistemas de trading en ejecucin en dic:o instrumento%. La posicin neta est( representada por la lInea de posicin.

Ejemplo: !upongamos ?ue estamos ejecutando 2 sistemas de trading en el mismo instrumentoH uno compra 6 lotes de un tama2o de &''''' unidades cada uno y el otro est( comprando 2 lotes de un tama2o de &''''' unidades cada uno. La posicin neta T M5''''' En este ejemploD la posicin del sistema de trading mostrado en el gr(#ico es de M6'''''. La posicin neta mostrada por la lInea de posicin es de M5'''''.

@3 K 43

ProIn vest: La ejecucin de sist emas de trading automtico

La posicin neta de M5''''' unidades se muestra igualmente pulsando en el men. *"rading* y abriendo la ventana *9arteras*H

9uando ejecuta m.ltiples sistemas de trading en el mismo instrumentoD cada valor in#ormativo del sistema ?ue est( ejecut(ndose se correponde con su posicin actualD rdenesD transacciones y ganancias de #orma independiente. 9omo consecuencia de estoD las instrucciones *Long>nmar;et*D *!:ort>n-ar;et* pueden indicarle si el sistema de trading en curso es comprador o vendedor. La posicin neta en un instrumento debe ser di#erente de la posicin de un determinado sistema. /el mismo modoD otras variables de estado como *9ount>#Long!:ares*D *9ount>#!:ort!:aresD *9ount>#Position*D *PositionPrice*D *!trategyPro#it*D *"rad+nde3*D *"radePrice* y *PositionPer#* :acen re#erencia slo a su sistema actual.

$estriccin de indicadores
La utili7acin de los siguientes indicadores est( limitada actualmente en trading autom(tico por?ue su sistema de c(lculo no permite un uso en tiempo realH BigBagH las se2ales basadas en este indicador se recalculan despuGs de un :ec:o y como consecuencia de estoD las se2ales dadas en tiempo real pueden di#erir de las se2ales proporcionadas en sus bac;tests.

@@ K 43

ne!o

: "uestre los resultados de sus sistemas de trading

ne!o : "uestre los resultados de sus sistemas de trading


Los resultados de un sistema de trading se presentan a travGs de tres #ormatos complementariosH

&0 #r6ico de liIuideE


"ambiGn llamado *E?uity 9urve*D representa la evolucin del capital invertido en la ejecucin del sistema o ProBac;test H La l1nea aEul ForiEontal representa el capital inicial de su sistema. !i est( ejecutando sistemas de trading autom(ticoD esta lInea se sit.a siempre en '. !i ejecutara un ProBac;test con un capital inicial de &'''' y una pGrdida de 24'5D el gr(#ico de li?uide7 tendrIa un valor de 42 5D tal y como puede apreciar en el siguiente ejemplo. !i se tratara de un sistema de trading autom(tico con idGntica pGrdidaD el punto de salida del gr(#ico ser( ' y el valor #inal ser( de Z24'5.

El relleno del gr6ico de liIuideE ser( de color verde si el resultado global es positivo $el valor actual del capital es superior al inicial% y de color rojo si el resultado global es negativo. La l1nea de la gr6ico de liIuideE ser( de color verde en caso de una variacin positiva respecto al nivel precedenteD y de color rojo para indicar una variacin a la baja.

@5 K 43

ne!o

: "uestre los resultados de sus sistemas de trading

L0 Posiciones
Esta in#ormacin se muestra mediante un :istograma con la evolucin de las posiciones abiertas por un sistema de trading. )na barra verde indica la apertura de una posicin a largo $compra%. )na barra roja indica la apertura de una posicin a corto $venta a descubierto o s:ort selling%. !i no :ay ninguna barra visibleD no :ay ninguna posicin abierta en el mercado. La aparicin de varias barras sucesivas de un mismo color indica ?ue se mantienen la$s% posicin$es%. A lo largo del eje vertical visible en la 7ona derec:a del gr(#ico se indica la cantidad de posiciones abiertas y acumuladas. En la ilustracin siguiente constataremos ?ue nos encontramos en una posicin de venta de un lote de &''''' unidades en el E)<K)!/.

@6 K 43

ne!o

: "uestre los resultados de sus sistemas de trading

M0 In6orme detallado
El in#orme detallado le permite visuali7ar las estadIsticas de su sistemaD asI como el detalle de cada posicin y ordenH

@4 K 43

ne!o

: "uestre los resultados de sus sistemas de trading

El in#orme detallado se presenta como una ventana independiente y se compone de 3 pesta2as. En la pesta2a *EstadIsticas* :allar( un presentacin e3:austiva de los resultados del sistema de trading $pGrdidas y gananciasD n.mero de operaciones ganadorasD^%.asI como indicadores de la evolucin del riesgo. >bserve ?ue estas estadIsticas no incluyen las posiciones abiertas en el momento en el ?ue se genera el in#orme $slo se toman en cuenta las posiciones cerradas%. #anancias designa la plusvalIa obtenida con la operativa reali7ada. -atem(ticamenteD se traduce con esta #rmulaH #anancias J Capital 6inal ? Capital inicial Esta estadIstica permite evaluar de manera absoluta el potencial de ganancias del sistema de trading de#inido. Nota: las comisiones de operativa con#iguradas en la seccin *=estin de capital* se toman en cuenta en este c(lculo. El ;#anancias es el bene#icio e3presado en Y. -atem(ticamenteD se traduce por la #rmulaH ;#anancias J /&'' ! #anancias0 K Capital inicial El Bene6icio 7ruto representa la suma de todas las ganancias y PDrdidas 7rutas la suma de todas las pGrdidas. $atio gananciasK pDrdidas es la relacin entre estos dos valores. El Num de posiciones indica el n.mero de posiciones abiertas en el transcurso del sistema de trading. El ; de posiciones ganadoras designa el porcentaje de posiciones ganadoras del sistema de trading empleado. -atem(ticamente se de#ine asIH ; 8peraciones ganadoras J /&'' ! N2m4de operac4 ganadoras0 K N2m4total de operaciones La #anancia media por posicin es la esperan7a de ganancias por transaccin y puede ayudar a determinar la e#icacia media de las rdenes enviadas. La esperan7a es especialmente importante cuando no deseamos enviar un gran n.mero de rdenesJ en tal casoD la estadIstica mencionada se convierte en un criterio determinante para decidir si utili7amos o no el sistema. -atem(ticamenteD se de#ine asIH #anancia media por posicin J #anancias K N2mero de posiciones El Bene6icio m!imo es el m(3imo de ganancias de una posicin determinadaD la PDrdida m!ima es la pGrdida m(3ima de una posicin dada desde ?ue se inici el sistema de trading. La Desviacin t1pica pDrdidas . ganancias es la desviacin tIpica de los resultados de cada posicin. El "a! DraNdoNn es el m(3imo potencial de pGrdidas del sistema de trading. /e#inimos en primer lugar el *draCdoCn*D ?ue es la distancia entre un punto determinado y el punto m(s alto ?ue le precede en el gr(#ico de li?uide7H

//$n%T -a3 tQU'JnV P$t% Z P$n%


El "a! draNdoNn representa el valor m(3imo de este par(metro desde el inicio del sistema de trading.

-a3//$6% T -a3 nQU'H6V $ -a3tQU'JnV P$t% Z P$n% %


El "a! $unOup es el potencial m(3imo de ganancias del sistema. El *runup* se de#ine como la di#erencia entre un punto determinado y el punto m(s alto ?ue le precede en el gr(#ico de li?uide7H

<)$n%T P$n% 8 -in tQU'JnV P$t%


El "a! $unOup representa el valor m(3imo de este par(metro desde el inicio del sistema de trading.

-a3//$6% T -a3nQU'H6V $ P$n% Z -intQU' JnVP$t% %

@5 K 43

ne!o

: "uestre los resultados de sus sistemas de trading

Ejemplo: Barinde! & 2 3 @ 5 6 4 5 PnL 'D'' &5D'' &'D'' 'D'' &5D'' Z&'D'' Z2'D'' Z5D'' Z6D'' &' && 2'D'' 5D'' "a! : DraNDoNn 'D'' 'D'' 5D'' &5D'' 'D'' 25D'' 35D'' 2'D'' 2&D'' 'D'' &5D'' OMP3'' $un(p 'D'' Z&5D'' Z&'D'' 'D'' Z&5D'' 'D'' 'D'' Z&5D'' Z&@D'' Z@'D'' Z25D'' Q'3''

@ K 43

ne!o

: "uestre los resultados de sus sistemas de trading

El ; "!imo de e!posicin al riesgo: la e3posicin al riesgo es la relacin entre la pGrdida m(3ima posible de la posicin y el capital actual. El Y m(3imo esD por tantoD el m(3imo de este valor e3presado en porcentaje. Podemos distinguir 3 casosH

AccionesH

Ye3posicin ma3 T -a3 posiciones $9antidad X precio medio K capital% X &''


,uturosH

Ye3posicin ma3 T -a3 posiciones $9antidad X depsito K capital% X &''


,ore3H

Ye3posicin ma3 T -a3 posiciones $9antidad X precio medio X apalancamiento K capital% X &''
+gualmenteD el ; e!posicin media al riesgo es la media del porcentaje de e3posicin al riesgo. Las Comisiones de operativa contabili7an el conjunto de comisiones de operativa de cada orden desde el inicio del sistema de trading. Las comisiones de operativa se de#inen en la gestin de capital en el caso de los ProBac;test. El Y de tiempo en el mercado es la relacin entre el n.mero de periodos durante los ?ue :ay posiciones abiertas dividido por el n.mero de periodos del sistema de trading.

Las dos pesta2as siguientes le #acilitan in#ormacin sobre todas las rdenes lan7adas y las posiciones abiertas y cerradas en el transcurso del sistema de trading autom(tico o del ProBac;test. La pesta2a Lista de rdenes le indica la :oraD el sentidoD la cantidad y el precio de las rdenes enviadas. Estas rdenes aparecen en el :uso :orario del mercado $es decirD e3presadas en :ora local%. Por .ltimoD la pesta2a Lista de posiciones cerradas le proporciona in#ormacin sobre las posiciones abiertas y li?uidadas por el sistema $a largo o a cortoD duracin indicada en cantidad de velasD resultados absolutos y relativos de cada posicinD #ec:a de entrada y de salida^%. !i :ubiera alguna posicin todavIa abierta en el momento de la creacin del in#ormeD no se incluir( en la lista. !i ejecuta un ProBac;tets y desea cerrar todas las posiciones al #inal del mismoD le recomendamos #ijar una #ec:a #inal en lugar de una #ec:a en tiempo real.

5' K 43

ne!o B:

plicaciones prcticas

ne!o B: plicaciones prcticas


*istema de trading 7asado en +eikin sFi Este sistema de trading genera una se2al de compra cuando aparece una vela roja seguida de una vela verde en estilo Aei;inZAs:i. +nversamenteD se genera una se2al de venta a descubierto si aparece una vela verde seguida de una roja. El interGs de este ProBac;test es ?ue reconstruye la vista Aei;inZAs:i a partir de velas japonesas cl(sicas. Por elloD deber( aplicarse imperativamente en un gr(#ico con el precio en estilo de velas japonesas.
>69E Previous!tatus T ' +, Bar+nde3 T ' "AE6 E9lose T "otalPrice E>pen T $>pen M 9lose% K 2 EL!E E9lose T "otalPrice E>pen T $E>penU&V M EcloseU&V% K 2 E6/+, +, E9lose PT E>pen "AE6 +, Previous!tatus OP & "AE6 B)N & !AA<E! A" -A<LE" Previous!tatus T & E6/+, EL!E +, Previous!tatus OP Z& "AE6 !ELL!A><" & !AA<E! A" -A<LE" Previous!tatus T Z& E6/+, E6/+,

*istema de trading 7asado en el RigRag Este ProBac;test utili7a el indicador BigBag para identi#icar cu(les :abrIan sido las mejores oportunidades de compra y venta. Los e3celentes resultados $en mercados de acciones y #uturos% se deben al car(cter no predictivo del Big BagD ?ue se recalcula a posteriori y no proporciona se2ales v(lidas en tiempo real. A pesar de elloD este sistema es interesante en tanto ?ue permite comparar sus resultados con los de otros sistemas.
KK En variable optimi7adaH periodos T & $de 5 a &'% myBigBag T BigBagU&'V c&& T $myBigBag P myBigBagU&V% c&2 T $myBigBag O myBigBagU&V% +, c&& A6/ 6>" L>6=>6-A<LE" "AE6 B)N & !AA<E! A" -A<LE" E6/+, +, c&2 A6/ 6>" !A><">6-A<LE" "AE6 !ELL!A><" & !AA<E! A" -A<LE" E6/+,

5& K 43

ne!o B:

plicaciones prcticas

*istema de trading Breakout $ange con *top Dinmico !e trata de un sistema de tipo Brea;>ut ?ue slo abre posiciones largasD en el ?ue los soportes y resistencias son determinados por los m(3imos y mInimos de las dos primeras velas del dIa. !i el precio cru7a al al7a una lInea de resistencia y la media mvil de &' periodos aumentaD abrimos una posicin larga. Establecemos un objetivo al &Y asI como un stop de proteccin en el precio del soporte. La posicin se cierra a las &4: $:ora local del mercado% para evitar mantenerla abierta durante la noc:e. Es necesario acceder a datos en tiempo real para probar este sistema de trading.
/E,PA<A- 9umulate>rders T ,alse -- T AverageU&'V$close% -y"arget T & End"ime T &4'''' +, +6"<A/ANBA<+6/EE T 2 "AE6 -y<esistance T A+=AE!"U2V$:ig:% -y!upport T L>\E!"U2V$loC% E6/+, <E- 9omprar +, --P--U&V A6/ close 9<>!!E! >1E< -y<esistance "AE6 B)N & !AA<E! A" -A<LE" E6/+, <E- !alida compra +, time P End"ime "AE6 !ELL A" -A<LE" E6/+, !ELL A" -y!upport !">P !E" "A<=E" YPro#it -y"arget

52 K 43

ne!o B:

plicaciones prcticas

*istema de trading 7asado en el Estocstico lisado Este sistema reposa sobre el indicador *Estoc(stico alisado* aplicado al precio medio y su media mvil. 9uando el indicador es superior a su media mvil e3ponencialD compramosJ en caso contrarioD reali7amos una venta a descubierto. Establecemos igualmente un objetivo al &Y de las ganancias.

/E,PA<A- 9umulate>rders T ,alse <E- 9ompra +ndicator& T !moot:ed!toc:asticU D V$-edianPrice% +ndicator2 T E3ponentialAverageU V$+ndicator&% KK +nicio variable !topLimit T &' <E- 9ondiciones para largos c& T $+ndicator& PT +ndicator2% +, c& "AE6 B)N & !AA<E! A" -A<LE" E6/+, <E- 9ondiciones para cortos +, 6>" c& "AE6 !ELL!A><" & !AA<E! A" -A<LE" E6/+, !E" "A<=E" YP<>,+" !topLimit

53 K 43

ne!o B:

plicaciones prcticas

*Ning %rading3 DC . "edias mviles Este bac;test se basa en el indicador A/E y en su posicionamiento respecto al valor 3'D con el objetivo de reducir las se2ales #alsas y minimi7ar los riesgos. !e trata de un sistema de trading ?ue presenta un gran n.mero de condicionesD lo ?ue restringe el n.mero de oportunidades.
/E,PA<A- 9umulate>rders T ,alse -yA/E&2 T A/EU&2V A/Eperiods T 5 -y--2' T AverageU2'V$9lose% +sLoC3' T ' +, LoCestUA/EperiodsM&V$-yA/E&2%O3' "AE6 +sLoC3' T & E6/+, KK 9ompra KK A/E &2 est( por encima de 3' desde al menos un intervalo comprendido entre 5 y &' sesiones 9ondition& T 6>" +sLoC3' KK !i la media mvil de 2' periodos del periodo actual se encuentra entre el m(3imo y el mInimo del periodo actual y la media mvil del periodo anterior est( entre el m(3imo y el mInimo del periodo anterior 9ondition2 T Aig: P -y--2' A6/ LoC O -y--2' A6/ Aig:U&V O -y--2'U&V A6/ LoCU&V O -y--2'U&V KK !i el m(3imo del dIa sobrepasa el m(3imo de la vIspera. 9ondition3 T /:ig:$'% P /:ig:$&% +, 9ondition& A6/ 9ondition2 A6/ 9ondition3 "AE6 B)N & !AA<E! A" -A<LE" E6/+, KK 1enta a corto KK A/E &2 est( por encima de 3' desde al menos un intervalo comprendido entre 5 y &' sesiones 9ondition@ T 6>" +sLoC3' KK !i la media mvil de 2' periodos del periodo actual se encuentra entre el m(3imo y el mInimo del periodo actual y la media mvil del periodo anterior est( entre el m(3imo y el mInimo del periodo anterior 9ondition5 T Aig: P -y--2' A6/ LoC O -y--2' A6/ Aig:U&V P -y--2'U&V A6/ LoCU&V P -y--2'U&V KK !i el mInimo del dIa sobrepasa el mInimo de la vIspera 9ondition6 T /loC$'% O /loC$&% +, 9ondition@ A6/ 9ondition5 A6/ 9ondition6 "AE6 !ELL!A><" & !AA<E! A" -A<LE" E6/+,

5@ K 43

ne!o B:

plicaciones prcticas

*istema de trading 7asado en contador de posiciones Inverse =isFer %rans6orm aplicado al $*I4 Este sistema de trading est( basado en el indicador *+nverse ,is:er "rans#orm <!+* para lan7ar rdenes de compra o de venta. El sistema genera una orden de compra cuando el *+nverse ,is:er "rans#orm <!+* cru7a al al7a el nivel de 5' y vende si el indicador cru7a el nivel de 5' a la baja. +nversamenteD se genera una orden de venta a descubierto cuando el *+nverse ,is:er "rans#orm <!+* cru7a a la baja le nivel de 5' y se cierra $compra% cuando el *+nverse ,is:er "rans#orm <!+* cru7a el nivel de 2' al al7a. Puede aplicar un ProBac;test a este sistema de trading con velas de &: en el caso de #uturos. En cambioD es aconsejable utili7arlo con velas diarias en el caso de acciones.

<E- +nverse ,is:er "rans#orm aplicado al <!+ <E- Par(metrosH n T cantidad de velas para el c(lculo del <!+ n T &' +ndT<!+UnV$9lose% 3 T '.& X $+nd Z 5'% y T $EEP $2 X 3% Z &% K $EEP $2 X 3% M &% 7 T 5' X $y M &% my+nverse,is:er"rans#orms<!+ T 7 +, $my+nverse,is:er"rans#orms<!+ 9rosses >ver 5'% "AE6 B)N & !AA<E! A" -A<LE" E6/+, +, $my+nverse,is:er"rans#orms<!+ 9rosses )nder 5'% "AE6 !ELL A" -A<LE" E6/+, +, $my+nverse,is:er"rans#orms<!+ 9rosses )nder 5'% "AE6 !ELL!A><" & !AA<E! A" -A<LE" E6/+, +, $my+nverse,is:er"rans#orms<!+ 9rosses >ver 2'% "AE6 EE+"!A><" A" -A<LE" E6/+,

55 K 43

ne!o B:

plicaciones prcticas

*istema de trading 7asado en el %radeInde! ? =ind inside 7ar El ejemplo siguiente es un sistema basado en un patrn de precios utili7ado con #recuencia y conocido como *+nside Bar*. !e aplica a 2 patrones de velas concretosH El primer patrn se produce si el rango de la segunda vela anterior a la vela actual es superior al rango de la vela anterior a la vela actual. La vela ?ue precede a la vela actual debe ser verde $cierre P apertura%. En este casoD se abre una posicin larga. El segundo patrn se produce si el rango de la segunda vela anterior a la vela actual es in#erior al rango de la vela ?ue precede a la vela actual. La vela ?ue precede a la actual debe ser roja $cierre O apertura%. En este casoD abrimos una posicin corta. La posicin se cierra sistem(ticamente 3 velas despuGs de :aberse abierto.

/E,PA<A- 9umulate>rders T ,alse 9ondicion& T $Aig:U2V PT Aig:U&V A6/ LoCU2V OT LoCU&V% 9ondicion2 T $Aig:U2V OT Aig:U&V A6/ LoCU2V OT LoCU&V% 9ondicion3 T $9loseU&V P >penU&V% 9ondicion@ T $9loseU&V O >penU&V% +, $9ondition& A6/ 9ondicion3% "AE6 B)N & !:are A" -A<LE" E6/+, +, L>6=>6-A<LE" A6/ $Bar+nde3 Z "<A/E+6/EE% T 3 "AE6 !ELL & s:are A" -A<LE" E6/+, +, $ 9ondicion2 A6/ 9ondicion@% "AE6 !ELL!A><" & s:are A" -A<LE" E6/+, +, !A><">6-A<LE" A6/ $Bar+nde3 Z "<A/E+6/EE% T 3 "AE6 EE+"!A><" A" -A<LE" E6/+,

56 K 43

ne!o B:

plicaciones prcticas

Estrategias de mone. management /gestin de capital0


Los resultados de un bac;test pueden mejorarse sustancialmente adoptando reglas so#isticadas de gestin de capital $money management%. Estas estrategias de gestin de capital suelen #ormali7arse en las martingalasD destinadas a optimi7ar la esperan7a matem(tica de un sistema de trading $ganancia o pGrdida media por operacin%. Esto implica poder estimar previamente la probabilidad de ?ue una operacin resulte en gananciaD y el importe del bene#icio. 9on la #inalidad de implementar una martingalaD puede resultar .til codi#icar directamente en su sistema de trading las rdenes stop de proteccinD de objetivos y de inactividadD asI como algunas subestrategias ?ue permitan la gestin din(mica del tama2o de posiciones.

*top de proteccin /stop loss0 S o7jectivos Para m(s in#ormacin sobre los stops de proteccinD stops din(micos y stops de objetivosD le empla7amos a consultar las secciones dedicadas a ellos en el presente manual.

*tops de inactividad Este cdigo permite integrar un stop de inactividad en su sistema de trading. <ecuerde de#inir las condiciones de su stopD en este caso denominados *+nactivity!topLong* e *+nactivity!top!:ort*. En el ejemplo descritoD el stop se activa tras &' velas.
>69E 9ount T &' <E- !eleccin del n.mero de velas tras el cual la posicin se cerrar( autom(ticamente +, >6-A<LE" A6/ $BA<+6/EE Z "<A/E+6/EE M &% P 9ount "AE6 +, L>6=>6-A<LE" "AE6 !ELL A" -A<LE" E6/+, +, !A><">6-A<LE" "AE6 EE+"!A><" A" -A<LE" E6/+, E6/+,

54 K 43

ne!o B:

plicaciones prcticas

cumulacin de rdenes ? de posicin

Badir rdenes a una posicin e!istente mediante un contador

A?uI encontrar( un ejemplo de acumulacin de rdenes para aumentar el tama2o de su posicin. Para acumular rdenesD introdu7ca el comando * DE=P $ " Cumulate8rders J %rue- al principio del programa. Este sistema de trading utili7a la primera condicin basada en el <!+ para abrir la posicin inicial. !e a2aden acciones adicionales en cada vela en las ?ue la apertura es superior al cierre previoD :asta un m(3imo de 3. )tili7amos *9ounto#position* para limitar la posicin m(3ima de la estrategia a 3.

/E,PA<A- 9umulate>rders T "rue <E- 9omprar & cuando el <!+ O 3' y no :aya posiciones abiertas +, <!+U&@V$9lose% O 3' A6/ 6>">6-A<LE" "AE6 B)N & !AA<E! A" -A<LE" E6/+, <E- !i se :a abierto una posicin larga y la apertura P al cierre de la vela anteriorD compramos una cantidad adicional :asta un m(3imo de 3 +, L>6=>6-A<LE" A6/ 9>)6">,P>!+"+>6 O 3 A6/ >PE6P 9L>!EU&V "AE6 B)N & !AA<E! A" -A<LE" E6/+, <E- 9uando el precio cruce a la baja una media mvil simpleD se cierra la totalidad de la posicin +, 9lose 9rosses )nder AverageU&@V$9lose% "AE6 !ELL A" -A<LE" E6/+,

9on estas :erramientas podemos abordar las martingalas. Les mostramos a continuacin algunas de las m(s conocidas. Estas tGcnicas pueden a2adirse a cual?uier sistema de trading.

55 K 43

ne!o B:

plicaciones prcticas

La martingala clsica La martingala cl(sica consiste en duplicar la posicin cuando se a#ronta una pGrdidaD con la idea de recuperarla en la siguiente transaccin. El mayor inconveniente de este sistema de trading es ?ue si se producen varias pGrdidas consecutivasD la posibilidad de duplicar la posicin se :ace cada ve7 menos #actible. AsID partiendo de un capital de p.ej. &'''QD cinco pGrdidas sucesivas re?uerirIan &''' 3 32Q T 32'''Q para continuar con el sistema de trading. Los sistemas de trading derivados de esta martingala pueden ser m(s adecuadas para la operativa con acciones ?ue con #uturos o ,ore3D ya ?ue la inversin inicial y el apalancamiento suele ser m(s importante en estos .ltimos mercados. Para aplicarlaD se integrar( este cdigo en las condiciones de entrada y de salidaH

KKXXXXXXXXXXX9digo a insertar al principio del sistema de tradingXXXXXXXXXXKK >69E >rder!i7e T & >69E E3it+nde3 T Z2 <E- +nicio con una posicin de & KKXXXXXXXXXXXXXXXXXXXXXKK KKXXXXXXXXXXX9digo a insertar tras las instrucciones ?ue cierran una posicinXXXXXXXXXKK E3it+nde3TBar+nde3 KKXXXXXXXXXXX9digo a insertar al #inal del sistema de tradingXXXXXXXXXKK +, Barinde3TE3it+nde3M& "AE6 E3it+nde3T' +, PositionPer#$&% O ' "AE6 >rder!i7e T >rder!i7e X 2 <E- !i la .ltima transaccin resulta en pGrdidasD duplicamos el tama2o de la posicin EL!+, PositionPer#$&% P ' "AE6 >rder!i7e T & <E- !i la .ltima transaccin resulta en gananciasD volvemos a una posicin de tama2o & E6/+, E6/+, KKXXXXXXXXXXXXXXXXXXXXXKK <E- El tama2o de la posicin ?ueda de#inido por la variable >rder!i7e para el cdigo entero

5 K 43

ne!o B:

plicaciones prcticas

La gran martingala La gran martingala es similar a la cl(sicaD con la di#erencia de ?ue adem(s de duplicar la posicin en cada pGrdidaD se a2ade una unidad suplementaria. Esta martingala es m(s arriesgada ?ue la cl(sica en caso de pGrdidas sucesivasD pero permite aumentar signi#icativamente las ganancias en caso contrario. Para aplicarlaD se integrar( este cdigo en las condiciones de entrada y de salidaH

KKXXXXXXXXXXX9digo a insertar al principio del sistema de tradingXXXXXXXXXKK >69E >rder!i7e T & >69E E3it+nde3 T Z2 <E- +nicio con una posicin de & KKXXXXXXXXXXXXXXXXXXXXXKK KKXXXXXXXXXXX9digo a insertar tras las instrucciones ?ue cierran una posicinXXXXXXXXXXKK E3it+nde3TBar+nde3 KKXXXXXXXXXXX9digo a insertar al #inal del sistema de trading +, Barinde3TE3it+nde3M& "AE6 E3it+nde3T' +, PositionPer#$&% O ' "AE6

>rder!i7e T >rder!i7e X 2 M & KK !i la .ltima transaccin resulta perdedoraD se duplica el


tama2o de la posicin y a2adimos & EL!+, PositionPer#$&% PT ' "AE6

>rder!i7e T & KK !i la .ltima transaccin resulta ganadoraD volvemos a una posicin de &
E6/+, E6/+, KKXXXXXXXXXXXXXXXXXXXXXKK <E- El tama2o de la posicin ?ueda de#inido por la variable >rder!i7e en el cdigo entero

6' K 43

ne!o B:

plicaciones prcticas

La PiIuemoucFe La Pi?uemouc:e es otra variante de la martingala cl(sica. En caso de pGrdidaD se aumenta una unidad el tama2o de la posicin mientras se :ayan producido menos de 3 pGrdidas consecutivas. 9uando se acumulan m(s de 3 pGrdidas seguidasD se duplica el tama2o de la posicin. La primera ganancia reinicia el tama2o de la posicinD #ij(ndolo nuevamente en &. Este sistema de trading es menos arriesgado ?ue los dos anterioresD ya ?ue retrasa el aumento del tama2o de la posicin :asta pasadas las 3 pGrdidas sucesivas. Para aplicarloD se integrar( este cdigo en las condiciones de entrada y de salidaH

KKXXXXXXXXXXX9digo a insertar al principio del sistema de tradingXXXXXXXXXXKK >69E >rder!i7e T & >69E Bad"rades T ' >69E E3it+nde3 T Z2 <E- +nicio con una posicin de & KKXXXXXXXXXXXXXXXXXXXXXKK KKXXXXXXXXXXX9digo a insertar justo despuGs de cerrar una posicinXXXXXXXXXXKK E3it+nde3TBar+nde3 KKXXXXXXXXXXX 9digo a insertar al #inal del sistema de tradingXXXXXXXXXKK +, Barinde3TE3it+nde3M& "AE6 E3it+nde3T' +, PositionPer#$&% O ' "AE6 Bad"rades T Bad"rades M & +, Bad"rades O 3 "AE6 KK!i la .ltima operacin resulta en pGrdidas y no se superan las 3 perdidas KK consecutivasD se aumenta en & unidad el tama2o de la posicin

>rder!i7e T >rder!i7e M &


EL!+, Bad"rades ->/ 3 T ' "AE6 KK!i la .ltima operacin resulta en pGrdidas y se acumulan m(s de 3 pGrdidas KK consecutivasD se duplica el tama2o de la pr3ima posicin >rder!i7e T >rder!i7e X 2 E6/+, EL!+, PositionPer#$&% PT ' "AE6 KK !i la .ltima operacin resulta ganadoraD retomar posicin a tama2o & >rder!i7e T & Bad"rades T ' E6/+, E6/+, KKXXXXXXXXXXXXXXXXXXXXXKK <E- El tama2o de la posicin ?ueda de#inido por la variable >rder!i7e en el cdigo entero

6& K 43

ne!o B:

plicaciones prcticas

La pirmide de lem7ert 9oncebida por Alembert $matem(tico #rancGs del siglo E1+++%D esta martingala aumenta & unidad la posicin en caso de pGrdidaJ en caso de gananciaD la disminuye de &. Esta tGcnica slo es pertinente cuando se considere ?ue las ganancias sucesivas disminuyen la probabilidad de ?ue la siguiente operacin resulte ganadora $y recIprocamenteD ?ue una pGrdida aumente la posibilidad de ?ue la siguiente operacin resulte en ganancia%. Para aplicarlaD se integrar( este cdigo en las condiciones de entrada y de salidaH

KKXXXXXXXXXXX9digo a insertar al principio del sistema de tradingXXXXXXXXXXKK >69E >rder!i7e T & >69E E3it+nde3 T Z2 KK+nicio con una posicion de & KKXXXXXXXXXXXXXXXXXXXXXKK KKXXXXXXXXXXX9digo a insertar justo al cerrar una posicinXXXXXXXXXXKK E3it+nde3TBar+nde3 KKXXXXXXXXXXX 9digo a insertar al #inal del sistema de tradingXXXXXXXXXKK +, Barinde3TE3it+nde3M& "AE6 E3it+nde3T' +, PositionPer#$&% O ' "AE6 >rder!i7e T >rder!i7e M & EL!+, PositionPer#$&% PT ' "AE6 >rder!i7e T -AE$>rder!i7e Z &D &% E6/+, E6/+, KKXXXXXXXXXXXXXXXXXXXXXKK <E- El tama2o de la posicin ?ueda de#inido por la variable >rder!i7e en el cdigo entero

62 K 43

ne!o B:

plicaciones prcticas

La contra de lem7ert Este es un sistema de trading recIproco de la pir(mide :omnimaD ya ?ue se disminuye el tama2o de la posicin en caso de pGrdida y se aumenta en caso de ganancia. La tGcnica implica la consideracin de ?ue los resultados :istricos son representativos de los resultados #uturos. Para aplicarlaD se integrar( este cdigo en las condiciones de entrada y de salidaH

KKXXXXXXXXXXX9digo a insertar al principio del sistema de tradingXXXXXXXXXXKK >69E >rder!i7e T & >69E E3it+nde3 T Z2 KK+nicio con una posicin de & KKXXXXXXXXXXXXXXXXXXXXXKK KKXXXXXXXXXXX9digo a insertar justo al cerrar una posicinXXXXXXXXXKK E3it+nde3TBar+nde3 KKXXXXXXXXXXX 9digo a insertar al #inal del sistema de tradingXXXXXXXXXKK +, Barinde3TE3it+nde3M& "AE6 E3it+nde3T' +, PositionPer#$&% O ' "AE6 >rder!i7e T -AE$>rder!i7e Z &D &% EL!+, PositionPer#$&% PT ' "AE6 >rder!i7e T >rder!i7e M & E6/+, E6/+, KKXXXXXXXXXXXXXXXXXXXXXKK <E- El tama2o de la posicin debe de#inirse en #uncin de la variable >rder!i7e en el cdigo entero

63 K 43

#losario

#losario

CGDI#8 7s ccumDistr DC DC$ ND roonDoNn roon(p tan * % verage verage%rue$ange

*IN% CI* Abs$a% Accum/istr$price% A/EU6V A/E<U6V a A6/ b Aroon/oCnUPV Aroon)pUPV Atan$a% <E")<6 3 A! W<esult6ameW A" $price% AverageU6V$price% Average"rue<angeU6V$price%

=(NCIGN ,uncin matem(tica *1alor Absoluto* /esigna la Acumulacin /istribucin cl(sica +ndicador Average /irectional +nde3 +ndicador Average /irectional +nde3 <ate >perador lgico E" /esigna el Aroon /oCn /esigna el Aroon )p ,uncin matem(tica *Arctangente* +nstruccin utili7ada para atribuir un nombre a una curva /esigna la asociacin a un precio -edia -vil AritmGtica /esigna la -edia mvil con alisado de \ilder del "rue <ange

B
CGDI#8 BarInde! *IN% CI* Bar+nde3 =(NCIGN 6.mero de velas desde los primeros datos cargados $para un sistema de trading en el caso de ProBac;test o Pro+nvestD o en un gr(#ico en el caso de un indicador ProBuider%. 1er tambiGnH PreLoadBars. Anc:o de banda de Bollinger !oporte de la banda de Bollinger <esistencia de la banda de Bollinger +nstruccin de salida #or7ada de bucle ,>< o \A+LE +nstruccin apertura posicin a largo $compra%

BollingerBandTidtF BollingerDoNn Bollinger(p B$E ,

BollingerBand\idt:U6V$price% Bollinger/oCnU6V$price% Bollinger)pU6V$price% $,><.../>...B<EAL...6EE"% ou $\A+LE.../>...B<EAL...\E6/% B)N $n% !AA<E!

B()

6@ K 43

#losario

C
CGDI#8 C LL C PI% L C *+ CCI CFaikin8sc CFandle CFande,roll*top(p CFande,roll*topDoNn Close C8L8($ED C8* C8(N%8=L8N#*+ $E* C8(N%8=P8*I%I8N *IN% CI* my<esultT9ALL my,unction B)N 3Y 9AP+"AL B)N 3 9A!A 99+U6V$price% ou 99+U6V 9:ai;in>scU9:&D 9:2V$price% 9:andleU6V$price% 9:andeLroll!top)pUPpD 0?D EV 9:andeLroll!top/oCnUPpD 0?D EV 9loseU6V <E")<6 3 9>L>)<E/$<D=DB% 9>!$a% 9>)6">,L>6=!AA<E! 9>)6">,P>!+"+>6 =(NCIGN Llamada de #uncin del usuario Y del capital invertido en la posicin /esigna la cantidad en e#ectivo a invertir /a 9ommodity 9:annel +nde3 /esigna el oscilador de 9:ai;in /esigna el 9:ande -omentum >scillator !top de proteccin seg.n 9:ande y Lroll en posicin compradora !top de proteccin seg.n 9:ande y Lroll en posicin vendedora /esigna el precio de cierre de la vela actual o de n dIas previos 9olorea una curva de un cierto color seg.n la convencin <=B $slo indicadores% ,uncin 9oseno +ndica el n.mero de posiciones largas ?ue tiene actualmente abiertas en el mercado 9alcula el n.mero total de posiciones $a largo o a corto% ?ue tiene actualmente abiertas en el mercado +ndica el n.mero de posiciones de venta a corto actualmente abiertas en el mercado /esigna el n.mero de contratos a comprar. E?uivalente de *!:ares* >perador booleano ?ue veri#ica ?ue una curva pase por encima de otra >perador booleano ?ue veri#ica ?ue una curva pase por debajo de otra !umatorio de un precio desde el inicio del :istrico mostrado A estar con#igurado como #alsoD impide ?ue un cdigo re#uerce la posicin y estable7ca ?ue varias rdenes entren al mercado en la misma direccin /esigna el dIa actual /esigna la :ora actual /esigna el minuto actual /esigna el mes actual /esigna el segundo actual /esigna Aora-inuto actual /esigna el a2o actual 9onstante con#igurable en la ventana de propiedades al mostrar el gr(#ico $por de#ectoD cierre% indicador 9ycle $en precio%

C8(N%8=*+8$%*+ $E* 9>)6">,!A><"!AA<E! C8N%$ C% Crosses 8ver Crosses (nder C("*(" Cumulate8rders B)N & 9>6"<A9" a 9rosses >ver b a 9rosses )nder b 9)-!)-$price% /e#Param 9umulate>rdersT#alse 9urrent/ay>#\ee; 9urrentAour 9urrent-inute 9urrent-ont: 9urrent!econd 9urrent"ime 9urrentNear 9ustom9loseU6V

CurrentDa.86Teek Current+our Current"inute Current"ontF Current*econd Current%ime Current)ear CustomClose

C.cle

9ycle$price%

65 K 43

#losario

D
CGDI#8 Date Da. Da.s Da.86Teek Dclose DE=P $ " DE" DFigF DI DIminus Diplus DloN D8 Dopen D8TN%8 DP8 *IN% CI* /ateU6V /ayU6V /aysU6V /ay>#\ee;U6V /close$6% /E,PA<A/E-AU6V$price% /:ig:$6% /+U6V$price% /iminusU6V$price% /iplusU6V$price% /loC$6% 1oir ,>< et \A+LE /open$6% 1oir ,>< /P>U6V$price% =(NCIGN /esigna la #ec:a de cierre de la vela actual /Ia de cierre de la vela actual 9ontador de dIas desde & 4' /esigna el dIa de la semana durante el cual la vela actual se :a cerrado Precio de cierre del enGsimo dIa previo al de la vela actual Permite de#inir par(metros /oble -edia -vil E3ponencial Precio m(3imo del enGsimo dIa previo al de la vela actual /esigna el */emand +nde3* $+ndice de la /emanda% /esigna el /+Z /esigna el /+M Precio mInimo del enGsimo dIa previo al de la vela actual +nstruccin opcional de los bucles *,><* y \A+LE para introducir la accin de inicio de bucle Precio de apertura del enGsimo dIa previo al de la vela actual +nstruccin ?ue se aplica sobre el bucle *,><* para ordenar una lectura decreciente /esigna el */etrented Price >scillator*

E
CGDI#8 Ease86"ovement EL*E EL*EI= E"A ENDI= EndPoint verage ECI%*+8$% E!p E!ponential verage *IN% CI* Ease>#-ovementU+V 1oir +,K"AE6KEL!EKE6/+, 1oir +,K"AE6KEL!EKE6/+, E-1U6V 1oir +,K"AE6KEL!EKE6/+, EndPointAverageU6V$price% EE+"!A><" 3 !AA<E! E3p$a% E3ponentialAverageU6V$price% =(NCIGN /esigna el indicador *Ease o# -ovement* +nstruccin de llamada de la segunda condicin a de#ecto de la primera salida de *+,* 9ontraccin de *EL!E +,* /esigna el indicador *Ease o# -ovement 1alue* +nstruccin a introducir al #inal del conjunto de instrucciones condicionales )ltimo punto de -edia -vil 9ierra una posicin a corto K a descubierto ,uncin matem(tica *E3ponencial* -edia -vil E3ponencial

66 K 43

#losario

=O#
CGDI#8 =8$K%8KNEC% *IN% CI* ,>< iTn "> p /> 6EE" ,>< iTp />\6"> n /> 6EE" =lat 6ter /e#Param ,latA#ter T AA--!! =(NCIGN Bucle con i ?ue varIa de de n a p $nOp% o de p an 9ierra posicionesD anula las rdenes pendientes y evita el lan7amiento de nuevas rdenes tras el momento del dIa estipulado $en :orasD minutos y segundos% 9ierra posicionesD anula las rdenes pendientes y evita el lan7amiento de nuevas rdenes antes del momento del dIa estipulado $en :orasD minutos y segundos% +ndicador *,orce +nde3*D ?ue determina ?uiGn controla el mercado $vendedorD comprador%

=latBe6ore

/e#param ,latBe#ore T AA--!!

=orceInde!

,orce+nde3$price%

+
CGDI#8 +igF +igFest +istoricAolatilit. +our *IN% CI* Aig:U6V Aig:estU6V$price% Aistoric1olatilityU6V$price% AourU6V =(NCIGN /esigna el m(3imo alcan7ado en la vela actual o durante las n velas anteriores /esigna el m(3imo de un perIodo sur un :ori7onte temporal dado /esigna la volatilidad :istrica $o volatilidad estadIstica% /esigna la :ora de cierre de cada vela del :istrico

IOUO,
CGDI#8 I=K%+ENKENDI= I=K%+ENKEL*EKENDI= Intrada.BarInde! *IN% CI* +, a "AE6 b E6/+, +, a "AE6 b EL!E c E6/+, +ntradayBar+nde3U6V =(NCIGN 9onjunto de instrucciones condicionales sin segunda condicin 9onjunto de instrucciones condicionales 9uenta el n.mero de velas en el gr(#ico intradiario

64 K 43

#losario

L
CGDI#8 LI"I% Linear$egression Linear$egression*lope Log L8N#8N" $,E% LoN LoNest Loss ;L8** <L8** Lot *IN% CI* B)N A" 3 L+-+" Linear<egressionU6V$price% Linear<egression!lopeU6V $price% Log$a% L>6=>6-A<LE" LoCU6V LoCestU6V$price% !E" !">P L>!! 3 !E" !">P YL>!! 3 !E" !">P RL>!! 3 B)N & L>" =(NCIGN =enera orden LImite "ra7ado de regresin linear Pendiente de la regresin linear ,uncin matem(tica *logaritmo neperiano* +ndica si tiene actualmente posiciones abiertas de 9>-P<A $largas% en el mercado /esigna el mInimo alcan7ado durante el perIodo /esigna el mInimo de un perIodo dentro de un :ori7onte temporal dado Permite #ijar un stop loss a 3 unidades del nivel de precio Establece un stop loss a 3Y del precio de entrada de la posicin Establece un stop loss a 3 Q o R $en la divisa del instrumento% /esigna el n.mero de lotes ?ue se van a comprar $e?uivale a *!AA<E*%

"
CGDI#8 " CD " CDline " $,E% "assInde! "a! "edianPrice "in "inute "od "omentum "one.=loN "one.=loNInde! "ontF *IN% CI* -A9/U!DLD!iV$price% -A9/LineU!DLD!iV$price% B)N A" -A<LE" -ass+nde3U6V -a3$aDb% -edianPrice -in$aDb% -inute a -od b -omentumU+V -oney,loCU6V$price% -oney,loC+nde3U6V -ont:U6V =(NCIGN /esigna al *-oving Average 9onvergence /ivergence $-A9/%* en :istograma /esigna la lInea del -A9/ =enera orden a precio de mercadoD ?ue ser( ejecutada a la apertura de la vela siguiente +ndicador *-ass +nde3* aplicado en 6 velas ,uncin matem(tica *-(3imo* -edia del precio m(3imo y del mInimo ,uncin matem(tica *-Inimo* /esigna el minuto del instante del cierre de cada vela del :istrico ,uncin matem(tica *<esto del cociente euclIdeo* de a por b* /esigna el -omentum $precio de cierre actual8 precio de cierre de la enGsima vela precedente% /esigna el *-oney,loC entre Z& y &* /esigna el *-oney,loC+nde3* /esigna el mes de cierre de cada vela del :istrico

65 K 43

#losario

N
CGDI#8 NEC% Ne!tBar8pen NoCasF(pdate N8% *IN% CI* 1er ,><K">K6EE" A" -A<LE" 6e3tBar>pen /E,PA<A6o9as:)pdateTtrueK#alse 6>" a =(NCIGN +nstruccin a introducir al #inal del bucle *Para* $,><% >rden a ejecutar en apertura de la vela siguiente Permite no actuali7ar el capital con las gananciasKpGrdidas $slo Bac;test% >perador lgico 6>

8
CGDI#8 8BA 8NCE 8N" $,E% 8pen 8$ *IN% CI* >B1$price% >69E 1ariable6ame T 1ariable1alue >6-A<LE" >penU6V a >< b =(NCIGN /esigna el *>nZBalanceZ1olume* +nstruccin ?ue precede a otra ?ue deseamos ejecutar una sola ve7 +ndica si tiene actualmente posiciones abiertas en el mercado /esigna el precio de apertura de la vela actual o la de n dIas previos >perador lgico *>*

PO5
CGDI#8 PipAalue Pip*iEe PointAalue Point*iEe PositionPer6 PositionPrice PreLoadBars *IN% CI* Pip1alue Pip!i7e Point1alue Point!i7e PositionPer#$n% PositionPrice /e#Param PreLoadBars T 2'' =(NCIGN 1alor en QKR de un pip $o punto%H Pip1alueTPointvalue "ama2o de un $o punto%H Pip!i7eTPoint!i7e 1alor en QKR de un pip $o punto%D Pip1alueTPointvalue "ama2o de un $o punto%H Pip!i7eTPoint!i7e +ndica el porcentaje de ganancias o pGrdidas de la enGsima posicin li?uidada +ndica el precio medio de la posicin actual Establece la cantidad m(3ima de velas ?ue puedan cargarse de antemano para el c(lculo de los indicadores utili7ados en el sistema autom(tico. +ndicador *Percentage Price oscillator* /esigna el indicador *Positive 1olume +nde3* /esigna el indicador *Price 1olume "rend* +nstruccin para detener un sistema de trading

Price8scillator PositiveAolumeInde! PA% 5(I%

Price>scillatorU!DLV$price% Price1olume+nde3$price% P1"$price% 0)+"

6 K 43

#losario

$
CGDI#8 $L $ange $E" $epulse $E%($N $8C $*I $ound $8(NDED(P $8(NDEDD8TN *IN% CI* <2U6V$price% <angeU6V <E- comment <epulseU6V$price% <E")<6 <esult <>9U6V$price% <!+U6V$price% <ound$a% <>)6/E/)P <>)6/E//>\6 =(NCIGN /esigna el coe#iciente < 9uadrado $error de precios en la regresin linear% /evuelve el *<ange* $rangoD di#erencia entre el precio m(3imo y mInimo de la vela actual% Precede un comentario $el cdigo no lo toma en cuentaD pero #acilitan la lectura al usuario% /evuelve el indicador *<epulse* $mide la #uer7a alcista y bajista de cada vela% +nstruccin ?ue envIa el resultado $slo indicadores% /esigna el *Price <ate o# 9:ange* /esigna el oscilador *<elative !trengt: +nde3* ,uncin matem(tica *<edondeo a la unidad* $parte entera% <edondea las cantidades :acia la unidad superior <edondea las cantidades :acia la unidad superior

*
CGDI#8 * $ * $atdm6 *ELL *ELL*+8$% *E% *E% *%8P *E% LI"I% *E% % $#E% *+ $E* *+8$%8N" $,E% *in *gn *"I *mootFed*tocFastic *IN% CI* !A<UAtD!tDLimV !A<atdm#UAtD!tDLimV$price% !ELL $n% !AA<E! !ELL!A><" $n% !AA<E! !E" !E" !">P $3% !E" L+-+" $3% !E" "A<=E" P<>,+" E B)N $n% !AA<E! !A><">6-A<LE" !in$a% !gn$a% !-+U6D!!D/!V$price% !moot:ed!toc:asticU6DLV $price% =(NCIGN /esigna el Parablico !A< /esigna el Parablico !A< en el mdulo A"/-, 9ierre de posicin a largo $venta% Apertura de posicin a corto K a descubierto Permite generar una orden stop o limite ,ija un stop a un precio 3 ,ija una orden lImite a un precio 3 Establece un objetivo a un precio 3 /esigna la cantidad de valores en una compra +ndica si tiene actualmente posiciones abiertas de venta a descubierto en el mercado ,uncin matem(tica *!eno* ,uncin matem(tica *!igno de* /esigna el Indice *Estoc(stico -omentum* $!toc:astic -omentum +nde3% /esigna un estoc(stico alisado

4' K 43

#losario

*Iuare *Irt *%D *%E *tocFastic *%8P *ummation *uper%rend

!?uare$a% !?rt$a% !"/U6V$price% !"EU6V$price% !toc:asticU6DLV$price% A" $pri3% !">P !ummationU6V$price% !uper"rendU!",D6V

,uncin matem(tica *9uadradoW $potencia 2%* ,uncin matem(tica *<aI7 cuadrada* ,uncin estadIstica */esviacin "Ipica* ,uncin estadIstica *Error tIpico* LInea YL del Estoc(stico /esigna una orden a nivel de ejecucin !uma de un cierto precio de las 6 .ltimas velas /esigna el *!uper "rend*

%
CGDI#8 %an %arget %E" %+EN %icksiEe %ime %ime*eries verage %8 %oda. %omorroN8pen %otalPrice %$ %radeInde! %radePrice %railing ;%$ ILIN# <%$ ILIN# %riangular verage %$IC %.picalPrice *IN% CI* "an$a% !E" "A<=E" P<>,+" 3 "E-AU6V$price% 1oir +,K"AE6KEL!EKE6/+, "ic;si7e "imeU6V "ime!eriesAverageU6V$price% 1oir ,><K">K6EE" "oday A" $pri3% "omorroC>pen "otalPriceU6V "<$price% E6"<N+6/EE$n% "radePrice$n% !E" !">P "<A+L+6= 3 !E" !">P Y"<A+L+6= 3 !E" !">P R"<A+L+6= 3 "riangularAverageU6V$price% "<+EU6V$price% "ypicalPriceU6V =(NCIGN ,uncin matem(tica *"angente* Permite #ijar un objetivo $target% a un precio 3 -edia -vil E3ponencial "riple +nstruccin ?ue sigue la primera condicin del conjunto condicional *+,* >#rece el *tic;si7e* del instrumento $variacin de precio mInima posible% >#rece la :ora en #ormato AA--!! -edia -vil de las series temporales +nstruccin *:asta* en el bucle *Para* $,><% ,ec:a actual en #ormato NNNN--// >rden ejecutada a la apertura del dIa siguiente $cierre M apertura M m(3imo M mInimo% K @ /esigna el *"rue <ange* +ndica el Indice de la vela en la ?ue se ejecut la enGsima .ltima orden +ndica el nivel de precio en el ?ue se ejecut la enGsima .ltima orden Permite #ijar un stop din(mico a 3 unidades del precio de entrada de la posicin Permite #ijar un stop din(mico a 3Y del precio de entrada de la posicin Permite #ijar un stop din(mico a 3 QD R $en la divisa del instrumento% -edia -vil "riangular "riple -edia -vil E3ponencial /esigna el precio "Ipico $-edia de m(3imoD mInimo y cierre%

4& K 43

#losario

(
CGDI#8 (nde6ined *IN% CI* a T )nde#ined =(NCIGN Permite dejar una variable inde#inida $es un tipo de variable%

A
CGDI#8 Aariation Aolatilit. Aolume Aolume8scillator Aolume$8C *IN% CI* 1ariation$price% 1olatilityU!D LV 1olumeU6V 1olume>scillatorU!DLV 1olume<>9U6V =(NCIGN /a la di#erencia entre el cierre de la vIspera y el cierre actual en Y /esigna la volatilidad de 9:ai;in /esigna el volumen /esigna el oscilador de volumen /esigna el volumen del *<ate ># 9:ange* $<>9%

T
CGDI#8 TeigFted verage TeigFtedClose TEND T+ILEKD8KTEND Tilder verage Tilliams Tilliams ccumDistr *IN% CI* \eig:tedAverageU6V$price% \eig:ted9loseU6V 1oir \A+LEK/>K\E6/ \A+LE $condition% /> $action% \E6/ \ilderAverageU6V$price% \illiamsU6V$close% \illiamsAccum/istr$price% =(NCIGN /esigna la -edia -vil Ponderada -edia ponderada entre el precio de cierreD m(3imo y mInimo. +nstruccin a introducir al #inal del bucle *\:ileK /oK\:end* $mientras% Bucle *-ientras* /a la -edia -vil de \ilder 9alcula el *Y< de \illiams* +ndicador *AcumulacinK/istribucin de \illiams*

C
CGDI#8 C8$ *IN% CI* a E>< b =(NCIGN >perador lgico e3clusivo *>*

42 K 43

#losario

)
CGDI#8 )ear )esterda. *IN% CI* NearU6V NesterdayU6V =(NCIGN /a el a2o en #ormato NNNN /a el dIa anterior en #ormato NNN--//

R
CGDI#8 RigRag RigRagPoint *IN% CI* BigBagUBrV$price% BigBagPointUBpV$price% =(NCIGN /esigna los *BigZBag* de la teorIa de las ondas de Eliott /esigna los *BigZBag* de la teorIa de las ondas de Eliott calculadas a Bp puntos

8peradores
CGDI#8 > O V K J 9: 9 : 9J :J KK =(NCIGN >perador de suma >perador de sustraccin >perador de multiplicacin >perador de divisin >perador de igualdad >perador de di#erencia >perador de in#erioridad estricta >perador de superioridad estricta >perador de in#erioridad >perador de superioridad +ntroduce una lInea de comentario

43 K 43

CCC.prorealtime.com

Você também pode gostar