龙听期货论坛's Archiver

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

【PercentRank_a】

[code]Inputs: PcntileArray[size](NumericArrayRef), VArraySize(NumericRef), RankVal(Numeric);
Variables: var0(0), var1(0), var2(0), var3(0), var4(0), var5(0);
                                                                                                     
condition1 = MinList(size, VArraySize) > 1 ;
If condition1 Then Begin
        var0 = SortUp_a(PcntileArray, VArraySize);
        var1 = 1 / (size - 1);
        For value1 = 1 To size Begin
        condition1 = PcntileArray[value1] = RankVal ;
                If condition1 Then Begin
                        var4 = value1;
                        value1 = size;
                End;
        End;
        If var4 <> 0 Then Begin
                PercentRank_a = (var4 - 1) * var1;
                var4 = 0;
        End
        Else Begin
                For value1 = 1 To size - 1 Begin
                        var2 = PcntileArray[value1];
                        var3 = PcntileArray[value1 + 1];
                        condition1 = RankVal > var2 AND RankVal < var3 ;
                        If condition1 Then Begin
                                If value1 = 1 Then Begin
                                        var5 = .25;
                                        PercentRank_a = ((RankVal - var2) * var5) / (var3 - var2);
                                        value1 = size - 1;
                                End
                                Else Begin
                                        var5 = (value1 - 1) * var1;
                                        PercentRank_a = var5 + (((RankVal - var2) * var5) / (var3 - var2));
                                        value1 = size - 1;
                                End;
                        End;
                End;
        End;
End
Else
        PercentRank_a = -1;
[/code]

页: [1]