- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2004-8-21
|
|
飞狐转GET数据公式源代码 第2测试版
来自:MACD论坛(bbs.shudaoyoufang.com)
作者:月魂之魄
浏览:34139
回复:38
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
飞狐转GET数据公式源代码详细说明:
这是一个飞狐公式的源代码,是利用VBScript脚本语言编写的可以在本地D盘Ascii Data目录(没有目录的话软件自动创建)下创建GET软件的ASII数据格式的工具。本次发布的是第一次创作的版本。特点
1。自动创建d:\ascii data目录及子目录
2。在不同的分析画面(日,分时)打开该指标时自动输出日线数据和分钟线数据(伪分时)。
3。各种不同的数据安放在不同的目录中,便于区分。
4。日线数据和分时数据名称代码不一样,便于区分。
以后会听取大家的建议不断的改进该公式,希望大家有什么问题的话可以提出来,以便我对该公式进行优化。
本次修改说明:
1。取消了代码中不必要的周线,月线,年线多余代码(实际上没有用)。
2。取消了分笔,1-30分钟伪分时数据以及相应目录。
3。由于GET数据的原因,将A股日线数据文件名称开头由SH(SZ)修改为A,将60分钟伪分时数据文件名称开头修改为M,这样便于在GET打入证券代码。
4。增加了自动补数据的功能(即在第一次扫描所有股票文件以后,以后扫描只是将新增加的数据增加到前一次的尾部,这样即大大提高了大量数据转换的效率)(希望大家测试,有什么问题就提出来)注意,第一次扫描的时候最好将所有以前的股票数据准备完全,不然转换的时候会有错误。
以下是代码部分(用这个代码创建公式即可)
5。我的电子邮件 tibetmaster@hotmail.com 希望大家和我交流,相关的问题可直接发送到邮件上面。
_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:\Ascii Data") = 0 Then CreatFolder()
SelectCreatAsciiDataType(Datatypes)
Function SelectCreatAsciiDataType(Types)
Select Case Types
Case 0
Case 1
Case 2
Case 3
Case 4
Case 5
Call CreateAsciiDataMin("60min")
Case 6
Call CreateAsciiDataDayes()
Case 7
Case 8
Case 9
Case 10
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:\Ascii Data\" & FolderName & "\" & "M" & StkNames & ".dat"
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 & AforeMonth & 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:\Ascii Data\Dayes\" & "A" & StkNames & ".dat"
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) & Months(i) & 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) & Months(i) & 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:\Ascii Data")
Set Folder = Fso.CreateFolder("D:\Ascii Data\Dayes")
Set Folder = Fso.CreateFolder("D:\Ascii Data\60min")
End Function
%>
0; |
|
|