Programación AFL _ AMIBROKER

Foro para tratar todo lo relacionado con AmiBroker y el lenguaje de programación AFL.
Responder
JMVMRGR
Mensajes: 91
Registrado: 23 Nov 2007 17:14

Programación AFL _ AMIBROKER

Mensaje por JMVMRGR »

Para programar un indicador, necesito la volatilidad historica. AMIBROKER no trae esta función. ¿Como puedo programar esta instrucción en AMIBROKER?. Gracias

Saludos,
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

Creo que yo tengo el mismo problema que tu...

Yo cree un indicador muy simple en visual chart y ahora quiero hacerlo para amibroker.

Si abrimos el codigo del indicador rsi del amibroker veremos algo parecido a:
PLOT (RSI(), ....);

Es decir, que RSI() es una funcion que calcula el valor del RSI. Si despues queremos hacer un sistema que aplique el RSI hacemos referencia a la función RSI() y no al indicador como se haria en visual chart, ya que en amibroker el indicador simplemente dibuja.

Entonces lo que yo necesito es hacer MIPROPIOINDICADOR() como una funcion, la cual luego la convertire en indicador usando PLOT y por otro lado usare esa función para los sistemas.

No estoy seguro... pero si esto es tal como lo digo, ¿como se crea una función en amibroker???
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
ranunculo
Mensajes: 782
Registrado: 03 Abr 2006 22:52
Ubicación: Bilbao
Contactar:

Mensaje por ranunculo »

Hola Polxx. veo que sigues con tu problema.
Pero aun no acabo de entenderlo.
Si tienes el algoritmo de un indicador para usarlo en un sistema, pues simplemente utilizalo.. Yo no he usado funciones en un codigo Amibroker, pero en todos los ejemplos que he visto, en vez de usar funciones, se usa el codigo en el sistema directamente..
Un ejemplo:
A = H - C;
B = ( ( 100 * A ) / C );
D = (100 * 0.50 ) / H;
E = (100 * 0.50 ) / L;

Cond5 = O > (H - D); // AND B < 0.50;
Cond6 = C <= (L + E);
BUY=cond5 and cond6;
y ya esta..
ranunculo
Mensajes: 782
Registrado: 03 Abr 2006 22:52
Ubicación: Bilbao
Contactar:

Mensaje por ranunculo »

De todos modos puedes usar la funcion Function. El ejemplo de Ami es claro:

function IIR2( input, f0, f1, f2 )
{
result[ 0 ] = input[ 0 ];
result[ 1 ] = input[ 1 ];

for( i = 2; i < BarCount; i++ )
{
result[ i ] = f0 * input[ i ] +
f1 * result[ i - 1 ] +
f2 * result[ i - 2 ];
}

return result;
}

Plot( Close, "Price", colorBlack, styleCandle );
Plot( IIR2( Close, 0.2, 1.4, -0.6 ), "function example", colorRed );

En esta ultima linea usas el nombre de la funcion (IIR2) en el comando Plot para dibujar el grafico..
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

Bueno pues gracias a ranunculo ya lo he comprendido, lo explico mejor por si le sirve a alguien.

En visual chart tenemos indicadores, que toman unos datos de entrada y pintan en pantalla unas lineas de resultado, y esas lineas pueden usarse en otros indicadores o tambien sistemas. Asi que los indicadores de visual chart podrian considerarse como funciones clasicas de programacion.

Y tambien tenemos sistemas, que toman datos de entrada y/o indicadores, y devuelven operaciones sobre el grafico.


Pero en amibroker no se diferencia entre indicadores o sistemas. Si algo usa la funcion PLOT() entonces se podria considerar un indicador. Y si algo usa BUY o SELL entonces lo consideramos un sistema. Pero en realidad un cosigo puede ser indicador y sistema a la vez, en caso de que incluya PLOT y BUY...

Lo que si incluye amibroker son las clasicas funciones de programación, que toman unos datos de entrada y dan resultado de salida.

Asi que si inventamos un indicador nuevo y queremos representarlo en pantalla y ademas operar con el, lo que debemos hacer es programar ese codigo a modo de funcion y crear un indicador que contenta y use esa funcion para dibujarlo en pantalla y por otro lado hacer un sistema que incluya el mismo codigo de la funcion y a la vez la use para hacer operaciones.

Como veis amibroker deja mas trabajo para el programador y lo pone un poquito mas dificil, pero a la vez es mas flexible y mucho mas rapido en optimizaciones.
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “AmiBroker”