Vous êtes sur la page 1sur 48

SUMARIO

Presentacin de ProBuilder______________________________________________
Captulo I: Principios fundamentales_______________________________________
Utilizar ProBuilder................................................................................................................................. 2
Tutorial rpido para la creacin de un indicador............................................................................. 2
Atajos de teclado en la ventana de programacin.......................................................................... 5
Aspectos especficos de la programacin en ProBuilder......................................................................
!as constantes financieras ProBuilder................................................................................................. "
!as constantes de precio # volumen adaptadas a la unidad de tiempo del grfico........................."
$onstantes diarias del precio.......................................................................................................... %
$onstantes de tiempo..................................................................................................................... %
$onstantes de precio.................................................................................................................... &2
$onstante indefinida..................................................................................................................... &2
Uso de indicadores #a e'istentes....................................................................................................... &2
(ptimizacin de varia)les.................................................................................................................. &*
Captulo II: Funciones e instrucciones ProBuilder____________________________
+structuras de control......................................................................................................................... &5
,nstruccin condicional ,-.............................................................................................................. &5
Una condicin. un resultado /,- T0+1 +12,-3......................................................................... &5
Una condicin. dos resultados /,- T0+1 +!4+ +12,-3...........................................................&5
$ondiciones im)ricadas............................................................................................................ &5
$ondiciones 56ltiples /,- T0+1 +!4+ +!4,- +12,-3.............................................................&
Bucle iterativo -(7....................................................................................................................... &"
Avance creciente /-(7. T(. 2(. 1+8T3..................................................................................&"
Avance decreciente /-(7. 2(91T(. 2(. 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 matemticas...................................................................................................................... 2*
-unciones comunes unarias # )inarias......................................................................................... 2*
(peradores matemticos comunes.............................................................................................. 2*
-unciones de comparaciones grficas.......................................................................................... 2*
-unciones sumatorias................................................................................................................... 2=
-unciones estadsticas.................................................................................................................. 2=
(peradores lgicos............................................................................................................................ 2=
,nstrucciones ProBuilder..................................................................................................................... 2=
7+TU71....................................................................................................................................... 25
7+5 o >>........................................................................................................................................ 25
$ustom$lose................................................................................................................................ 25
$A!!............................................................................................................................................. 2
A4................................................................................................................................................. 2
$(!(U7+2.................................................................................................................................. 2
Captulo III: Aplicaciones prcticas________________________________________
$reacin de un indicador )inario o ternario? lgica # m@todo.............................................................2%
$rear indicadores 4T(P? siga sus posiciones en tiempo real............................................................2:
4T(P profit esttico...................................................................................................................... *<
4T(P loss esttico........................................................................................................................ *<
4T(P de inactividad..................................................................................................................... *&
Trailing 4T(P................................................................................................................................ *2
Captulo I!: "#ercicios___________________________________________________
$onfiguraciones de velas japonesas.................................................................................................. **
,ndicadores......................................................................................................................................... *=
$losario______________________________________________________________
Pr esent aci n de Pr oBui l der
Presentacin de ProBuilder
ProBuilder es el lenguaje de programacin de Pro7ealTime. !e permite crear indicadores
personalizados de anlisis t@cnico. estrategias # sistemas de trading /ProBacATest3. o escneres de
mercados /Pro4creener3. ProBacATest # Pro4creener tienen manuales de a#uda propios a causa de sus
propias especificidades de programacin.
ProBuilder es un lenguaje de tipo BA4,$. mu# simple # a la vez e'Baustivo en cuanto a las posi)ilidades
de programacin Cue ofrece.
$on @l podr construir sus propios programas Cue utilizarn 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 mnimo de de cada vela? (o)
la cantidad de ttulos negociados? !olume
!as velas. candlesticAs o )arras. son representaciones grficas estandarizadas de cotizaciones
reci)idas en tiempo real. Por supuesto. Pro7ealTime le permite personalizar el estilo de representacin
grfica ms all de las opciones descritas. inclu#endo otras vistas como 7enAo. ;agi. 0eiAinDAsBi.
ProBuilder eval6a los datos de cada vela de precios por orden cronolgico de la ms antigua a la ms
reciente. ejecutando la frmula programada en el lenguaje para calcular el valor de los indicadores en
cada vela.
!os indicadores creados mediante ProBuilder pueden mostrarse superpuestos al grfico de precios o en
un grfico individua ad#acente. en funcin del tipo de escala empleado.
+n este manual se familiarizar gradualmente con los comandos de programacin de ProBuilder con
una visin terica 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 Ba#a aprendido durante la
lectura.
ACuellos lectores ms acostum)rados a la programacin pueden pasar directamente a la lectura del
captulo ,,. o consultar el ndice para Ballar rpidamente la e'plicacin relativa a la funcin concreta Cue
les pueda interesar.
Para Cuien no est@ familiarizado con la programacin. sugerimos visualizar el vdeo titulado FPrograme
indicadores simples o dinmicosF # leer ntegramente este manual. Cue Bemos diseEado para permitirle
programar lo ms rpidamente posi)le. G Buena lectura H
III.prorealtime.com & > =*
Cap t ul o I : Pr i nci pi os f undament al es
Captulo I: Principios fundamentales
Utili*ar ProBuilder
+utorial rpido para la creacin de un indicador
+l acceso a la zona de programacin de un indicador se realiza a trav@s del )otn
F,ndicador>BacAtestJ situado Bacia la esCuina superior derecBa de cualCuier ventana de grfico de
su plataforma Pro7ealTime.
2esde aB podr acceder a la ventana de gestin 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 )otn F$rear indicadorJ para acceder a la ventana de
programacin. +sta ventana le ofrece las siguientes posi)ilidades?
programar directamente un indicador en la zona de te'to reservada al cdigo
utilizar el asistente F,nsertar funcinJ para a)rir una nueva ventana con una )i)lioteca de
funciones clasificadas en siete categoras. para utilizarlas directamente en su codificacin.
III.prorealtime.com 2 > =*
Cap t ul o I : Pr i nci pi os f undament al es
Keamos el ejemplo del primer elemento tpico de los indicadores ProBuilder? la funcin F R"+UR,J.
+st disponi)le en la seccin L,nstrucciones ProBuilderL. tal # como se muestra en la imagen a
continuacin.
III.prorealtime.com * > =*
Cap t ul o I : Pr i nci pi os f undament al es
Para aEadir el comando en la zona de programacin. )astar con seleccionar F R"+UR,J # pulsar
FAEadirJ.
R"+UR, muestra el resultado del clculo de su indicador
4upongamos Cue Cueremos programar un indicador Cue muestre el Kolumen. 4i #a Bemos
insertado el comando R"+UR,. )astar con ir nuevamente a F,nsertar funcinJ. pulsar en
F$onstantesJ /en la seccin F$ategorasJ. # finalmente. pulsar en F!olumeJ a la derecBa. en la
seccin F-unciones disponi)lesJ # FAEadirJ.
Antes de pulsar el )otn 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 Bemos llamado
FKolumen2A8J. Tras esto. pulse FKalidar programaJ # el indicador aparecer en la ventana de
grfico.
III.prorealtime.com = > =*
Cap t ul o I : Pr i nci pi os f undament al es
Ata#os de teclado en la -entana de pro&ramacin
!a ventana de creacin de sistemas de trading tiene varias funciones a las Cue se puede acceder
mediante atajos de teclado en la versin &< de Pro7ealTime?
4eleccionarlo todo /$trl M A3? 4elecciona la integralidad del te'to en la ventana de
programacin
$opiar /$trl M $3? $opia el te'to seleccionado
Pegar /$trl M83? Pega el te'to copiado
2esBacer /$trl M N3? 2esBace la 6ltima accin realizada en la ventana de programacin
7eBacer /$trl M O3? 7eBace la 6ltima accin realizada en la ventana de programacin
Buscar > 7emplazar /$trl M -3? Busca un te'to preciso en la ventana de programacin >
remplaza un te'to contenido en la ventana de programacin /esta funcin es sensi)le a la
diferencia entre min6sculas # ma#6sculas3
$omentar > 2escomentar /$trl M 73? $omenta el cdigo seleccionado > 2escomenta el cdigo
seleccionado /el cdigo comentado ser introducido por L>>L o L7+5L # se colorear en gris. +sto
comentario no ser tomado en cuenta en la ejecucin del cdigo3.
+n 5ac es posi)le utilizar estos mismos atajos de teclado utilizando la tecla L5anzanaL en lugar de
L$trlL. $asi todas estas funciones son accesi)les pulsando en el )otn derecBo de su ratn en la
zona de programacin de la ventana de creacin del sistema de trading.
III.prorealtime.com 5 > =*
Cap t ul o I : Pr i nci pi os f undament al es
Aspectos especficos de la pro&ramacin en ProBuilder
Peculiaridades
A trav@s del lenguaje ProBuilder puede manipular gran cantidad de comandos mu# conocidos. am@n
de otras Berramientas ms complejas # especficas del anlisis t@cnico. Podr as programar todo tipo
de indicadores. del ms sencillo al ms 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 Ba# una particularidad Cue se
descri)e ms a)ajo3
se emplea el mismo sm)olo para representar los conceptos de afectacin e i&ualdad matemtica
Keamos cada punto en detalle?
2eclarar una varia)le 8 eCuivale a indicar su e'istencia de modo e'plcito. +n ProBuilder puede
utilizar directamente 8 sin tener Cue definir previamente su e'istencia.
Keamos un ejemplo para ilustrar la diferencia entre la programacin clsica # ProBuilder?
Programacin clsica? 4ea la varia)le 8. 4e atri)u#e a 8 el valor 5
Programacin ProBuilder? 4e atri)u#e a 8 el valor 5 /as. 8 es implcitamente e'istente # vale 53
+n ProBuilder )astar con escri)ir? 8P5
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,. -AU83.R 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+ > +12,- podra escri)irse i- > t0e1 >
+!se > e1di-.
+'cepcin? $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 dicBa varia)le en un cdigo.
ser necesario teclear FvA7iaB!eJ para referirse a dicBa 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 vaca 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 leera de derecBa a izCuierda? el volumen se atri)u#e a 8.
Para programar esto en lenguaje ProBuilder. )astar con sustituir la flecBa por un signo FPJ?
1 2 !olume
+ste sm)olo se utiliza de dos maneras distintas?
para atri)uir una varia)le /como aca)amos de ver en el ejemplo3
como operador matemtico )inario /&M & P 2 eCuivale a 2 P & M &3.
III.prorealtime.com > =*
Cap t ul o I : Pr i nci pi os f undament al es
(as constantes financieras ProBuilder
Antes de comenzar a codificar sus indicadores personales. vamos a revisar los elementos )sicos con
los Cue construir su cdigo /precios de apertura # cierre. volumen. etc.3
+stas constantes son los FfundamentosJ del anlisis t@cnico.
5ediante la com)inacin de distintas constantes. ser posi)le resaltar ciertos aspectos de la
informacin proporcionada por los mercados financieros. +ncontramos 5 categoras distintas?
(as constantes de precio / -olumen adaptadas a la unidad de tiempo del &rfico
4on las constantes FclsicasJ. las ms frecuentes. Por defecto. indican los valores de la vela actual
/independientemente de la unidad de tiempo del grfico3. # se presentan de esta manera??
Open : nivel de apertura de la vela actual
%i&' : nivel m'imo de la vela actual
(o) : nivel mnimo 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 corcBetes T U 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 ensima 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'presin? (penT2U.
+l valor Cue aparezca depender del perodo mostrado en el grfico.
III.prorealtime.com " > =*
Cap t ul o I : Pr i nci pi os f undament al es
Constantes diarias del precio
$ontrariamente a las constantes adaptadas a la unidad de tiempo del grfico. las constantes
diarias del precio se refieren a los valores del da. independientemente del perodo mostrado en el
grfico.
(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 da anterior al de la vela actual
3%i&'4n5 : precio m'imo del en@simo da anterior al de la vela actual
3(o)4n5 : precio mnimo del en@simo da anterior al de la vela actual
3Close4n5 : precio de cierre del en@simo da anterior al de la vela actual
()servacin? si FnJ es igual a <. se recupera el valor del da actual. Kemoslo con un ejemplo.
mostrando el valor del da a continuacin.
"#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 corcBete? $loseT*U
Para las constantes diarias se emplean los par@ntesis? 2close/*3
Constantes de tiempo
A veces sucede Cue la constante tiempo no reci)e mucBa atencin en el anlisis t@cnico. 4in
em)argo. los traders conocen )ien la importancia de los momentos claves del da. o de ciertas
fecBas del aEo. Para poder limitar el anlisis de un indicador a momentos especficos. e'isten
estas constantes?
3ate : -ecBa en formato OOOO55VV. Cue indica la fecBa de cierre de cada vela
!as constantes de tiempo se consideran enteros en ProBuilder. !a constante 2ate ser as
presentada como un 6nico n6mero de % dgitos.
Keamos este $digo
RETURN Date
4upongamos Cue Bo# estamos a = de Vulio del 2<<%. +l indicador conectar todas las fecBas de
cierre de las velas. enviando el resultado 2<<%<"<=.
Para leer una fecBa. )astar con seguir esta regla?
2<<%<"<= P 2<<% aEos <" meses # <= das.
()viamente. en una fecBa con formato OOOO55VV. 55 no puede ser superior a &2 # VV. a la cifra
*&.
III.prorealtime.com % > =*
Cap t ul o I : Pr i nci pi os f undament al es
+ime : 0ora5inuto4egundo en formato 005544. ,ndica la Bora de cierre de cada vela
+n el caso del $digo
RETURN Time
()tendremos una curva Cue conecta las Boras de cierre de cada vela?
Para leer una Bora. )astar con seguir esta regla?
&<<<< P & Boras << minutos # << segundos.
()viamente. al escri)ir una Bora en formato 005544. 00 no podr ser superior al valor 2*. 55
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 continuacin. vamos a limitar nuestro indicador al primero de
(ctu)re del 2<<%. a las :B<< # &s.
a = (Date = 20081001)
b = (Time = 090001)
RETURN (a AND b)
!as dems constantes tiempo funcionan de modo anlogo?
Minute : 5inuto de cierre de cada vela /entre < # 5:3
%our : 0ora de cierre de cada vela /entre < # 2*3
3a/ : 2a del mes de cierre de cada vela /entre & # 2% o 2: o *< o *&3
Mont' : 5es de cierre de cada vela /entre & # &23
6ear : AEo de cierre de cada vela
3a/Of7ee8 : 2a de la semana en el cierre de cada vela /slo toma en cuenta los das
la)orales. siendo &Plunes. 2Pmartes. *Pmi@rcoles. =Pjueves. 5Pviernes3
"#emplo:
a = (Ho! " 1#0000)
b = (Da$ = %0)
RETURN (a AND b)
III.prorealtime.com : > =*
Cap t ul o I : Pr i nci pi os f undament al es
Current%our : 0ora actual /del mercado3
CurrentMinute : 5inuto actual /del mercado3
CurrentMont' : 5es actual /del mercado3
CurrentSecond : 4egundo actual /del mercado3
Current+ime : 0ora5inuto4egundo actual /del mercado3
Current6ear : AEo actual /del mercado3
Current3a/Of7ee8 : 2a de la semana actual /Buso Borario del mercado3
(a diferencia entre les constantes F$urrentJ reci@n mencionadas # las Cue no tienen F$urrentJ #
presentadas previamente. reside precisamente en la nocin FActualJ.
!a imagen mostrada a continuacin resalta esta diferencia aplicada a las constantes Current+ime
# +ime. Para simplificar. las constantes con F$urrentJ no toman en consideracin el eje del tiempo.
# toman en cuenta 6nicamente el valor Cue se muestra en el cuadro )lanco.
+ime indica la Bora de cierre de cada vela
Current+ime indica la Bora actual en el mercado
4i desea ajustar sus indicadores respecto a un contador /n6mero de das transcurridos. cantidad
de velas. etcR3. las constantes 3a/s. BarInde9 # Intrada/BarInde9 cumplen con este cometido.
3a/s : $ontador de das desde &:<<
+sta constante es 6til para conocer la cantidad de das transcurridos. concretamente al tra)ajar en
vistas cuantitativas como por ejemplo /'3ticAs o /'3vol6menes.
Keamos un ejemplo en el Cue se muestra el paso de un da a otro en cotizaciones. con una de las
vistas mencionadas.
RETURN Da$&
/Atencin? no confundir con las constantes W2a#X # W2a#sX3
III.prorealtime.com &< > =*
Cap t ul o I : Pr i nci pi os f undament al es
BarInde9 : $ontador de velas desde el inicio del Bistrico visi)le
+l contador comienza en la vela situada ms a la izCuierda del Bistrico cargado. # cuenta todas
las velas Basta llegar a la situada ms a la derecBa Yinclu#endo la vela actual Cue se est
formando. !a primera vela visi)le /situada en el e'tremo izCuierdo del grfico3 se considera la vela
< /contrariamente al funcionamiento de las dems constantes3. BarInde9 se usa en la ma#or parte
de los casos con la instruccin IF Cue se descri)e ms adelante.
Intrada/BarInde9 : $ontador de velas intradiarias
+l contador muestra la cantidad de velas generadas desde el inicio de la jornada )urstil # 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 dems constantes3.
$omparemos las dos constantes creando dos indicadores separados?
RETURN 'a!(n)e*
#
RETURN (nt!a)a$'a!(n)e*
()servamos cmo en el caso del indicador ,ntrada#Bar,nde'. el contador pasa a valer < en el
inicio de cada jornada )urstil.
III.prorealtime.com && > =*
Cap t ul o I : Pr i nci pi os f undament al es
Constantes de precio
+stas constantes permiten o)tener una informacin ms e'Baustiva respecto a Open. %i&'. (o) #
Close. #a Cue com)inan estas informaciones de manera Cue se puedan resaltar ciertos aspectos
de la psicologa del mercado. resumidos en la vela actual.
Ran&e : diferencia entre 0igB # !oI.
+/picalPrice : media entre 0igB. !oI # $lose
7ei&'tedClose : media ponderada de 0igB /peso &3 !oI /peso &3 # $lose /peso 23
MedianPrice : media entre 0igB # !oI
+otalPrice : media entre (pen. 0igB. !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 /cotizacin de referencia3. Cue se
mantiene fija durante todo el da # separa dos velas consecutivas /siendo as a6n ms importante
en el caso de las velas diarias o semanales3.
!as constantes +/picalPrice # +otalPrice reflejan mejor la psicologa del mercado dentro de la vela
actual. #a Cue consideran respectivamente * # = niveles de precio alcanzados durante la jornada )urstil.
Bajo una perspectiva de ro)ustez. MedianPrice permite e'plotar el plus de calidad e'plicativa Cue
ofrecen las medianas respecto a las medias mviles. prestndose as mejor a modelizaciones
tericas Cue tratan de comprender mejor la psicologa del mercado.
Ran&e en : :
M$Range = Range
+a,-,o = (M$Range . M$Range/10 - 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 vaca o a 1U!!3
Podr ver un ejemplo en este mismo manual
Uso de indicadores /a e9istentes
0emos o)servado Basta aBora 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 continuacin veremos Cue los Cue Ud. programe seguirn el mismo principio.
!os indicadores ProBuilder se componen de * elementos. cu#a sinta'is es como sigue?
,om.re3eFuncin ;calculado en n -elas< 4so.re tal precio o cual indicador5
$uando pulsamos el )otn F,nsertar funcinJ para )uscar una funcin ProBuilder se crean
automticamente valores por defecto para el perodo # 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 perodo de 2< velas definidas por defecto. # fijndolo a &<< velas. Anlogamente. se
puede modificar el argumento del precio o del indicador FcloseJ por otro valor. como p.ej. Z3Open4?5Z?
A-era&e;=><43open4?55
III.prorealtime.com &2 > =*
Cap t ul o I : Pr i nci pi os f undament al es
Keamos algunos ejemplos de comportamiento de indicadores pree'istentes?
"ste pro&rama calcula la media m-il e9ponencial so.re => -elas 4perodos5 aplicada al precio
de cierre:
RETURN E*2onentia,A3e!age/200(+,o&e)
"ste otro pro&rama calcula una media m-il ponderada so.re => -elas aplicada al precio estndar:
mm = 4eighte)A3e!age/200(T$2i-a,5!i-e)
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/1000(6o,me)
RETURN mm
Programamos a continuacin un cdigo para calcular el 5A$2 /en Bistograma3 so)re el precio al
cierre. !a lnea del 5A$2 se constru#e como la diferencia entre la media mvil e'ponencial so)re &2
perodos menso aCuella calculada so)re 2 perodos.
A continuacin. se realiza un alisado con una media mvil e'ponencial a : perodos. aplicada a la
diferencia para o)tener la lnea de 4eEal. +l 5A$2 en Bistograma se crea as a partir de la diferencia
entre la lnea del 5A$2 # la lnea de 4eEal.
REM +7,-,o )e ,a ,8nea MA+D
LineaMA+D = E*2onentia,A3e!age/120(+,o&e) - E*2onentia,A3e!age/290(+,o&e)
REM +7,-,o )e ,a ,8nea )e :e;a, MA+D
Linea:igna, = E*2onentia,A3e!age/90(LineaMA+D)
REM +7,-,o )e ,a )i<e!en-ia ent!e ,a ,8nea )e, MA+D $ & :e;a,
MA+DHi&tog!ama = LineaMA+D - Linea:igna,
RETURN MA+DHi&tog!ama
Optimi*acin de -aria.les
Al crear un indicador se introduce un cierto n6mero de constantes. !a opcin de optimizacin de
varia)les /situada en la zona superior derecBa3 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
parmetros /propiedades3 del indicador.
!a ventaja consiste en la posi)ilidad de poder alterar los parmetros del indicador sin necesidad de
modificar el cdigo.
Por ejemplo. en el clculo de una media mvil de 2< perodos?
RETURN A3e!age/200(+,o&e)
III.prorealtime.com &* > =*
Cap t ul o I : Pr i nci pi os f undament al es
Para poder modificar el n6mero de perodos directamente desde la ventana de propiedades. vamos a
reemplazar el valor 2< por una varia)le FnJ?
RETURN A3e!age/n0(+,o&e)
A continuacin. pulsaremos en FAEadirJ en F(ptimizacin de varia)lesJ para Cue aparezca la ventana
F2efinicin de varia)leJ. Cue vamos a rellenar as?
A continuacin. pulsamos F(;J. +n la ventana de Propiedades del indicador /llamada en este caso
FPropiedades D 5i 5edia 5vilJ3. o)tendremos as un nuevo parmetro Cue nos permitir modificar el
n6mero de perodos de la media mvil?
Aplicando este m@todo para crear m6ltiples varia)les. ser posi)le com)inar simultneamente varios
parmetros del indicador.
III.prorealtime.com &= > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Captulo II: Funciones e instrucciones ProBuilder
"structuras de control
Instruccin condicional IF
!a instruccin IF permite escoger acciones condicionadas. permitiendo su)ordinar un resultado a
la verificacin de una o varias condiciones definidas previamente.
!a estructura se compone de los elementos IF. +%",. "(S". "(SIF. ",3IF. Cue se com)inan en
funcin de la complejidad de las condiciones Cue deseemos definir. Kamos a ver cmo utilizarla.
Una condicinA un resultado 4IF +%", ",3IF5
4e puede )uscar una condicin # definir una accin Cue tendr lugar si la condicin se cumple.
4i la condicin no se cumple. no Ba)r accin /se o)tendr el valor por defecto de <3.
+n el siguiente ejemplo. si el 6ltimo precio es superior a la 55 de perodo 2<. se o)tendr el valor &.
(= +,o&e " A3e!age/200(+,o&e) THEN
Re&,ta)o = 1
END(=
RETURN Re&,ta)o
4, precio [ media mvil de 2< perodos +1T(1$+4
7esultado P &
4, 1( 7esultado P < /por defecto3 -,1 2+ $(12,$,\1
5(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 condicin
Una condicinA dos resultados 4IF +%", "(S" ",3IF5
Tam)i@n podemos definir un resultado distinto del definido por defecto en caso de Cue la
condicin no se cumpla. 7etomando el ejemplo previo? si el 6ltimo precio es superior a la 55 de
2< perodos. se muestra el valor &. +n caso contrario. se muestra el valor D&.
(= +,o&e " A3e!age/200(+,o&e) THEN
Re&,ta)o = 1
EL:E
Re&,ta)o = -1
END(=
RETURN Re&,t
ota: !ca"amos de crear un indicador "inario. #ara ms 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 verificacin de una condicin principal. +so
implica condiciones Cue de)ern verificarse secuencialmente /una tras otra3 en orden de
aparicin. Para ello. )asta con im)ricar las condiciones IF. recordando insertar tantos ",3IF
como IF. Kemoslo en este ejemplo?
$ondiciones do)les en medias mviles?
(= (A3e!age/120(+,o&e) - A3e!age/200(+,o&e) " 0) THEN
(= E*2onentia,A3e!age/120(+,o&e) - E*2onentia,A3e!age/200(+,o&e) " 0 THEN
Re&,ta)o = 1
EL:E
Re&,ta)o = -1
END(=
END(=
RETURN Re&,ta)o
III.prorealtime.com &5 > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Condiciones M0ltiples 4IF +%", "(S" "(SIF ",3IF5
Pueden definirse varios resultados. estando cada uno de ellos asociado a una condicin
especfica. +l indicador devolver varios estados? si la $ondicin & se cumple. se activar la
Accin &Q en cam)io. si la $ondicin 2 se cumple. se activar la Accin 2 R # si no se cumple
ninguna condicin. se activar la Accin n.
4intcticamente. esta estructura emplea las instrucciones IF. +%",. "(SIF. +%", .... "(S".
",3IF.
O se escri)e de la siguiente manera?
(= (+on)i-i>n1) THEN
(A--i>n1)
EL:(= (+on)i-i>n2) THEN
(A--i>n2)
EL:(= (+on)i-i>n%) THEN
(A--i>n%)
???
???
???
EL:E
(A--i>n n)
END(=
AunCue la codificacin es ms 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 Ba#an escrito. 4i desea
im)ricar m6ltiples condiciones en su programa. recomendamos utilizar "(SIF de preferencia a
"(S" IF.
"#emplo: deteccin de des)ordamientos alcistas # )ajistas
+ste indicador devolver & si detecta un des)ordamiento alcistaQ D& si detecta un
des)ordamiento )ajistaQ # < en los dems casos.
.. De&-!i2-i>n )e n )e&bo!)amiento a,-i&ta
+on)ition1 = +,o&e/10 @ A2en/10
+on)ition2 = A2en @ +,o&e/10
+on)ition% = +,o&e " A2en/10
+on)itionB = A2en @ +,o&e
.. De&-!i2-i>n )e n )e&bo!)amiento baCi&ta
+on)itionD = +,o&e/10 " A2en/10
+on)ition9 = +,o&e @ A2en
+on)ition# = A2en " +,o&e/10
+on)ition8 = +,o&e @ A2en/10
(= +on)ition1 AND +on)ition2 AND +on)ition% AND +on)itionB THEN
a = 1
EL:(= +on)itionD AND +on)ition9 AND +on)ition# AND +on)ition8 THEN
a = -1
EL:E
a = 0
END(=
RETURN a
III.prorealtime.com & > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
"#emplo: 7esistencia pivot 2emarAs
(= D+,o&e(1) " DA2en(1) THEN
5high = DHigh(1) E (D+,o&e(1) - DLow(1)) . 2
5,ow = (D+,o&e(1) E DLow(1)) . 2
EL:(= D+,o&e(1) @ DA2en(1) THEN
5high = (DHigh(1) E D+,o&e(1)) . 2
5,ow = DLow(1) - (DHigh(1) - D+,o&e(1)) . 2
EL:E
5high = D+,o&e(1) E (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 captulo , de este manual Ba)amos presentado BarInde9 como un contador del n6mero
de velas /o de )arras3 desde el inicio del Bistrico visi)le. BarInde9 se utiliza a menudo
asociado con IF. Por ejemplo. si Cueremos verificar si nuestro grfico contiene ms de 2* velas.
escri)iremos?
(= 'a!(n)e* @= 2% THEN
a = 0
EL:(= 'a!(n)e* " 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 vara
en funcin de la llamada en orden creciente o decreciente de los elementos. +s importante
su)ra#ar Cue el cdigo situado entre el FOR # el 3O son los e'tremos del recorrido del intervalo.
A-ance creciente 4FORA +OA 3OA ,"1+5
=AR (6a!iab,e = 6a,o!De(ni-ioDe:e!ie) TA 6a,o!De=ina,De:e!ie DA
(A--i>n)
NEGT
"#emplo: alisado de la media mvil de &2 perodos /55&23
Kamos a crear una varia)le de almacenamiento /7esultado3 Cue sumar una a una cada media
mvil. de perodos &&. &2 # &*.
Re&,ta)o = 0
=AR 6a!iab,e = 11 TA 1% DA
Re&,ta)o = A3e!age/6a!iab,e0(+,o&e) E Re&,ta)o
NEGT
REM +a,-,emo& ,a me)ia )e ,a& me)ia& m>3i,e& )i3i)ien)o Re&,ta)o 2o! % $
a,ma-enan)o e, !e&,ta)o en A3e!ageRe&,t?
A3e!ageRe&,t = Re&,ta)o . %
RETURN A3e!ageRe&,t
III.prorealtime.com &" > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Keamos lo Cue sucede en cada paso?
5atemticamente. )uscamos Ballar la media de las medias mviles aritm@ticas de perodos &&.
&2 # &*.
!aria.le tomar sucesivamente los valores &&. &2 # &*
7esultado P <
Karia)le P &&
7esultado reci)e el valor del 7esultado previo M 55&& P /<3 M 55&& P /< M 55&&3
+l programa pasa al valor siguiente del contador
Karia)le P &2
7esultado reci)e el valor del 7esultado previo M 55&2 P /< M 5&&3 M 55&2 P /< M 55&& M 55&23
+l programa pasa al valor siguiente del contador
Karia)le P &*
7esultado reci)e el valor del 7esultado previo M 55&* P /< M 5&& M 5&23 M 5&* P /< M 5&& M
5&2 M 5&*3
+l valor &* es el 6ltimo valor del contador.
4e cierra el )ucle WFORX con la instruccin W,"1+X.
4e muestra el resultado
+n este cdigo. Fvaria)leJ tomar inicialmente el primer valor de la serie. a continuacin tomar
el valor siguiente /el precedente M &3 # as sucesivamente Basta Cue Fvaria)leJ tome el valor del
final de la serie. 2e este modo Cueda formado el )ucle.
"#emplo: 5edia so)re las 6ltimas 2< velas de m'imos?
(= 'a!(n)e* @ 20 THEN
MMhigh = Un)e<ine)
EL:E
=AR i = 0 TA 20 DA
:UMhigh = High/i0E:UMhigh
NEGT
END(=
MMhigh = :UMhigh . 20
RETURN MMhigh
4i no Ba# ms de 2< perodos en el Bistrico. entonces
4e atri)u#e a 55BigB el valor por defecto FindefinidoJ
4i no
Para los valores entre & # 2<
4e suman los 6ltimos 2< valores de m'imos
4e divide esta suma por 2< # se iguala a 55BigB
4e muestra 55BigB
A-ance decreciente 4FORA 3O7,+OA 3OA ,"1+5
+l avance decreciente se sirve en cam)io de las instrucciones? FOR. 3O7,+O. 3O. ,"1+.
4e escri)e de esta manera?
=AR (6a!iab,e = 6a,o!De=ina,De:e!ie) DA4NTA 6a,o!De(ni-ioDe:e!ie DA
(A--i>n)
NEGT
7etomando el ejemplo de la media mvil en las 6ltimas 2< velas de precios m'imos?
$ompro)amos Cue invertimos los e'tremos del intervalo recorrido.
(= 'a!(n)e* = 0 THEN
MMhigh = Un)e<ine)
EL:E
=AR i = 20 DA4NTA 1 DA
:UMhigh = High/i0 E :UMhigh
NEGT
END(=
MMhigh = :UMhigh . 20
RETURN Mmhigh
III.prorealtime.com &% > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Bucle condicional 7%I("
+l )ucle 7%I(" aplica una accin siempre Cue una condicin se mantenga vlida.
$ompro)aremos Cue este )ucle tiene mucBos aspectos comunes con la instruccin condicional
simple IF>+%",>",3IF.
4intcticamente. esta estructura emplea las instrucciones 7%I(". 3O /opcional3. 7",3
!a estructura se escri)e de esta manera?
4H(LE (+on)i-i>n) DA
(A--i>n 1)
H
(A--i>n n)
4END
5ostramos a continuacin un ejemplo intuitivo?
Re&,ta)o = 0
4H(LE +,o&e " A3e!age/200(+,o&e) DA
Re&,ta)o = 1
4END
RETURN Re&,ta)o
"#emplo: indicador Cue calcula el n6mero de perodos al alza consecutivos
(n-!ea&e = (+,o&e " +,o&e/10)
+ont = 0
4H(LE (n-!ea&e/+ont0 DA
+ont = +ont E 1
4END
RETURN +ont
'"servaci%n general para la instrucci%n condicional WHILE
(e modo anlogo al caso de IF$ el programa no tratar el "ucle condicional escrito si la condici%n
de validaci%n es desconocida.
Kemoslo en un ejemplo?
+ont = 0
4H(LE i @" 11 DA
i = i E 1
+ont = +ont E 1
4END
RETURN +ont
!a instruccin 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. 2e este
modo. F$ountJ no ser procesado cada vez Cue el valor de retorno sea <.
+l cdigo correcto sera?
i = 0
+ont = 0
4H(LE i @" 11 DA
i = i E 1
+ont = +ont E 1
4END
RETURN +ont
+n este cdigo. i est inicializada correctamente. +l )ucle funcionar correctamente. #a Cue la
condicin es vlida.
III.prorealtime.com &: > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
BR"AB
!a instruccin BR"AB permite Bacer 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 situacin
Cue desBaga la condicin de )ucle. utilizamos BR"AB siguiendo esta estructura?
4H(LE (+on)i-i>n) DA
(A--i>n)
'REAI
4END
Tomemos por ejemplo un indicador Cue acumula perodos alcistas # )ajistas consecutivos?
REM (n)i-a)o! )e ten)en-iaJ a-m,a e, nKme!o )e &bi)a& $ baCa)a&
REM Amentamo& )e 1 n -onta)o! ini-ia,iLa)o a 0 en -a&o )e &bi)a (o -1 2a!a
na baCa)a)
:bi)a = (+,o&e - +,o&e/10) " 0
(n)i-ato! = 0
i = 0
4H(LE :bi)a/i0 DA
(n)i-ato! = (n)i-ato! E 1
i = i E 1
'REAI
4END
RETURN (n)i-ato!
+n este cdigo. si no Bu)i@semos utilizado BR"AB. el )ucle Ba)ra continuado # el resultado
sera un indicador de tendencia Cue acumulara 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"AB estructurado de esta manera?
=AR (6a!iab,e = 6a,o!De=ina,De:e!ie) TA 6a,o!De(ni-ioDe:e!ie DA
(A--i>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.
(n)i-ato! = 0
=AR i = 0 TA 19 DA
(= (6o,me/i0 " 6o,me/i E 10) THEN
(n)i-ato! = (n)i-ato! E 1
EL:E
'REAI
END(=
NEGT
RETURN (n)i-ato!
+n este ejemplo. si no se Bu)iese utilizado BR"AB. el )ucle Ba)ra continuado Basta llegar a &:
/el 6ltimo elemento de la serie3 incluso si la condicin de volumen no fuese vlida.
$on BR"AB. en cam)io. en cuanto la condicin deja de ser vlida. el programa devuelve el
resultado # se vuelve a situar a <.
III.prorealtime.com 2< > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
CO,+I,U"
!a instruccin CO,+I,U" permite reemplazar la lectura del programa en la lnea de inicio de un
)ucle 7%I(" o FOR. 4uele com)inarse a menudo con BR"AB para dar una orden de salida del
)ucle /BR"AB3 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 perodo inmediatamente previo. 4i la condicin no se verifica. el contador
volver a <.
:bi)a = +,o&e " +,o&e/10
+onta)o! = 0
4H(LE A2en @ A2en/10 DA
(= :bi)a/+onta)o!0 THEN
+onta)o! = +onta)o! E 1
+ANT(NUE
END(=
'REAI
4END
RETURN +onta)o!
A trav@s de CO,+I,U". # tras verificar Cue se cumple la condicin del IF. el programa no sale
del )ucle 7%I(". pudiendo as acumular el n6mero de figuras Cue verifican esta condicin. 4in
la instruccin CO,+I,U". el programa saldra del )ucle independientemente de Cue la
condicin del IF se cumpla o no. +n tal caso. no podramos acumular la aparicin de
configuraciones. # el resultado sera )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 condicin no se cumple. el contador volver a <.
:bi)a = +,o&e " +,o&e/10
+onta)o! = 0
=AR i = 1 TA 'a!(n)e* DA
(= :bi)a/+onta)o!0 THEN
+onta)o! = +onta)o! E 1
+ANT(NUE
END(=
'REAI
NEGT
RETURN +onta)o!
FOR permite compro)ar la condicin en todo el Bistrico disponi)le. 5ediante CO,+I,U".
cuando la condicin 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 condicin.
4in la instruccin CO,+I,U". el programa saldra del )ucle independientemente de Cue la
condicin del IF se cumpla o no. 1o sera posi)le acumular las apariciones de las
configuraciones )uscadas. # el resultado sera )inario /&.<3.
III.prorealtime.com 2& > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
O,C"
!a instruccin O,C" permite ordenar a una varia)le Cue se d@ Funa SO(A !"CJ.
+n todo programa. el lenguaje de programacin leer el cdigo tantas veces como velas Ba#a en
el grfico 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 ejecucin.
cuando se produce la relectura del cdigo por el lenguaje de programacin. @sta conservar
los valores calculados durante la lectura previa.
Para comprender .ien el funcionamiento de este comandoA es necesario tener una -isin
clara de cmo el len&ua#e lee el cdi&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
2
%
B
D
9
#
+onta)o! = 0
i = 0
(= i @= D THEN
+onta)o! = +onta)o! E i
i = i E 1
END(=
RETURN +onta)o!
1
2
%
B
D
9
#
AN+E +onta)o! = 0
AN+E i = 0
(= i @= D THEN
+onta)o! = +onta)o! E i
i = i E 1
END(=
RETURN +onta)o!
!eamos en detalle cmo el pro&rama lee los cdi&osD
Pro&rama @ :
el lenguaje lee !& /$ontador P <Q i P <3. a continuacin !2. !*. !=. !5 # ! /$ontador P <Q i P &3.
vuelve ] !& # relee todo el cdigo de nuevo # de id@ntica manera. $on R"+UR,. el lenguaje opera
una salida del programa tras Ba)er ledo este 6ltimo Fn velas vecesJ. +l resultado final es < /cero3.
al igual Cue tras la primera lectura.
Pro&rama = :
el lenguaje lee !& /$ontador P <Q i P <3. a continuacin !2. !*. !=. !5. ! /$ontador P <Q i P &3Q
llega a la lnea FR"+UR,J. retoma el )ucle a partir de !* /las lneas con O,C" slo se procesan
durante la primera lectura3. !=. !5. ! /$ontador P &Q i P 23. vuelve de nuevo /$ontador P *Q i P *3
# as sucesivamente Basta Cue /$ontador P &5Q i P 3. Tras llegar a este resultado. la )ucle en IF
deja de procesarse puesto Cue la condicin reCuerida para ello #a no se daQ slo le Cuedar leer
!". 2e aB el nuevo resultado? &5.
III.prorealtime.com 22 > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Funciones matemticas
Funciones comunes unarias / .inarias
+'aminemos aBora las funciones matemticas principales.
()serve Cue a # ) son ejemplos de argumentos decimales. Pueden reemplazarse por cualCuier
otra varia)le en su programa.
MI,/a. )3 ? calcula el mnimo 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 raz 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# matemtica normal. cu#o inter@s aCu reside en Cue se utiliza
tanto en el clculo del cuadrado. como de la raz cuadrada o en el clculo de la potencia
e'ponencial?
REM Le$ No!ma, a2,i-a)a en * = 10F De&3ia-i>n Ti2i-a = 9 $ E&2e!anLa = 8
REM De<inamo& en 3a!iab,e o2timiLa)aJ
De&3ia-ionTi2i-a = 9
E&2e!anLa = 8
* = 10
(n)i-ato! = EG5((1 . 2) 1 (:MUARE(* N E&2e!anLa) . De&3ia-ionTi2i-a)) .
(De&3ia-ionTi2i-a 1 :MRT(2 . %?1B))
RETURN (n)i-ato!
Operadores matemticos comunes
a F . : a es estrictamente inferior a )
a F2 . o a 2F . : 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 FG . : 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 t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
Funciones sumatorias
cumsum : 0alla el sumatorio /suma acumulada3 de todas las velas del grfico
!a sinta'is de uso de cumsum es ?
-m&m (2!e-io o in)i-a)o!)
summation : 0alla la suma so)re un n6mero de velas a definir
!a suma se calcula a partir de la vela ms reciente /de derecBa a izCuierda3
!a sinta'is de uso de summation es ?
&mmation/-anti)a) )e 3e,a&0(2!e-io o in)i-a)o!)
Funciones estadsticas
!a sinta'is de uso de estas funciones es anloga a la de los indicadores # de la funcin
4ummation?
,owe&t/-anti)a) )e 3e,a&0(2!e-io o in)i-a)o!)
lo)est : da el valor mnimo en el perodo definido
'i&'est : da el valor m'imo en el perodo definido
S+3 : da la desviacin tpica en un valor para un perodo definido
S+" : da el error de desviacin en un valor para un perodo definido
Operadores l&icos
$omo en todo lenguaje informtico. es preciso disponer de operadores lgicos para crear indicadores
pertinentes. Keamos a continuacin los = operadores lgicos de ProBuilder?
,O+/a3 ? 1( lgico
a OR ) ? ( lgico
a A,3 ) ? O lgico
a 1OR ) ? ( e'clusivo
Clculo del indicador de tendencia: On Balance !olume 4OB!5 :
(= NAT((+,o&e " +,o&e/10) AR (+,o&e = +,o&e/10)) THEN
MiA'6 = MiA'6 - 6o,me
EL:E
MiA'6 = MiA'6 E 6o,me
END(=
RETURN MiA'6
Instrucciones ProBuilder
R"+UR, : devuelve el resultado
CustomClose : enva un valor de precio configura)leQ por defecto. enva F$loseJ
CA(( : llama una funcin 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 t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
R"+UR,
Oa Bemos visto en el primer captulo la importancia de la instruccin R"+UR,. Posee propiedades
especficas Cue de)en conocerse para evitar ciertos errores de programacin.
Para utilizar correctamente R"+UR, en el codaje de un programa?
de)e emplearse una sola # 6nica vez
en la 6ltima lnea de cdigo
puede usarse opcionalmente con otras funciones como A4 # $(!(U7+2
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 cdigo. +stos
comentarios le a#udarn a recordar el funcionamiento de la funcin programada. !os comentarios
son ledos por el programa. pero o)viamente no sern procesados por el cdigo.
Keamos un ejemplo para ilustrar el concepto con ms claridad?
REM E&te 2!og!ama -a,-,a ,a me)ia a!itmOti-a )e 20 2e!8o)o& a, 2!e-io )e -ie!!e
RETURN A3e!age/200(+,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 anloga a la de las constantes de precio Cue se adaptan a la vista del grfico?
+&tom+,o&e/n0
Keamos un ejemplo sencillo?
RETURN +&tom+,o&e/20
Al pulsar so)re el icono con forma de llave inglesa situado en el ngulo superior izCuierdo del
grfico. compro)ar Cue es posi)le configurar los precios utilizados para el clculo /en la zona
resaltada en amarillo de la imagen Cue se muestra a continuacin3
III.prorealtime.com 25 > =*
Cap t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
CA((
CA(( permite llamar a un indicador personalizado #a e'istente en la plataforma.
+l m@todo ms rpido consiste en seleccionar directamente a partir de la categora F,ndicadores
personalesJ /en el )otn F,nsertar funcinJ al Cue se accede tras pulsar F1uevo ,ndicadorJ3 el
indicador a utilizar.
4upongamos Cue Ba codificado con el nom)re 0isto5A$2 el indicador de 5A$2 en Bistograma.
4eleccione el indicador en la lista # pulse FAEadirJ. +n la zona de programacin aparecer el $digo
m$Hi&toMA+D = +ALL Hi&toMA+D
!a plataforma Ba nom)rado directamente el antiguo indicador personalizado F0isto5A$2J como
Fm#0isto5A$2J.
+sto significa Cue a efectos del resto del programa. si desea utilizar este indicador antiguamente
llamado 0isto5A$2. de)er llamarlo con la denominacin Fm#0isto5A$2J.
AS
!a pala)ra clave AS nom)ra el resultado mostrado. +sta instruccin se utiliza conjuntamente con
R"+UR, seg6n la siguiente estructura?
RETURN Re&,ta)o1 A: PNomb!e +!3aPF Re&,ta)o2 A: PNomb!e +!3aPF H
!a ventaja consiste en facilitar la identificacin de los elementos Cue componen el indicador creado.
"#emplo:
a = E*2onentia,A3e!age/2000(+,o&e)
b = 4eighte)A3e!age/2000(+,o&e)
- = A3e!age/2000(+,o&e)
RETURN a A: PMe)ia E*2onen-ia,PF b A: PMe)ia 5on)e!a)aPF - A: PMe)ia A!itmOti-aP
CO(OUR"3
CO(OUR"3 se utiliza tras el comando R"+UR, para colorear la lnea visi)le con un color definido
seg6n la norma 7_B /red. green. )lue3. A continuacin indicamos los colores principales de esta
norma?
Color
!alor R$B
4ro#oA -erdeA a*ul5
"spaIol
/<. <. <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 t ul o I I : Funci ones e i nst r ucci ones Pr oBui l der
!a sinta'is de uso del comando $oloured es la siguiente?
RETURN (n)i-ato! +ALAURED(Re)F Q!eenF ',e)
+l comando AS puede asociarse al comando CO(OUR"3/r. g. )3 respetando el siguiente orden?
RETURN (n)i-ato! +ALAURED(Re)F Q!eenF ',e) A: PNomb!e De Mi +!3aP
7etomando el ejemplo previo. insertaremos CO(OUR"3 en la lnea del FR"+UR,J.
a = E*2onentia,A3e!age/2000(+,o&e)
b = 4eighte)A3e!age/2000(+,o&e)
- = A3e!age/2000(+,o&e)
RETURN a +ALAURED(2DDF 0F 0) A: PMe)ia Mo3i, E*2onen-ia,PF b +ALAURED(0F 2DDF 0)
A: P4eighte) Me)ia 5on)e!a)aPF - +ALAURED(0F 0F 2DD) A: PMe)ia Mo3i, :im2,eP
!a imagen muestra la personalizacin de los colores en el grfico resultante.
III.prorealtime.com 2" > =*
Cap t ul o I I I : Apl i caci ones pr ct i cas
Captulo III: Aplicaciones prcticas
Creacin de un indicador .inario o ternario: l&ica / mJtodo
Por definicin. un indicador )inario o ternario no puede devolver ms de dos o tres resultados posi)les
/generalmente < .& o D&3 respectivamente. 4u utilidad principal en el m)ito )urstil consiste en
permitir la verificacin inmediata de la condicin Cue constitu#e el indicador.
Utilidad de un indicador .inario o ternario:
permite detectar las principales configuraciones de velas japonesas
facilita la lectura del grfico cuando se )uscan varias condiciones simultneas
permite crear alertas de una sola condicin 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 Bistricos
facilita la programacin de un )acAtest /sistema o estrategia3
!os indicadores )inarios o ternarios se constru#en con a#uda de la funcin ,-. Por ello. se recomienda
releer la seccin referente a esta funcin para aprovecBar mejor las e'plicaciones ofrecidas a
continuacin.
,lustremos la creacin de estos indicadores personalizados para detectar configuraciones de precios?
Indicador .inario: deteccin de un Martillo
.. Dete--i>n )e n Ma!ti,,o
Ma!ti,,o = +,o&e"A2en AND High = +,o&e AND (A2en-Low)"=%1(+,o&e-A2en)
(= Ma!ti,,o THEN
Re&,ta)o = 1
EL:E
Re&,ta)o = 0
END(=
RETURN Re&,ta)o A: PMa!ti,,oP
Indicador ternario: deteccin de Cruces doradas / de Cruces mortales
a = E*2onentia,A3e!age/100(+,o&e)
b = E*2onentia,A3e!age/200(+,o&e)
- = 0
.. Dete--i>n )e +!L )o!a)a
(= a +RA::E: A6ER b THEN
- = 1
END(=
.. Dete--i>n )e +!L mo!ta,
(= a +RA::E: UNDER b THEN
- = -1
END(=
RETURN -
III.prorealtime.com 2% > =*
Cap t ul o I I I : Apl i caci ones pr ct i cas
ota: )emos mostrado las medias m%viles e*ponenciales de 1+ , -+ per.odos aplicadas al precio de
cierre para evidenciar la correspondencia de los resultados del indicador con ms nitide/.
0ncontrar otros ejemplos de indicadores de detecci%n de con1iguraciones 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 funcin de parmetros personalizados.
$on el mdulo ProBacATest. cu#a informacin 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 cotizacin del valor reside en el BecBo Cue?
permite visualizar el stop como una lnea Cue se actualiza en tiempo real directamente so)re el
grfico del precio
no necesita definir las rdenes de compra ni de venta /lo Cue s es necesario en la programacin
de un ProBacATest3
puede asociar alertas en tiempo real /# reci)irlas en pantalla o en su mvil3 para ser informado
inmediatamente en el momento en Cue la condicin fijada se est@ cumpliendo
!a programacin de los 4top le permitir aplicar los principales comandos presentados en los
captulos precedentes.
Par ailleurs. dans le manuel ProBacATest vous pourrez trouver plusieurs e'emples de stop ] ins@rer
dans des strat@gies dLinvestissement.
+'isten = tipologas de stop Cue e'aminaremos a continuacin?
S+OP profit esttico
S+OP loss esttico
S+OP de inacti-idad
S+OP de se&uimiento 4trailin& stop5
!os cdigos Cue se proponen en los ejemplos presentados a continuacin constitu#en sugestiones
para la construccin de indicadores de stop. ()viamente. de)er personalizarlos seg6n las
instrucciones descritas en los captulos anteriores.
III.prorealtime.com 2: > =*
Cap t ul o I I I : Apl i caci ones pr ct i cas
S+OP profit esttico
Un 2T'# pro1it o Ta3e4#ro1it. designa un lmite superior de salida de posicin. Por definicin. este
lmite es fijo? el inversor cerrar la posicin con ganancias en el momento en Cue el precio cruce
este lmite de 4top.
+l indicador Cue se presenta a continuacin ofrece 2 niveles con toma de posicin a partir del
momento F0ora,nicioJ.
si Ud. es comprador. tiene una posicin larga /long3. 2e)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 posicin corta /sBort3. 2e)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 continuacin un ejemplo de 4top profit personaliza)le?
.. De<ini-i>n )e 3a!iab,e& o2timiLa)a&J
.. Ho!a(ni-io = 100000 (en e&te eCem2,o <iCamo& ,a ho!a )e ent!a)a a ,a& 10h00min00&)
.. 5!e-io= 5!e-io en ,a a2e!t!a )e ,a 2o&i-i>n
.. :i tiene na 2o&i-i>n ,a!ga (,ong)F &egi!7 ,a -!3a &2e!io!? :i e&t7 en
2o&i-i>n -o!ta (&ho!t)F &egi!7 ,a -!3a in<e!io!?
.. Am2,it)U2 = 1?1 (!e2!e&enta ,a 3a!ia-i>n )e, 2!e-ioF $ &e ti,iLa 2a!a t!aLa!
e, :to2 2!o<it en 2o&i-ione& ,a!ga& (,ong))
.. Am2,it)Down = 0?9 (!e2!e&enta ,a 3a!ia-i>n )e, 2!e-ioF $ &e ti,iLa 2a!a
t!aLa! e, :to2 2!o<it en 2o&i-ione& -o!ta& (&ho!t))
(= Time = Ho!a(ni-io THEN
:to2LANQ = Am2,it)U2 1 5!e-io
:to2:HART = Am2,it)Down 1 5!e-io
END(=
RETURN :to2LANQ +ALAURED(0F 0F 0) A: PTaRe5!o<it LANQ 10SPF :to2:HART +ALAURED(0F
2DDF 0) A: PTaRe5!o<it :HART 10SP
S+OP loss esttico
Un 2T'# Loss es el contrario del 2T'# Ta3e4#ro1itQ en lugar de definir un lmite de salida con
ganancias. se define un lmite de p@rdida m'ima asumi)le. a partir del cual se cierra la posicin.
Al igual Cue el Ta3e4#ro1it. el lmite es fijo /esttico3.
+l indicador Cue se presenta a continuacin ofrece 2 niveles con toma de posicin a partir del
momento F0ora,nicioJ.
si Ud. es comprador. tiene una posicin larga /long3. 2e)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 posicin corta /sBort3. 2e)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 continuacin un ejemplo de 4top profit personaliza)le?
.. De<ini-i>n )e 3a!iab,e& o2timiLa)a&J
.. Ho!a(ni-io = 100000 (en e&te eCem2,o <iCamo& ,a ho!a )e ent!a)a a ,a& 10h00min00&)
.. :i tiene na 2o&i-i>n ,a!ga (,ong)F &egi!7 ,a -!3a in<e!io!? :i e&t7 en
2o&i-i>n -o!ta (&ho!t)F &egi!7 ,a -!3a &2e!io!?
.. 5!e-io= 5!e-io en ,a a2e!t!a )e ,a 2o&i-i>n
.. Am2,it)U2 = 1?1 (!e2!e&enta ,a 3a!ia-i>n )e, 2!e-ioF $ &e ti,iLa 2a!a t!aLa!
e, :to2 ,o&& en 2o&i-ione& -o!ta& (&ho!t))
..Am2,it)Down = 0?9 (!e2!e&enta ,a 3a!ia-i>n )e, 2!e-ioF $ &e ti,iLa 2a!a
t!aLa! e, :to2 ,o&& en 2o&i-ione& ,a!ga& (,ong))
(= Time = Ho!a(ni-io THEN
:to2LANQ = Am2,it)U2 1 5!e-io
:to2:HART = Am2,it)Down 1 5!e-io
END(=
RETURN :to2LANQ +ALAURED(0F 0F 0) A: P:to2Lo&& 'UT 10SPF :to2:HART +ALAURED(0F
2DDF 0) A: P:to2Lo&& :ELL 10SP
III.prorealtime.com *< > =*
Cap t ul o I I I : Apl i caci ones pr ct i cas
S+OP de inacti-idad
Un 4T(P de inactividad cierra una posicin cuando el precio se mueve en un rango demasiado
estrecBo # el o)jetivo de )eneficio no se alcanza en un perodo determinado /e'presado en
n6mero de velas3.
+l cierre de la posicin tendr lugar en el rango inferior si la posicin es larga /long3 o en el rango
superior si la posicin es corta /sBort3.
+l 4top mostrado a continuacin 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,i)a) = 0?01 Ue -o!!e&2on)e a ,a b!e-ha !e,ati3a )e ,a& ban)a&
&2e!io! e in<e!io!
(= (nt!a)a$'a!(n)e* = 0 THEN
AbCeti3o:ho!t = (1 - Mi6o,ati,i)a)) 1 +,o&e
AbCeti3oLong = (1 E Mi6o,ati,i)a)) 1 +,o&e
END(=
RETURN AbCeti3o:ho!t A: PAbCeti3o:ho!tPF AbCeti3oLong A: PAbCeti3oLongP
+jemplo de 4T(P de inactividad en grfico intradiario?
.. De<ini-i>n )e 3a!iab,e& o2timiLa)a&J
REM La 2o&i-i>n &e ab!e a 2!e-io )e me!-a)o
.. Mi6o,ati,i)a) = 0?01 Ue -o!!e&2on)e a ,a b!e-ha !e,ati3a )e ,a& ban)a& &2e!io!
e in<e!io! )e, !ango )e<ini)o
.. Nme!oDe6e,a& = 20 -o!!e&2on)e a ,a )!a-i>n m7*ima en nme!o )e 3e,a& 2e!miti)a
ante& )e <o!La! e, -ie!!e )e ,a 2o&i-i>n (!e&,ta)o 1)
Re&,ta)o = 0
+2t = 0
(= (nt!a)a$'a!(n)e* = 0 THEN
AbCeti3o:ho!t = (1 - Mi6o,ati,i)a)) 1 +,o&e
AbCeti3oLong = (1 E Mi6o,ati,i)a)) 1 +,o&e
END(=
=AR i = (nt!a)a$'a!(n)e* DA4NTA 1 DA
(= +,o&e/i0 "= AbCeti3o:ho!t AND +,o&e/i0 @= AbCeti3oLong THEN
+2t = +2t E 1
EL:E
+2t = 0
END(=
(= +2t = Nme!oDe6e,a& THEN
Re&,ta)o = 1
END(=
NEGT
RETURN Re&,ta)o
III.prorealtime.com *& > =*
Cap t ul o I I I : Apl i caci ones pr ct i cas
+railin& S+OP
Un Trailing 2T'# sigue de modo dinmico la evolucin del precio. indicando el momento en Cue la
posicin Ba de ser cerrada.
Proponemos a continuacin dos tipologas de Trailing 2T'#. correspondientes a la versin
dinmica del 4top !oss # del 4top Profit.
+railin& S+OP (OSS 4aplica.le en intrada5
.. De<ini-i>n )e 3a!iab,e& o2timiLa)a&J
.. Ho!a(ni-io = 090000 (en e&te eCem2,o <iCamo& ,a ho!a )e ent!a)a a ,a&
09h00min00&)
REM La 2o&i-i>n &e ab!e a 2!e-io )e me!-a)o
.. Am2,it) = 0?9 (!e2!e&enta n &to2 a, 10S)
(= Time = Ho!a(ni-io THEN
(= ,owe&t/D0(+,o&e) @ 1?2 1 Low THEN
(= ,owe&t/D0(+,o&e) "= +,o&e THEN
+t = Am2,it) 1 ,owe&t/D0(+,o&e)
EL:E
+t = Am2,it) 1 ,owe&t/200(+,o&e)
END(=
EL:E
+t = Am2,it) 1 ,owe&t/200(+,o&e)
END(=
END(=
RETURN +t A: PT!ai,ing :to2 Lo&&P
+railin& S+OP Profit 4aplica.le en intrada5
.. De<ini-i>n )e 3a!iab,e& o2timiLa)a&J
.. Ho!a(ni-io = 090000 (en e&te eCem2,o <iCamo& ,a ho!a )e ent!a)a a ,a&
09h00min00&)
REM La 2o&i-i>n &e ab!e a 2!e-io )e me!-a)o
.. Am2,it) = 1?1 (!e2!e&enta n &to2 a, 110S)
(= Time = Ho!a(ni-io THEN
5!e-io(ni-io = +,o&e
END(=
5!e-io = 5!e-io(ni-io - A3e!ageT!eRange/100
T!ai,ing:to2 = Am2,it) 1 highe&t/1D0(5!e-io)
RETURN T!ai,ing:to2 +ALAURED (2DDF 0F 0) A: PT!ai,ing taRe 2!o<itP
III.prorealtime.com *2 > =*
Cap t ul o I !: "# er ci ci os
Captulo I!: "#ercicios
Confi&uraciones de -elas #aponesas
$AP UP o $AP 3O7,
+n este tipo de configuraciones. el color de las velas es irrelevante.
2efinimos la amplitud como varia)le optimizada de valor <.<<&
+l gap se define con estas dos condiciones?
la apertura del da actual es estrictamente superior al cierre de la vspera. ( B,+1 estrictamente
inferior a cierre de la vsperaQ
el valor a)soluto resultante de calcular T/apertura del da Y cierre vspera3 > cierre vsperaU es
estrictamente superior a la amplitud.
.. De<ini-i>n )e 3a!iab,e o2timiLa)a
.. Am2,it) ()e, Qa2)
Am2,it) = 0?001
.. 5!ime!a -on)i-i>n )e e*i&ten-ia )e, Qa2
(= A2en " +,o&e/10 AR A2en @ +,o&e/10 THEN
.. :egn)a -on)i-i>n )e e*i&ten-ia )e, Qa2
(= A':((A2en N +,o&e/10) . +,o&e/10) " Am2,it) THEN
.. 'K&Ue)a )e, Qa2
Dete-to! = :QN(A2en N +,o&e/10)
EL:E
Dete-to! = 0
END(=
EL:E
Dete-to! = 0
END(=
.. Re&,ta)o
RETURN Dete-to! A: PQa2 )ete--ionP
III.prorealtime.com ** > =*
Cap t ul o I !: "# er ci ci os
3o#i 4-ersin amplia5
+l 2oji se define como un rango estrictamente superior a 5 veces el valor
a)soluto de /(pen Y $lose3.
DoCi = Range " A':(A2en - +,o&e) 1 D
RETURN DoCi A: PDoCiP
3o#i 4-ersin estricta5
+n su versin estricta. el 2oji se define por un $lose P (pen.
DoCi = (A2en = +,o&e)
RETURN DoCi A: PDoCiP
Indicadores
BO36 MOM",+UM
!a definicin matemtica del Bod# 5omentum es as?
Bod#5omentum P &<< a Bod#Up > /Bod#Up M Bod#2oIn3
Bod#Up es un contador del n6mero de velas Cue cierran a un nivel de precios superior al de la
apertura. durante un perodo definido /en el cdigo de este ejemplo tomamos un perodo P &=3. +l
contador Bod#2oIn es anlogo en sentido inverso /cierre inferior a apertura3.
5e!io)o& = 1B
b = +,o&e - A2en
(= 'a!(n)e* " 5e!io)o& THEN
'2 = 0
')n = 0
=AR i = 1 TA 5e!io)o&
(= b/i0 " 0 THEN
'2 = '2 E 1
EL:(= b/i0 @ 0 THEN
')n = ')n E 1
END(=
NEGT
'M = ('2 . ('2 E ')n)) 1 100
EL:E
'M = Un)e<ine)
END(=
RETURN 'M A: P'o)$ MomentmP
III.prorealtime.com *= > =*
Cap t ul o I !: "# er ci ci os
OSCI(A3OR 3" O,3AS "((IO+
+l oscilador de ondas +lliot representa la diferencia de medias mviles.
!a media mvil corta representa la accin del precio. mientras Cue la media mvil larga representa la
tendencia de fondo.
$uando los precios forman una onda *. aumentarn fuertemente. +n consecuencia. el valor del
oscilador aumentar sensi)lemente.
Al llegar a una onda 5. los precios aumentarn ms lentamente # el oscilador tomar un valor mucBo
menos elevado.
RETURN A3e!age/D0(Me)ian5!i-e) - A3e!age/%D0(Me)ian5!i-e) A: PA&-i,a)o! An)a& E,,iotP
7illiams :R
4u funcionamiento es similar al de un estocstico. Para trazarlo. se definen primero dos curvas.
+l `7 Cueda as definido por /$lose Y !oIest! 3 > /0igBest0 Y !oIest! 3 a &<<
Highe&tH = highe&t/1B0(High)
Lowe&tL = ,owe&t/1B0(Low)
Mi4i,,iam& = (+,o&e - Lowe&tL) . (Highe&tH - Lowe&tL) 1 100
RETURN Mi4i,,iam& A: P4i,,iam& SRP
Bandas de Bollin&er
!as )andas se componen de una media mvil de 2< perodos Cue se aplica al cierre. !a media mvil
se multiplica por el do)le de la desviacin tpica so)re las 2< velas previas del precio al cierre para
limitar las )andas superior e inferior.
a = A3e!age/200(+,o&e)
.. De<ini-ion )e ,a )e&3ia-ion ti2i-a
De&3ia-ionTi2i-a = :TD/200(+,o&e)
'&2 = a E 2 1 De&3ia-ionTi2i-a
'in< = a - 2 1 De&3ia-ionTi2i-a
RETURN a A: PA3e!agePF '&2 A: P'o,,inge! U2PF 'in< A: P'o,,inge! DownP
III.prorealtime.com *5 > =*
$l osar i o
$losario
A
Cdi&o Implementacin Funcin
A': AB4/a3 -uncin matemtica ZKalor A)solutoZ
A--mDi&t! Accum2istr/price3 2esigna la Acumulacin 2istri)ucin clsica
ADG A28T1U ,ndicador Average 2ireccinal ,nde'
ADGR A287T1U ,ndicador Average 2ireccinal ,nde' 7ate
AND a A12 ) (perador lgico O
A!oonDown Aroon2oInTPU 2esigna el Aroon 2oIn
A!oonU2 AroonUpTPU 2esigna el Aroon Up
ATAN ATA1/a3 -uncin matemtica ZArctangenteZ
A: 7+TU71 7esult A4
Z7esult1ameZ
,nstruccin utilizada para atri)ur un nom)re a
una curva
A3e!age AverageT1U/price3 5edia 5vil Aritm@tica
A3e!ageT!eRange AverageTrue7angeT1U/price3 2esigna la 5edia mvil con alisado de 9ilder
del True 7ange
B
Cdi&o Implementacin Funcin
'a!(n)e* Bar,nde' 16mero de velas desde el incio de la descarga
de datos /en el grfico en el caso de un
indicador ProBuilder o para un sistema de
trading en el caso de ProBacAtest o Pro,nvest3
'o,,inge!'an)4i)th BollingerBand9idtBT1U/price3 AncBo de )anda de Bollinger
'o,,inge!Down Bollinger2oInT1U/price3 4oporte de la )anda de Bollinger
'o,,inge!U2 BollingerUpT1U/price3 7esistencia de la )anda de Bollinger
'REAI /-(7...2(...B7+A;...1+8T3
o
/90,!+...2(...B7+A;...9+123
,nstruccin de salida forzada de )ucle -(7 o
90,!+
III.prorealtime.com * > =*
$l osar i o
C
Cdi&o Implementacin Funcin
+ALL m#7esult P $A!! m#-unction !lamada de funcin del usuario
++( $$,T1U/price3 o $$,T1U
aplicado por defecto en
T#picalPrice
$ommodit# $Bannel ,nde'
+haiRinA&- $BaiAin(scT$B&. $B2U/price3 2esigna el oscilador de $BaiAin
+han),e $BandleT1U/price3 2esigna el $Bande 5omentum (scillator
+han)eI!o,,:to2U2 $Bande;roll4topUpTPp. bC. 8U 4top de proteccin seg6n $Bande # ;roll en
posicin compradora
+han)eI!o,,:to2Down $Bande;roll4top2oInTPp.
bC. 8U
4top de proteccin seg6n $Bande # ;roll en
posicin vendedora
+,o&e $loseT1U 2esigna el precio de cierre de la vela actual o
de n das previos
+ALAURED 7+TU71 7esult
$(!(U7+2/7._.B3
$olorea una curva de un cierto color seg6n la
convencin 7_B
+A: $(4/a3 -uncin $oseno
+RA::E: A6ER a $7(44+4 (K+7 ) (perador )ooleano Cue verifica Cue una curva
pase por encima de otra
+RA::E: UNDER a $7(44+4 U12+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
Bistrico mostrado
+!!entDa$A<4eeR $urrent2a#(f9eeA 2esigna el da actual
+!!entHo! $urrent0our 2esigna la Bora actual
+!!entMinte $urrent5inute 2esigna el minuto actual
+!!entMonth $urrent5ontB 2esigna el mes actual
+!!ent:e-on) $urrent4econd 2esigna el segundo actual
+!!entTime $urrentTime 2esigna 0ora5inuto actual
+!!entTea! $urrentOear 2esigna el aEo actual
+&tom+,o&e $ustom$loseT1U $onstante configura)le en la ventana de
propiedades al mostrar el grfico /por defecto.
cierre3
+$-,e $#cle/price3 ,ndicador $iclo /en precio3
III.prorealtime.com *" > =*
$l osar i o
3
Cdi&o Implementacin Funcin
Date 2ateT1U 2esigna la fecBa de cierre de la vela actual
Da$ 2a#T1U 2a de cierre de la vela actual
Da$& 2a#sT1U $ontador de das desde &:<<
Da$A<4eeR 2a#(f9eeAT1U 2esigna el da de la semana durante el cual la
vela actual se Ba cerrado
D+,o&e 2$lose/13 Precio de cierre del en@simo da previo al de la
vela actual
DEMA 2+5AT1U/price3 2o)le 5edia 5vil +'ponencial
DHigh 20igB/13 Precio m'imo del en@simo da previo al de la
vela actual
D( 2,T1U/price3 2esigna el 2emand ,nde' /,ndice de la
2emanda3
D(min& 2,minusT1U/price3 2esigna el 2,D
D(2,& 2,plusT1U/price3 2esigna el 2,M
DLow 2!oI/13 Precio mnimo del en@simo da previo al de la
vela actual
DA Ker -(7 et 90,!+ ,nstruccin opcional de los )ucles -(7 #
90,!+ para introducir la accin de inicio de
)ucle
DA2en 2(pen/13 Precio de apertura del en@simo da previo al de
la vela actual
DA4NTA Ker -(7 ,nstruccin Cue se aplica so)re el )ucle -(7
para ordenar una lectura decreciente
D5A 2P(T1U/price3 2esigna el 2etrented Price (scillator
"
Cdi&o Implementacin Funcin
Ea&eA<Mo3ement +ase(f5ovementT,U 2esigna el indicador +ase of 5ovement
EL:E Ker ,->T0+1>+!4+>+12,- ,nstruccin de llamada de la segunda condicin
a defecto de la primera salida de ,-
EL:E(= Ker ,->T0+1>+!4+>+12,- $ontraccin de +!4+ ,- /im)ricacin en un
conjunto de instrucciones condicionales de otro
conjunto de instrucciones3
EM6 +5KT1U 2esigna el indicador +ase of 5ovement Kalue
END(= Ker ,->T0+1>+!4+>+12,- ,nstruccin a introducir al final del conjunto de
instrucciones condicionales
En)5ointA3e!age +ndPointAverageT1U/price3 Ultimo punto de 5edia 5vil
EG5 +8P/a3 -uncin matemtica Z+'ponencialZ
E*2onentia,A3e!age +'ponentialAverageT1U/price3 5edia 5vil +'ponencial
III.prorealtime.com *% > =*
$l osar i o
F K $
Cdi&o Implementacin Funcin
=AR.TA.NEGT -(7 iPa T( ) 2( a 1+8T Bucle ZParaZ /Toma todos los valores del inicio
al final designado. o vice versa /2(91T(33
=o!-e(n)e* -orce,nde'/price3 2a el indicador -orce ,nde'. Cue determina
Cui@n controla el mercado /vendedor.
comprador3
%
Cdi&o Implementacin Funcin
High 0igBT1U 2esigna el precio m'imo alcanzado durante el
perodo 1
highe&t BigBestT1U/price3 2esigna el m'imo de un perodo sur un
Borizonte temporal dado
Hi&to!i-6o,ati,it$ 0istoricKolatilit#T1U/price3 2esigna la volatilidad Bistrica /o volatilidad
estadstica3
Ho! 0ourT1U 2esigna la Bora de cierre de cada vela del
Bistrico
I K L K B
Cdi&o Implementacin Funcin
(=.THEN.END(= ,- a T0+1 ) +12,- $onjunto de instrucciones condicionales sin
segunda condicin
(=.THEN.EL:E.END(= ,- a T0+1 ) +!4+ c +12,- $onjunto de instrucciones condicionales
(nt!a)a$'a!(n)e* ,ntrada#Bar,nde'T1U $uenta el n6mero de velas en el grfico
intrada#
(
Cdi&o Implementacin Funcin
Linea!Reg!e&&ion !inear7egressionT1U/price3 7egresin linear
Linea!Reg!e&&ion:,o2e !inear7egression4lopeT1U
/price3
Pendiente de la regresin linear
LAQ !(_/a3 -uncin matemtica Zlogaritmo neperianoZ
Low !oIT1U 2esigna el mnimo alcanzado durante el
perodo
,owe&t loIestT1U/price3 2esigna el mnimo de un perodo dentro de un
Borizonte temporal dado
III.prorealtime.com *: > =*
$l osar i o
M
Cdi&o Implementacin Funcin
MA+D 5A$2T4.!.4iU/price3 2esigna al 5oving Average $onvergence
2ivergence /5A$23 en Bistograma
MA+D,ine 5A$2!ineT4.!U/price3 2esigna la lnea del 5A$2
Ma&&(n)e* 5ass,nde'T1U ,ndicador 5ass ,nde' aplicado en 1 velas
MAG 5A8/a.)3 -uncin matemtica Z5'imoZ
Me)ian5!i-e 5edianPrice 5edia del precio m'imo # del mnimo
M(N 5,1/a.)3 -uncin matemtica Z5nimoZ
Minte 5inute 2esigna el minuto del instante del cierre de
cada vela del Bistrico
MAD a 5(2 ) -uncin matemtica Z7esto del cociente
eucldeoZ
Momentm 5omentumT,U 2esigna el 5omentum /precio de cierre actual Y
precio de cierre de la en@sima vela precedente3
Mone$=,ow 5one#-loIT1U/price3 2esigna el 5one#-loI entre D& # &
Mone$=,ow(n)e* 5one#-loI,nde'T1U 2esigna el 5one#-loI,nde'
Month 5ontBT1U 2esigna el mes de cierre de cada vela del
Bistrico
,
Cdi&o Implementacin Funcin
NEGT Ker -(7>T(>1+8T ,nstruccin a introducir al final del )ucle ZParaZ
/-(73
NAT 1(T a (perador lgico 1(
O
Cdi&o Implementacin Funcin
A'6 (BK/price3 2esigna el Z(nDBalanceDKolumeZ
AN+E (1$+ Karia)le1ame P
Karia)leKalue
,nstruccin Cue precede a otra Cue deseamos
ejecutar una sola vez
A2en (penT1U 2esigna el precio de apertura de la vela actual
o celle de n das previos
AR a (7 ) (perador lgico (
P K E
Cdi&o Implementacin Funcin
5!i-eA&-i,,ato! Price(scillatorT4.!U/price3 ,ndicador Percentage Price oscillator
5o&iti3e6o,me(n)e* PriceKolume,nde'/price3 2esigna el indicador Positive Kolume ,nde'
56T PKT/price3 2esigna el indicador ZPrice Kolume TrendZ
III.prorealtime.com =< > =*
$l osar i o
R
Cdi&o Implementacin Funcin
R2 72T1U/price3 2esigna el coeficiente 7 $uadrado /error de
precios en la regresin linear3
Range 7angeT1U 2evuelve el 7ange /rango. diferencia entre el
precio m'imo # mnimo de la vela actual3
REM 7+5 comentario Precede un comentario /el cdigo no lo toma en
cuenta. pero facilitan la lectura al usuario3
Re2,&e 7epulseT1U/price3 2evuelve el indicador 7epulse /mide la fuerza
alcista # )ajista de cada vela3
RETURN 7+TU71 7esultado ,nstruccin Cue enva el resultado
RA+ 7($T1U/price3 2esigna el ZPrice 7ate of $BangeZ
R:( 74,T1U/price3 2esigna el oscilador Z7elative 4trengtB ,nde'Z
RAUND 7(U12/a3 -uncin matemtica Z7edondeo a la unidadZ
/parte entera3
S
Cdi&o Implementacin Funcin
:AR 4A7TAt.4t.!imU 2esigna el Para)lico 4A7
:ARat)m< 4A7atdmfTAt.4t.!imU/price3 2esigna el Para)lico 4A7 en el mdulo
AT25-
:(N 4,1/a3 -uncin matemtica Z4enoZ
:QN 4_1/a3 -uncin matemtica Z4igno deZ
:M( 45,T1.44.24U/price3 2esigna el ndice +stocstico 5omentum
/4tocBastic 5omentum ,nde'3
:moothe):to-ha&ti- 4mootBed4tocBasticT1.;U
/price3
2esigna un estocstico alisado
:MUARE 4bUA7+/a3 -uncin matemtica Z$uadradoZ /potencia 23
:MRT 4b7T/a3 -uncin matemtica Z7az cuadradaZ
:TD 4T2T1U/price3 -uncin estadstica Z2esviacin TpicaZ
:TE 4T+T1U/price3 -uncin estadstica Z+rror tpicoZ
:to-ha&ti- 4tocBasticT1.;U/price3 !nea `; del +stocstico
&mmation summationT1U/price3 4uma de un cierto precio de las 1 6ltimas velas
:2e!t!en) 4upertrendT4T-.1U 2esigna el 4uper Trend
III.prorealtime.com =& > =*
$l osar i o
+
Cdi&o Implementacin Funcin
TAN TA1/a3 -uncin matemtica ZTangenteZ
TEMA T+5AT1U/price3 5edia 5vil +'ponencial Triple
THEN Ker ,->T0+1>+!4+>+12,- ,nstruccin Cue sigue la primera condicin del
conjunto condicional Z,-Z
Time TimeT1U 2a la evolucin de la 0ora5inuto4egundo #
permite llamar la Bora en el programa
Time:e!ie&A3e!age Time4eriesAverageT1U/price3 5edia 5vil de las series temporales
TA Ker -(7>T(>1+8T ,nstruccin ZBasta Z en el )ucle ZParaZ /-(73
To)a$ Toda# -ecBa actual
Tota,5!i-e TotalPriceT1U /cierre M apertura M m'imo M mnimo3 > =
TR T7/price3 2esigna el True 7ange
T!iang,a!A3e!age TriangularAverageT1U/price3 5edia 5vil Triangular
TR(G T7,8T1U/price3 Triple 5edia 5vil +'ponencial
T$2i-a,5!i-e T#picalPriceT1U 2esigna el precio Tpico /5edia de m'imo.
mnimo # cierre3
U
Cdi&o Implementacin Funcin
Un)e<ine) a P Undefined Permite dejar una varia)le indefinida /es un tipo
de varia)le3
!
Cdi&o Implementacin Funcin
6a!iation Kariation/price3 2a la diferencia entre el cierre de la vspera # el
cierre actual en `
6o,ati,it$ Kolatilit#T4. !U 2esigna la volatilidad de $BaiAin
6o,me KolumeT1U 2esigna el volumen
6o,meA&-i,,ato! Kolume(scillatorT4.!U 2esigna el oscilador de volumen
6o,meRA+ Kolume7($T1U 2esigna el volumen del 7ate (f $Bange /7($3
III.prorealtime.com =2 > =*
$l osar i o
7
Cdi&o Implementacin Funcin
4eighte)A3e!age 9eigBtedAverageT1U/price3 2esigna la 5edia 5vil Ponderada
4eighte)+,o&e 9eigBted$loseT1U 2a la 5edia entre el precio de cierre. m'imo #
mnimo. con ponderaciones respectivas de 2. &
# &
4END Ker 90,!+>2(>9+12 ,nstruccin a introducir al final del )ucle
9Bile>2o>9Bend /mientras3
4H(LE.DA.4END 90,!+ /condicin3 2(
/accin3 9+12
Bucle Z5ientrasZ
4i,)e!A3e!age 9ilderAverageT1U/price3 2a la 5edia 5vil de 9ilder
4i,,iam& 9illiamsT1U/close3 $alcula el `7 de 9illiams
4i,,iam&A--mDi&t! 9illiamsAccum2istr/price3 ,ndicador Acumulacin>2istri)ucin de 9illiams
1
Cdi&o Implementacin Funcin
GAR a 8(7 ) (perador lgico ( e'clusivo
6
Cdi&o Implementacin Funcin
Tea! OearT1U 2a la evolucin de los aEos # permite llamar a
los aEos en el programa
Te&te!)a$ Oesterda#T1U 2a la evolucin del da de a#er # permite llamar
a este 6ltimo en el programa
C
Cdi&o Implementacin Funcin
VigVag NigNagTNrU/price3 2esigna los NigDNag de la teora de las ondas
de +liott
VigVag5oint NigNagPointTNpU/price3 2esigna los NigDNag de la teora de las ondas
de +liott calculadas a N puntos
Otros
Cdi&o Funcin Cdi&o Funcin
E (perador de adicin @" (perador de diferencia
- (perador de sustraccin @ (perador de inferioridad estricta
1 (perador de multiplicacin " (perador de superioridad estricta
. (perador de divisin decimale @= (perador de inferioridad
= (perador de igualdad "= (perador de superioridad
III.prorealtime.com =* > =*
III.prorealtime.com