|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
6 H& B1 D$ B8 S1 e# W, g1 w5 T6 n数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据9 l$ ^% P7 F7 b0 J+ c/ Y( j
Datalength= 输出数据天数(0~99999,0/全输出) d4 Z- G2 B* l: r* Y
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股/ h- C! U' v* P" r. L5 A
2)全输出: 用嵌入其他指标的公式在A股板快选股' O. v7 b5 V) e
------------------------------+ A# l) B8 A; ]" A& z+ P5 W
参数:
" r9 {7 o" {" G+ r数据输出 0,0,1
0 @ T8 i# h* x$ _: DDATALENGTH 1900,1,99999
/ V# h8 n0 J5 t% J! [( I//- J6 B( p7 r! V9 r3 C1 T
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;% T3 \+ v. o; S: }5 u; Y8 E
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
( I# {* [, B- ~' }3 I6 V数据转换:数据输出,colorred,linethick0;! C" A# ~# }# E( b+ R4 w
4 l. F; ]% W1 C9 _8 ?
IF 数据输出=1 then begin4 d4 `2 [* O3 A4 z, V) R
_Barpos := BARPOS;
+ f$ X' H2 E- z& u ? _Year := YEAR;
2 `3 C9 G( I- Z _Month := MONTH;
+ I7 S) T9 v8 o5 ]# g. S+ ]8 d _Day := DAY;9 F; h/ w" P# k/ f# [" L- Z! G% T
_Datatype := DATATYPE;
+ i$ \4 |' B/ Y1 \_Marketlabel := MARKETLABEL;
3 Y6 n8 e- }, k } N _StkName := STKLABEL;$ J- L5 a8 y; Q
_Open := OPEN;
: u: v/ F- r. \3 H' a( P _High := HIGH;. N& y6 x3 k. ]& p: `* l) L8 ?
_Low := LOW;" x) f6 n. B; n6 J8 t4 n' g
_Close := CLOSE;4 ?# l0 r- r8 L# G) z
_Vol := VOL;
4 @% h" e- s, s, Q% ~0 S, ^ _Amount := AMOUNT;
2 \. |9 O5 S! \0 Q/ |/ ^) E R _Datalength := Datalength;$ O/ G8 R( |' B$ n f2 [+ S
+ j2 q. x- i2 h! l: F<%3 k7 A% P* o1 j3 q
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
3 p* B7 M e2 Z% u* E, z | Barposes = ffl.vardata("_Barpos")
- E' u5 W2 M6 l; b Years = ffl.vardata("_Year")& \( ^! W2 I4 M/ L4 R5 | V
Months = ffl.vardata("_Month")
: ?+ b' y, _* Q; a Days = ffl.vardata("_Day")4 w) X' O2 Z$ C! g# ]$ z: s+ Z
Datatypes = ffl.vardata("_Datatype")
* ^7 c3 W0 n# Y' U1 g# s+ UMarketlabels = ffl.vardata("_Marketlabel")
4 r, L6 U: o% h$ H3 U: e+ } Stknames = ffl.vardata("_Stkname")
}5 I, I7 V7 ^1 d Opens = ffl.vardata("_Open") Q. b0 n( q% L9 y# w
Highs = ffl.vardata("_High")$ o% O! Z' a3 ?* I
Lows = ffl.vardata("_Low")! l9 D+ N1 j3 {2 s0 o" s5 `
Closes = ffl.vardata("_Close")6 ^ Z- _6 G* \7 p
Vols = ffl.vardata("_Vol")5 N2 }) g' @- f7 n" i
Amounts = ffl.vardata("_Amount")6 j8 Y* N, ^3 i5 @/ t" v2 ~9 m5 L
Datalengths = FFL.vardata("_Datalength")
7 \, @7 R/ x1 S. B- r' S6 `" t# k- @1 V" Q1 {# R, c8 K8 w/ s
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()# P2 R g# E' ^, y$ ^
SelectCreatAsciiDataType(Datatypes)
. E; u5 |. J5 t% k
. V& D2 T1 V: t9 F+ q& ^Function SelectCreatAsciiDataType(Types)) o( z; d0 Y$ _$ D# r
Select Case Types- ~9 ~9 A1 N# M" X( J5 _- V8 E. M
Case 06 s: C( E& g% i* G! I. O
6 j1 q: j* }; o/ E
Case 12 E0 ]' \6 j R" \- u. b+ p
Call CreateAsciiDataMin("_m01") / w8 G. s Y. Z6 \
Case 2
' D, ^. V. e" x, L2 ` Call CreateAsciiDataMin("_m05")
s) ?% J6 x) q Case 3! Z) b& u& d. Z% u. o( P: e
Call CreateAsciiDataMin("_m15") - F4 O+ Q8 o* ], \& L
Case 4& X, E- k# Z6 h \, \
Call CreateAsciiDataMin("_m30") , j- Q& t$ o, @' f
Case 5" H; @ h! Q: T1 e- H, i
Call CreateAsciiDataMin("_m60")
7 A6 _9 A6 b S8 g' E Case 6
4 F6 U. N3 p$ R$ n7 `( H) k3 W Call CreateAsciiDataDayes() G* ?8 Y+ A- |; o) b+ T
Case 7
4 t( W2 u( _( f8 @ q Call CreateAsciiDataMin("_wk") * V6 M( O* G% x) B7 K F
Case 8
, z, \) H% h" `8 n" r! y$ P4 O! K Call CreateAsciiDataMin("_mth")
- |3 s6 G/ h2 a Case 9% T# X! _! l+ O5 Y1 t4 V" d
Call CreateAsciiDataMin("_yr")
( Y$ x0 u: C g7 ?* B; O Case 10
2 v, u5 C# x5 @6 Y, o$ V2 S8 J% ]' T/ Z" e0 q4 C
Case 11
. @; P8 G9 F8 A9 \5 g! l
, E" K8 ]3 H) u Case Else; C8 ~# I; ]% X0 [* F
: [6 h' h& R) e6 t7 x: r7 r" O2 j
End Select; O: }( F* D1 @3 ~0 T; W! A8 |
End Function
& q9 b+ ^2 \; }1 m! j
: g% ?# `% }) C8 b3 QFunction CreateAsciiDataMin(FolderName)3 [2 ~5 O. w$ z* S' V+ e1 P% `
Const ForReading = 1, ForWriting = 2, ForAppending = 88 J! {$ }- q8 @* A3 X! o L1 ^4 k
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
' S) D# O/ t, w/ R& m" } Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
7 t+ Z# F; p5 W0 ^0 ? Set Fso = CreateObject("Scripting.FileSystemObject")
/ w: ?! a# @: m. c. M n! H7 S FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"1 X8 L( q5 U& ?
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"5 N" o) A2 h7 P8 l6 N) q- l' y
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)# k- u: B) [: I# l2 t) V8 @
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
# [* W- Z' G# X! z ArrayLast = Ubound(Barposes)
a( D1 s( l5 y t3 _9 y5 N LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
. I: o1 f3 o7 F% ` ]& Z5 d" Y4 T; g3 \: B. @3 t3 u# C# Y9 x
if (Datalengths=0 or datalengths>=ArrayLast) then- w+ W! t) }* R$ q/ z( v1 O
Datalengths=ArrayLast
4 }% X- O3 y# ?0 b/ A end if
9 \ Q" U( K7 b/ R Datastart = ArrayLast-Datalengths- l- K+ c( N) w# I# n/ h8 |
* ?5 N, l* j- z: o) I( g! x For i = Datastart To ArrayLast
- R1 T, n3 M4 b3 P+ V! ~ AforeDate = DateAdd("d",(i-ArrayLast),LastDate)2 l# d# [" f9 S$ z
AforeYear = Year(AforeDate). o/ X) U6 n% b% j D
AforeMonth = Month(AforeDate)
/ ~9 ~% r/ I& P/ ]0 t. S% S If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
% Z, }4 f1 F% h2 ^6 A2 J- g AforeDay = Day(AforeDate)
! a8 p( d0 [) x: y If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
& K0 B2 [, k/ Z7 X Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)( t" u* t& A, x8 l
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)* E8 U7 r2 O) h' e3 U, Y% N% f
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)& g4 l1 }7 L: I1 ^7 T
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)% \# `2 ^* J+ K) S* l& L9 u
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
9 r7 S+ I: |- J# O! d Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)8 K# a# e& P% F9 m; d: a y
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
2 s' T' m, J$ c! t4 H" N If Highs(i)<1 Then Highs(i)="0" & Highs(i)
% u4 a# ?( |8 A+ S/ h- `; B. k If Lows(i)<1 Then Lows(i)="0" & Lows(i)% g9 Q' J. i4 b( ~. K; C
If Closes(i)<1 Then Closes(i)="0" & Closes(i)! a0 L9 i; r s, u( i& o
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
! R; X5 |3 n% B1 F+ O0 \ If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
2 k- k0 d; f8 K1 s f% j LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
# y: ?" t7 w' J3 C" W$ T/ x LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
, a) y5 W% O4 |" @ TextStream.WriteLine LineData& R# q' L$ c3 G' A B
TextStreamA.WriteLine LineDataA
9 M8 M4 i5 G& e- G Next- ]: G0 @1 j* G- C7 V% @9 B: R9 X& R
TextStream.Close
* l7 I( X# ?% y8 M TextStreamA.Close
: E3 o; \7 s! E7 P% [8 R/ O$ k v" Z0 T7 P# r: ^/ Q+ c3 A* r$ w0 O0 h
, ]& y) k2 Q5 AEnd Function
* `5 |2 l0 a+ V- h. e. \3 N
" b3 ~/ _9 m+ T3 VFunction CreateAsciiDataDayes()$ g3 A4 H3 s9 b4 k0 j
Const ForReading = 1, ForWriting = 2, ForAppending = 88 f2 D1 S: |( H8 u# y: b
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2) e7 |* O/ b( _( S3 y% a
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
! c; z1 w* `/ t Set Fso = CreateObject("Scripting.FileSystemObject"): H6 Y) D4 d( P0 I8 m4 W+ o
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"2 i- g0 O4 y# z$ X* h, D# d
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"; p8 ~( |# b# T+ ~ {
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
8 \" L" D) }- L Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)1 i) O' `# K5 M" o. Y; [4 A
ArrayLast = Ubound(Barposes)
c+ M9 W0 ~1 O5 E! K% M0 q if (Datalengths=0 or datalengths>=ArrayLast) then
) }$ S( l; h5 p7 ]# f. q Datalengths=ArrayLast
" S& e8 o' o" `& k2 S) h end if; G- K) J& F# b8 ?% @+ P, C
Datastart = ArrayLast-Datalengths* \+ I" f( x3 y* ^! M9 [$ L. X
) j# }# E8 X9 B For i = Datastart To ArrayLast; f! \: Q+ m0 E. ?6 s- Z- l3 f1 Z
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
5 O J* L5 S9 @- O* f+ @ If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
" G' O, U, p5 l, A Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse). R2 t3 v0 ]4 K$ D) e& C1 o* d
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
; o! V @) g# \% e- x, S Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)4 n+ Z2 q. H: g
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)( k8 D* m4 w D0 \- h8 f# R9 A
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
3 I9 T. ~+ k \4 B4 o# P Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
0 K4 }; e- i1 B E6 c If Opens(i)<1 Then Opens(i)="0" & Opens(i)
7 a m3 ]% f' x' m; W If Highs(i)<1 Then Highs(i)="0" & Highs(i)) i) s: Q% r/ l2 s( s5 C
If Lows(i)<1 Then Lows(i)="0" & Lows(i)' F+ B% d! t; P
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
A2 ^+ x! @ t If Vols(i)<1 Then Vols(i)="0" & Vols(i)/ ~0 E/ @ T- E" }6 d
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
: H. F8 h3 q7 J7 {( m3 g% i& [' L' x, N LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i). y4 X! q+ M/ s( n" T- J$ f
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
+ x" T! h! \5 ~& R2 a) T, } TextStream.WriteLine LineData( ~2 \3 P9 I; ~- K+ v# v# C6 U8 p. o
TextStreamA.WriteLine LineDataA/ F0 O& N! X- h8 k/ Z
Next6 d" V5 h K- S4 y! j1 @0 H
TextStream.Close( g# H7 a+ q. Q( S* h
TextStreamA.Close
) }$ L( S2 d2 N3 o1 @ wEnd Function
/ M* x8 M- \' u1 C. l# t1 ~; {/ M; z# I
Function ReportFolderStatus(FolderDir)
0 j9 Z; }$ B& D8 w, g Dim Fso, Status
; p: w u3 ?+ M5 L, q/ y Set Fso = CreateObject("Scripting.FileSystemObject")
# K; G3 `) Y+ y4 B: F6 x; O If (Fso.FolderExists(FolderDir)) Then, N! p# X% s' H
Status = 1
; m. u+ k0 N" \ Else
- F: H( L9 F1 d- K9 J Status = 0+ L$ H; f5 X+ `4 T
End If: t& a; _& k* c! i
ReportFolderStatus = Status
! R# ~2 s& |9 L3 w$ m1 w e! }6 ]End Function
$ K1 N" k3 p1 j" ^3 U% v1 v. ~
+ y/ c: f8 ^/ k# R( `7 E9 DFunction CreatFolder(). j9 z9 B) j; ]5 ~+ s. d
Dim Fso
: l9 O6 g1 K0 d& b2 y Set Fso = CreateObject("Scripting.FileSystemObject")7 H2 b# L2 K5 a' o& c& M
Dim Folder/ p7 B1 T$ H; M: x0 b- K, l
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")" X+ P- R2 I# G) Y& Q; ?0 \6 o
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
6 _& ?$ m! B4 w+ v! E& ?% W8 w Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")4 a1 |5 j4 B8 q3 P$ W7 g( X
End Function
! w* H/ f9 F6 b1 E" p%>* \/ B$ e6 j `5 H1 L" P: {
! `5 C& n3 `; m5 ]' \# q
explain(1,'--非日线为伪日线输出,两种输出格式:');
4 O* x/ y0 p0 i$ _8 t- y4 Hexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');- k, D. ^2 O0 O
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');2 T( p! m$ L+ E
5 ]. m" { m1 O) j6 k
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|