龙听期货论坛's Archiver

龙听 发表于 2022-11-2 11:41

【PercentRankArray】

[code]inputs:
        PriceValueToRank( numericsimple ),
        PriceValueArray[MaxSize]( numericarrayref ),                           
        Size( numericsimple ) ;                        

variables:
        var0( 0 ),
        var1( 0 ),
        var2( 0 ),
        var3( 0 ) ;
condition1 = Size > 1
        and PriceValueToRank >= LowestArray( PriceValueArray, Size )
        and PriceValueToRank <= HighestArray( PriceValueArray, Size ) ;

if condition1
then
        begin
        Value1 = SortArray( PriceValueArray, Size, -1 ) ;
                                                                        
        var0 = 1 / ( Size - 1 ) ;
                                                                                  
                                                                                          
                            
        var1 = 0 ;
        for Value2 = 1 to Size
                begin
                if PriceValueArray[Value2] = PriceValueToRank then
                        begin
                        PercentRankArray = var0 * ( Value2 - 1 ) ;
                        var1 = 1 ;
                        Value2 = Size ;                                 
                        end ;
                end ;
                                                
        if var1 = 0 then
                begin
                for Value3 = 1 to Size - 1
                        begin
                        var2 = PriceValueArray[Value3] ;
                        var3 = PriceValueArray[ Value3 + 1 ] ;
                        condition1 = PriceValueToRank > var2 and PriceValueToRank < var3 ;
                        if condition1 then
                                begin
                                PercentRankArray = var0        * ( ( Value3 - 1 ) + ( PriceValueToRank -
                                 var2 ) / ( var3 - var2 ) ) ;
                                Value3 = Size - 1 ;                                 
                                end ;
                        end ;
                end ;
        end
else
        PercentRankArray = -1 ;
[/code]

页: [1]