|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码6 y. b: e- m) f3 c
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据( b% @! N7 R- m' u4 l$ v8 W
Datalength= 输出数据天数(0~99999,0/全输出)
}; k& @# k2 t1 |1 M1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股1 Q, M5 F% C, A; t9 n
2)全输出: 用嵌入其他指标的公式在A股板快选股
8 E w1 q3 M0 T3 ]' K0 f------------------------------2 M! X9 H6 O, b
参数:6 ?$ T$ a" L8 e' \ r4 X
数据输出 0,0,1
8 a2 B N# V1 aDATALENGTH 1900,1,99999% |; P) w' s' c" f
//
" B" V) G0 F- m" y# hvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;% C* W T ?$ f' O2 T7 P- J
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;% J/ h8 c) N; K8 x' a
数据转换:数据输出,colorred,linethick0;
- G9 |0 m7 c5 ^% B0 F* W$ i8 f% y
/ x& a+ x9 n1 N5 xIF 数据输出=1 then begin
0 X1 ]6 ?4 X: {7 Q/ `6 S, | _Barpos := BARPOS;7 k$ Z9 @) ^& j& C* y. Y% Z
_Year := YEAR;& y& N$ K# x: v2 Z
_Month := MONTH;; ?- A0 n+ u6 c
_Day := DAY;
: b e5 K; }2 M( j0 c- p0 f4 P7 S _Datatype := DATATYPE;, n9 O) M9 X) \4 e
_Marketlabel := MARKETLABEL; `9 A0 G; [# U2 o7 V9 H+ I
_StkName := STKLABEL;
, \ I+ l( S. `+ V _Open := OPEN;; o3 f, s1 V/ V" O v
_High := HIGH;7 u1 ^: j, e# N! x- [
_Low := LOW;2 Y- f7 U3 J# _* _, b5 S
_Close := CLOSE;
; V4 o6 s$ t1 C _Vol := VOL;
, d9 K) ~% r1 t! D _Amount := AMOUNT; ) {8 Y4 G, W, |2 f
_Datalength := Datalength;! f; _2 Y; K4 e. q
# h# T6 Y, U0 I! s H9 s
<%
7 c! C4 u! b% @7 p6 ^Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
/ V$ |8 a( ~# f# |- Y" o1 C( s Barposes = ffl.vardata("_Barpos")5 m4 W& k4 r2 k
Years = ffl.vardata("_Year")
, }) c! {3 R/ z2 S8 u5 m9 M Months = ffl.vardata("_Month")
( Q8 h! ?8 y0 L$ D4 y: t: Z Days = ffl.vardata("_Day")- c& J8 m* v7 t" e0 c. B5 k
Datatypes = ffl.vardata("_Datatype")& K' D/ V' P; H& i( |; Q0 q4 E! P
Marketlabels = ffl.vardata("_Marketlabel")6 N3 B2 ^7 i# }0 ?2 U
Stknames = ffl.vardata("_Stkname")
) y! {7 Y) j) J3 r N$ i Opens = ffl.vardata("_Open")1 D& d R3 u$ h3 C8 D+ W! b
Highs = ffl.vardata("_High")
; l- n: W: M/ }- m" c Lows = ffl.vardata("_Low"); j- U6 {2 ?4 N( c; `, v
Closes = ffl.vardata("_Close")# o6 ^3 x+ R6 K0 I, M* R
Vols = ffl.vardata("_Vol")
* N( r/ C3 X: J5 \* d Amounts = ffl.vardata("_Amount")9 K) v3 q& d5 R+ t
Datalengths = FFL.vardata("_Datalength")# ` g0 ]# K- x
% @2 O6 ^( u; ^9 B, `
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
6 x& B. j e" k3 G& PSelectCreatAsciiDataType(Datatypes)5 n; b5 x$ M# V
7 b: }$ `- L4 Y8 ]! K l
Function SelectCreatAsciiDataType(Types)
6 _+ U4 `* Z. W/ L' O: K Select Case Types n/ V, p% ?* l. u8 X; @
Case 0
/ n1 z7 ]" _3 H1 D0 Q# r9 f
# |) M7 M3 |2 A) G% Q' Y Case 16 r6 f7 F+ I0 ^* W: x) ~5 B/ o
Call CreateAsciiDataMin("_m01") , _. r/ |; }2 H$ N% h' C
Case 2" T9 {& [" G4 {
Call CreateAsciiDataMin("_m05")
9 l" F# ?" B# k5 @( A) U3 S Case 3
: q5 p+ d$ w9 @% o% m0 a$ \ Call CreateAsciiDataMin("_m15")
4 \( W7 K- A& b Case 4! b+ U$ ]& Y/ |, V
Call CreateAsciiDataMin("_m30") ' a1 f# J' E. o+ H0 p
Case 5
; {& A5 o2 F' r$ x& o) f7 J Call CreateAsciiDataMin("_m60")8 j: m3 C/ d" |, S% n
Case 6) H& a4 ]" Z& d4 ^, i
Call CreateAsciiDataDayes()
2 m* C* c+ {) c. w" V; F! a5 Q Case 7
/ Y6 h! R# k- @* w0 M0 l* n# o Call CreateAsciiDataMin("_wk") . b! y- N7 v4 S) O
Case 8
# l/ \+ [) u+ L# `! ~4 t Call CreateAsciiDataMin("_mth") - j" m; [- M0 ^' L- B7 l
Case 9# Q/ k+ y: d9 ]* j9 r7 Q2 H. |" d
Call CreateAsciiDataMin("_yr") i+ H# n6 r; M0 ^5 `3 k" S5 z
Case 10. V) w: a9 o5 k1 Z3 B, f. y) I
+ y( N9 Q7 @9 q+ [ Case 11
; q% s: k* ~ x2 }- z% G. [
- Q; D: C1 ^! |8 \: ~: [. X Case Else
8 u" B4 N9 f' m k1 c& G$ ^3 a( ?) Z# H# `# Y
End Select7 W* d$ P5 V: S% Z/ [1 @3 R
End Function$ ^8 C) B4 k$ \ ]; z% D7 [& W J
% V" o9 h# ^6 v0 p: j- w% n& z
Function CreateAsciiDataMin(FolderName)+ V. k2 E! Y0 h; f) x9 g
Const ForReading = 1, ForWriting = 2, ForAppending = 8# t* a$ ~3 r! k6 F! m5 ?% b" L
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
. ~ X) b: w; O7 P Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
% g% l; G# \2 e, Y+ O) t7 s# ^ Set Fso = CreateObject("Scripting.FileSystemObject")
+ ? }- a2 H" l FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
. N$ s4 t& R3 _1 x. @; G FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"! C9 z& N# g* y1 g& n
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)0 K9 w, r0 ]& b. r' d6 }; r
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)8 b# J+ |# W/ ?8 c7 ?
ArrayLast = Ubound(Barposes)
# ^# J2 J* v1 i5 ^' q2 P, b p. B3 Z( y LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)* R8 w8 R7 `; G
* g& ~$ R. j8 `! b if (Datalengths=0 or datalengths>=ArrayLast) then0 x9 I/ q' Y) C
Datalengths=ArrayLast' ]' {. J: {+ v K
end if
2 F+ A2 T( h5 c, W8 \ Datastart = ArrayLast-Datalengths
% V; S1 Q1 r' {0 U) G4 n9 B- L% p4 J% A8 q2 C3 }
For i = Datastart To ArrayLast
4 C: G( }; P" e6 `- b2 g# C AforeDate = DateAdd("d",(i-ArrayLast),LastDate)! d1 o5 o. U$ f5 g2 I1 T7 C8 n
AforeYear = Year(AforeDate)# N, n z' U. K |9 @$ m$ J: c4 V& M
AforeMonth = Month(AforeDate); w1 L, X* J% ?) u# }' E% K
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth" g0 J1 A+ p L* a2 r( w$ ?
AforeDay = Day(AforeDate)5 C0 X# z n9 N/ Z j$ k
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
1 ^8 Z) X' M3 D% Q. a Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
% N. E. L! a+ J0 K) l0 _" K Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)5 L4 k, F6 f# l7 R9 F/ T/ X2 q1 g
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)& _. c& M k, R) |6 H; c
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
; N* Q: ~6 p6 L' v Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
3 a e' F8 w" Z8 ~1 _0 t) O% P Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)' `/ l: P! R% L9 p
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
4 R" T" A6 H' _$ h$ G- m& N If Highs(i)<1 Then Highs(i)="0" & Highs(i)! Q/ Q$ \2 J% F, s( x- H% C
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
9 u% W' V& O: K+ ^7 G- D7 T' r If Closes(i)<1 Then Closes(i)="0" & Closes(i)% I5 M- [& I! G# G; H
If Vols(i)<1 Then Vols(i)="0" & Vols(i)9 B5 a9 G1 N X. D3 S7 @3 b; I: r! ^
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
& ]! J2 d9 l/ ?+ V3 h. R, a LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i); r4 V6 n" K: T% Q- r' G
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)' ] ^- P! |8 [
TextStream.WriteLine LineData
9 F# ]7 ?% j' D TextStreamA.WriteLine LineDataA
9 u2 u; p& R$ l, k Next$ f+ A2 P7 \7 F# k- Y: T- z
TextStream.Close3 q* }5 w7 L' k: z
TextStreamA.Close$ g1 N: M4 c, a5 A2 F' C
- [0 P% U# |& @2 |- V: g
1 g+ ^" G, |6 [+ U2 z
End Function
. f. A$ z1 L8 E8 T! t6 q9 U! ~" w% M: s8 v, V/ C
Function CreateAsciiDataDayes()
5 \$ G7 Y" v9 T8 m" ] E% C) h/ Z Const ForReading = 1, ForWriting = 2, ForAppending = 87 h1 M/ H, q" L, D+ g0 |
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2" O6 @% m1 j! C- g9 U
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast$ [% S: `( k; g% G F
Set Fso = CreateObject("Scripting.FileSystemObject")
2 x' M3 S" {8 W5 x$ [ FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
, `1 @8 X+ ?/ K FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"1 t$ q- L F& j: x' u, Q
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
- q9 i3 ]6 C4 \5 F [8 E2 ^' s) S Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
: W; p' y# Z8 \2 d& i2 M* j ArrayLast = Ubound(Barposes)
! {" T9 y1 F8 l9 g% }* e# E' A if (Datalengths=0 or datalengths>=ArrayLast) then# v0 M1 U: w: @% \( g3 v+ b
Datalengths=ArrayLast& ^7 g$ T$ i$ W9 I+ _# ]* d
end if+ A9 }- Q2 n( m) h6 _7 }
Datastart = ArrayLast-Datalengths
( C. Q7 Z2 {% H$ M; G% D/ w+ T1 J
For i = Datastart To ArrayLast V* K1 z; t2 a8 k: V5 x
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
$ V+ e1 l) K+ F. o& c If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
9 J U0 {- h" f8 d" I X% w( w- N; `! _ Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse). @" J4 P; |! l, I
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
; B" A c+ C# P1 o6 _0 K5 {% c Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse); a+ g8 [) a5 s1 D# F9 i7 _% _
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse); h8 l$ F$ a$ T, d2 ?1 S4 p5 ^
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)' E7 [; ]6 P3 _ z! Q0 D
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
5 c% s: v$ J6 o2 K If Opens(i)<1 Then Opens(i)="0" & Opens(i)6 `' y/ r3 ~5 `0 j6 u- q
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
0 o* V! S8 F+ e4 L' U' C If Lows(i)<1 Then Lows(i)="0" & Lows(i)( P2 C8 {6 ]0 H2 Q9 N. L
If Closes(i)<1 Then Closes(i)="0" & Closes(i)% b4 ?5 i- \& v/ x; m, v3 u+ x
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
9 L; W5 v4 r; A9 ?7 a' E If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
1 k( ?; n, x9 E4 p7 S) y LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)+ @. `. r& k) m+ T9 e
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)8 y# }& L5 i8 c2 I! N, o
TextStream.WriteLine LineData* c; I/ C, k4 X: T6 a
TextStreamA.WriteLine LineDataA
7 G' ^% z2 Y& T% \% c: _, f Next
( B b5 q# P8 B. i" S1 P( c S4 J TextStream.Close
9 E% N2 V4 ^$ g1 C1 t' T. B- k8 [ TextStreamA.Close p' u( _1 }' z* p% r' ?
End Function; W4 s# x! J8 O
/ Q- s8 s2 {+ q3 \/ v) s5 u) S
Function ReportFolderStatus(FolderDir)" ^* r7 t7 I- @4 P" z' K
Dim Fso, Status
- `# N# H# O6 B" j& E2 z, ? Set Fso = CreateObject("Scripting.FileSystemObject")
+ Q/ _+ v; p6 H* V' R/ @% t: Y2 K/ m If (Fso.FolderExists(FolderDir)) Then1 h; q) t0 {) U% M9 L d& Y! c
Status = 1- F3 J% `; o) k5 t* j
Else
" F1 J+ o& D$ [9 g6 Q" f% ] Status = 0
- Z7 g! K1 }" _/ i+ r8 S- E* N End If1 ]% @5 Z6 N! f* r1 r9 n
ReportFolderStatus = Status Q2 ]1 o, O# M, ^/ w$ P# c, Z' v
End Function! B, f" ?; @' y- f) n
4 a2 K) E& Y, J+ o$ g% b! YFunction CreatFolder()
1 h8 h' H U1 X8 E0 ]& d Dim Fso
0 c7 N# `2 l) T Set Fso = CreateObject("Scripting.FileSystemObject")
6 ^) G" g! t/ Q5 \* i# v+ f Dim Folder) Y3 o" j4 c( a' y5 r. j; K
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
. Q+ f+ c" W: F6 I8 m Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")) L9 c! i. h' k
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
1 h, ?( V; c. mEnd Function* s' Y6 N! ], Z! u1 U. R6 Y
%>$ g+ V C$ `4 g3 e# G1 Y
1 d: {/ n# j4 k! |6 w: nexplain(1,'--非日线为伪日线输出,两种输出格式:');; v4 |' L, p! ]# n
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
% @3 @) h& A) t( L, r9 vexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
. K: ^. Y% C- R1 [8 D0 s& V! N
! v2 y7 Y: o: Y[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|