some form of detrending is probably a better way to go. Will let it sink in a bit. But I doubt frequency analysis will ever be of any use.
I added some stuff. In the param window you can toggle to the power spectrum. The bin start position allows you to remove the first bins so you can have a better look at the higher frequencies.
Also, when you are in the frequency domain and click on the chart it will still move the chosen data array in the time domain so when in the frequency domain you should not do that else the spectrum will change.
Frequency or the wavelength is shown as a mouse tip. Made this for daily data
So now will go do some other stuff again first 
SetBarsRequired( sbrAll, sbrAll );
bi = BarIndex();
fvb = FirstVisibleValue( bi );
lvb = LastVisibleValue( bi );
dn = DateTime();
sd = SelectedValue( dn );
start = dn == sd;
stidx = LastValue( ValueWhen( start, BarIndex() ) );
shift = Max( 0, BarCount - 1 - stidx );
len = Param( "Number of Data", 512, 8, 2048, 2 );
bins = Param( "Number of Frequency Bins to show (Time Domain)", 20, 1, len / 2 + 1, 1 );
view = ParamToggle( "Display", "Frequency Domain| Time domain", 1 );
st = Param( "Start bin position (Power Domain)", 3, 0, len / 2 + 1, 1 );
data = ref( C, -( shift ) );
// DFT
ffc = FFT( data, len );
// Real and Imaginary Parts in Frequency Domain
fRe = fIm = 0;
for( k = 0; k < ( len / 2 ) + 1; k++ )
{
fRe[k] = ffc[ 2 * k ];
fIm[k] = ffc[2 * k + 1];
}
// Real and Imaginary Parts in Time Domain
tRe = 2 * fRe / len;
tRe[0] = fRe[0] / len;
tRe[len / 2] = fRe[len / 2] / len;
tIm = -2 * fIm / len;
// Inverse DFT
if( view )
{
ff = 0;
for( i = 0; i < len + shift; i++ )
{
//for( k = 0; k < ( len / 2 ) + 1; k ++ )
for( k = 0; k <= bins; k ++ )
{
ff[BarCount - len + i - shift] = ff[BarCount - len + i - shift] + tRe[k] * cos( 2 * 3.1415926 * k * i / len ) + tIm[k] * sin( 2 * 3.1415926 * k * i / len );
}
}
ff = IIf( ff != 0 , ff, Null );
SetChartBkColor( colorBlack );
SetChartOptions( 1, chartShowDates, chartGridMiddle, 0, 0, 0 );
SetBarFillColor( IIf( C > O, ColorRGB( 0, 75, 0 ), IIf( C <= O, ColorRGB( 75, 0, 0 ), colorLightGrey ) ) );
Plot( C, "", IIf( C > O, ColorRGB( 0, 255, 0 ), IIf( C <= O, ColorRGB( 255, 0, 0 ), colorLightGrey ) ), 64, Null, Null, 0, 0, 1 );
Plot( ff, "Reconstructed Signal", colorWhite, styleLine | styleNoRescale, Null, Null, 0, 0, 2 );
Plot( bi == stidx, "", colorDarkBlue, styleHistogram | styleOwnScale | styleNoLabel | styleNoRescale, 0, 1, 0, -2, 10 );
}
else
{
// power spectrum calculation
power = tRe ^ 2 + tIm ^ 2;
GfxSetOverlayMode( 2 );
GfxSetCoordsMode( 0 );
GfxSelectPen( ColorRGB( 0, 255, 255 ), 2 );
pxwidth = Status( "pxwidth" );
pxheight = Status( "pxheight" );
margin = int( pxwidth / 20 );
// chart border
GfxMoveTo( margin, margin );
GfxLineTo( pxwidth - margin, margin );
GfxLineTo( pxwidth - margin, pxheight - margin );
GfxLineTo( margin, pxheight - margin );
GfxLineTo( margin, margin );
GfxSelectFont( "Tahoma", 15, 700, False, False, 0 );
GfxTextOut( "Power Spectrum" , pxwidth / 2, margin / 2 );
GfxTextOut( "Frequency" , pxwidth / 2, pxheight - margin / 2 );
GfxSelectFont( "Tahoma", 15, 700, False, False, 900 );
GfxTextOut( "Power" , margin / 2, pxheight / 2 );
maxpower = 0;
for( i = st; i < ( len / 2 ) + 1; i++ )
{
if( power[i] > maxpower )
{
maxpower = power[i];
}
}
xbin = ( pxwidth - 2 * margin ) / ( ( len / 2 ) + 1 );
ybin = ( pxheight - 2 * margin ) / maxpower;
if( st > 0 )
{
GfxMoveTo( margin, pxheight - margin );
for( i = 0; i < st; i++ )
{
GfxLineTo( margin + i * xbin, pxheight - margin );
}
}
if( st == 0 ) GfxMoveTo( margin, pxheight - margin - power[st]*ybin );
for( i = st + 1; i < ( len / 2 ) + 1; i++ )
{
GfxLineTo( margin + i * xbin, pxheight - margin - power[i]*ybin );
}
// axis
nyquist = 1 / ( 2 * Interval() );
RequestMouseMoveRefresh();
// retrieve co-ordinates in pixel units
px = GetCursorXPosition( 1 );
py = GetCursorYPosition( 1 );
GfxSelectFont( "Tahoma", 10, 700, False, False, 0 );
if( px > margin AND px < pxwidth - margin )
{
pxr = ( px - margin ) / ( pxwidth - 2 * margin ) ;
freq = pxr * nyquist;
wavelength = ( 1 / freq ) / ( 24.*60 * 60 );
GfxSetTextColor( ColorRGB( 0, 0, 0 ) );
GfxSetBkColor( ColorRGB( 255, 255, 0 ) );
if( px < pxwidth / 2 )
GfxTextOut( "Frequency: " + pxr * nyquist + " Hz, Wavelength: " + wavelength + " days" , px + 15, py );
if( px > pxwidth / 2 )
GfxTextOut( "Frequency: " + pxr * nyquist + " Hz, Wavelength: " + wavelength + " days" , px - 400, py );
}
GfxSelectFont( "Tahoma", 15, 700, False, False, 0 );
GfxSetTextColor( ColorRGB( 255, 0, 0 ) );
GfxSetBkColor( ColorRGB( 255, 255, 255 ) );
GfxTextOut( "Do not mouseclick on chart => will change spectrum" , margin, margin / 2 );
}