He visto un tipo especial de RSI parece que muestra un comportamiento muy interesante. se llama Laguerre RSI.
Pero soy incapaz de programarlo para el Visual Chart.
Alguien se anima a programarlo.
En lenguaje Metastock es:
g:=0.5;
L0:=((1-g)*C) + (g*PREV);
L1:=(-g*L0) + Ref(L0,-1) + (g*PREV);
L2:=(-g*L1) + Ref(L1,-1) + (g*PREV);
L3:=(-g*L2) + Ref(L2,-1) + (g*PREV);
cu:= If(L0>L1, L0-L1,0) + If(L1>L2, L1-L2,0) + If(L2>L3, L2-L3,0);
cd:= If(L0<L1, L1-L0,0) + If(L1<L2, L2-L1,0) + If(L2<L3, L3-L2,0);
temp:= If(cu+cd=0, -1,cu+cd);
If(temp=-1,0,cu/temp)
Gracias.
LAGUERRE RSI
Lo siento, ASGTrader. Mis conocimientos de programacion en Metastock tienen el mismo nivel que en Visual, es decir Cero Patatero
.
Fue dado a conocer por John F. Ehelrs en Cybernetic Analysis for stock and futures p. 225.
"- The Laguerre Transform provides a time warp such that the low-frequency components are delayed much more than the high-frequency components.
- Time distortion enables very smooth filters to be built using a short amount of data.
- Time-warped indicators react faster because a shorter amount of data is used."
He visto graficos con este indicador y parece mas fino que el RSI clasico de toda la vida.
Pongo un ejemplo, haber sii alguieen que sepa se anima:


Fue dado a conocer por John F. Ehelrs en Cybernetic Analysis for stock and futures p. 225.
"- The Laguerre Transform provides a time warp such that the low-frequency components are delayed much more than the high-frequency components.
- Time distortion enables very smooth filters to be built using a short amount of data.
- Time-warped indicators react faster because a shorter amount of data is used."
He visto graficos con este indicador y parece mas fino que el RSI clasico de toda la vida.
Pongo un ejemplo, haber sii alguieen que sepa se anima:
- Adjuntos
-
- trade10lz.jpg (45.24 KiB) Visto 1148 veces
Indicador
Hola enki,
Creo que falta algo a continuación del código que has puesto en tu primer post. Asegúrate de que no te has comido nada, y de paso mira qué son los parámetros C y PREV.
Disponiendo de esa información no creo que sea complicado programarlo.
Un saludo
Creo que falta algo a continuación del código que has puesto en tu primer post. Asegúrate de que no te has comido nada, y de paso mira qué son los parámetros C y PREV.
Disponiendo de esa información no creo que sea complicado programarlo.
Un saludo

Por si os sirve de algo, ese indicador ya lo estuve estudiando hace unos meses con AmiBroker, os pongo por aqui el código en AFL por si os sirve para algo aunque me temo que no es nada del otro mundo (como muchas de las cosas de Ehlers
). De todas formas, si tengo hueco un día, lo intento programar, no parece muy complicado a priori:
Un saludo
X-Trader

SetBarsRequired(200, 0);
// Ehlers formulas
// from Ehlers, John F. Cybernetic Analysis for Stocks and Futures. Wiley.
2004.
// Chapter 14, p. 213. Code on p. 221.
function LRSI(array, gamma)
// Figure 14.8 on p. 221.
{
L0 = array; // Initialize as array
L1 = array;
L2 = array;
L3 = array;
LRSIValue = array;
for(i = 1; i < BarCount; i++)
{
L0 = (1 - gamma)*array + gamma*L0[i-1];
L1 = - gamma * L0 + L0[i-1] + gamma * L1[i-1];
L2 = - gamma * L1 + L1[i-1] + gamma * L2[i-1];
L3 = - gamma * L2 + L2[i-1] + gamma * L3[i-1];
CU = 0;
CD = 0;
if (L0 >= L1) CU = L0[i] - L1[i]; else (CD = L1[i] - L0[i]);
if (L1[i] >= L2[i]) CU = CU + L1[i] - L2[i]; else CD = CD + L2[i] -
L1[i];
if (L2[i] >= L3[i]) CU = CU + L2[i] - L3[i]; else CD = CD + L3[i] -
L2[i];
if (CU + CD != 0) LRSIValue[i] = CU / (CU + CD);
}
return LRSIValue;
}
Plot(LRSI(C, 0.5), "Laguerre RSI", colorRed, styleLine);
PlotGrid(.;
PlotGrid(.5);
PlotGrid(.2);
Un saludo
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
X-Trader escribió:Por si os sirve de algo, ese indicador ya lo estuve estudiando hace unos meses con AmiBroker, os pongo por aqui el código en AFL por si os sirve para algo aunque me temo que no es nada del otro mundo (como muchas de las cosas de Ehlers). De todas formas, si tengo hueco un día, lo intento programar, no parece muy complicado a priori:
SetBarsRequired(200, 0);
// Ehlers formulas
// from Ehlers, John F. Cybernetic Analysis for Stocks and Futures. Wiley.
2004.
// Chapter 14, p. 213. Code on p. 221.
function LRSI(array, gamma)
// Figure 14.8 on p. 221.
{
L0 = array; // Initialize as array
L1 = array;
L2 = array;
L3 = array;
LRSIValue = array;
for(i = 1; i <BarCount>= L1) CU = L0 - L1; else (CD = L1 - L0);
if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 -
L1[i];
if (L2[i] >= L3[i]) CU = CU + L2[i] - L3[i]; else CD = CD + L3[i] -
L2[i];
if (CU + CD != 0) LRSIValue[i] = CU / (CU + CD);
}
return LRSIValue;
}
Plot(LRSI(C, 0.5), "Laguerre RSI", colorRed, styleLine);
PlotGrid(.;
PlotGrid(.5);
PlotGrid(.2);
Un saludo
X-Trader
Bueno,si me permiten resucito el post.
X-trader me da error de sintasis en lo q resalto en rojo.y dice: probably missing semicolon of the previus line

El error indica que en alguna línea anterior se ha omitido un punto y coma al final de una instrucción (las líneas de comentarios, las declaraciones de funciones y los bloques encerrados entre llaves no lo necesitan).
Supongo que el error se debe a que el "2004." lo has puesto en una línea nueva en lugar de al final del comentario de la línea anterior.
Supongo que el error se debe a que el "2004." lo has puesto en una línea nueva en lugar de al final del comentario de la línea anterior.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!