SUMARIO Presentación de ProBuilder__________ ProBuilder___________________________ ________________________ _____________ ____________ ______ Capítulo I: Principios fundamentales_______________________________________ Utilizar ProBuilder........................................... ......................................... ...................................... ....... 2 Tutorial rápido para la creación de un indicador.............................................................................2 Atajos de teclado en la ventana de programación.................... ................................... ............. ...... ............. ...... 5 Aspectos específicos de la programación en ProBuilder................................... ................................. .. .. !as constantes financieras ProBuilder................................................................................................." !as constantes de precio # volumen adaptadas a la unidad de tiempo del gráfico........................." $onstantes diarias del precio..........................................................................................................% $onstantes de tiempo.....................................................................................................................% $onstantes de precio....................................................................................................................&2 $onstante indefinida.....................................................................................................................&2 Uso de indicadores #a e'istentes.......................................................................................................&2 (ptimización de varia)les..................................................................................................................&*
Capítulo II: Funciones e instrucciones ProBuilder____________________________ +structuras de control.........................................................................................................................&5 ,nstrucción condicional ,-..............................................................................................................&5 Una condición un resultado /,- T0+1 +1,-3.........................................................................&5 Una condición dos resultados /,- T0+1 +!4+ +1,-3...........................................................&5 $ondiciones im)ricadas............................................................................................................&5 $ondiciones 6ltiples /,- T0+1 +!4+ +!4,- +1,-3.............................................................& Bucle iterativo -(7.......................................................................................................................&" Avance creciente /-(7 T( ( 1+8T3.............................. 1+8T3.............................. ........................................ ............ ...... ...... &" Avance decreciente /-(7 (91T( ( 1+8T3............................ 1+8T3............................ ..................................... ..&% .. &% Bucle condicional 90,!+..............................................................................................................&: B7+A;....................................................... ........................................ ..................................... ...... 2< $on 90,!+...............................................................................................................................2< $on -(7............................................ ......................................... ........................................ ...... 2< $(1T,1U+...................................................................................................................................2& $on 90,!+...............................................................................................................................2& $on -(7............................................ ......................................... ........................................ ...... 2& (1$+............................................... ......................................... ......................................... ........... 22 -unciones matemáticas......................................................................................................................2* -unciones comunes unarias # )inarias.........................................................................................2* (peradores matemáticos comunes..............................................................................................2* -unciones de comparaciones gráficas..........................................................................................2* -unciones sumatorias...................................................................................................................2= -unciones estadísticas..................................................................................................................2= (peradores lógicos............................................................................................................................2= ,nstrucciones ProBuilder.....................................................................................................................2= 7+TU71............................................... ......................................... ................................... ............ ....... ..... 25 7+ o >>................................... ......................................... ........................................ .................... ............. ....... 25 $ustom$lose.......................................... ......................................... ....................... ............. ....... ............. ......... .. 25 $A!!............................................ ......................................... ......................................... ............... .......... ..... 2 A4............................................ ......................................... ........................................ ................ .......... .......... .... 2 $(!(U7+................................................. ......................................... ...................................... .. 2
Capítulo III: Aplicaciones prcticas__________ prcticas___________________ _______________ ____________ ____________ _________ ___ $reación de un indicador )inario o ternario? lógica # m@todo.............................................................2% $rear indicadores 4T(P? siga sus posiciones en tiempo real............................................................2: 4T(P profit estático......................................................................................................................*< 4T(P loss estático........................................................................................................................*< 4T(P de inactividad.....................................................................................................................*& Trailing 4T(P................................................................................................................................*2
Capítulo I!: "#ercicios___________________________________________________ $onfiguraciones de velas japonesas..................................................................................................** ,ndicadores........................................ ......................................... ........................................ ................ .......... ...... *=
$losario____________________________ $losario__________ ___________________________________ ________________________________ _________________ __
Presentación de ProBuilder
Presentación de ProBuilder ProBuilder es el lenguaje de programación de Pro7ealTime. !e permite crear indicadores personalizados de análisis t@cnico estrategias # sistemas de trading /ProBacTest3 o escáneres de mercados /Pro4creener3. ProBacTest # Pro4creener tienen manuales de a#uda propios a causa de sus propias especificidades de programación. ProBuilder es un lenguaje de tipo BA4,$ mu# simple # a la vez e'austivo en cuanto a las posi)ilidades de programación Cue ofrece. $on @l podrá construir sus propios programas Cue utilizarán los precios de cualCuier valor Cue forme parte de la co)ertura de mercados de Pro7ealTime a partir de los siguientes elementos de )ase? el precio de apertura de cada vela? Open el precio de cierre de cada vela? Close el má'imo de cada vela? %i&' el mínimo de de cada vela? (o) la cantidad de títulos negociados? !olume !as velas candlestics o )arras son representaciones gráficas estandarizadas de cotizaciones reci)idas en tiempo real. Por supuesto Pro7ealTime le permite personalizar el estilo de representación gráfica más allá de las opciones descritas inclu#endo otras vistas como 7eno ;agi 0eiinDAsi. ProBuilder eval6a los datos de cada vela de precios por orden cronológico de la más antigua a la más reciente ejecutando la fórmula programada en el lenguaje para calcular el valor de los indicadores en cada vela. !os indicadores creados mediante ProBuilder pueden mostrarse superpuestos al gráfico de precios o en un gráfico individua ad#acente en función del tipo de escala empleado. +n este manual se familiarizará gradualmente con los comandos de programación de ProBuilder con una visión teórica clara acompaEada de ejemplos ilustrativos. Al final del manual encontrará un índice Cue le ofrece un listado glo)al de los comandos de ProBuilder indicadores #a codificados # otras funciones complementarias a lo Cue a#a aprendido durante la lectura. ACuellos lectores más acostum)rados a la programación pueden pasar directamente a la lectura del capítulo ,, o consultar el índice para allar rápidamente la e'plicación relativa a la función concreta Cue les pueda interesar. Para Cuien no est@ familiarizado con la programación sugerimos visualizar el vídeo titulado F Programe indicadores simples o dinámicosF # leer íntegramente este manual Cue emos diseEado para permitirle programar lo más rápidamente posi)le. G Buena lectura H
III.prorealtime.com
& > =*
Capítulo I: Principios fundamentales
Capítulo I: Principios fundamentales Utili*ar ProBuilder +utorial rpido para la creación de un indicador
+l acceso a la zona de programación de un indicador se realiza a trav@s del )otón F,ndicador>BactestJ situado acia la esCuina superior dereca de cualCuier ventana de gráfico de su plataforma Pro7ealTime.
esde aí podrá acceder a la ventana de gestión de indicadores donde podrá? visualizar un indicador predefinido de cada vela crear un indicador personalizado Cue podrá aplicar a cualCuier valor. +n este 6ltimo caso de)erá pulsar el )otón F$rear indicadorJ para acceder a la ventana de programación. +sta ventana le ofrece las siguientes posi)ilidades? programar directamente un indicador en la zona de te'to reservada al código utilizar el asistente F,nsertar funciónJ para a)rir una nueva ventana con una )i)lioteca de funciones clasificadas en siete categorías para utilizarlas directamente en su codificación.
III.prorealtime.com
2 > =*
Capítulo I: Principios fundamentales
Keamos el ejemplo del primer elemento típico de los indicadores ProBuilder? la función F R"+UR,J. +stá disponi)le en la sección L,nstrucciones ProBuilder L tal # como se muestra en la imagen a continuación.
III.prorealtime.com
* > =*
Capítulo I: Principios fundamentales
Para aEadir el comando en la zona de programación )astará con seleccionar F R"+UR,J # pulsar FAEadirJ. R"+UR, muestra el resultado del cálculo de su indicador
4upongamos Cue Cueremos programar un indicador Cue muestre el Kolumen. 4i #a emos insertado el comando R"+UR, )astará con ir nuevamente a F,nsertar funciónJ pulsar en F$onstantesJ /en la sección F$ategoríasJ # finalmente pulsar en F !olumeJ a la dereca en la sección F-unciones disponi)lesJ # FAEadirJ.
Antes de pulsar el )otón FKalidar programaJ es necesario dar un nom)re al indicador en el campo previsto a este efecto en la zona superior de la ventana. +n este ejemplo lo emos llamado FKolumenA8J. Tras esto pulse FKalidar programaJ # el indicador aparecerá en la ventana de gráfico.
III.prorealtime.com
= > =*
Capítulo I: Principios fundamentales
Ata#os de teclado en la -entana de pro&ramación
!a ventana de creación de sistemas de trading tiene varias funciones a las Cue se puede acceder mediante atajos de teclado en la versión &< de Pro7ealTime? 4eleccionarlo todo /$trl M A3? 4elecciona la integralidad del te'to en la ventana de programación $opiar /$trl M $3? $opia el te'to seleccionado Pegar /$trl M83? Pega el te'to copiado esacer /$trl M N3? esace la 6ltima acción realizada en la ventana de programación 7eacer /$trl M O3? 7eace la 6ltima acción realizada en la ventana de programación Buscar > 7emplazar /$trl M -3? Busca un te'to preciso en la ventana de programación > remplaza un te'to contenido en la ventana de programación /esta función es sensi)le a la diferencia entre min6sculas # ma#6sculas3 $omentar > escomentar /$trl M 73? $omenta el código seleccionado > escomenta el código seleccionado /el código comentado será introducido por L>>L o L7+L # se coloreará en gris. +sto comentario no será tomado en cuenta en la ejecución del código3. +n ac es posi)le utilizar estos mismos atajos de teclado utilizando la tecla LanzanaL en lugar de L$trlL. $asi todas estas funciones son accesi)les pulsando en el )otón dereco de su ratón en la zona de programación de la ventana de creación del sistema de trading. III.prorealtime.com
5 > =*
Capítulo I: Principios fundamentales
Aspectos específicos de la pro&ramación en ProBuilder Peculiaridades
A trav@s del lenguaje ProBuilder puede manipular gran cantidad de comandos mu# conocidos am@n de otras erramientas más complejas # específicas del análisis t@cnico. Podrá así programar todo tipo de indicadores del más sencillo al más sofisticado. +stos son los principios fundamentales del lenguaje ProBuilder? no es necesario declarar las -aria.les no es necesario teclear las -aria.les no se discriminan las ma/0sculas / min0sculas /aunCue sí a# una particularidad Cue se
descri)e más a)ajo3 se emplea el mismo sím)olo para representar los conceptos de afectación e i&ualdad matemtica Keamos cada punto en detalle? eclarar una varia)le 8 eCuivale a indicar su e'istencia de modo e'plícito. +n ProBuilder puede utilizar directamente 8 sin tener Cue definir previamente su e'istencia. Keamos un ejemplo para ilustrar la diferencia entre la programación clásica # ProBuilder? Programación clásica? 4ea la varia)le 8. 4e atri)u#e a 8 el valor 5 Programación ProBuilder? 4e atri)u#e a 8 el valor 5 /así 8 es implícitamente e'istente # vale 53 +n ProBuilder )astará con escri)ir? 85 Teclear una varia)le eCuivale a definir la naturaleza de la varia)le? puede ser un entero natural /p.ej.? *Q %Q 2&Q =*Q R3 un entero relativo /p.ej.? *Q *2Q D*"Q R3 un decimal /p.ej.? &"=5*5*=5*5R3 un )ooleano /K7A, -AU83R S +n ProBuilder puede escri)ir sus comandos tanto en ma#6sculas como en min6sculas. Por ejemplo el conjunto de los comandos ,- > T0+1 > +!4+ > +1,- podría escri)irse i- > t0e1 > +!se > e1di-. +'cepción? $uando utilice una varia)le será necesario respetar las ma#6sculas # min6sculas en el nom)re definido. Por ejemplo si escri)e?JvA7iaB!eJ # desea emplear dica varia)le en un código será necesario teclear FvA7iaB!eJ para referirse a dica varia)le. Atri)uir un valor a una varia)le eCuivale a darle un valor. Para comprender mejor este principio podemos considerar una varia)le como una caja vacía en la Cue metemos algo. +l esCuema siguiente le ilustra este principio con el valor Kolumen atri)uido a la varia)le 8?
1
!olume
()serve Cue esta frase se leería de dereca a izCuierda? el volumen se atri)u#e a 8. Para programar esto en lenguaje ProBuilder )astará con sustituir la fleca por un signo FJ?
1 2 !olume +ste sím)olo se utiliza de dos maneras distintas? para atri)uir una varia)le /como aca)amos de ver en el ejemplo3 como operador matemático )inario /&M & 2 eCuivale a 2 & M &3. III.prorealtime.com
> =*
Capítulo I: Principios fundamentales
(as constantes financieras ProBuilder
Antes de comenzar a codificar sus indicadores personales vamos a revisar los elementos )ásicos con los Cue construirá su código /precios de apertura # cierre volumen etc.3 +stas constantes son los FfundamentosJ del análisis t@cnico. ediante la com)inación de distintas constantes será posi)le resaltar ciertos aspectos de la información proporcionada por los mercados financieros. +ncontramos 5 categorías distintas? (as constantes de precio / -olumen adaptadas a la unidad de tiempo del &rfico
4on las constantes FclásicasJ las más frecuentes. Por defecto indican los valores de la vela actual /independientemente de la unidad de tiempo del gráfico3 # se presentan de esta manera?? Open : nivel de apertura de la vela actual %i&' : nivel má'imo de la vela actual (o) : nivel mínimo de la vela actual Close : nivel de cierre de la vela actual !olume : cantidad de valores o de contratos negociados en la vela actual
"#emplo: 7ango de la vela actual a = High b = Low MiRango = a - b RETURN MiRango
Para llamar a los valores de las velas precedentes )asta con aEadir entre corcetes la cifra referente a la vela considerada /n6mero de velas a partir de la actual3. Tomemos p.ej. la constante precio al cierre. La llamada del valor se hará de la siguiente manera: Valor del cierre de la vela actual:
Close
Valor del cierre de la vela que precede a la actual:
Close[1]
Valor del cierre de la enésima vela que precede a la actual:
Close [n]
+sta regla sirve para cualCuier constante. Por ejemplo el precio de apertura de la segunda vela Cue precede a la vela actual se utilizará la e'presión? (pen2. +l valor Cue aparezca dependerá del período mostrado en el gráfico.
III.prorealtime.com
" > =*
Capítulo I: Principios fundamentales
Constantes diarias del precio
$ontrariamente a las constantes adaptadas a la unidad de tiempo del gráfico las constantes diarias del precio se refieren a los valores del día independientemente del período mostrado en el gráfico. (tra diferencia respecto a las constantes adaptadas a la unidad de tiempo es Cue las constantes diarias utilizan par@ntesis / 3 para o)tener el valor so)re las velas anteriores. 3Open4n5 : precio de apertura del en@simo día anterior al de la vela actual 3%i&'4n5 : precio má'imo del en@simo día anterior al de la vela actual 3(o)4n5 : precio mínimo del en@simo día anterior al de la vela actual 3Close4n5 : precio de cierre del en@simo día anterior al de la vela actual
()servación? si FnJ es igual a < se recupera el valor del día actual. Keámoslo con un ejemplo mostrando el valor del día a continuación. "#emplo: 7ango diario a = DHigh(0) b = DLow(0) MiRango = a - b RETURN MiRango
Para las constantes adaptadas a la unidad de tiempo se utiliza el corcete? $lose* Para las constantes diarias se emplean los par@ntesis? close/*3
Constantes de tiempo
A veces sucede Cue la constante tiempo no reci)e muca atención en el análisis t@cnico. 4in em)argo los traders conocen )ien la importancia de los momentos claves del día o de ciertas fecas del aEo. Para poder limitar el análisis de un indicador a momentos específicos e'isten estas constantes? 3ate : -eca en formato OOOOVV Cue indica la feca de cierre de cada vela
!as constantes de tiempo se consideran enteros en ProBuilder. !a constante ate será así presentada como un 6nico n6mero de % dígitos. Keamos este $ódigo RETURN Date
4upongamos Cue o# estamos a = de Vulio del 2<<%. +l indicador conectará todas las fecas de cierre de las velas enviando el resultado 2<<%<"<=. Para leer una feca )astará con seguir esta regla? 2<<%<"<= 2<<% aEos <" meses # <= días. ()viamente en una feca con formato OOOOVV no puede ser superior a &2 # VV a la cifra *&.
III.prorealtime.com
% > =*
Capítulo I: Principios fundamentales
+ime : 0orainuto4egundo en formato 0044. ,ndica la ora de cierre de cada vela
+n el caso del $ódigo RETURN Time
()tendremos una curva Cue conecta las oras de cierre de cada vela?
Para leer una ora )astará con seguir esta regla? &<<<< & oras << minutos # << segundos. ()viamente al escri)ir una ora en formato 0044 00 no podrá ser superior al valor 2* no superará el valor 5: # 44 tampoco superará el valor 5:. +s posi)le com)inar +ime # 3ate en un mismo indicador para restringir el resultado a un momento concreto. +n el ejemplo mostrado a continuación vamos a limitar nuestro indicador al primero de (ctu)re del 2<<% a las :<< # &s. a = (Date = 20081001) b = (Time = 090001) RETURN (a AND b)
!as demás constantes tiempo funcionan de modo análogo? Minute : inuto de cierre de cada vela /entre < # 5:3 %our : 0ora de cierre de cada vela /entre < # 2*3 3a/ : ía del mes de cierre de cada vela /entre & # 2% o 2: o *< o *&3 Mont' : es de cierre de cada vela /entre & # &23 6ear : AEo de cierre de cada vela 3a/Of7ee8 : ía de la semana en el cierre de cada vela /sólo toma en cuenta los días
la)orales siendo &lunes 2martes *mi@rcoles =jueves 5viernes3 "#emplo: a = (Ho! " 1#0000) b = (Da$ = %0) RETURN (a AND b)
III.prorealtime.com
: > =*
Capítulo I: Principios fundamentales
Current%our : 0ora actual /del mercado3 CurrentMinute : inuto actual /del mercado3 CurrentMont' : es actual /del mercado3 CurrentSecond : 4egundo actual /del mercado3 Current+ime : 0orainuto4egundo actual /del mercado3 Current6ear : AEo actual /del mercado3 Current3a/Of7ee8 : ía de la semana actual /uso orario del mercado3 (a diferencia entre les constantes F$urrentJ reci@n mencionadas # las Cue no tienen F$urrentJ #
presentadas previamente reside precisamente en la noción FActualJ. !a imagen mostrada a continuación resalta esta diferencia aplicada a las constantes Current+ime # +ime. Para simplificar las constantes con F$urrentJ no toman en consideración el eje del tiempo # toman en cuenta 6nicamente el valor Cue se muestra en el cuadro )lanco.
+ime indica la ora de cierre de cada vela Current+ime indica la ora actual en el mercado
4i desea ajustar sus indicadores respecto a un contador /n6mero de días transcurridos cantidad de velas etcR3 las constantes 3a/s BarInde9 # Intrada/BarInde9 cumplen con este cometido. 3a/s : $ontador de días desde &:<<
+sta constante es 6til para conocer la cantidad de días transcurridos concretamente al tra)ajar en vistas cuantitativas como por ejemplo /'3tics o /'3vol6menes. Keamos un ejemplo en el Cue se muestra el paso de un día a otro en cotizaciones con una de las vistas mencionadas. RETURN Da$&
/Atención? no confundir con las constantes Wa#X # Wa#sX3 III.prorealtime.com
&< > =*
Capítulo I: Principios fundamentales
BarInde9 : $ontador de velas desde el inicio del istórico visi)le
+l contador comienza en la vela situada más a la izCuierda del istórico cargado # cuenta todas las velas asta llegar a la situada más a la dereca Yinclu#endo la vela actual Cue se está formando. !a primera vela visi)le /situada en el e'tremo izCuierdo del gráfico3 se considera la vela < /contrariamente al funcionamiento de las demás constantes3. BarInde9 se usa en la ma#or parte de los casos con la instrucción IF Cue se descri)e más adelante. Intrada/BarInde9 : $ontador de velas intradiarias
+l contador muestra la cantidad de velas generadas desde el inicio de la jornada )ursátil # se reinicializa a < a cada inicio de jornada. $omo en el caso precedente la primera vela visi)le se considera la vela n6mero < /contrariamente al funcionamiento de las demás constantes3. $omparemos las dos constantes creando dos indicadores separados? RETURN 'a!ne*
# RETURN nt!aa$'a!ne*
()servamos cómo en el caso del indicador ,ntrada#Bar,nde' el contador pasa a valer < en el inicio de cada jornada )ursátil. III.prorealtime.com
&& > =*
Capítulo I: Principios fundamentales
Constantes de precio
+stas constantes permiten o)tener una información más e'austiva respecto a Open %i&' (o) # Close #a Cue com)inan estas informaciones de manera Cue se puedan resaltar ciertos aspectos de la psicología del mercado resumidos en la vela actual. Ran&e : diferencia entre 0ig # !oI. +/picalPrice : media entre 0ig !oI # $lose 7ei&'tedClose : media ponderada de 0ig /peso &3 !oI /peso &3 # $lose /peso 23 MedianPrice : media entre 0ig # !oI +otalPrice : media entre (pen 0ig !oI # $lose
+l Ran&e resalta la volatilidad de la vela actual Cue refleja el nerviosismo de los inversores. !a 7ei&'tedClose insiste en la importancia del precio al cierre /cotización de referencia3 Cue se mantiene fija durante todo el día # separa dos velas consecutivas /siendo así a6n más importante en el caso de las velas diarias o semanales3. !as constantes +/picalPrice # +otalPrice reflejan mejor la psicología del mercado dentro de la vela actual #a Cue consideran respectivamente * # = niveles de precio alcanzados durante la jornada )ursátil. Bajo una perspectiva de ro)ustez MedianPrice permite e'plotar el plus de calidad e'plicativa Cue ofrecen las medianas respecto a las medias móviles prestándose así mejor a modelizaciones teóricas Cue tratan de comprender mejor la psicología del mercado. Ran&e en : M$Range = Range +a,,o = (M$Range . M$Range/1 - 1) 100 RETURN +a,,o
Constante indefinida
!a pala)ra clave Undefined permite instruir al indicador para Cue no muestre un resultado en ciertas varia)les. Por defecto toda varia)le no definida está a cero. Undefined : dato indefinido /eCuivalente a una casilla vacía o a 1U!!3
Podrá ver un ejemplo en este mismo manual Uso de indicadores /a e9istentes
0emos o)servado asta aora las posi)ilidades ofrecidas por ProBuilder en lo tocante a las constantes # a su comportamiento al acceder a velas pasadas. +ste comportamiento se aplica tam)i@n al funcionamiento de indicadores pree'istentes? a continuación veremos Cue los Cue Ud. programe seguirán el mismo principio. !os indicadores ProBuilder se componen de * elementos cu#a sinta'is es como sigue? ,om.re3eFunción ;calculado en n -elas< 4so.re tal precio o cual indicador5
$uando pulsamos el )otón F,nsertar funciónJ para )uscar una función ProBuilder se crean automáticamente valores por defecto para el período # para el argumento precio o indicador
A-era&e;=><4Close5 +s posi)le modificar estos valores por defecto seg6n nuestras preferencias? por ejemplo reemplazando el período de 2< velas definidas por defecto # fijándolo a &<< velas. Análogamente se puede modificar el argumento del precio o del indicador FcloseJ por otro valor como p.ej. Z 3Open4?5 Z?
A-era&e;=><43open4?55 III.prorealtime.com
&2 > =*
Capítulo I: Principios fundamentales
Keamos algunos ejemplos de comportamiento de indicadores pree'istentes? "ste pro&rama calcula la media mó-il e9ponencial so.re => -elas 4períodos5 aplicada al precio de cierre: RETURN E*onentia,A3e!age /20(+,o&e)
"ste otro pro&rama calcula una media mó-il ponderada so.re => -elas aplicada al precio estndar: mm = 4eighteA3e!age/20(T$ia,5!ie) RETURN mm
Clculo de una media mó-il alisada con el procedimiento de 7ilder so.re @>> -elas aplicada al !olumen: mm = 4i,e!A3e!age/100(6o,me) RETURN mm
Programamos a continuación un código para calcular el A$ /en istograma3 so)re el precio al cierre. !a línea del A$ se constru#e como la diferencia entre la media móvil e'ponencial so)re &2 períodos menso aCuella calculada so)re 2 períodos. A continuación se realiza un alisado con una media móvil e'ponencial a : períodos aplicada a la diferencia para o)tener la línea de 4eEal. +l A$ en istograma se crea así a partir de la diferencia entre la línea del A$ # la línea de 4eEal. REM +7,,o e ,a ,nea MA+D LineaMA+D = E*onentia,A3e!age /12(+,o&e) - E*onentia,A3e!age /2(+,o&e) REM +7,,o e ,a ,nea e :e;a, MA+D Linea:igna, = E*onentia,A3e!age /9(LineaMA+D) REM +7,,o e ,a i
Optimi*ación de -aria.les
Al crear un indicador se introduce un cierto n6mero de constantes. !a opción de optimización de varia)les /situada en la zona superior dereca3 permite atri)uir un valor por defecto a una constante indefinida para actuar posteriormente so)re el valor de la constante a partir de la interfaz de parámetros /propiedades3 del indicador. !a ventaja consiste en la posi)ilidad de poder alterar los parámetros del indicador sin necesidad de modificar el código. Por ejemplo en el cálculo de una media móvil de 2< períodos? RETURN A3e!age/20(+,o&e)
III.prorealtime.com
&* > =*
Capítulo I: Principios fundamentales
Para poder modificar el n6mero de períodos directamente desde la ventana de propiedades vamos a reemplazar el valor 2< por una varia)le FnJ? RETURN A3e!age/n(+,o&e)
A continuación pulsaremos en FAEadirJ en F(ptimización de varia)lesJ para Cue aparezca la ventana Fefinición de varia)leJ Cue vamos a rellenar así?
A continuación pulsamos F(;J. +n la ventana de Propiedades del indicador /llamada en este caso FPropiedades D i edia óvilJ3 o)tendremos así un nuevo parámetro Cue nos permitirá modificar el n6mero de períodos de la media móvil?
Aplicando este m@todo para crear m6ltiples varia)les será posi)le com)inar simultáneamente varios parámetros del indicador.
III.prorealtime.com
&= > =*
Capítulo II: Funciones e instrucciones ProBuilder
Capítulo II: Funciones e instrucciones ProBuilder "structuras de control Instrucción condicional IF
!a instrucción IF permite escoger acciones condicionadas permitiendo su)ordinar un resultado a la verificación de una o varias condiciones definidas previamente. !a estructura se compone de los elementos IF +%", "(S" "(SIF ",3IF Cue se com)inan en función de la complejidad de las condiciones Cue deseemos definir. Kamos a ver cómo utilizarla. Una condición un resultado 4IF +%", ",3IF5
4e puede )uscar una condición # definir una acción Cue tendrá lugar si la condición se cumple. 4i la condición no se cumple no a)rá acción /se o)tendrá el valor por defecto de <3. +n el siguiente ejemplo si el 6ltimo precio es superior a la de período 2< se o)tendrá el valor &. +,o&e " A3e!age/20(+,o&e) THEN 4, precio [ media móvil de 2< períodos +1T(1$+4 Re&,tao = 1 7esultado & END 4, 1( 7esultado < /por defecto3 -,1 + $(1,$,\1 RETURN Re&,tao (4T7A7 7esultado JR"+UR,J de)erá estar seguido de la varia)le de almacenamiento utilizada /en el ejemplo 7esultado3 para mostrar el resultado de la condición Una condición dos resultados 4IF +%", "(S" ",3IF5
Tam)i@n podemos definir un resultado distinto del definido por defecto en caso de Cue la condición no se cumpla. 7etomando el ejemplo previo? si el 6ltimo precio es superior a la de 2< períodos se muestra el valor &. +n caso contrario se muestra el valor D&. +,o&e " A3e!age/20(+,o&e) THEN Re&,tao = 1 EL:E Re&,tao = -1 END RETURN Re&,t
ota: !ca"amos de crear un indicador "inario. #ara más detalles al respecto$ ver la ver la secci%n & Creaci%n de un indicador "inario o ternario & de este mismo manual. Condiciones im.ricadas
4e pueden crear su)condiciones aplica)les tras la verificación de una condición principal. +so implica condiciones Cue de)erán verificarse secuencialmente /una tras otra3 en orden de aparición. Para ello )asta con im)ricar las condiciones IF recordando insertar tantos ",3IF como IF. Keámoslo en este ejemplo? $ondiciones do)les en medias móviles? (A3e!age/12(+,o&e) - A3e!age/20(+,o&e) " 0) THEN E*onentia,A3e!age /12(+,o&e) - E*onentia,A3e!age /20(+,o&e) " 0 THEN Re&,tao = 1 EL:E Re&,tao = -1 END END RETURN Re&,tao
III.prorealtime.com
&5 > =*
Capítulo II: Funciones e instrucciones ProBuilder
Condiciones M0ltiples 4IF +%", "(S" "(SIF ",3IF5
Pueden definirse varios resultados estando cada uno de ellos asociado a una condición específica. +l indicador devolverá varios estados? si la $ondición & se cumple se activará la Acción &Q en cam)io si la $ondición 2 se cumple se activará la Acción 2 R # si no se cumple ninguna condición se activará la Acción n. 4intácticamente esta estructura emplea las instrucciones IF +%", "(SIF +%", .... "(S" ",3IF. O se escri)e de la siguiente manera? (+onii>n1) THEN
(Ai>n1)
EL: (+onii>n2) THEN
(Ai>n2)
EL: (+onii>n%) THEN
(Ai>n%)
??? ??? ??? EL:E (Ai>n n) END
AunCue la codificación es más compleja tam)i@n es posi)le reemplazar los "(SIF por "(S" IF. +n tal caso el )ucle de)erá terminar en tantos ",3IF como IF se a#an escrito. 4i desea im)ricar m6ltiples condiciones en su programa recomendamos utilizar "(SIF de preferencia a "(S" IF. "#emplo: detección de des)ordamientos alcistas # )ajistas
+ste indicador devolverá & si detecta un des)ordamiento alcistaQ D& si detecta un des)ordamiento )ajistaQ # < en los demás casos. .. De&!ii>n e n e&bo!amiento a,i&ta +onition1 = +,o&e/1 @ en/1 +onition2 = en @ +,o&e/ 1 +onition% = +,o&e " en/ 1 +onitionB = en @ +,o&e
.. De&!ii>n e n e&bo!amiento baCi&ta +onition = +,o&e/1 " en/1 +onition = +,o&e @ en +onition# = en " +,o&e/ 1 +onition8 = +,o&e @ en/ 1
+onition1 AND +onition2 AND +onition% AND +onitionB THEN a = 1 EL: +onition AND +onition AND +onition# AND +onition8 THEN a = -1 EL:E a = 0 END RETURN a
III.prorealtime.com
& > =*
Capítulo II: Funciones e instrucciones ProBuilder
"#emplo: 7esistencia pivot emars D+,o&e(1) " Den(1) THEN 5high = DHigh(1) (D+,o&e(1) - DLow(1)) . 2 5,ow = (D+,o&e(1) DLow(1)) . 2 EL: D+,o&e(1) @ Den(1) THEN 5high = (DHigh(1) D+,o&e(1)) . 2 5,ow = DLow(1) - (DHigh(1) - D+,o&e(1)) . 2 EL:E 5high = D+,o&e(1) (DHigh(1) - DLow(1)) . 2 5,ow = D+,o&e(1) - (DHigh(1) - DLow(1)) . 2 END RETURN 5high F 5,ow
"#emplo: Bar,nde'
+n el capítulo , de este manual a)íamos presentado BarInde9 como un contador del n6mero de velas /o de )arras3 desde el inicio del istórico visi)le. BarInde9 se utiliza a menudo asociado con IF. Por ejemplo si Cueremos verificar si nuestro gráfico contiene más de 2* velas escri)iremos? 'a!ne* @= 2% THEN a = 0 EL: 'a!ne* " 2% THEN a = 1 END RETURN a
Bucle iterati-o FOR
+l )ucle FOR se usa en una serie finita de elementos permitiendo llamarlos uno a uno. +stos elementos pueden llamarse en cualCuier orden siempre Cue la serie en sí misma est@ ordenada. !a estructura se compone de FOR +O 3O7,+O 3O ,"1+. +l uso de +O o de 3O7,+O varía en función de la llamada en orden creciente o decreciente de los elementos. +s importante su)ra#ar Cue el código situado entre el FOR # el 3O son los e'tremos del recorrido del intervalo. A-ance creciente 4FOR +O 3O ,"1+5 R (6a!iab,e = 6a,o!DeniioDe:e!ie ) T 6a,o!Deina,De:e!ie D
(Ai>n)
NEGT
"#emplo: alisado de la media móvil de &2 períodos /&23
Kamos a crear una varia)le de almacenamiento /7esultado3 Cue sumará una a una cada media móvil de períodos && &2 # &*. Re&,tao = 0 R 6a!iab,e = 11 T 1% D Re&,tao = A3e!age/6a!iab,e(+,o&e) Re&,tao NEGT REM +a,,emo& ,a meia e ,a& meia& m>3i,e& i3iieno Re&,tao o! % $ a,maenano e, !e&,tao en A3e!ageRe&,t? A3e!ageRe&,t = Re&,tao . % RETURN A3e!ageRe&,t
III.prorealtime.com
&" > =*
Capítulo II: Funciones e instrucciones ProBuilder
Keamos lo Cue sucede en cada paso? atemáticamente )uscamos allar la media de las medias móviles aritm@ticas de períodos && &2 # &*. !aria.le tomará sucesivamente los valores && &2 # &* 7esultado < Karia)le && 7esultado reci)e el valor del 7esultado p revio M && /<3 M && /< M &&3 +l programa pasa al valor siguiente del contador Karia)le &2 7esultado reci)e el valor del 7esultado previo M &2 /< M &&3 M &2 /< M && M &23 +l programa pasa al valor siguiente del contador Karia)le &* 7esultado reci)e el valor del 7esultado previo M &* /< M && M &23 M &* /< M && M &2 M &*3 +l valor &* es el 6ltimo valor del contador. 4e cierra el )ucle W FORX con la instrucción W,"1+X. 4e muestra el resultado +n este código Fvaria)leJ tomará inicialmente el primer valor de la serie a continuación tomará el valor siguiente /el precedente M &3 # así sucesivamente asta Cue Fvaria)leJ tome el valor del final de la serie. e este modo Cueda formado el )ucle. "#emplo: edia so)re las 6ltimas 2< velas de má'imos? 'a!ne* @ 20 THEN MMhigh = Une
4i no a# más de 2< períodos en el istórico entonces 4e atri)u#e a ig el valor por defecto FindefinidoJ 4i no Para los valores entre & # 2< 4e suman los 6ltimos 2< valores de má'imos
NEGT END
4e divide esta suma por 2< # se iguala a ig 4e muestra ig
MMhigh = :UMhigh . 20 RETURN MMhigh
A-ance decreciente 4FOR 3O7,+O 3O ,"1+5
+l avance decreciente se sirve en cam)io de las instrucciones? FOR 3O7,+O 3O ,"1+. 4e escri)e de esta manera? R (6a!iab,e = 6a,o!Deina,De:e!ie ) D4NT 6a,o!DeniioDe:e!ie D
(Ai>n)
NEGT
7etomando el ejemplo de la media móvil en las 6ltimas 2< velas de precios má'imos? $ompro)amos Cue invertimos los e'tremos del intervalo recorrido. 'a!ne* = 0 THEN MMhigh = Une
III.prorealtime.com
&% > =*
Capítulo II: Funciones e instrucciones ProBuilder
Bucle condicional 7%I("
+l )ucle 7%I(" aplica una acción siempre Cue una condición se mantenga válida. $ompro)aremos Cue este )ucle tiene mucos aspectos comunes con la instrucción condicional simple IF>+%",>",3IF. 4intácticamente esta estructura emplea las instrucciones 7%I(" 3O /opcional3 7",3 !a estructura se escri)e de esta manera? 4HLE (+onii>n) D (Ai>n 1) (Ai>n n) 4END
ostramos a continuación un ejemplo intuitivo? Re&,tao = 0 4HLE +,o&e " A3e!age/20(+,o&e) D Re&,tao = 1 4END RETURN Re&,tao
"#emplo: indicador Cue calcula el n6mero de períodos al alza consecutivos n!ea&e = (+,o&e " +,o&e/ 1) +ont = 0 4HLE n!ea&e/+ont D +ont = +ont 1 4END RETURN +ont
'"servaci%n general para la instrucci%n condicional
WHILE
(e modo análogo al caso de IF $ el programa no tratará el "ucle condicional escrito si la condici%n de validaci%n es desconocida.
Keámoslo en un ejemplo? +ont = 0 4HLE i @" 11 D i = i 1 +ont = +ont 1 4END RETURN +ont
!a instrucción 7%I(" no conoce el valor de origen de i. Por ello no puede verificar si se confirma Cue i es efectivamente igual a &<. +l )ucle utilizará sus recursos para definir la varia)le i # atri)uirle el valor < por defecto. e este modo F$ountJ no será procesado cada vez Cue el valor de retorno sea <. +l código correcto sería? i = 0 +ont = 0 4HLE i @" 11 D i = i 1 +ont = +ont 1 4END RETURN +ont
+n este código i está inicializada correctamente. +l )ucle funcionará correctamente #a Cue la condición es válida. III.prorealtime.com
&: > =*
Capítulo II: Funciones e instrucciones ProBuilder
BR"A
!a instrucción BR"A permite acer una salida forzada de un )ucle 7%I(" o de un )ucle FOR. $a)e la posi)ilidad de crear com)inaciones con el comando IF tanto del )ucle 7%I(" como FOR. Con 7%I("
$uando Cueremos salir de un )ucle condicional 7%I(" sin esperar a encontrar una situación Cue desaga la condición de )ucle utilizamos BR"A siguiendo esta estructura? 4HLE (+onii>n) D
(Ai>n) 'REAI
4END
Tomemos por ejemplo un indicador Cue acumula períodos alcistas # )ajistas consecutivos? REM niao! e teneniaJ am,a e, nKme!o e &bia& $ baCaa& REM Amentamo& e 1 n ontao! iniia,iao a 0 en a&o e &bia (o -1 a!a na baCaa) :bia = (+,o&e - +,o&e/1) " 0 niato! = 0 i = 0 4HLE :bia/i D niato! = niato! 1 i = i 1 'REAI 4END RETURN niato!
+n este código si no u)i@semos utilizado BR"A el )ucle a)ría continuado # el resultado sería un indicador de tendencia Cue acumularía el n6mero de alzas consecutivas. Con FOR
$uando se )usca salir de un )ucle iterativo FOR sin llegar al 6ltimo /o al primer3 valor de la serie se utiliza BR"A estructurado de esta manera? R (6a!iab,e = 6a,o!Deina,De:e!ie ) T 6a,o!DeniioDe:e!ie D
(Ai>n) 'REAI
NEGT
Tomemos el ejemplo de un indicador Cue acumula las su)idas consecutivas del volumen de las 6ltimas &: velas. +ste indicador devolverá < si el volumen es )ajista. niato! = 0 R i = 0 T 19 D (6o,me/i " 6o,me/i 1) THEN niato! = niato! 1 EL:E
'REAI END
NEGT RETURN niato!
+n este ejemplo si no se u)iese utilizado BR"A el )ucle a)ría continuado asta llegar a &: /el 6ltimo elemento de la serie3 incluso si la condición de volumen no fuese válida. $on BR"A en cam)io en cuanto la condición deja de ser válida el programa devuelve el resultado # se vuelve a situar a <. III.prorealtime.com
2< > =*
Capítulo II: Funciones e instrucciones ProBuilder
CO,+I,U"
!a instrucción CO,+I,U" permite reemplazar la lectura del programa en la línea de inicio de un )ucle 7%I(" o FOR. 4uele com)inarse a menudo con BR"A para dar una orden de salida del )ucle /BR"A3 o para mantenerse en el )ucle /CO,+I,U"3. Con 7%I("
Kamos a crear un programa Cue acumula la cantidad de velas con un nivel de apertura # cierre inferiores a los del período inmediatamente previo. 4i la condición no se verifica el contador volverá a <. :bia = +,o&e " +,o&e/ 1 +ontao! = 0 4HLE en @ en/ 1 D :bia/+ontao! THEN +ontao! = +ontao! 1 +NTNUE
END
'REAI 4END RETURN +ontao!
A trav@s de CO,+I,U" # tras verificar Cue se cumple la condición del IF el programa no sale del )ucle 7%I(" pudiendo así acumular el n6mero de figuras Cue verifican esta condición. 4in la instrucción CO,+I,U" el programa saldría del )ucle independientemente de Cue la condición del IF se cumpla o no. +n tal caso no podríamos acumular la aparición de configuraciones # el resultado sería )inario /&<3. Con FOR
Kamos a crear un programa Cue acumule el n6mero de velas Cue tengan un cierre superior al de la inmediatamente anterior. 4i la condición no se cumple el contador volverá a <. :bia = +,o&e " +,o&e/ 1 +ontao! = 0 R i = 1 T 'a!ne* D :bia/+ontao! THEN +ontao! = +ontao! 1 +NTNUE
END
'REAI NEGT RETURN +ontao!
FOR permite compro)ar la condición en todo el istórico disponi)le. ediante CO,+I,U" cuando la condición del IF se cumple nos mantenemos en el )ucle FOR # continuamos con el
valor del i siguiente. +llo permite acumular las configuraciones Cue cumplen la condición. 4in la instrucción CO,+I,U" el programa saldría del )ucle independientemente de Cue la condición del IF se cumpla o no. 1o sería posi)le acumular las apariciones de las configuraciones )uscadas # el resultado sería )inario /&<3.
III.prorealtime.com
2& > =*
Capítulo II: Funciones e instrucciones ProBuilder
O,C"
!a instrucción O,C" permite ordenar a una varia)le Cue se d@ Funa SO(A !"J. +n todo programa el lenguaje de programación leerá el código tantas veces como velas a#a en el gráfico antes de devolver un resultado. Por ello se de)e tener siempre presente Cue O,C"? es procesado una sola # 6nica vez por el programa aunCue @ste realice relecturas durante su ejecución. cuando se produce la relectura del código por el lenguaje de programación @sta conservará los valores calculados durante la lectura previa. Para comprender .ien el funcionamiento de este comando es necesario tener una -isión clara de cómo el len&ua#e lee el códi&oD "sto se -e con claridad en el e#emplo si&uiente:
Tenemos aCuí dos programas Cue devuelven respectivamente los valores < # &5 donde la 6nica diferencia entre am)os es el comando O,C"? Pro&rama @
Pro&rama =
1
+ontao! = 0
1
N+E +ontao! = 0
2
i = 0
2
N+E i = 0
%
i @= THEN
%
i @= THEN
B
+ontao! = +ontao! i
B
+ontao! = +ontao! i
i = i 1
i = i 1
END
END
#
RETURN +ontao!
#
RETURN +ontao!
!eamos en detalle cómo el pro&rama lee los códi&osD Pro&rama @ :
el lenguaje lee !& /$ontador
el lenguaje lee !& /$ontador
III.prorealtime.com
22 > =*
Capítulo II: Funciones e instrucciones ProBuilder
Funciones matemticas Funciones comunes unarias / .inarias
+'aminemos aora las funciones matemáticas principales. ()serve Cue a # ) son ejemplos de argumentos decimales. Pueden reemplazarse por cualCuier otra varia)le en su programa. MI,/a )3 ? calcula el mínimo de a # de ) MA1/a )3 ? calcula el má'imo de a # de ) ROU,3/a3 ? calcula un redondeo a la unidad de a ABS/a3 ? calcula el valor a)soluto de a S$,/a3 ? indica el signo de a /& si positivo D& si negativo3 SEUAR"/a3 ? calcula el cuadrado de a SER+/a3 ? calcula la raíz cuadrada de a (O$/a3 ? calcula el logaritmo neperiano de a "1P/a3 ? calcula el e'ponencial /potencia3 de a COS/a3 ? calcula el coseno de a SI,/a3 ? calcula el seno de a +A,/a3 ? calcula la tangente de a A+A,/a3 ? calcula la arcotangente de a
Kamos a codificar un ejemplo? la le# matemática normal cu#o inter@s aCuí reside en Cue se utiliza tanto en el cálculo del cuadrado como de la raíz cuadrada o en el cálculo de la potencia e'ponencial? REM Le$ No!ma, a,iaa en * = 10F De&3iai>n Tiia = $ E&e!ana = 8 REM De
E&e!ana)
.
De&3iaionTiia))
.
RETURN niato!
Operadores matemticos comunes a . : a es estrictamente inferior a ) a 2 . o a 2 . : a es inferior o igual a ) a G . : a es estrictamente superior a ) a G2 . o a 2G . : a es superior o igual ] ) a 2 . : a es igual a ) /o a reci)e el valor )3 a G . : a es distinto de ) Funciones de comparaciones &rficas a CROSS"S O!"R . : a cruza ) al alza a CROSS"S U,3"R . : a cruza ) a la )aja
III.prorealtime.com
2* > =*
Capítulo II: Funciones e instrucciones ProBuilder
Funciones sumatorias cumsum : 0alla el sumatorio /suma acumulada3 de todas las velas del gráfico
!a sinta'is de uso de cumsum es ? m&m (!eio o iniao!)
summation : 0alla la suma so)re un n6mero de velas a definir
!a suma se calcula a partir de la vela más reciente /de dereca a izCuierda3 !a sinta'is de uso de summation es ? &mmation/antia e 3e,a& (!eio o iniao!)
Funciones estadísticas
!a sinta'is de uso de estas funciones es análoga a la de los indicadores # de la función 4ummation? ,owe&t/antia e 3e,a& (!eio o iniao!)
lo)est : da el valor mínimo en el período definido 'i&'est : da el valor má'imo en el período definido S+3 : da la desviación típica en un valor para un período definido S+" : da el error de desviación en un valor para un período definido
Operadores ló&icos
$omo en todo lenguaje informático es preciso disponer de operadores lógicos para crear indicadores pertinentes. Keamos a continuación los = operadores lógicos de ProBuilder? ,O+/a3 ? 1( lógico
a OR ) ? ( lógico a A,3 ) ? O lógico a 1OR ) ? ( e'clusivo Clculo del indicador de tendencia: On Balance !olume 4OB!5 : NT((+,o&e " +,o&e/ 1) R (+,o&e = +,o&e/1)) THEN Mi'6 = Mi'6 - 6o,me EL:E Mi'6 = Mi'6 6o,me END RETURN Mi'6
Instrucciones ProBuilder R"+UR, : devuelve el resultado CustomClose : envía un valor de precio configura)leQ por defecto envía F$loseJ CA(( : llama una función previamente creada por el usuario AS : nom)ra los distintos resultados mostrados CO(OUR"3 : aplica a la curva mostrada un color a definir
III.prorealtime.com
2= > =*
Capítulo II: Funciones e instrucciones ProBuilder
R"+UR,
Oa emos visto en el primer capítulo la importancia de la instrucción R"+UR,. Posee propiedades específicas Cue de)en conocerse para evitar ciertos errores de programación. Para utilizar correctamente R"+UR, en el codaje de un programa? de)e emplearse una sola # 6nica vez en la 6ltima línea de código puede usarse opcionalmente con otras funciones como A4 # $(!(U7+ para mostrar m6ltiples resultados escri)iremos 7+TU71 seguido de los resultados Cue deseamos mostrar # separados por comas /ejemplo? 7+TU71 a )3 R"M o HH R"M /Cue tam)i@n puede e'presarse como >>3 permite insertar comentarios en el código. +stos
comentarios le a#udarán a recordar el funcionamiento de la función programada. !os comentarios son leídos por el programa pero o)viamente no serán procesados por el código. Keamos un ejemplo para ilustrar el concepto con más claridad? REM E&te !og!ama a,,a ,a meia a!itmOtia e 20 e!oo& a, !eio e ie!!e RETURN A3e!age/20(+,o&e)
1o utilice 1U1$A caracteres especiales /ejemplos? @E^óR3 en ProBuilder ni siguiera dentro de un comentario R"M CustomClose CustomClose es una constante Cue permite mostrar las constantes Close Open %i&' (o) #
otros valores Cue pueden seleccionarse en la ventana de propiedades del indicador. !a sinta'is de uso es análoga a la de las constantes de precio Cue se adaptan a la vista del gráfico? +&tom+,o&e/n
Keamos un ejemplo sencillo? RETURN +&tom+,o&e/ 2
Al pulsar so)re el icono con forma de llave inglesa situado en el ángulo superior izCuierdo del gráfico compro)ará Cue es posi)le configurar los precios utilizados para el cálculo /en la zona resaltada en amarillo de la imagen Cue se muestra a continuación3
III.prorealtime.com
25 > =*
Capítulo II: Funciones e instrucciones ProBuilder
CA(( CA(( permite llamar a un indicador personalizado #a e'istente en la plataforma.
+l m@todo más rápido consiste en seleccionar directamente a partir de la categoría F,ndicadores personalesJ /en el )otón F,nsertar funciónJ al Cue se accede tras pulsar F1uevo ,ndicadorJ3 el indicador a utilizar. 4upongamos Cue a codificado con el nom)re 0istoA$ el indicador de A$ en istograma. 4eleccione el indicador en la lista # pulse FAEadirJ. +n la zona de programación aparecerá el $ódigo m$Hi&toMA+D = +ALL Hi&toMA+D
!a plataforma a nom)rado directamente el antiguo indicador personalizado F0istoA$J como Fm#0istoA$J. +sto significa Cue a efectos del resto del programa si desea utilizar este indicador antiguamente llamado 0istoA$ de)erá llamarlo con la denominación Fm#0istoA$J. AS
!a pala)ra clave AS nom)ra el resultado mostrado. +sta instrucción se utiliza conjuntamente con R"+UR, seg6n la siguiente estructura? RETURN Re&,tao1 A: PNomb!e +!3aPF Re&,tao2 A: PNomb!e +!3aPF
!a ventaja consiste en facilitar la identificación de los elementos Cue componen el indicador creado. "#emplo: a = E*onentia,A3e!age /200(+,o&e) b = 4eighteA3e!age/200(+,o&e) = A3e!age/200(+,o&e) RETURN a A: PMeia E*onenia,P F b A: PMeia 5one!aaP F A: PMeia A!itmOtiaP
CO(OUR"3 CO(OUR"3 se utiliza tras el comando R"+UR, para colorear la línea visi)le con un color definido
seg6n la norma 7_B /red green )lue3. A continuación indicamos los colores principales de esta norma? Color
!alor R$B 4ro#o -erde a*ul5
"spaol
/< < <3
negro
/255 255 2553
)lanco
/255 < <3
rojo
/< 255 <3
verde
/< < 2553
azul
/255 255 <3
amarillo
/< 255 2553
azul celeste
/255 < 2553
aEil
III.prorealtime.com
2 > =*
Capítulo II: Funciones e instrucciones ProBuilder
!a sinta'is de uso del comando $oloured es la siguiente? RETURN niato! +LURED(ReF Q!eenF ',e)
+l comando AS puede asociarse al comando CO(OUR"3 /r g )3 respetando el siguiente orden? RETURN niato! +LURED(ReF Q!eenF ',e) A: PNomb!e De Mi +!3aP
7etomando el ejemplo previo insertaremos CO(OUR"3 en la línea del FR"+UR,J. a = E*onentia,A3e!age /200(+,o&e) b = 4eighteA3e!age/200(+,o&e) = A3e!age/200(+,o&e) RETURN a +LURED(2F 0F 0) A: PMeia Mo3i, E*onenia,P F b +LURED(0F 2F 0) A: P4eighte Meia 5one!aaP F +LURED(0F 0F 2) A: PMeia Mo3i, :im,eP
!a imagen muestra la personalización de los colores en el gráfico resultante.
III.prorealtime.com
2" > =*
Capítulo III: Aplicaciones prcticas
Capítulo III: Aplicaciones prcticas Creación de un indicador .inario o ternario: ló&ica / mJtodo
Por definición un indicador )inario o ternario no puede devolver más de dos o tres resultados posi)les /generalmente < & o D&3 respectivamente. 4u utilidad principal en el ám)ito )ursátil consiste en permitir la verificación inmediata de la condición Cue constitu#e el indicador. Utilidad de un indicador .inario o ternario:
permite detectar las principales configuraciones de velas japonesas facilita la lectura del gráfico cuando se )uscan varias condiciones simultáneas permite crear alertas de una sola condición so)re un indicador Cue incorpora varias Gdispondrá así de una ma#or cantidad de alertasH detecta condiciones complejas tam)i@n so)re datos istóricos facilita la programación de un )actest /sistema o estrategia3 !os indicadores )inarios o ternarios se constru#en con a#uda de la función ,-. Por ello se recomienda releer la sección referente a esta función para aprovecar mejor las e'plicaciones ofrecidas a continuación. ,lustremos la creación de estos indicadores personalizados para detectar configuraciones de precios? Indicador .inario: detección de un Martillo .. Detei>n e n Ma!ti,,o Ma!ti,,o = +,o&e"en AND High = +,o&e AND (en-Low)"=%(+,o&e-en) Ma!ti,,o THEN Re&,tao = 1 EL:E Re&,tao = 0 END RETURN Re&,tao A: PMa!ti,,oP
Indicador ternario: detección de Cruces doradas / de Cruces mortales a = E*onentia,A3e!age/10(+,o&e) b = E*onentia,A3e!age/20(+,o&e) = 0 .. Detei>n e +! o!aa a +R::E: 6ER b THEN = 1 END .. Detei>n e +! mo!ta, a +R::E: UNDER b THEN = -1 END RETURN
III.prorealtime.com
2% > =*
Capítulo III: Aplicaciones prcticas
ota: )emos mostrado las medias m%viles e*ponenciales de 1+ , -+ perodos aplicadas al precio de cierre para evidenciar la correspondencia de los resultados del indicador con más nitide/. 0ncontrará otros ejemplos de indicadores de detecci%n de coniguraciones de precios en los ejercicios de este manual.
Crear indicadores S+OP: si&a sus posiciones en tiempo real
Pueden crearse indicadores Cue representen 4T(P /o lo Cue es lo mismo niveles de salida potencial3 definidos en función de parámetros personalizados. $on el módulo ProBacTest cu#a información puede consultarse en un manual independiente #a dispone de la posi)ilidad de definir los niveles de salida de un sistema o estrategia. 1o o)stante el inter@s de programar un indicador Cue sigue la cotización del valor reside en el eco Cue? permite visualizar el stop como una línea Cue se actualiza en tiempo real directamente so)re el gráfico del precio no necesita definir las órdenes de compra ni de venta /lo Cue sí es necesario en la programación de un ProBacTest3 puede asociar alertas en tiempo real /# reci)irlas en pantalla o en su móvil3 para ser informado inmediatamente en el momento en Cue la condición fijada se est@ cumpliendo !a programación de los 4top le permitirá aplicar los principales comandos presentados en los capítulos precedentes. Par ailleurs dans le manuel ProBacTest vous pourrez trouver plusieurs e'emples de stop ] ins@rer dans des strat@gies dLinvestissement. +'isten = tipologías de stop Cue e'aminaremos a continuación? S+OP profit esttico S+OP loss esttico S+OP de inacti-idad S+OP de se&uimiento 4trailin& stop5
!os códigos Cue se proponen en los ejemplos presentados a continuación constitu#en sugestiones para la construcción de indicadores de stop. ()viamente de)erá personalizarlos seg6n las instrucciones descritas en los capítulos anteriores. III.prorealtime.com
2: > =*
Capítulo III: Aplicaciones prcticas
S+OP profit esttico
Un 2T'# proit o Ta3e4#roit designa un límite superior de salida de posición. Por definición este límite es fijo? el inversor cerrará la posición con ganancias en el momento en Cue el precio cruce este límite de 4top. +l indicador Cue se presenta a continuación ofrece 2 niveles con toma de posición a partir del momento F0ora,nicioJ. si Ud. es comprador tiene una posición larga /long3. e)erá considerar la curva superior Cue representa el &<` de ganancia Yo lo Cue es lo mismo el &&<` el precio de compra. si Ud. es vendedor a descu)ierto tiene una posición corta /sort3. e)erá considerar la curva inferior Cue representa el &<` de ganancia Yo lo Cue es lo mismo el :<` del precio de venta a descu)ierto. Keamos a continuación un ejemplo de 4top profit personaliza)le? .. Den e 3a!iab,e& otimiaa&J .. Ho!aniio = 100000 (en e&te eCem,o n .. :i tiene na o&ii>n ,a!ga (,ong)F &egi!7 ,a !3a &e!io!? :i e&t7 en o&ii>n o!ta (&ho!t)F &egi!7 ,a !3a inn e, !eioF $ &e ti,ia a!a t!aa! e, :to !on e, !eioF $ &e ti,ia a!a t!aa! e, :to !o
S+OP loss esttico
Un 2T'# Loss es el contrario del 2T'# Ta3e4#roit Q en lugar de definir un límite de salida con ganancias se define un límite de p@rdida má'ima asumi)le a partir del cual se cierra la posición. Al igual Cue el Ta3e4#roit el límite es fijo /estático3. +l indicador Cue se presenta a continuación ofrece 2 niveles con toma de posición a partir del momento F0ora,nicioJ. si Ud. es comprador tiene una posición larga /long3. e)erá considerar la curva superior Cue representa el &<` de p@rdida Yo lo Cue es lo mismo el :<` el precio de compra si Ud. es vendedor a descu)ierto tiene una posición corta /sort3. e)erá considerar la curva inferior Cue representa el &<` de ganancia Yo lo Cue es lo mismo el &&<` del precio de venta a descu)ierto. Keamos a continuación un ejemplo de 4top profit personaliza)le? .. Den e 3a!iab,e& otimiaa&J .. Ho!aniio = 100000 (en e&te eCem,o n ,a!ga (,ong)F &egi!7 ,a !3a inn o!ta (&ho!t)F &egi!7 ,a !3a &e!io!? .. 5!eio= 5!eio en ,a ae!t!a e ,a o&ii>n .. Am,itU = 1?1 (!e!e&enta ,a 3a!iai>n e, !eioF $ &e ti,ia a!a t!aa! e, :to ,o&& en o&iione& o!ta& (&ho!t)) ..Am,itDown = 0?9 (!e!e&enta ,a 3a!iai>n e, t!aa! e, :to ,o&& en o&iione& ,a!ga& (,ong))
!eioF
$
&e
ti,ia
a!a
Time = Ho!aniio THEN :toLNQ = Am,itU 5!eio :to:HRT = Am,itDown 5!eio END RETURN :toLNQ +LURED(0F 0F 0) A: P:toLo&& 'U 10SP F :to:HRT +LURED(0F 2F 0) A: P:toLo&& :ELL 10SP
III.prorealtime.com
*< > =*
Capítulo III: Aplicaciones prcticas
S+OP de inacti-idad
Un 4T(P de inactividad cierra una posición cuando el precio se mueve en un rango demasiado estreco # el o)jetivo de )eneficio no se alcanza en un período determinado /e'presado en n6mero de velas3. +l cierre de la posición tendrá lugar en el rango inferior si la posición es larga /long3 o en el rango superior si la posición es corta /sort3. +l 4top mostrado a continuación es un indicador )inario Cue devolverá el valor & si el 4T(P se activa # el valor < en caso contrario. Keamos un primer ejemplo? .. Mi6o,ati,ia = &e!io! e in
0?01
e o!!e&one
a
,a
b!eha
!e,ati3a
e
,a& bana&
nt!aa$'a!ne* = 0 THEN bCeti3o:ho!t = ( 1 - Mi6o,ati,ia) +,o&e bCeti3oLong = ( 1 Mi6o,ati,ia) +,o&e END RETURN bCeti3o:ho!t A: PbCeti3o:ho!tPF bCeti3oLong A: PbCeti3oLongP
+jemplo de 4T(P de inactividad en gráfico intradiario? .. Den e 3a!iab,e& otimiaa&J REM La o&ii>n &e ab!e a !eio e me!ao .. Mi6o,ati,ia = 0?01 e o!!e&one a ,a b!eha !e,ati3a e ,a& bana& &e!io! e inn m7*ima en nme!o e 3e,a& e!mitia ante& e n (!e&,tao 1) Re&,tao = 0 +t = 0 nt!aa$'a!ne* = 0 THEN bCeti3o:ho!t = ( 1 - Mi6o,ati,ia) +,o&e bCeti3oLong = ( 1 Mi6o,ati,ia) +,o&e END R i = nt!aa$'a!ne* D4NT 1 D +,o&e/i "= bCeti3o:ho!t AND +,o&e/i @= bCeti3oLong THEN +t = +t 1 EL:E +t = 0 END +t = Nme!oDe6e,a& THEN Re&,tao = 1 END NEGT RETURN Re&,tao
III.prorealtime.com
*& > =*
Capítulo III: Aplicaciones prcticas
+railin& S+OP
Un Trailing 2T'# sigue de modo dinámico la evolución del precio indicando el momento en Cue la posición a de ser cerrada. Proponemos a continuación dos tipologías de Trailing 2T'# correspondientes a la versión dinámica del 4top !oss # del 4top Profit. +railin& S+OP (OSS 4aplica.le en intradía5 .. Den e 3a!iab,e& otimiaa&J .. Ho!aniio 09h00min00&)
=
090000
(en
e&te
eCem,o
,a
ho!a
e
ent!aa
a
,a&
,a
ho!a
e
ent!aa
a
,a&
REM La o&ii>n &e ab!e a !eio e me!ao .. Am,it = 0?9 (!e!e&enta n &to a, 10S) Time = Ho!aniio THEN ,owe&t/(+,o&e) @ 1?2 Low THEN ,owe&t/(+,o&e) "= +,o&e THEN +t = Am,it ,owe&t/(+,o&e) EL:E +t = Am,it ,owe&t/20(+,o&e) END
EL:E +t = Am,it ,owe&t/20(+,o&e) END
END RETURN +t A: PT!ai,ing :to Lo&&P
+railin& S+OP Profit 4aplica.le en intradía5 .. Den e 3a!iab,e& otimiaa&J .. Ho!aniio 09h00min00&)
=
090000
(en
e&te
eCem,o
REM La o&ii>n &e ab!e a !eio e me!ao .. Am,it = 1?1 (!e!e&enta n &to a, 110S) Time = Ho!aniio THEN 5!eioniio = +,o&e END 5!eio = 5!eioniio - A3e!ageT!eRange/10 T!ai,ing:to = Am,it highe&t/1(5!eio) RETURN T!ai,ing:to +LURED (2F 0F 0) A: PT!ai,ing tae !o
III.prorealtime.com
*2 > =*
Capítulo I!: "#ercicios
Capítulo I!: "#ercicios Confi&uraciones de -elas #aponesas $AP UP o $AP 3O7,
+n este tipo de configuraciones el color de las velas es irrelevante. efinimos la amplitud como varia)le optimizada de valor <.<<& +l gap se define con estas dos condiciones? la apertura del día actual es estrictamente superior al cierre de la víspera ( B,+1 estrictamente inferior a cierre de la vísperaQ el valor a)soluto resultante de calcular /apertura del día Y cierre víspera3 > cierre víspera es estrictamente superior a la amplitud. .. Den e 3a!iab,e otimiaa .. Am,it (e, Qa) Am,it = 0?001 .. 5!ime!a onii>n e e*i&tenia e, Qa en " +,o&e/ 1 R en @ +,o&e/ 1 THEN .. :egna onii>n e e*i&tenia e, Qa A':((en +,o&e/ 1) . +,o&e/1) " Am,it THEN .. 'K&ea e, Qa Deteto! = :QN(en +,o&e/1) EL:E Deteto! = 0 END EL:E Deteto! = 0 END .. Re&,tao RETURN Deteto! A: PQa eteionP
III.prorealtime.com
** > =*
Capítulo I!: "#ercicios
3o#i 4-ersión amplia5
+l oji se define como un rango estrictamente superior a 5 veces el valor a)soluto de /(pen Y $lose3.
DoCi = Range " A':(en - +,o&e) RETURN DoCi A: PDoCiP
3o#i 4-ersión estricta5
+n su versión estricta el oji se define por un $lose (pen.
DoCi = (en = +,o&e) RETURN DoCi A: PDoCiP
Indicadores BO36 MOM",+UM
!a definición matemática del Bod# omentum es así? Bod#omentum &<< Bod#Up > /Bod#Up M Bod#oIn3 Bod#Up es un contador del n6mero de velas Cue cierran a un nivel de precios superior al de la apertura durante un período definido /en el código de este ejemplo tomamos un período &=3. +l contador Bod#oIn es análogo en sentido inverso /cierre inferior a apertura3. 5e!ioo& = 1B b = +,o&e - en 'a!ne* " 5e!ioo& THEN ' = 0 'n = 0 R i = 1 T 5e!ioo& b/i " 0 THEN ' = ' 1 EL: b/i @ 0 THEN 'n = 'n 1 END NEGT 'M = (' . (' 'n)) 100 EL:E 'M = Une
III.prorealtime.com
*= > =*
Capítulo I!: "#ercicios
OSCI(A3OR 3" O,3AS "((IO+
+l oscilador de ondas +lliot representa la diferencia de medias móviles. !a media móvil corta representa la acción del precio mientras Cue la media móvil larga representa la tendencia de fondo. $uando los precios forman una onda * aumentarán fuertemente. +n consecuencia el valor del oscilador aumentará sensi)lemente. Al llegar a una onda 5 los precios aumentarán más lentamente # el oscilador tomará un valor muco menos elevado. RETURN A3e!age/(Meian5!ie ) - A3e!age/%(Meian5!ie) A: P&i,ao! na& E,,iotP
7illiams R
4u funcionamiento es similar al de un estocástico. Para trazarlo se definen primero dos curvas. +l `7 Cueda así definido por /$lose Y !oIest! 3 > /0igest0 Y !oIest! 3 &<< Highe&tH = highe&t/1B(High) Lowe&tL = ,owe&t/1B(Low) Mi4i,,iam& = ( +,o&e - Lowe&tL) . (Highe&tH - Lowe&tL) 100 RETURN Mi4i,,iam& A: P4i,,iam& SRP
Bandas de Bollin&er
!as )andas se componen de una media móvil de 2< períodos Cue se aplica al cierre. !a media móvil se multiplica por el do)le de la desviación típica so)re las 2< velas previas del precio al cierre para limitar las )andas superior e inferior. a = A3e!age/20(+,o&e) .. De
III.prorealtime.com
*5 > =*
$losario
$losario A Códi&o
Implementación
Función
A':
AB4/a3
-unción matemática ZKalor A)solutoZ
AmDi&t!
Accumistr/price3
esigna la Acumulación istri)ución clásica
ADG
A81
,ndicador Average irecciónal ,nde'
ADGR
A871
,ndicador Average irecciónal ,nde' 7ate
a A1 )
(perador lógico O
A!oonDown
AroonoInP
esigna el Aroon oIn
A!oonU
AroonUpP
esigna el Aroon Up
ATAN
ATA1/a3
-unción matemática ZArctangenteZ
7+TU71 7esult A4 Z7esult1ameZ
,nstrucción utilizada para atri)uír un nom)re a una curva
A3e!age
Average1/price3
edia óvil Aritm@tica
A3e!ageT!eRange
AverageTrue7ange1/price3
esigna la edia móvil con alisado de 9ilder del True 7ange
AND
A:
B Códi&o
Implementación
Función
'a!ne*
Bar,nde'
16mero de velas desde el incio de la descarga de datos /en el gráfico en el caso de un indicador ProBuilder o para un sistema de trading en el caso de ProBactest o Pro,nvest3
'o,,inge!'an4ith
BollingerBand9idt1/price3
Anco de )anda de Bollinger
'o,,inge!Down
BollingeroIn1/price3
4oporte de la )anda de Bollinger
'o,,inge!U
BollingerUp1/price3
7esistencia de la )anda de Bollinger
'REAI
/-(7...(...B7+A;...1+8T3 ,nstrucción de salida forzada de )ucle -(7 o o 90,!+ /90,!+...(...B7+A;...9+13
III.prorealtime.com
* > =*
$losario
C Códi&o
Implementación
Función
+ALL
m#7esult $A!! m#-unction !lamada de función del usuario
++
$$,1/price3 o $$,1 aplicado por defecto en T#picalPrice
$ommodit# $annel ,nde'
+haiin&
$aiin(sc$& $2/price3
esigna el oscilador de $aiin
+han,e
$andle1/price3
esigna el $ande omentum (scillator
+haneI!o,,:toU
$ande;roll4topUpPp bC 8
4top de protección seg6n $ande # ;roll en posición compradora
+haneI!o,,:toDown
$ande;roll4topoInPp bC 8
4top de protección seg6n $ande # ;roll en posición vendedora
+,o&e
$lose1
esigna el precio de cierre de la vela actual o de n días previos
+LURED
7+TU71 7esult $(!(U7+/7_B3
$olorea una curva de un cierto color seg6n la convención 7_B
+:
$(4/a3
-unción $oseno
+R::E: 6ER
a $7(44+4 (K+7 )
(perador )ooleano Cue verifica Cue una curva pase por encima de otra
+R::E: UNDER
a $7(44+4 U1+7 )
(perador )ooleano Cue verifica Cue una curva pase por de)ajo de otra
m&m
cumsum/price3
4umatorio de un precio desde el inicio del istórico mostrado
+!!entDa$<4ee
$urrenta#(f9ee
esigna el día actual
+!!entHo!
$urrent0our
esigna la ora actual
+!!entMinte
$urrentinute
esigna el minuto actual
+!!entMonth
$urrentont
esigna el mes actual
+!!ent:eon
$urrent4econd
esigna el segundo actual
+!!entTime
$urrentTime
esigna 0orainuto actual
+!!entea!
$urrentOear
esigna el aEo actual
+&tom+,o&e
$ustom$lose1
$onstante configura)le en la ventana de propiedades al mostrar el gráfico /por defecto cierre3
+$,e
$#cle/price3
,ndicador $iclo /en precio3
III.prorealtime.com
*" > =*
$losario
3 Códi&o
Implementación
Función
Date
ate1
esigna la feca de cierre de la vela actual
Da$
a#1
ía de cierre de la vela actual
Da$&
a#s1
$ontador de días desde &:<<
Da$<4ee
a#(f9ee1
esigna el día de la semana durante el cual la vela actual se a cerrado
D+,o&e
$lose/13
Precio de cierre del en@simo día previo al de la vela actual
DEMA
+A1/price3
o)le edia óvil +'ponencial
DHigh
0ig/13
Precio má'imo del en@simo día previo al de la vela actual
D
,1/price3
esigna el emand ,nde' /,ndice de la emanda3
Dmin&
,minus1/price3
esigna el ,D
D,&
,plus1/price3
esigna el ,M
DLow
!oI/13
Precio mínimo del en@simo día previo al de la vela actual
D
Ker -(7 et 90,!+
,nstrucción opcional de los )ucles -(7 # 90,!+ para introducir la acción de inicio de )ucle
Den
(pen/13
Precio de apertura del en@simo día previo al de la vela actual
D4NT
Ker -(7
,nstrucción Cue se aplica so)re el )ucle -(7 para ordenar una lectura decreciente
D5
P(1/price3
esigna el etrented Price (scillator
Códi&o
Implementación
Función
Ea&e
+ase(fovement,
esigna el indicador +ase of ovement
EL:E
Ker ,->T0+1>+!4+>+1,-
,nstrucción de llamada de la segunda condición a defecto de la primera salida de ,-
EL:E
Ker ,->T0+1>+!4+>+1,-
$ontracción de +!4+ ,- /im)ricación en un conjunto de instrucciones condicionales de otro conjunto de instrucciones3
EM6
+K1
esigna el indicador +ase of ovement Kalue
END
Ker ,->T0+1>+!4+>+1,-
,nstrucción a introducir al final del conjunto de instrucciones condicionales
En5ointA3e!age
+ndPointAverage1/price3
Ultimo punto de edia óvil
EG5
+8P/a3
-unción matemática Z+'ponencialZ
E*onentia,A3e!age
+'ponentialAverage1/price3 edia óvil +'ponencial
"
III.prorealtime.com
*% > =*
$losario
FK$ Códi&o
Implementación
Función
R.T.NEGT
-(7 ia T( ) ( a 1+8T
Bucle ZParaZ /Toma todos los valores del inicio al final designado o vice versa /(91T(33
o!ene*
-orce,nde'/price3
a el indicador -orce ,nde' Cue determina Cui@n controla el mercado /vendedor comprador3
Códi&o
Implementación
Función
High
0ig1
esigna el precio má'imo alcanzado durante el período 1
highe&t
igest1/price3
esigna el má'imo de un período sur un orizonte temporal dado
Hi&to!i6o,ati,it$
0istoricKolatilit#1/price3
esigna la volatilidad istórica /o volatilidad estadística3
Ho!
0our1
esigna la ora de cierre de cada vela del istórico
Códi&o
Implementación
Función
.THEN.END
,- a T0+1 ) +1,-
$onjunto de instrucciones condicionales sin segunda condición
.THEN.EL:E.END
,- a T0+1 ) +!4+ c +1,-
$onjunto de instrucciones condicionales
nt!aa$'a!ne*
,ntrada#Bar,nde'1
$uenta el n6mero de velas en el gráfico intrada#
Códi&o
Implementación
Función
Linea!Reg!e&&ion
!inear7egression1/price3
7egresión linear
Linea!Reg!e&&ion:,oe
!inear7egression4lope1 /price3
Pendiente de la regresión linear
LQ
!(_/a3
-unción matemática Zlogaritmo neperianoZ
Low
!oI1
esigna el mínimo alcanzado durante el período
,owe&t
loIest1/price3
esigna el mínimo de un período dentro de un orizonte temporal dado
%
IKLK
(
III.prorealtime.com
*: > =*
$losario
M Códi&o
Implementación
Función
MA+D
A$4!4i/price3
esigna al oving Average $onvergence ivergence /A$3 en istograma
MA+D,ine
A$!ine4!/price3
esigna la línea del A$
Ma&&ne*
ass,nde'1
,ndicador ass ,nde' aplicado en 1 velas
MAG
A8/a)3
-unción matemática Zá'imoZ
Meian5!ie
edianPrice
edia del precio má'imo # del mínimo
MN
,1/a)3
-unción matemática ZínimoZ
Minte
inute
esigna el minuto del instante del cierre de cada vela del istórico
MD
a ( )
-unción matemática Z7esto del cociente euclídeoZ
Momentm
omentum,
esigna el omentum /precio de cierre actual Y precio de cierre de la en@sima vela precedente3
Mone$,ow
one#-loI1/price3
esigna el one#-loI entre D& # &
Mone$,owne*
one#-loI,nde'1
esigna el one#-loI,nde'
Month
ont1
esigna el mes de cierre de cada vela del istórico
Códi&o
Implementación
Función
NEGT
Ker -(7>T(>1+8T
,nstrucción a introducir al final del )ucle ZParaZ /-(73
NT
1(T a
(perador lógico 1(
Códi&o
Implementación
Función
'6
(BK/price3
esigna el Z(nDBalanceDKolumeZ
N+E
(1$+ Karia)le1ame Karia)leKalue
,nstrucción Cue precede a otra Cue deseamos ejecutar una sola vez
en
(pen1
esigna el precio de apertura de la vela actual o celle de n días previos
R
a (7 )
(perador lógico (
Códi&o
Implementación
Función
5!ie&i,,ato!
Price(scillator4!/price3
,ndicador Percentage Price oscillator
5o&iti3e6o,mene*
PriceKolume,nde'/price3
esigna el indicador Positive Kolume ,nde'
56T
PKT/price3
esigna el indicador ZPrice Kolume TrendZ
,
O
PKE
III.prorealtime.com
=< > =*
$losario
R Códi&o
Implementación
Función
R2
721/price3
esigna el coeficiente 7 $uadrado /error de precios en la regresión linear3
Range
7ange1
evuelve el 7ange /rango diferencia entre el precio má'imo # mínimo de la vela actual3
REM
7+ comentario
Precede un comentario /el código no lo toma en cuenta pero facilitan la lectura al usuario3
Re,&e
7epulse1/price3
evuelve el indicador 7epulse /mide la fuerza alcista # )ajista de cada vela3
RETURN
7+TU71 7esultado
,nstrucción Cue envía el resultado
R+
7($1/price3
esigna el ZPrice 7ate of $angeZ
R:
74,1/price3
esigna el oscilador Z7elative 4trengt ,nde'Z
RUND
7(U1/a3
-unción matemática Z7edondeo a la unidadZ /parte entera3
Códi&o
Implementación
Función
:AR
4A7At4t!im
esigna el Para)ólico 4A7
:ARatm<
4A7atdmfAt4t!im/price3
esigna el Para)ólico 4A7 en el módulo AT-
:N
4,1/a3
-unción matemática Z4enoZ
:QN
4_1/a3
-unción matemática Z4igno deZ
:M
4,1444/price3
esigna el índice +stocástico omentum /4tocastic omentum ,nde'3
:moothe:toha&ti
4mooted4tocastic1; /price3
esigna un estocástico alisado
:UARE
4bUA7+/a3
-unción matemática Z$uadradoZ /potencia 23
:RT
4b7T/a3
-unción matemática Z7aíz cuadradaZ
:TD
4T1/price3
-unción estadística Zesviación TípicaZ
:TE
4T+1/price3
-unción estadística Z+rror típicoZ
:toha&ti
4tocastic1;/price3
!ínea `; del +stocástico
&mmation
summation1/price3
4uma de un cierto precio de las 1 6ltimas velas
:e!t!en
4upertrend4T-1
esigna el 4uper Trend
S
III.prorealtime.com
=& > =*
$losario
+ Códi&o
Implementación
Función
TAN
TA1/a3
-unción matemática ZTangenteZ
TEMA
T+A1/price3
edia óvil +'ponencial Triple
THEN
Ker ,->T0+1>+!4+>+1,-
,nstrucción Cue sigue la primera condición del conjunto condicional Z,-Z
Time
Time1
a la evolución de la 0orainuto4egundo # permite llamar la ora en el programa
Time:e!ie&A3e!age
Time4eriesAverage1/price3
edia óvil de las series temporales
T
Ker -(7>T(>1+8T
,nstrucción Zasta Z en el )ucle ZParaZ /-(73
Toa$
Toda#
-eca actual
Tota,5!ie
TotalPrice1
/cierre M apertura M má'imo M mínimo3 > =
TR
T7/price3
esigna el True 7ange
T!iang,a!A3e!age
TriangularAverage1/price3
edia óvil Triangular
TRG
T7,81/price3
Triple edia óvil +'ponencial
T$ia,5!ie
T#picalPrice1
esigna el precio Típico /edia de má'imo mínimo # cierre3
Códi&o
Implementación
Función
Une
a Undefined
Permite dejar una varia)le indefinida /es un tipo de varia)le3
Códi&o
Implementación
Función
6a!iation
Kariation/price3
a la diferencia entre el cierre de la víspera # el cierre actual en `
6o,ati,it$
Kolatilit#4 !
esigna la volatilidad de $aiin
6o,me
Kolume1
esigna el volumen
6o,me&i,,ato!
Kolume(scillator4!
esigna el oscilador de volumen
6o,meR+
Kolume7($1
esigna el volumen del 7ate (f $ange /7($3
U
!
III.prorealtime.com
=2 > =*
$losario
7 Códi&o
Implementación
Función
4eighteA3e!age
9eigtedAverage1/price3
esigna la edia óvil Ponderada
4eighte+,o&e
9eigted$lose1
a la edia entre el precio de cierre má'imo # mínimo con ponderaciones respectivas de 2 & #&
4END
Ker 90,!+>(>9+1
,nstrucción a introducir al final del )ucle 9ile>o>9end /mientras3
4HLE.D.4END
90,!+ /condición3 ( /acción3 9+1
Bucle ZientrasZ
4i,e!A3e!age
9ilderAverage1/price3
a la edia óvil de 9ilder
4i,,iam&
9illiams1/close3
$alcula el `7 de 9illiams
4i,,iam&AmDi&t!
9illiamsAccumistr/price3
,ndicador Acumulación>istri)ución de 9illiams
Códi&o
Implementación
Función
GR
a 8(7 )
(perador lógico ( e'clusivo
Códi&o
Implementación
Función
ea!
Oear1
a la evolución de los aEos # permite llamar a los aEos en el programa
e&te!a$
Oesterda#1
a la evolución del día de a#er # permite llamar a este 6ltimo en el programa
Códi&o
Implementación
Función
VigVag
NigNagNr/price3
esigna los NigDNag de la teoría de las ondas de +liott
VigVag5oint
NigNagPointNp/price3
esigna los NigDNag de la teoría de las ondas de +liott calculadas a N puntos
1
6
Otros Códi&o
Función
Códi&o
Función
(perador de adición
@"
(perador de diferencia
-
(perador de sustracción
@
(perador de inferioridad estricta
(perador de multiplicación
"
(perador de superioridad estricta
.
(perador de división decimale
@=
(perador de inferioridad
=
(perador de igualdad
"=
(perador de superioridad
III.prorealtime.com
=* > =*