导出各周期数据公式请教

Discussion in '金字塔决策交易系统' started by fortuneway, Apr 30, 2010.

  1. 为了方便用Advanced Get分析,我一般用下面这个公式将飞狐的各个周期数据导出到指定的目录,非常方便。现在计划转到金字塔平台上做外盘交易,但这个公式在金字塔上一直编译不过去,请教大家应该如何修改:

    ===================================================
    _Barpos := BARPOS;
    _Year := YEAR;
    _Month := MONTH;
    _Day := DAY;
    _Datatype := DATATYPE;
    _Marketlabel := MARKETLABEL;
    _StkName := STKLABEL;
    _Open := OPEN;
    _High := HIGH;
    _Low := LOW;
    _Close := CLOSE;
    _Vol := VOL;
    _Amount := AMOUNT;

    <%
    Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
    Barposes = ffl.vardata("_Barpos")
    Years = ffl.vardata("_Year")
    Months = ffl.vardata("_Month")
    Days = ffl.vardata("_Day")
    Datatypes = ffl.vardata("_Datatype")
    Marketlabels = ffl.vardata("_Marketlabel")
    Stknames = ffl.vardata("_Stkname")
    Opens = ffl.vardata("_Open")
    Highs = ffl.vardata("_High")
    Lows = ffl.vardata("_Low")
    Closes = ffl.vardata("_Close")
    Vols = ffl.vardata("_Vol")
    Amounts = ffl.vardata("_Amount")

    If ReportFolderStatus("D:\AGET RT Data") = 0 Then CreatFolder()
    SelectCreatAsciiDataType(Datatypes)

    Function SelectCreatAsciiDataType(Types)
    Select Case Types
    Case 0

    Case 1
    Call CreateAsciiDataMin("1min")
    Case 2
    Call CreateAsciiDataMin("5min")
    Case 3
    Call CreateAsciiDataMin("15min")
    Case 4
    Call CreateAsciiDataMin("30min")
    Case 5
    Call CreateAsciiDataMin("60min")
    Case 6
    Call CreateAsciiDataDayes()
    Case 7
    Call CreateAsciiDataMin("Week")
    Case 8
    Call CreateAsciiDataMin("Month")
    Case 9
    Call CreateAsciiDataMin("Year")
    Case 10
    Call CreateAsciiDataMin("H4")
    Case 11

    Case Else

    End Select
    End Function

    Function CreateAsciiDataMin(FolderName)
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
    Dim Fso,FileName,TextStream,LineData,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
    Set Fso = CreateObject("Scripting.FileSystemObject")
    FileName = "D:\AGET RT Data\" & FolderName & "\" & "M" & StkNames & ".txt"
    Set TextStream = Fso_OpenTextFile(FileName, ForWriting, True)
    ArrayLast = Ubound(Barposes)
    LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
    For i = 0 To ArrayLast
    AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
    AforeYear = Year(AforeDate)
    AforeMonth = Month(AforeDate)
    If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
    AforeDay = Day(AforeDate)
    If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
    Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
    Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
    Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
    Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
    Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
    Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
    LineData = AforeYear & "0" & AforeMonth & "0" & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
    TextStream.WriteLine LineData
    Next
    TextStream.Close
    End Function

    Function CreateAsciiDataDayes()
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
    Dim i,Fso,FileName,TextStream,LineData,AforeLast,ArrayLast
    Set Fso = CreateObject("Scripting.FileSystemObject")
    FileName = "D:\AGET RT Data\Dayes\" & "A" & StkNames & ".txt"
    IF ReportFileStatus(FileName) = 0 Then
    Set TextStream = Fso_OpenTextFile(FileName,ForWriting,True)
    ArrayLast = Ubound(Barposes)
    For i = 0 To ArrayLast
    If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
    If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
    Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
    Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
    Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
    Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
    Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
    Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
    LineData = Years(i) & "0" & Months(i) & "0" & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
    TextStream.WriteLine LineData
    Next
    TextStream.Close
    ElseIf ReportFileStatus(FileName) = 1 Then
    AforeLast = 0
    Set TextStream = Fso_OpenTextFile(FileName, ForReading, False)
    Do Until TextStream.AtEndOfStream = True
    TextStream.ReadLine
    AforeLast = AforeLast+1
    Loop
    TextStream.Close
    Set TextStream = Fso_OpenTextFile(FileName,ForAppending,False)
    ArrayLast = Ubound(Barposes)
    For i = AforeLast To ArrayLast
    If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
    If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
    Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
    Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
    Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
    Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
    Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
    Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
    LineData = Years(i) & "0" & Months(i) & "0" & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
    TextStream.WriteLine LineData
    Next
    TextStream.Close
    End If
    End Function

    Function ReportFileStatus(Filespec)
    Dim Fso, Status
    Set Fso = CreateObject("Scripting.FileSystemObject")
    If (Fso.FileExists(Filespec)) Then
    Status = 1
    Else
    Status = 0
    End If
    ReportFileStatus = Status
    End Function

    Function ReportFolderStatus(FolderDir)
    Dim Fso, Status
    Set Fso = CreateObject("Scripting.FileSystemObject")
    If (Fso.FolderExists(FolderDir)) Then
    Status = 1
    Else
    Status = 0
    End If
    ReportFolderStatus = Status
    End Function

    Function CreatFolder()
    Dim Fso
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Dim Folder
    Set Folder = Fso.CreateFolder("D:\AGET RT Data")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\Year")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\Month")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\Week")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\Dayes")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\60min")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\30min")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\15min")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\5min")
    Set Folder = Fso.CreateFolder("D:\AGET RT Data\H4")
    End Function
    %>
    0;