// Downloaded From https://www.WiseStockTrader.com _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 );