Para programar un indicador, necesito la volatilidad historica. AMIBROKER no trae esta función. ¿Como puedo programar esta instrucción en AMIBROKER?. Gracias
Saludos,
Programación AFL _ AMIBROKER
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???
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.
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..
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..
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..
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..
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.
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!