|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码3 Q5 n' i; s8 [( G" P
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据3 U9 j+ N! o5 ]/ w- A* [$ e/ }
Datalength= 输出数据天数(0~99999,0/全输出)
8 s2 S9 Q- s; ~0 h% G; H1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
9 J: ? Q, E, k# p! u3 Z( I% K2)全输出: 用嵌入其他指标的公式在A股板快选股% U) Q& L* p# e# X5 p h. ^
------------------------------5 ^( ^9 C# i4 t0 w- j! s) b& Z$ \
参数:
4 X+ `- v; C* C$ T" u, D( k0 U6 b' O数据输出 0,0,1- H6 v! D& X" l2 y% `
DATALENGTH 1900,1,99999
( x. h: K+ U! s//# g0 K6 \5 ~* F1 E7 D; u# @
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;% r+ |+ y( k+ c% w
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;, ^' Y1 ^6 V3 U) d2 N
数据转换:数据输出,colorred,linethick0;
- z2 T4 h- q( h* _& o6 G: C M5 w$ F! G* Y( z' q
IF 数据输出=1 then begin
+ s: P1 }8 }# f7 a% [- { _Barpos := BARPOS;" [7 W/ R# s- ]9 R3 Q
_Year := YEAR;. j1 I. k: B: W
_Month := MONTH;$ g8 ? J' [( `
_Day := DAY;
8 H" U0 Y7 t5 X _Datatype := DATATYPE;' V5 Y) V9 E+ W: w: D; Q( U2 x' {
_Marketlabel := MARKETLABEL;
2 e5 K. z' N/ r _StkName := STKLABEL;
+ Q6 C& Y0 U6 G7 ?4 j5 n: ?7 n+ T _Open := OPEN;5 V# R, H# j* J0 b! @! ^9 @
_High := HIGH;" Q$ b( i) ?' G7 F* E/ S
_Low := LOW;2 z8 l5 ?% O0 c, o4 g
_Close := CLOSE;6 W, o+ S# M! ?1 V9 w+ A& @
_Vol := VOL;/ P4 ]2 M: G0 A, p
_Amount := AMOUNT; . ]) [/ L/ f+ m; R+ K, m
_Datalength := Datalength;
* }% J |) ^5 \- z* D, A% X7 s% o" c. a
<%
6 R Q9 z8 E* ]$ Q; u% c; yDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days/ t3 x7 f/ w6 l& v7 {
Barposes = ffl.vardata("_Barpos")% T* n( B+ V8 c9 H$ |0 P* h
Years = ffl.vardata("_Year")2 ~% w1 p) W. n7 e% p6 Y
Months = ffl.vardata("_Month")
; f0 B8 v5 H% n8 P Days = ffl.vardata("_Day")
& C9 O& j# |" z9 z/ x5 A Datatypes = ffl.vardata("_Datatype")! c- M. M: |3 S. o5 z4 y9 L# N
Marketlabels = ffl.vardata("_Marketlabel")
) g2 ]$ E g6 i7 H; [/ N$ F1 A Stknames = ffl.vardata("_Stkname")+ |, S, x/ p9 h2 V2 q
Opens = ffl.vardata("_Open")
' `" P+ y# e# K0 ^ v Highs = ffl.vardata("_High")6 ^4 w9 s/ J' K4 V
Lows = ffl.vardata("_Low")
. r; }1 o" M2 H. R9 _' ?6 r% l Closes = ffl.vardata("_Close")% Z% E" S' I# |2 ~$ V6 E2 i$ o
Vols = ffl.vardata("_Vol")
. [1 V, v; z3 h+ A+ v; n4 a9 ` Amounts = ffl.vardata("_Amount")
1 s( L: Z& |1 P9 ? Datalengths = FFL.vardata("_Datalength")
' j1 [0 [" h" K! A6 ]9 ^! u) n& n
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()7 C `/ n' V+ X
SelectCreatAsciiDataType(Datatypes)1 Z& D S5 W/ Z( m$ I' y$ J" ^* ]
! T) [, H; q3 y+ [ K
Function SelectCreatAsciiDataType(Types)
3 e8 b! K' y, Z- R Select Case Types
( e% L! r% b! a8 {3 t Case 0" m; i2 X4 ~1 U/ Z( t8 P4 S# R
2 ~% E n4 Z3 j5 @3 n
Case 1
8 O' w8 X3 }- @. [ Call CreateAsciiDataMin("_m01") " C# J- B& h- g) @$ {: I
Case 25 J( c2 ~# F0 H% q& |( J
Call CreateAsciiDataMin("_m05")
2 I3 e$ o8 {) r* O Case 3
" V. ]( U3 m! K' j7 p" L3 D$ w Call CreateAsciiDataMin("_m15") : w, @0 L3 p% I# L9 f6 F
Case 4, p4 N9 q% \- B0 G
Call CreateAsciiDataMin("_m30")
@2 i* G1 E P Case 5+ P3 m9 e6 t! T4 J4 c8 Z' s* M
Call CreateAsciiDataMin("_m60")
: `& H: X+ V Y9 O0 z1 o Case 6+ H$ b! N# }$ Q. A+ e8 M
Call CreateAsciiDataDayes()
, K1 ?4 C! M( |: f7 J Case 7( @; z7 b/ @" J' z
Call CreateAsciiDataMin("_wk") / U. M& I# L. V5 Y, N1 l
Case 83 q: X6 s& e+ q
Call CreateAsciiDataMin("_mth") + }: a7 G+ g" p8 [4 T
Case 9
( h7 o, a; D! d$ @5 Z! K7 y0 B/ H Call CreateAsciiDataMin("_yr") 8 u: S6 p2 B4 O: ?; S8 ~) W, K
Case 108 M; X( `6 b) |
# { g6 q- p# q8 Q* [- m Case 11
) x9 K* O }1 g& T
2 a2 x8 R5 P, [& K5 A6 Y Case Else+ ]: ?* A/ `8 ~
% w3 l6 T( w. j End Select
% f4 k }+ k9 g2 L9 pEnd Function3 b1 M- g* z9 G( p" r* m+ q' n
4 r+ M' e7 e8 h" Z2 v
Function CreateAsciiDataMin(FolderName)
; U% z9 R* Z. i2 u1 e- _4 v4 W( ? Const ForReading = 1, ForWriting = 2, ForAppending = 8
0 i7 v: P5 A; e' Q4 `6 { Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -25 `4 G4 E5 l/ Y& r5 C
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
: K* e2 U5 ^( ~% F E Set Fso = CreateObject("Scripting.FileSystemObject")
$ s& r3 ~5 F# ` FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"# n, X+ S) w# {. t+ K' m H5 \
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
. V$ G- Y' c2 l Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
( R2 T( @- c o Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)3 p/ M) ~% z$ m( @0 R
ArrayLast = Ubound(Barposes)
6 K& Q2 Y9 k) e( v1 f LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)3 l2 e8 o" E) w/ a D5 d
9 c) O' h' O. I+ }) p. m4 J
if (Datalengths=0 or datalengths>=ArrayLast) then
6 T4 Y& L$ ^7 T- O" S: l Datalengths=ArrayLast2 ]1 c6 X+ k& | C4 E$ Q# E( Q
end if* }+ w3 B% J& r8 f! q, L+ z
Datastart = ArrayLast-Datalengths
7 i/ E0 _/ L* }& t* D, R8 v1 P# [7 e
For i = Datastart To ArrayLast) {3 ^9 g3 A& B3 n% ]
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)0 P( _! ^/ a( A7 O* P
AforeYear = Year(AforeDate) Z& r- Q! W8 D
AforeMonth = Month(AforeDate)
7 b: J/ j4 A2 P& h- |1 w3 x If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth$ U" \* n0 a5 `
AforeDay = Day(AforeDate)4 b4 e" z1 @. r3 U# l4 V
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay- C2 {2 T9 y1 y) Z' \5 ?
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
" V. k) O* m) ^3 Q Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)5 O. ?3 P7 ^6 l* o) v% U: O7 e) t
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)4 c6 l1 O2 R. n8 \
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)# f" I a7 E, c% b& S) s8 [
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)0 @) D; v/ j( o' ]
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)7 O% a5 E" p' T5 i& J$ ^
If Opens(i)<1 Then Opens(i)="0" & Opens(i)4 f# `5 ]* \! M w% t# U$ S
If Highs(i)<1 Then Highs(i)="0" & Highs(i)% n& {; s, _" V' I" }: H
If Lows(i)<1 Then Lows(i)="0" & Lows(i)/ w& `3 C! c2 M# V" l2 R' I, ]" d
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
; a: d+ ^" n0 X7 Z* B2 m& q3 E If Vols(i)<1 Then Vols(i)="0" & Vols(i)7 ~9 P0 I* z3 n
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
9 R% y, _/ k) L7 {& K, K5 @) O1 Y LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i): ^+ t. C6 N$ s! n2 T
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)5 O. @, G! D- W U) D; t `6 t
TextStream.WriteLine LineData$ ]% c* S$ _( d5 Y$ Z r" W, v# \
TextStreamA.WriteLine LineDataA! J8 Y. [4 A; ?% P7 w
Next0 N* V' b$ A: f+ s
TextStream.Close
, k# |1 ~% h: e9 ~+ y s1 s TextStreamA.Close
' A- n, O$ r9 T2 t+ `5 q$ c1 D2 c' e: V! _: d
4 K R0 j7 v& U7 j: {4 i
End Function
H( a1 E* ?& `0 N/ S
/ B+ G; V) \, UFunction CreateAsciiDataDayes()5 f* E9 B9 @/ n, z
Const ForReading = 1, ForWriting = 2, ForAppending = 8! a1 |& t& p4 [" D
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -24 k7 k8 J! @5 j. C; b; V7 y# O
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast% q+ k' [4 V! n9 E: B/ t
Set Fso = CreateObject("Scripting.FileSystemObject")
1 [. Q$ t( t: {, z" h8 L FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"7 i$ F9 F$ N8 U& t) V
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
: S; c" n) S8 I/ A& ?0 X: \ Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)8 O, k7 F4 {6 B6 [. g
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
, o' k2 H5 ^2 {% r& ?- H) }' M ArrayLast = Ubound(Barposes)
7 [ Y; E% j% h if (Datalengths=0 or datalengths>=ArrayLast) then4 f8 z* p9 m1 S" y7 T
Datalengths=ArrayLast# d5 p5 ?3 p" K7 K. {! L; R8 B0 m, F
end if
) W- D$ W) C& D! D& r5 C9 a- p Datastart = ArrayLast-Datalengths3 e( N# a+ i0 ?7 x: r
, y3 |. w7 ^. b, W3 h& O
For i = Datastart To ArrayLast
; ^0 _% u" A- t& j" d3 U If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
6 L8 A+ F# E7 P' O( G% d0 c If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
; g, p6 z; ?' v0 _6 D$ j N Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
. i5 r5 s0 o# g$ B$ g Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)1 p, D$ I9 m) |, O5 T
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
7 V2 e( z: p, j9 |7 a h+ ]# a Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
# X- k; i! G# h$ L. U& f Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)* o- n4 k4 U" i3 K3 x
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
- F/ m& B7 ~* Z& G/ J/ T If Opens(i)<1 Then Opens(i)="0" & Opens(i)
: M; x& x, n# W% p: f3 p If Highs(i)<1 Then Highs(i)="0" & Highs(i)
Y9 K! b. h: m9 r If Lows(i)<1 Then Lows(i)="0" & Lows(i)7 k1 m) d5 W2 `# z% G
If Closes(i)<1 Then Closes(i)="0" & Closes(i); I4 j6 t# f& j0 }
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
7 s+ z. z! C9 ?! o! e If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
4 D/ S- K) E, b LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
, B$ h$ m+ Y' Z LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)3 I i b+ U( l
TextStream.WriteLine LineData
$ U! W" m7 j: J- g! P TextStreamA.WriteLine LineDataA
9 Z9 O! `5 G* N! x j9 b Next
# U7 t. m1 u, q! ? TextStream.Close5 I+ \. w% P, D" `" S
TextStreamA.Close 0 [) U" w; t) n3 N8 G3 _
End Function# F. {) k! u1 x+ y1 i
. ^3 S9 |# t3 n6 g/ [Function ReportFolderStatus(FolderDir)
- i3 V5 x% g$ |$ x! e* J8 G Dim Fso, Status
8 ~; {& o$ i% g$ T2 ^ Set Fso = CreateObject("Scripting.FileSystemObject")+ x$ A3 ?+ u V* k& m
If (Fso.FolderExists(FolderDir)) Then# B( ~# p# B8 I8 ]! q
Status = 14 L$ W& w3 V; _7 p; P$ [
Else
5 R7 ]5 h6 Y; y: p6 |7 P2 z Status = 0
l0 |3 J* _5 D* t2 g End If- o' T3 u( ?- [% @" I
ReportFolderStatus = Status
7 v8 S. O0 h" T- eEnd Function! ?4 l" G- G! G4 c) ~0 N
: C4 X7 B4 f( [6 W# s' U
Function CreatFolder()
4 r" z; B" T5 X* N* w* b Dim Fso$ v# x0 D' P( |, }* H" _
Set Fso = CreateObject("Scripting.FileSystemObject")6 M5 f7 g' e3 I X! x' Q, Z
Dim Folder
! |# F& [/ W" E5 S9 F% n0 R7 Y Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
' K% Q% C6 g# V8 _ Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
5 L& j0 E1 ^" H9 T! ^4 g; K Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn"), l& Q9 w, L2 K
End Function
0 A+ F1 u4 c+ ~0 t%>
B. x& I9 e- F7 t) K8 ^) N7 i0 L* K# v, s T U5 o" V: F: ]
explain(1,'--非日线为伪日线输出,两种输出格式:');2 E6 B. Y, P/ h
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');; q( U4 r' H; _9 Y: `7 Q
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');: }: a! W- F) K5 D; n" G
8 F6 z+ B* d2 P! J0 E& q, O3 B. R[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|