龙听期货论坛's Archiver

龙听 发表于 2022-11-2 10:31

【LinearRegFC】

[code]inputs:
        PriceValue( numericseries ),
        Len( numericsimple ),               
        TgtBar( numericsimple ),                                                      
        oLRSlope( numericref ),
        oLRAngle( numericref ),
        oLRIntercept( numericref ),                                       
                              
        oLRValueRaw( numericref ) ;

variables:
        var0( 0 ),
        var1( 0 ),
        var2( 0 ),
        var3( 0 ),
        var4( 1 / 6 ),
        var5( 0 ) ;

if Len > 1 then
        begin
        var2 = Len * ( Len - 1 ) * .5 ;
        var3 = Len * ( Len - 1 ) * ( 2 * Len - 1 ) * var4 ;
        var5 = Square( var2 ) - Len * var3 ;
        var0 = 0;
        for Value1 = 0 to Len - 1
                begin
                var0 = var0 + Value1 * PriceValue[Value1] ;
                end ;
        var1 = Summation( PriceValue, Len ) ;

        oLRSlope = ( Len * var0 - var2 * var1) / var5 ;
        oLRAngle = ArcTangent( oLRSlope ) ;
        oLRIntercept = ( var1 - oLRSlope * var2 ) / Len ;
        oLRValueRaw = oLRIntercept + oLRSlope * ( Len - 1 - TgtBar ) ;
        LinearRegFC = 1 ;
        end
else
        LinearRegFC = -1 ;
[/code]

页: [1]