Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Gauss kernel and VolumeOsc Kernel for Amibroker (AFL)

Rating:
5 / 5 (Votes 1)
Tags:
oscillator, amibroker

Gauss kernel and VolumeOsc Kernel

Indicator / Formula

Copy & Paste Friendly
_SECTION_BEGIN( "Gauss Kernel" );

SetChartBkColor( ParamColor( "Panel Color", colorBlack ) );
SetChartBkGradientFill( ParamColor( "Upper Chart", colorBlack ), ParamColor( "Lower Chart", colorBlack ) );

function Normalize( array, arraylen )
// Figure 1.7 on p. 7
{
    MaxH = HHV( array, arraylen );
    MinL = LLV( array, arraylen );
    Value1[0] = array[0]; // Initialize as array

    for ( i = 1; i < BarCount; i++ )
    {
        Value1[i] = .5 * 2 * ( ( array[i] - MinL[i] ) / IIf( MaxH[i] - MinL[i] == 0, 1, MaxH[i] - MinL[i] ) - .5 ) + .5 * Value1[i-1];

        if ( Value1[i] > .9999 )
            Value1[i] = .9999;

        if ( Value1[i] < -.9999 )
            Value1[i] = -.9999;
    }

    return Value1;
}


PI = 3.1415926;

Data = ( H + L ) / 2;



Med = ( H + L + C ) / 3;
MidPoint = 0;

function Kernel( Input, Length )
{

    Norm = 0;
    sigma = ( Length + 1 ) / 4.0;

    for ( i = 0; i <= Length; i++ )

    {
        Norm = Norm + exp( -( ( Length / 2 - i ) * ( Length / 2 - i ) ) / ( 2 * sigma * sigma ) );
    }

    array = Input;

    for ( j = Length; j < BarCount; j++ )
    {
        Filtered = 0;

        for ( k = 0; k <= Length; k++ )

        {
            Filtered = Filtered + exp( -( ( Length / 2 - k ) * ( Length / 2 - k ) ) / ( 2 * sigma * sigma ) ) * Input[j - k];
        }

        array[j] = Filtered / Norm;

    }

    return array;
}

function Kernel_HMA( Input, N )
{
    f = Kernel( 2 * Kernel( Input, round( N / 2 ) ) - Kernel( Input, N ), round( sqrt( N ) ) );
    return f;
}

//Length1 = Param("Length1", 8, 2, 50, 1);
Length2 = Param( "Length2", 13, 2, 50, 1 );
Length3 = Param( "Length3", 21, 2, 50, 1 );
Length4 = Param( "Length4", 5, 2, 50, 1 );
//Length5 = Param("Length5", 34, 2, 50, 1);


//Smoothx = Kernel(C, Length1);
Smoothy = Kernel( C, Length2 );
//Smoothz = Kernel(C, Length3);
Smooth4 = Kernel( C, Length4 );
//Smooth5 = Kernel(C, Length5);


//x = C - Smoothx;
y = C - Smoothy;
z = C - Smooth4;
//f4 = C - Smooth4;
//f5 = C - Smooth5;


//Normx = Kernel_HMA(x/sqrt(Kernel(x^2,Length1)),2);
Normy = Kernel_HMA( y / sqrt( Kernel( y ^ 2, Length2 ) ), 2 );
Normz = Kernel_HMA( z / sqrt( Kernel( z ^ 2, Length4 ) ), 2 );
// Norm4 = Kernel_HMA(f4/sqrt(Kernel(f4^2,Length4)),2);
//Norm5 = Kernel_HMA(f5/sqrt(Kernel(f5^2,Length5)),2);


//Buy = ( Cross(Normx,0) OR Cross(Normy,0) OR Cross(Normz,0)) AND (Normx > Ref(Normx,-1) AND Normy > Ref(Normy,-1) AND Normz > Ref(Normz,-1));
//Sell = ( Cross(0,Normx) OR Cross(0,Normy) OR Cross(0,Normz) ) AND (Normx < Ref(Normx,-1) AND Normy < Ref(Normy,-1) AND Normz < Ref(Normz,-1));
// FisherXform = Fisher(Normalize(Med, 20));

barvisible = Status( "barvisible" );



//Buy = ExRem(Buy,Sell);
//Sell = ExRem(Sell,Buy);

//shape = Buy * shapeUpArrow + Sell * shapeDownArrow;
//PlotShapes( shape, IIf( Buy, colorBrightGreen, colorRed ), 0, IIf( Buy, 0 , 0));

//Plot(Normx, "Normx", colorYellow, styleThick);
Plot( Normy, "Normy", colorAqua, styleThick );
Plot( Normz, "Normz", colorRed, styleThick );
//Plot(Norm4, "Normz", colorOrange, styleThick);
//Plot(Norm5, "Normz", colorOrange, styleThick);


Plot( 0, "", colorWhite, styleThick );
Plot( 4, "", colorWhite, styleThick );
Plot( -4, "", colorWhite, styleThick );

Plot( 3 , "", colorWhite, styleThick );
Plot( -3, "", colorWhite, styleThick );

_SECTION_END();


PlusDM = IIf( High > Ref( High, -1 ) AND Low >= Ref( Low, -1 ), High - Ref( High, -1 ),
              IIf( High > Ref( High, -1 ) AND Low < Ref( Low, -1 )
                   AND High - Ref( High, -1 ) > Ref( Low, -1 ) - Low,
                   High - Ref( High, -1 ), 0 ) );

Vm = log( EMA( V, 3 ) );

b = ( C - L ) * Vm + ( H - O ) * Vm +
    IIf( C > O, ( C - O ) * Vm, 0 ) + PlusDM * Vm +
    IIf( Ref( C, -1 ) < O, ( O - Ref( C, -1 ) ) * Vm, 0 );

MinDM = IIf( Low < Ref( Low, -1 )   AND  High <= Ref( High, -1 ), Ref( Low, -1 ) - Low,
             IIf( High > Ref( High, -1 ) AND Low < Ref( Low, -1 )
                  AND High - Ref( High, -1 ) < Ref( Low, -1 ) - Low, Ref( Low, -1 ) - Low, 0 ) );

s = ( H - C ) * Vm + ( O - L ) * Vm +
    IIf( C < O, ( O - C ) * Vm, 0 ) + MinDM * Vm +
    IIf( Ref( C, -1 ) > O, ( Ref( C, -1 ) - O ) * Vm, 0 );

Wm = Wilders( Wilders( b, 3 ) - Wilders( s, 3 ), 3 );
Wm1 = MA( Wm, 8 );
Color = IIf( Wm > 10, colorBlue, IIf( Wm < -10, colorRed, 7 ) );
// Plot(Wm,"Volume",Color,2|styleThick);
// Plot(Wm1,"Wm(8P)",11,styleLine);
//  Plotlinewidth( Wm1 ,"",colorwhite,styleLine,Null,Null,0,3,1);
//Plot(0,"",ParamColor("Zero Line",colorGrey50),styleLine|styleNoLabel);

f4 = Wm;


Norm4 = Kernel_HMA( f4 / sqrt( Kernel( f4 ^ 2, Length4 ) ), 2 );
//Norm5 = Kernel_HMA(f5/sqrt(Kernel(f5^2,Length4)),2);


Plot( Norm4, "NormVal", coloryellow, styleThick );

0 comments

Leave Comment

Please login here to leave a comment.

Back