Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求助:转化代码

1楼
neowang007 发表于:2012/6/8 10:19:00
 

这是一个HURET指数的代码,请求您:

1、能不能转化成金字塔中能够计算和运行的代码吗?

2、这个是VB代码,这个和金字塔语言的转换的关键是什么呢?

 

'This program calculates an estimate of the Hurst coefficient.

'Written by Martin Sewell <martin@martinsewell.com>


Sub Hurst()


    Dim Data()

    Dim Array1()

    Dim Array2()

    Dim Mean

    Dim Result()

   

    Dim NoOfDataPoints As Integer

   

    Dim NoOfPlottedPoints As Integer

    Dim PlottedPointNo As Integer

   

    Dim NoOfPeriods As Integer

    Dim PeriodNo As Integer

   

    Dim N As Integer

    Dim i As Integer

    Dim m As Integer

    Dim logten

    Dim R

    Dim S

    Dim RS

    Dim SumSquared

   

    logten = Log(10)

   

    'Delete any previous results

    Worksheets("Data").Range("C3").Value = Null

    Worksheets("Data").Range("D:D").Value = Null

    Worksheets("Data").Range("E:E").Value = Null

   

    'Get total number of data points

    NoOfDataPoints = Worksheets("Data").Range("C1").Value

   

    ReDim Data(NoOfDataPoints)

   

    'Get data, ignoring any spaces

    i = 1

    counter = 1

    Do While counter <= NoOfDataPoints

        Set curCell = Worksheets("Data").Cells(i, 1)

        If Application.WorksheetFunction.IsNumber(curCell.Value) Then

            Data(counter) = curCell.Value

            counter = counter + 1

        End If

        i = i + 1

    Loop

   

    NoOfPlottedPoints = NoOfDataPoints - 2

    ReDim Result(NoOfPlottedPoints, 2)

   

    'Begin main loop

    For N = 3 To NoOfDataPoints

       

        totalR = 0

        totalS = 0

       

        NoOfPeriods = NoOfDataPoints - N + 1

       

        For PeriodNo = 1 To NoOfPeriods

            ReDim Array1(N)

            ReDim Array2(N)

           

            For i = 1 To N

                Array1(i) = Data((PeriodNo - 1) + i)

                Array2(i) = 0

            Next i


            Summ = 0

            SumSquared = 0

            For i = 1 To N

                Summ = Summ + Array1(i)

                SumSquared = SumSquared + ((Array1(i)) * (Array1(i)))

               

            Next i

            Mean = Summ / N


            'STDEV

            'S = Sqr((SumSquared - (Summ * Summ) / N) / (N - 1))

            

            'STDEVP

            S = Sqr((SumSquared - (Summ * Summ) / N) / N)

           

            For i = 1 To N

                Array1(i) = Array1(i) - Mean

            Next i

           

            For i = 1 To N

                For j = 1 To i

                    Array2(i) = Array2(i) + Array1(j)

                Next j

            Next i

           

            Maxi = Array2(1)

            Mini = Array2(1)

            For i = 1 To N

                If Array2(i) > Maxi Then Maxi = Array2(i)

                If Array2(i) < Mini Then Mini = Array2(i)

            Next i

           

            R = Maxi - Mini

            totalR = totalR + R

            totalS = totalS + S

           

        Next PeriodNo

     

        R = totalR / NoOfPeriods

        S = totalS / NoOfPeriods

        RS = R / S

     

      PlottedPointNo = N - 2

        Result(PlottedPointNo, 1) = (Log(N)) / logten

        Result(PlottedPointNo, 2) = (Log(RS)) / logten

         

    Next N

       

    Sumx = 0

    Sumy = 0

    Sumxy = 0

    Sumxx = 0

   

    For i = 1 To NoOfPlottedPoints

        Worksheets("Data").Cells(i + 6, 4).Value = Result(i, 1)

        Worksheets("Data").Cells(i + 6, 5).Value = Result(i, 2)

        Sumx = Sumx + Result(i, 1)

        Sumy = Sumy + Result(i, 2)

        Sumxy = Sumxy + (Result(i, 1)) * (Result(i, 2))

        Sumxx = Sumxx + (Result(i, 1)) * (Result(i, 1))

    Next i

   

    'Calculate Hurst coefficient

    H = (Sumxy - ((Sumx * Sumy) / NoOfPlottedPoints)) / (Sumxx - ((Sumx * Sumx) / NoOfPlottedPoints))

    Worksheets("Data").Range("C3").Value = H

   

End Sub

2楼
rushtaotao 发表于:2012/6/8 10:26:41
能不能把思路写出来?
共2 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.07813 s, 2 queries.