|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码4 ^. \5 y( c5 k6 S, Q
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
, L* j/ S2 k# i1 J3 {! yDatalength= 输出数据天数(0~99999,0/全输出)
2 F5 R) d; j9 ~# d6 e1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股/ W) R3 [4 J, H
2)全输出: 用嵌入其他指标的公式在A股板快选股
& Q* y' w+ U: N5 h; ?/ e' ]+ ]------------------------------" C& U( P8 _' L
参数:/ D, ^0 l' P6 {) F+ }
数据输出 0,0,1( L8 P& o+ _% y
DATALENGTH 1900,1,99999
b9 W- ?' J# w! x. p* V% ?//
7 m; y( J7 H* L) l1 D- _+ Z6 Hvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;, M, L5 X2 G9 l2 W4 Y
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
* i8 b: [$ ~' }, B; g3 R数据转换:数据输出,colorred,linethick0; G& k. i( {) ?' ?; w
6 v( U; I x3 j4 E+ v( }/ ~5 v- _
IF 数据输出=1 then begin1 z* B0 Y2 U) j4 R
_Barpos := BARPOS;
' J3 X! ]5 I3 P* U8 d) L8 A _Year := YEAR;; Q* k8 s$ @* d' g4 V6 ]7 D
_Month := MONTH;
9 H5 q& v- d- I+ L6 N' r _Day := DAY;
( I8 t/ Z0 ~3 _& t: Y _Datatype := DATATYPE;# M, g, w' c5 n7 ]' ^+ h2 x, i
_Marketlabel := MARKETLABEL;# {! u! s/ T; X8 M, h" c
_StkName := STKLABEL; t, r; a! `5 O3 [$ M9 c
_Open := OPEN;
7 H8 s y. O) i. ]* a; A _High := HIGH;, x% H% I- ~0 y1 R4 e! y
_Low := LOW;
( D0 O; f) ]. l# T3 B3 F _Close := CLOSE;: e' {' m: ~: H3 H* d
_Vol := VOL;# ~* d) e/ b5 r- f* S. d+ \
_Amount := AMOUNT; & [& i0 r5 G3 D! k1 h/ r
_Datalength := Datalength;
3 A% p1 M/ ^3 g2 s
! r( a4 w+ K0 f<%6 i; i2 q1 [5 W, r
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days" ]. R; h4 K6 e) k+ h
Barposes = ffl.vardata("_Barpos")
! q/ ^) ~% ?' w. d; E Years = ffl.vardata("_Year")
. e! S2 f- t" C% a Months = ffl.vardata("_Month")5 K; _" A) |% m2 {& T) K
Days = ffl.vardata("_Day")
4 }$ l/ ^; z% ?% G! r3 x Datatypes = ffl.vardata("_Datatype")
3 W% S0 G, Q# E8 n8 I. j' ^7 vMarketlabels = ffl.vardata("_Marketlabel")
0 L2 o/ Z7 f& d) A) E9 Q e Stknames = ffl.vardata("_Stkname"): [& K0 T& T" w: T6 J2 z/ K9 O( z
Opens = ffl.vardata("_Open")
; C' [" G" I( e, \9 H" Q Highs = ffl.vardata("_High")0 x2 N6 i# h8 P5 U }4 z
Lows = ffl.vardata("_Low")
' l3 F1 `- z1 X& W# W' A' L3 z5 d Closes = ffl.vardata("_Close")5 f1 F- ~; x* w
Vols = ffl.vardata("_Vol"): O7 f, M6 T E/ ], S( p( ?1 d
Amounts = ffl.vardata("_Amount")
- O9 Q# o# M9 W( Y: E; i Datalengths = FFL.vardata("_Datalength")
: r; h' A- H0 C, t f; {6 o. V: f% G$ l, I6 a( ^( @
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()3 F# u0 z: S& g$ a
SelectCreatAsciiDataType(Datatypes)
* R6 T" {9 X! s6 I6 k& B$ a( }% s5 Z3 K. V+ ~
Function SelectCreatAsciiDataType(Types)# M; R2 Q# b: ]. q7 U% h$ W
Select Case Types% H" B2 l, G& z& o2 A
Case 0: _3 u$ v" y! B% j d
9 x. i$ Q! z1 s Case 1
; x( B- g' }' J7 p Call CreateAsciiDataMin("_m01")
) Q) ]; }7 C: W& m l- | Case 2 Q% E# m) U8 N9 y( g+ r
Call CreateAsciiDataMin("_m05")
5 A- {: Y. A9 S8 |8 a4 ^9 x$ F9 h Case 35 g" O- Z: a" p) P( y
Call CreateAsciiDataMin("_m15") # g. c7 }" q/ r" Z; W# J
Case 4: X- D* T, ~8 ]& A; h# z7 Q5 m
Call CreateAsciiDataMin("_m30") % X* S% l& `( e2 Y% ]0 n. b
Case 50 P. U- }, S% Q3 i
Call CreateAsciiDataMin("_m60")7 W* C7 t3 B5 v
Case 6/ W- F) n' r6 e+ U# Z0 o
Call CreateAsciiDataDayes()
1 S* e1 L5 \/ R- W Case 78 z- o; l, |5 ^% h+ o
Call CreateAsciiDataMin("_wk") ( C+ f4 a% e7 q
Case 8" [8 F4 M% _ z0 E: g, D
Call CreateAsciiDataMin("_mth") ! ?6 w4 S2 f6 {) N/ K7 v, g
Case 9
; D0 z/ Q; p% p; @7 d Call CreateAsciiDataMin("_yr") 4 [; m, m) p5 R8 ]% r' C s
Case 10
/ `2 j7 U/ @% {+ V2 z
0 F( R( Z0 m1 ]$ \! U Case 119 a2 [5 ^; Y1 e* G( i/ n, {. @- c' H- H
9 W4 S- v; V9 x+ T" M* O& r Case Else' t5 d9 U/ J e: w# P
6 r& \9 Q+ s8 R: O2 d9 o/ H
End Select5 h4 R0 Y. e# F7 l- H
End Function
7 `" r* a; B: ^4 v* i7 y0 d2 I# s. b/ S" ^
Function CreateAsciiDataMin(FolderName)
" D4 P: I1 \( E8 \8 f }0 L Const ForReading = 1, ForWriting = 2, ForAppending = 8
3 n' h: f5 j: W Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
$ n5 f/ }1 F! \# ~. i# k: m$ r1 B$ k Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay, e8 w$ K, V( _; j
Set Fso = CreateObject("Scripting.FileSystemObject")% j9 P0 j- A& i! @
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
- t) q9 q2 D$ a% B FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
. h- L K9 |5 {# u; e& q Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)! [4 p3 o" h" P
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
, G2 Q5 v/ v* Z: t% o: J ArrayLast = Ubound(Barposes)
6 \9 s$ d' C) y8 j6 i$ S3 L LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast); C6 B$ ?) F; N3 Q+ _. B1 r& h8 W
1 t3 z6 Q: z/ m1 j+ p+ b O
if (Datalengths=0 or datalengths>=ArrayLast) then
7 o+ [% p+ R z6 H4 L# f9 D4 L Datalengths=ArrayLast
& g( q% M9 p; d/ o/ q end if. U) |- s& M3 g& {; K) R3 D4 E
Datastart = ArrayLast-Datalengths
9 B, f9 s* r9 n) W# p" A) W6 E. l o6 K
For i = Datastart To ArrayLast4 z7 v* w" E& O
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)2 W0 p+ B# T- a A9 Y
AforeYear = Year(AforeDate)8 I A. k) k; O
AforeMonth = Month(AforeDate)
- k' @4 }5 r3 j If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
8 ]4 e" {0 s" s AforeDay = Day(AforeDate)
# e, V% t v1 G0 ]' j If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay& w+ {4 E+ X' U2 w
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
! @6 J: \( u' R5 I Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
3 F! a. [7 t( S. w; l+ g3 I% D0 d Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse), `# }) P! K; X. m! ^ C
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
. r; g; |- H: A7 ]7 |; s Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)4 A) k- o+ ?- M3 H
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)' P8 B2 T8 R, |) W" `
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
) P" e, ]* x6 @; c0 g If Highs(i)<1 Then Highs(i)="0" & Highs(i)
( j, F. F7 p1 i( J5 ^* v7 @ If Lows(i)<1 Then Lows(i)="0" & Lows(i)4 ~* @3 j! u: Y F2 o" `
If Closes(i)<1 Then Closes(i)="0" & Closes(i)8 e& d8 Q0 s" b
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
& h; k% o; d7 r* @, _9 B2 l- R: H If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
& x% R1 V# `5 d7 M5 ] LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)# W( i% ]1 s; f( y
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
" s* b H0 i! E: Q) I/ M TextStream.WriteLine LineData
. q& x9 _: @; h' j/ G3 m; z9 M TextStreamA.WriteLine LineDataA i4 h7 R' }3 L1 `5 }, } k
Next+ h" H4 K! X% J( K5 {
TextStream.Close% _. R6 O4 V" C4 S4 Q0 h0 p
TextStreamA.Close9 h& K) j' F# V# `+ }4 W7 w
8 T! h' j+ C5 v
/ m& G x8 d' `: q% M
End Function; S' b8 u. u i0 _2 D' M; j/ F* O
+ Z. C1 r' u+ P4 s% KFunction CreateAsciiDataDayes()
& g% |9 [$ Y( G6 R& Z' y2 t Const ForReading = 1, ForWriting = 2, ForAppending = 8
; A! D, c" |: u7 q8 F Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2$ o& m" @; O# l9 m; @ ? c+ p% {
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
3 J2 a. y; ]- e, L Set Fso = CreateObject("Scripting.FileSystemObject")
$ P' `. o4 w1 Z( q% p* {" [ FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
, \, n& k6 `! Y7 f7 y4 B FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"" \" d9 p5 c# D) i; W
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True), Z, ]3 W0 ?9 P7 ^1 p: [
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
0 j @% w, Y) b' W- C ArrayLast = Ubound(Barposes)
9 r& @8 h; A* d. H5 P; B if (Datalengths=0 or datalengths>=ArrayLast) then/ ?0 K z" h4 S3 Y* I+ R/ [( b; c
Datalengths=ArrayLast
# r% o5 r( b0 s end if
" h+ R ]) S; K6 ~ Datastart = ArrayLast-Datalengths& g- H7 B; n$ z5 o6 p5 B% Y* Y
4 f/ E( n$ I! V% P' a2 q
For i = Datastart To ArrayLast1 C5 Z2 Y9 _) T
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)% \; N! ^; Y" w2 _
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i); t0 H7 t# \6 c1 ` n
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
+ `5 m7 K5 {. I* G8 v Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)1 n- g6 @8 m$ f5 T1 S# s x: w
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse), H9 ?4 a6 l9 M7 I9 n1 ~0 v2 H
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse); R/ P# }( |8 [1 N* k, u1 p; z
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
+ W0 i/ y: {, x# N2 A Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)( V+ B) V7 W+ C: L; E
If Opens(i)<1 Then Opens(i)="0" & Opens(i)& g5 |# z' t8 z& B9 Q. H
If Highs(i)<1 Then Highs(i)="0" & Highs(i): o8 n9 V" \. b+ q' Q+ _2 _: j n" q
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
4 X+ C j. i& ]7 j2 t+ D If Closes(i)<1 Then Closes(i)="0" & Closes(i)
/ ]& b+ o+ O, m. y5 D: A0 a If Vols(i)<1 Then Vols(i)="0" & Vols(i)
8 [( u# g' D6 Y- [8 B3 A( T If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
9 A5 j, {- |, m5 L; N+ G) x LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
1 J5 K# z1 L2 k4 m k3 e% ^5 e LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i): R$ o/ Q7 T8 W P9 p$ \6 Q
TextStream.WriteLine LineData
: ?2 W. q5 y0 x+ W' b- {6 t TextStreamA.WriteLine LineDataA+ y* z; M4 K" |3 v E7 B, Y) H" R
Next# {% M: o+ Y4 J4 ^5 t
TextStream.Close( i2 K+ S0 z5 G& [ V6 e/ G
TextStreamA.Close
( P' `/ L' t" WEnd Function
) a$ R$ T" B1 Q& L1 |' i/ y( s8 m1 J; }( i3 F) \
Function ReportFolderStatus(FolderDir). {3 B( ?2 |" N E' {
Dim Fso, Status
8 P! n* b5 }! J$ _* F8 E Set Fso = CreateObject("Scripting.FileSystemObject") ~+ L2 g8 m0 [/ ?. ~8 f& Y+ ]8 o
If (Fso.FolderExists(FolderDir)) Then6 v. \9 C; l0 L( u: l
Status = 10 B* ~! x9 w; S- }' u; s7 y5 S6 M
Else
. _. d* M, Q$ u# p j* r# M Status = 0
; M" |+ o/ @/ F; r End If/ h9 F5 T# q) ~: G* P0 c! z' n- H% y
ReportFolderStatus = Status& c$ j+ u+ H, d1 Y2 L( z0 I
End Function
8 z' U! V) I9 ]+ v. o: f+ {) `; O5 ~2 j. M& ~
Function CreatFolder()
+ d* b# c& o$ O Dim Fso
5 Y2 @: H2 {" X# l, |5 } Set Fso = CreateObject("Scripting.FileSystemObject")
7 d7 p; D+ `7 M0 L B Dim Folder
$ z2 X5 c4 D% o- o6 x4 ? Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
; o2 I' E# y; f6 ^1 o" g6 u Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET") J& h3 H* u* k& h% `# g2 j
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
0 h3 e) h5 c' M# DEnd Function
8 k& a1 i1 _4 Z6 Q) X8 A%>, }% @7 M) b' W$ n( Y& s' f
& r4 |. j( C: M9 }& Q5 O4 g
explain(1,'--非日线为伪日线输出,两种输出格式:');
7 @: a3 N" t4 sexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');3 b' W" b% v" ]- m7 f$ ]+ t- \) O) ? Q
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
% D2 Y# Z, }9 z# _* I, I
+ O7 o( U8 G8 I8 g[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|