|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
0 u, J: \2 b+ D1 ?6 n4 k L" I数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
( P) j. ]- L6 G2 m! O- bDatalength= 输出数据天数(0~99999,0/全输出)
6 l3 ?) x; L+ v8 p: H0 I, N0 |1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
- ^- M) I: }7 `: N4 {2)全输出: 用嵌入其他指标的公式在A股板快选股6 c& t& k$ T! h
------------------------------% Y3 [) z, I. f6 e. B: p- ^
参数:/ q$ e# i4 h- K$ r1 v+ z
数据输出 0,0,13 }, I! H/ |, Q, D* N W G
DATALENGTH 1900,1,99999
$ j" h ~' y! O) P//+ J$ [3 U& ?8 [- N( p; [
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;* X! ]9 v4 h$ ~; l; W) ^3 p
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;, |- V7 E8 ~& M! C$ O
数据转换:数据输出,colorred,linethick0;" n$ G/ ?! g8 _+ g2 t! t2 ^/ D% d
% F3 R' ]: _% ?; e/ z/ _
IF 数据输出=1 then begin
* K6 L2 [6 a U% m+ r- f _Barpos := BARPOS;
+ o% A* B6 g# E _Year := YEAR;( [9 Z6 U M% a3 `% ]
_Month := MONTH;0 p' ]" S' A/ A; y' T7 i9 N! k7 }/ J
_Day := DAY;* s1 V0 o5 M! I' R
_Datatype := DATATYPE;
0 i' x) D9 ]5 q' v" A2 ]/ n_Marketlabel := MARKETLABEL;6 ]! x, A- v6 t' W7 j" F* ?3 Q+ Z! J
_StkName := STKLABEL;$ {( Y5 [0 T* U& Z6 Y
_Open := OPEN;
( R5 f. _- @# K2 h8 Y2 g1 Y& B& Z2 l _High := HIGH;
+ \' u6 P* F: H9 k5 d6 _( S _Low := LOW;0 x$ X: m% z" H( Y4 n
_Close := CLOSE;
, H2 Y7 @0 T9 i2 V) H1 B0 b _Vol := VOL;0 o* A, Y2 j2 v9 N( i: R" ~4 H+ `& ~+ k$ d
_Amount := AMOUNT; ( V# t4 }& I1 ?$ V& M t+ r
_Datalength := Datalength;: r/ C& N7 H0 ^8 n) C
7 w; x1 g9 r+ o$ @8 N0 F
<%
( v( G& N7 r5 H' h3 FDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days) a1 w5 c/ S" m+ {9 O R' u
Barposes = ffl.vardata("_Barpos")
/ R2 T2 q& l0 J% D$ [' Y% a Years = ffl.vardata("_Year")
5 n' O& |! ]: h Months = ffl.vardata("_Month")3 Z: G9 @1 O4 f0 N8 [3 [
Days = ffl.vardata("_Day")
/ [" ?, W7 b' _8 i x5 T t Datatypes = ffl.vardata("_Datatype")
( d6 A- x0 i2 K9 [- ZMarketlabels = ffl.vardata("_Marketlabel")2 S. c7 L9 e$ V5 Q- k
Stknames = ffl.vardata("_Stkname")/ J' O( p4 }6 d& R
Opens = ffl.vardata("_Open")1 n3 B: H& D+ {) I' ~5 t
Highs = ffl.vardata("_High")5 [+ u6 N6 D0 m9 i3 s
Lows = ffl.vardata("_Low")
1 d$ B1 j7 {. M. C! `6 ` Closes = ffl.vardata("_Close")
# W- f5 u, R6 v3 l# j( {6 ] Vols = ffl.vardata("_Vol")+ i0 F8 J' |5 E) j8 p
Amounts = ffl.vardata("_Amount")1 x5 ?% `7 b$ R9 A0 o0 C; S
Datalengths = FFL.vardata("_Datalength")- k" O9 O; ^* i k7 S+ d% _2 x
+ P' K) h7 B' K5 ?' U+ a$ FIf ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()1 X, B+ O; e9 r9 h# X" Z
SelectCreatAsciiDataType(Datatypes). S x# V( j" F9 d
9 w( O& ]: ]# }$ E4 n4 ]
Function SelectCreatAsciiDataType(Types)9 D1 u+ L6 f' v! K
Select Case Types/ }/ A- `: O( U8 O- ~
Case 0( h6 g+ i) Q! s9 I1 E- r2 u: i$ G
$ P+ r5 T' [& |4 G% Q Case 1
, w4 Y9 H# V2 u* |$ h% F Call CreateAsciiDataMin("_m01")
~9 ]- K" q. q2 U$ N Case 28 i- q& z7 y4 H% t
Call CreateAsciiDataMin("_m05") * H( u) o M( Y* ~- i
Case 3
4 A( Y- i& s. d2 c+ I. _: S. j Call CreateAsciiDataMin("_m15") ; o/ @- N/ F6 f/ G h
Case 4 A+ i5 l- p' J8 }5 a8 i
Call CreateAsciiDataMin("_m30")
: v& w$ u0 P4 I& B Case 5; `3 b, _) u, E4 `2 R. o0 F( [3 l
Call CreateAsciiDataMin("_m60")$ a2 N1 M& E) E, j, Y
Case 6
+ x% ^. W1 E" g: }8 Q Call CreateAsciiDataDayes()3 M" r8 M; k" w3 E4 F) n. T. {
Case 72 @- [% P( F) e' U( ~
Call CreateAsciiDataMin("_wk") ; p7 @! G S3 }8 F
Case 8
( V; F5 u4 i$ t6 h Call CreateAsciiDataMin("_mth")
H1 o, I) h* e2 x; h. a- ` Case 9
6 _8 z, k. F8 h9 E7 {5 O Call CreateAsciiDataMin("_yr")
) ?7 x4 l8 f4 W Case 10# N: _9 V6 N" c# V% ]
+ U# N/ w+ @. P5 P- i& K1 i) b
Case 11" @8 X2 E+ L$ j4 N* f
) i3 `2 L0 |) h# A% E% O! w
Case Else2 _% ~# V. t- g! r) o8 g- Z$ ]
5 {( r- x! X! x+ b# C0 T
End Select7 ^4 ]- T: v8 `) y% \
End Function
! h% T1 T n- z( |* P# _, n0 [( k3 E1 V+ R
Function CreateAsciiDataMin(FolderName)3 X' U! S% ^5 b' n) ` O% o
Const ForReading = 1, ForWriting = 2, ForAppending = 8
# g6 y0 B ~; n. X, { Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2. M/ d# D% G1 J6 T* r1 N5 S2 `
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay8 g/ c9 [# S: `0 J
Set Fso = CreateObject("Scripting.FileSystemObject")( e# L8 m' E+ @( |
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
+ U6 N, J! x8 e0 f9 x FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
9 t9 e9 K) x, M+ h. s7 y* [5 N Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)7 I, Y' b: I* `! T
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
3 F% J/ z) a* o1 _ i, X ArrayLast = Ubound(Barposes)
2 ^) i/ ~' I/ R$ O4 W LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)+ V8 k1 b9 ~4 E$ A# E1 p. F
/ v$ A% r9 P0 q if (Datalengths=0 or datalengths>=ArrayLast) then
/ h$ ~/ _* _; A: ]& [' | Datalengths=ArrayLast b& D, p6 Z; w- R4 P
end if
: d" K+ O4 Y$ t$ [7 Y, m+ v! q: D. X Datastart = ArrayLast-Datalengths V" C. U+ C. @1 P% u6 N
9 Z" R" C" [: o
For i = Datastart To ArrayLast
3 \: n. I7 @/ a AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
7 w: Z7 `' Z5 w3 J" Z" f AforeYear = Year(AforeDate)4 T1 N3 ~! l; U P- U {
AforeMonth = Month(AforeDate)
1 T$ c" r6 m/ K6 v If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth5 r$ h( X* c, v8 f
AforeDay = Day(AforeDate)% k0 b7 i; ]1 u; k8 r, b- @8 X& l
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay; T( _: \& e9 S0 l
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
$ K7 _4 W& @& A& N9 p$ Q) G Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
8 ?6 l, h5 q8 M- K# q6 b Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse). l, h# C9 ~3 l' T s
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
$ c* i8 t1 S ]0 Z4 P Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)" O* G ^$ y- q( Q6 d
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)* T% \. _) L+ p7 n8 s+ B
If Opens(i)<1 Then Opens(i)="0" & Opens(i)# h. F* s, [* \" e8 n- `
If Highs(i)<1 Then Highs(i)="0" & Highs(i)4 k* ?" B3 @9 t, q0 `
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
2 \, V0 J; U) g% j) \7 v [ If Closes(i)<1 Then Closes(i)="0" & Closes(i)
1 z, O3 e0 G/ t% V) B1 U If Vols(i)<1 Then Vols(i)="0" & Vols(i)+ {; t r" G3 ^0 w8 _8 b- z
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
! J3 V" e# k- j LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
! V3 N( K6 d- e! w! N LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)3 g, [3 l5 j. s. y3 O
TextStream.WriteLine LineData
* v# p3 B6 v( t" I* d* I$ a9 j' I TextStreamA.WriteLine LineDataA9 E- v w! ~* }% Q) b" |
Next- k [$ U( m4 T1 z( R5 u! p
TextStream.Close
8 b" J+ X2 u& A* m8 Z TextStreamA.Close9 q( e( ~" f& t$ @( G1 _2 x4 g
# ^+ V! E' I9 Z7 V1 S
! Z% A' [6 O* i* t2 m7 wEnd Function
4 T' W* ^) U7 Z9 V( X; z/ z: f, M, J, m: q6 d. Q4 P* f8 F* u
Function CreateAsciiDataDayes()
' O( Z& S6 r6 o4 W& E. M# B5 i Const ForReading = 1, ForWriting = 2, ForAppending = 8, O, k. x! w) X/ `& T! U% n2 H2 }
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2& o+ q$ V% p; f
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
" Y$ ?. q2 @; F. M, s Set Fso = CreateObject("Scripting.FileSystemObject")
" d" P$ _) R& T8 u) M$ J FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"; h3 D$ D0 t4 O4 s
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
$ c+ W* s: y ]( k: W7 C Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
9 x9 f7 X& r5 T/ l, q4 @ Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)' c1 z1 g# t' S2 h
ArrayLast = Ubound(Barposes)
- |% \6 |" E: T if (Datalengths=0 or datalengths>=ArrayLast) then
! [" l5 b+ |& f4 s Datalengths=ArrayLast5 _8 q$ |0 D, q* T# N* q
end if' I' m% e4 C2 B1 H* S7 m
Datastart = ArrayLast-Datalengths3 b: N+ [- `" Z0 k2 f9 I$ m" G
5 G; I: \9 m( Q# O4 X1 E
For i = Datastart To ArrayLast
c7 Q9 k, | N' [ If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i) O3 p1 }" \; v; m5 e# H K
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
, b9 }3 M) e, t2 w! A1 x4 W Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
) D! }5 D5 J( ^ Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)5 r% H3 B. e8 ^4 T. ?) s
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)) d1 I. {) A8 H% E8 w7 U
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
+ {" k, w. k+ S% g3 [ Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
Y( o6 C/ c5 d/ a) ~6 D Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)* K( }- I( L% p
If Opens(i)<1 Then Opens(i)="0" & Opens(i)& j* f8 Z/ U( M& @; p8 i6 @5 N
If Highs(i)<1 Then Highs(i)="0" & Highs(i)* y. K! m" v9 g4 s/ L
If Lows(i)<1 Then Lows(i)="0" & Lows(i)* h: ?! q1 }4 E0 e' f9 K) A& E
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
2 A. d n# o |! a If Vols(i)<1 Then Vols(i)="0" & Vols(i)4 T) y4 _- o0 j. k, a' }
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
5 V# u, V. O& B& I LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
( P3 K) S- \: P9 H LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
& w3 G" ~7 d/ {0 u2 H. k TextStream.WriteLine LineData
( u* _/ N5 y4 f TextStreamA.WriteLine LineDataA: ?, e" G g& F' w. ?
Next* H& L; ?2 n( E: C
TextStream.Close
0 V* u" ^8 F7 f5 G TextStreamA.Close 6 v' l5 q7 @9 X) {6 W
End Function
4 S' A2 \' L; A/ _7 v$ ^3 B$ [
& p7 J/ u( l" h) N% a; f8 w( WFunction ReportFolderStatus(FolderDir)# B. J; q ~% D3 U. {# \
Dim Fso, Status
- @" I0 ^+ a3 X Set Fso = CreateObject("Scripting.FileSystemObject")7 G! l9 V; U; e4 u$ H( S3 l
If (Fso.FolderExists(FolderDir)) Then
5 ?2 b* z' A m. J |. C Status = 19 q5 E; X' _. U3 `$ l2 t# C) Q% g
Else
+ n* o" I* s0 n7 T5 @% v Status = 0; b) {2 S' u" W, t2 [% e; Z
End If
- X" l0 F- n* K! |0 K B ReportFolderStatus = Status$ V4 b8 ?7 j0 M& H" U
End Function4 w: }: @9 [. {' q/ w: T; i" O
& g u( ^! @7 gFunction CreatFolder()' D' c2 Z& h$ t
Dim Fso
* N5 `# k% P* q7 F2 U( J& e Set Fso = CreateObject("Scripting.FileSystemObject")
/ v3 p2 i* ]1 r S" R0 H Dim Folder6 O! s; k. Z; e. q3 {, b& d+ i
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")& Y% s& J4 k! G8 Z
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
. C" C) [: j5 v3 ` a1 ~& e Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
6 l+ I: `" @! SEnd Function% N# W+ u* \$ C3 n. X( T
%>
3 `$ x' Z7 t. J M& C
7 y) p" T% ~9 u7 |; _0 {3 b4 U! N1 t" Dexplain(1,'--非日线为伪日线输出,两种输出格式:');& r8 J/ J. w6 j$ }! S# o& B
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
; N0 V r1 X. k/ R7 C2 Qexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
. f+ s$ ~$ e( [7 z
* I [' O9 u- h8 l/ y2 L[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|