|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码, W# A! k, o/ v! r X
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
3 s! R0 {: i6 v5 u KDatalength= 输出数据天数(0~99999,0/全输出)
! D# v' x+ m$ ~+ _" a6 F8 j1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股% X/ a F6 Q$ }0 r* D$ f, W
2)全输出: 用嵌入其他指标的公式在A股板快选股
- u: {& }1 [' P1 X------------------------------7 p: _( } e5 u1 R+ I
参数:
5 h( j' ]' t S- ~! J数据输出 0,0,1# Q5 O9 V4 m0 _' ?1 g
DATALENGTH 1900,1,999998 B2 a; @, m& l& f. W2 V
//
# S( a' N# u5 Q9 C6 N: H) ]vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;& b8 [& P" Z* X" E4 q3 d* a
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;- l1 S% f+ ?6 e( Y, Q# g
数据转换:数据输出,colorred,linethick0;
* [& Y# C* D" ~4 v, v! s/ {% u4 r4 d5 \$ M- {' W C) |
IF 数据输出=1 then begin
; I+ i5 n6 j1 ^. y _Barpos := BARPOS;
' l* P- I `: ]$ L: C: G+ t5 `% _% ` _Year := YEAR;
+ d/ K A" F9 h7 y$ @/ K' E/ } _Month := MONTH;
* _, l9 m+ \8 D/ P$ l4 k _Day := DAY;6 f! A d5 E2 e- e R+ \1 `) U
_Datatype := DATATYPE;
/ q# }- z; l0 g( o/ n) M) X_Marketlabel := MARKETLABEL;; G" J2 p1 l- i+ J
_StkName := STKLABEL;
+ J$ M% z7 K: O" R# v) ^ _Open := OPEN;4 |8 u1 U! G: E
_High := HIGH;
1 w0 d0 t0 B3 L _Low := LOW;
% M: X, F! O( G4 D5 \ _Close := CLOSE;1 D' t( G" M: f0 U& E
_Vol := VOL;7 T) m0 o9 m' w7 {$ }1 c
_Amount := AMOUNT;
! a* g8 k, i' [! n' z& y$ Q _Datalength := Datalength;
7 o6 V" C* L- R2 q; Z
! ?$ S% i, N, q4 V) G<%
! {. E* Q" r% A* B% Q( b! E5 QDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days) r: @+ c& D" m, N! }: e* d
Barposes = ffl.vardata("_Barpos")7 O! ?" F: H7 ]& A$ A
Years = ffl.vardata("_Year")2 Y8 X0 `+ H7 y+ r2 A( H
Months = ffl.vardata("_Month"). g' c- c: m3 M2 R& t4 x
Days = ffl.vardata("_Day")7 ], z7 [3 ?8 _. H4 {! p% q% P
Datatypes = ffl.vardata("_Datatype"): S# w b: g5 U5 E0 G- U3 \4 e
Marketlabels = ffl.vardata("_Marketlabel")' X' F9 o& I3 @/ D
Stknames = ffl.vardata("_Stkname")
. [1 h* t1 Z; Q- V, x; Q Opens = ffl.vardata("_Open")6 x* m: C& f# j( M# ~- P
Highs = ffl.vardata("_High")
4 }9 N1 G& T8 V+ |1 B9 t Lows = ffl.vardata("_Low")
7 | S, F; j P V; D Closes = ffl.vardata("_Close")
: H, N% j+ g* w/ _& p. ~, @ Vols = ffl.vardata("_Vol")
, l+ y5 }2 e' U8 {0 `1 w Amounts = ffl.vardata("_Amount")
: g' B$ g' t) O7 a0 ` Datalengths = FFL.vardata("_Datalength")* S8 d# G3 ] E; S, l
! |" @! t {/ Y" M
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
3 o& H; b$ a( b& c8 A* f! oSelectCreatAsciiDataType(Datatypes)4 a) b' |. M% ^
8 Q S5 r4 A. R6 _2 wFunction SelectCreatAsciiDataType(Types)
' X$ c! m; j4 q } x4 x3 f Select Case Types
( ?! Q. ?$ P3 S" u8 V% U Case 03 r$ F" ~, m6 }5 g
5 `# e: D" z, Z: N& c% r Case 1
8 T! X/ F# O& h+ X Call CreateAsciiDataMin("_m01")
/ M6 C# Y# o1 }, D. C5 w Case 2' O; G2 Y- r; Q# x5 y7 W! X
Call CreateAsciiDataMin("_m05") 5 H7 Q+ s& c- F9 G: B% V/ ]1 q
Case 3
7 _' O p) s1 }0 [* E! w! L3 X- T# J Call CreateAsciiDataMin("_m15") , f1 A8 `0 R0 q7 s
Case 4
' p( e P3 w: F Call CreateAsciiDataMin("_m30")
% y6 J! u1 N, S, r/ E4 W Case 5# H6 k D$ H% d$ L% o1 X- k9 X
Call CreateAsciiDataMin("_m60")* ^/ z3 a# r8 Q/ a' D+ }
Case 6& l6 {+ P9 \7 `- L. J% i
Call CreateAsciiDataDayes()
" l$ j4 ?# _& R Case 7
! r- s) `) [- P: n4 P9 J9 F Call CreateAsciiDataMin("_wk") , h& _ {% G J% ]
Case 8: c+ [; }+ ~5 p# t0 j2 j* ~& \- z, u
Call CreateAsciiDataMin("_mth")
t T X; |% s Case 9
$ h0 P: r1 }6 \/ X Call CreateAsciiDataMin("_yr")
8 e3 q# q) c6 g6 H Case 10
! n5 w4 I- ]! C8 L* ^% R# O- u/ j$ _; Q$ U/ \/ J
Case 116 z( V) V! o5 I# w, W) t! ^' n
$ q1 |4 y* g0 B Case Else
" q, d* Z$ v6 O* x7 Q5 K; z
6 A: f) R$ k% c: c: b9 H8 Z4 d End Select
& h: d# H0 v' J$ ]6 g1 k; hEnd Function; M2 q8 h1 d* r
5 ]9 [& ]5 y2 s7 e8 t# k; x1 XFunction CreateAsciiDataMin(FolderName)6 _9 ]" ], ^+ W! U8 I. [
Const ForReading = 1, ForWriting = 2, ForAppending = 8% { H9 ~+ Q: K
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2. g8 }8 u; q/ y" P3 ?* M
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay" b/ v, L3 J$ x
Set Fso = CreateObject("Scripting.FileSystemObject")
: ~7 x% V4 j: |. H4 c; `( S FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
) @6 @! _8 V- _7 }# s# V$ E FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"/ D+ _! h4 T4 Y. N# v
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)+ X( p, F9 f: F' Q: |# V/ G
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
# a! t0 A$ m$ v) |# w ArrayLast = Ubound(Barposes): \, P" b w- z; q- s$ _1 M6 H" }
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)$ [$ y8 G5 Z" z% \# {( U
1 ]5 N% Y5 U4 x8 h! `
if (Datalengths=0 or datalengths>=ArrayLast) then. u, I6 K' ~7 F+ t+ u
Datalengths=ArrayLast
) f1 |& n2 ^$ {. c1 F6 k; Z end if+ N( ]2 @1 q# i! H+ f8 ?
Datastart = ArrayLast-Datalengths3 y9 x: z$ @8 M& T
) s! K/ c8 j+ J4 N/ W( d, G
For i = Datastart To ArrayLast
+ [$ T: k5 S- G2 t" X AforeDate = DateAdd("d",(i-ArrayLast),LastDate)" x+ v: o! Y5 }+ w* W2 v/ V1 r
AforeYear = Year(AforeDate)# A; u0 X$ E% B) ` ~
AforeMonth = Month(AforeDate)
* I9 [' H* ~: K; q+ u5 d; u If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth" h8 N- ?! C% D7 J, Y, X# {' z
AforeDay = Day(AforeDate)
% W- S: R# l, S- o! f3 d) j6 o If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
7 u- @# Q4 ?. Y: \2 h$ K. z0 o Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)4 Q% v. Y/ h! [ ~- w% i
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse) L. b @' U. P8 d- M
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
0 i0 n+ q; }1 A- o$ l Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
/ b& v, D4 k4 C) D8 T! O% i Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)" ]2 J1 S6 S0 L: Y; Q; R
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
9 n, v8 _: _: ~" ^ If Opens(i)<1 Then Opens(i)="0" & Opens(i)
1 X+ L) L* Q9 d- ]. O* l3 O If Highs(i)<1 Then Highs(i)="0" & Highs(i)
! y$ ^; m4 p# d$ k If Lows(i)<1 Then Lows(i)="0" & Lows(i)
) j& `$ W4 u g5 e9 h) a0 M If Closes(i)<1 Then Closes(i)="0" & Closes(i)
, u( O6 T0 T& J, b: F' e If Vols(i)<1 Then Vols(i)="0" & Vols(i)" j a/ M9 Y" w. t; F3 d# E2 A$ t+ f
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
3 V* [5 E7 O, |+ u LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)1 ~- S) d4 l' F* J2 D y
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)$ h2 d( p% s* k5 N W9 a
TextStream.WriteLine LineData8 c4 _( I4 K( a1 c ] } g
TextStreamA.WriteLine LineDataA
1 c( G, K5 E0 j( t% M0 c Next/ K/ S( b! h) @/ n# r
TextStream.Close
( A# [* f8 j" y% i' B TextStreamA.Close% A+ B) T, q. ~2 ^
6 ^2 F9 m- }: z, P9 v9 `" b, Y. \7 p$ r * n& {; f1 D+ A. g2 h4 |, r
End Function
1 [) n/ N6 d" I' S+ q$ h }9 k
# y; I7 P2 X! e$ ]; f5 SFunction CreateAsciiDataDayes()3 D. L/ w9 A$ t) r( S
Const ForReading = 1, ForWriting = 2, ForAppending = 8! _) P: D* X" F3 J- R
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
2 u* ?$ q" y, |8 U1 \7 W$ k Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
% w1 z0 H" `3 ~+ @ Set Fso = CreateObject("Scripting.FileSystemObject")
) U0 N0 T, _# k$ W8 ]+ t- ~ FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"3 ~/ C: C: k9 H0 E6 F
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"/ x9 _% s; O0 S6 q1 n0 J
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)1 q' {. R6 |* p) s7 V8 X
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
$ u7 C, n$ d# Z# \ ArrayLast = Ubound(Barposes)
& p! t! y8 |, _2 ^8 o if (Datalengths=0 or datalengths>=ArrayLast) then" ~4 G, A. X% i, a* o& A2 ?! ?
Datalengths=ArrayLast
/ K: D, r* h, M& a7 |1 D4 C2 h end if! C: n. g8 }3 K! Y+ D
Datastart = ArrayLast-Datalengths
/ U3 B/ V6 |& C3 N3 h7 i; e' j r( i. w- m' e. L
For i = Datastart To ArrayLast
& b- f* `" _# h6 z* D+ |0 h If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i). L5 `# B. Z5 ?& p
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
1 | Z, T' J, N$ U Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)5 e5 I7 V2 U6 T% s3 h2 f7 O! v
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
7 w; j0 O( D% |% v/ e6 [* } Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
7 b1 V0 |6 z6 A0 V: l5 c; { Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)/ k' c1 F+ t- |( p z
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
- y/ K% Z& w0 Y$ z Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)4 ^- F9 w- }$ S7 j6 `
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
5 w+ y2 j( K9 w7 g* `5 p' D$ s% X+ J$ H8 } If Highs(i)<1 Then Highs(i)="0" & Highs(i)8 \& }+ c/ s( ]
If Lows(i)<1 Then Lows(i)="0" & Lows(i)! o( a: N7 r+ K2 _
If Closes(i)<1 Then Closes(i)="0" & Closes(i): M% X5 \5 w' @7 x1 Q+ R2 _7 n+ Z
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
+ d' I& c8 T; h6 p, k3 A3 a If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
# ?) v, S2 Y% i+ ?4 c6 W! K LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
' n, ~' v8 g' r% x' L3 i' r LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
* d8 l( M& ~+ W" r9 ] TextStream.WriteLine LineData& C* l/ B& Y( L' \
TextStreamA.WriteLine LineDataA
?- A" y( _6 }# n+ A Next
+ U& R; f6 B9 y3 ?+ T" V TextStream.Close! t9 L) T+ {& c2 {' {
TextStreamA.Close 8 R6 h/ V: J7 a. A/ ]/ ]* q
End Function
6 f9 e7 \& S: x7 Y0 Z6 Z `* m4 H6 ?/ u) ~* P3 \
Function ReportFolderStatus(FolderDir)" ~ ?( [& c: t. e
Dim Fso, Status' k u+ W& V4 }. y) q
Set Fso = CreateObject("Scripting.FileSystemObject")
& W' D" V6 W, j0 O- e If (Fso.FolderExists(FolderDir)) Then
. W% Q4 [ y+ F+ L Status = 19 z9 e( ~% y! q# u) _5 N
Else
2 [- ], o6 u X8 r- d* O Status = 0
5 N$ l, [( {4 j2 X8 q End If, P6 r+ o# B( m9 w1 \+ P/ W
ReportFolderStatus = Status
! G4 F; N7 x$ D' ]3 i1 jEnd Function1 W# C: s" n2 N. J
9 h0 d% M, q ~Function CreatFolder()
! _" S5 g$ R* L Dim Fso
3 A5 y; u7 j9 T6 b Set Fso = CreateObject("Scripting.FileSystemObject")4 [6 M4 u6 ^/ C2 R/ R+ I
Dim Folder8 }3 _/ Z, y" E: j) U; ^' J9 O
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")" \3 ~9 A- N: V; i; d3 `0 `
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
; F$ z0 I* s# s Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
^5 i! A1 M8 G7 l& oEnd Function1 s& h" B$ g: N$ F6 V- l
%>9 l7 I/ ?) b4 \9 H; ? c3 F
3 b) s5 ^. s! r# }& hexplain(1,'--非日线为伪日线输出,两种输出格式:');
3 J- t9 X/ c% |- V5 rexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');2 {; z3 L( o/ E w: C% @8 _3 \5 O8 a
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');+ \$ Z$ q) Y8 E/ l" Q8 E
$ Q. H+ C! m7 o+ W% o6 B5 F. P
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|