|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码; t9 u- C) r/ S5 B0 r/ u
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据$ j3 ~4 ^7 E: [- C6 t4 B+ @9 y
Datalength= 输出数据天数(0~99999,0/全输出)! x9 i6 R( \1 f9 {7 k- ?) S
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
: ~0 G: {5 `2 J6 N2)全输出: 用嵌入其他指标的公式在A股板快选股
1 i4 z; O9 k7 B0 e$ T l. W F/ _------------------------------
) S7 R) |( b& ]; e7 f& S参数:) I3 N9 l! c( f( Q. }5 f. A- \ g/ i
数据输出 0,0,13 i' G$ m, b8 E* N9 ^! y; G
DATALENGTH 1900,1,999997 c, k4 J3 H- {0 _+ O, i
//# l! W2 W$ _: j/ x; ~0 o
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;- Y+ m' l. A7 d, k* s8 u3 z
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
( b; y6 G% l5 T k3 T6 {数据转换:数据输出,colorred,linethick0;( \9 b' r8 |! `0 }+ I$ O
) d% Y/ O1 ~5 A" E6 Y( a
IF 数据输出=1 then begin
" N2 L V" x, ~( j% l6 [ _Barpos := BARPOS;
, \7 o3 l% Z; K; S _Year := YEAR;# D# E) R( B" F+ Y% o# L
_Month := MONTH;. j* H) ~+ J9 T
_Day := DAY;
( C% J7 v4 e) G1 H6 _ _Datatype := DATATYPE;" |' A7 U" K( Q, ^( S- x$ M
_Marketlabel := MARKETLABEL;' |" o; p' @( b- N; u
_StkName := STKLABEL;
2 m( W- @: P; K _Open := OPEN;
9 ?* }% @4 b+ Z9 e0 a# D0 M _High := HIGH;
1 ?$ A- c# c! X' y7 e8 {& k _Low := LOW;# g. h6 H* Q" k% w) Z0 s" C$ O( j
_Close := CLOSE;
4 e: _! C! |, M: F _Vol := VOL;- B, ~; x# e) i3 U2 C& Q3 J
_Amount := AMOUNT; 9 o9 U* [6 ~$ v* U, N
_Datalength := Datalength;
x, v2 j7 [' J- D d' c7 d% V- ]; W E* B( ?
<%
2 s: ]. f/ S5 R# F J" QDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days0 j; g1 O$ m1 G3 _+ O/ w
Barposes = ffl.vardata("_Barpos")
1 _7 Q# m* ?4 h1 l) W0 { Years = ffl.vardata("_Year")
. i' }8 a8 c5 |, i; x% t5 j" r8 ? Months = ffl.vardata("_Month")
5 @/ g. F# s" w) r4 v Days = ffl.vardata("_Day")4 j) M+ m2 g9 n" X4 s
Datatypes = ffl.vardata("_Datatype")' a' }) N& u* C H; D* l0 c
Marketlabels = ffl.vardata("_Marketlabel")/ h% U) c( E' ^1 r' q/ }5 R. x
Stknames = ffl.vardata("_Stkname")
# b# s) j* D7 B z Opens = ffl.vardata("_Open")/ R" |4 e; {# f6 w2 z; ?
Highs = ffl.vardata("_High")
& I- z' K1 T4 H$ K' o. w; r Lows = ffl.vardata("_Low")
6 u# N5 d8 e( b Closes = ffl.vardata("_Close")% O; ]$ h: Z( m! U
Vols = ffl.vardata("_Vol")- X9 U7 F9 ^4 G U
Amounts = ffl.vardata("_Amount")
$ A( `$ Y7 S# Y l. }1 ` Datalengths = FFL.vardata("_Datalength")
+ Z% R% M) ~- x( H. q* B/ n- K3 f
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()5 H, a/ i6 f( o% ~3 @0 S
SelectCreatAsciiDataType(Datatypes)- G! V8 H% n" h0 Z& L" F
8 r% t( [: S2 U( @ W* B; ~; H
Function SelectCreatAsciiDataType(Types)4 H' G7 ?( U5 J, C
Select Case Types$ S5 D) y/ h, }* S. m1 a9 u
Case 0
; b( i9 g$ ]$ K
9 A( H3 s3 r& U* i1 r( Y Case 1* L- W. \$ B$ M' @
Call CreateAsciiDataMin("_m01") * q- z+ M5 l3 c4 C0 q
Case 2
2 ~+ s" y4 u6 g& V4 v0 ?% G2 g4 k Call CreateAsciiDataMin("_m05") / ~& @* G- b$ o( C; O& @ o, M* A
Case 3
( P% J" X9 m& F# W" U) { Call CreateAsciiDataMin("_m15") ( R. S8 h) P9 L4 \, B6 D
Case 4) }0 X' w* y+ ^5 N* v! }
Call CreateAsciiDataMin("_m30")
]4 V1 m$ K! [ Case 5
, b: e7 `8 v5 K+ l# O8 a) Q7 H Call CreateAsciiDataMin("_m60")
7 {2 }: W4 r9 s- z$ i Case 6
/ ], }, S5 E) x$ M6 `7 g Call CreateAsciiDataDayes()
9 k0 h; u, V- t8 v1 _6 V Case 7
7 F2 p4 A6 `; D Call CreateAsciiDataMin("_wk") , A# q5 R2 m- Q7 Z8 O/ \5 A
Case 8
( |9 _' }0 y2 B* s6 {0 w Call CreateAsciiDataMin("_mth") - e# `1 h0 G/ |
Case 9" P0 {7 Q9 J: d6 U7 c! I5 Q
Call CreateAsciiDataMin("_yr")
/ a' u' q) d0 Z8 K Case 10
. v5 P5 u! z+ m: Z0 v
8 ~/ j5 ` `6 R( @ Case 11
5 R3 D% V4 ~/ ~8 k
1 Z6 c9 \ b$ d9 c' k Case Else {3 V8 x- i" m6 ?, @' s4 M9 M
* N5 @6 M9 ]# l U
End Select
& Q4 E% ^3 V- \' q. @End Function
7 m4 ^6 P. K: F% J! ^
8 a" C( A& e# z8 G0 [) A% MFunction CreateAsciiDataMin(FolderName)
: x9 y9 E! }3 t$ W Const ForReading = 1, ForWriting = 2, ForAppending = 8
$ X% B: H9 h% D' U: E: i! ]' a Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -27 e6 v5 Q: l D' {
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
6 Z. p* d" j) f! m Set Fso = CreateObject("Scripting.FileSystemObject")
$ O5 T# _) ^$ d- o, _$ M6 z FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"- v% E9 n2 j. y5 B8 Z$ W
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
2 u! U# `& N! ^& `) i( z" s Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True): J1 x v2 e# L( p) y2 u) {- @1 L
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
) W3 d7 x1 y S7 W! e3 Q. b ArrayLast = Ubound(Barposes) R' C: O$ Y8 p( r# {
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)3 k3 v/ q! b8 E% [, A! n( U* J
& ]; J7 B# B5 r
if (Datalengths=0 or datalengths>=ArrayLast) then
6 q9 a! u9 ?, U- |3 E Datalengths=ArrayLast+ y0 P9 Z. O% X. d: S7 G
end if
- o/ V* h- S4 Q4 k; c8 k Datastart = ArrayLast-Datalengths2 K. \4 s2 h9 @' g1 Q# I5 K
0 K% `! v3 T# ?1 w6 N& B0 a3 y. y" {
For i = Datastart To ArrayLast1 E+ S1 c9 h* z5 D
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
9 |/ m$ o4 ]0 a Y AforeYear = Year(AforeDate)
+ z: e+ e. h% l AforeMonth = Month(AforeDate)
' N' l6 o- Q) q9 M9 B# P If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth' j) t% G% h9 j' `" U: h, E
AforeDay = Day(AforeDate)
% }& G3 K: N1 ~. S5 E7 H! @ If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
3 f/ ]- P# D& T, J n- l% G Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
b: ^% D/ J/ K1 s! q Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse): n0 n( t: X6 [ i6 K* _% @* W
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
) R. r8 P4 C$ h Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse), a3 A; a( b2 }+ a4 V# c' Y" G
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)% E$ r9 R4 U/ S+ E0 b& G+ a" N. W
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)9 G$ T! _& b# q2 p9 i4 y, C& B
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
) I( R& b( B9 U' @# ]2 B; p If Highs(i)<1 Then Highs(i)="0" & Highs(i)- r* r" q6 K) c' m! Q( P
If Lows(i)<1 Then Lows(i)="0" & Lows(i), D/ a V# L' r$ i2 I
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
1 X) J. B& U% G, C- s0 j$ p) c If Vols(i)<1 Then Vols(i)="0" & Vols(i)7 x% V7 r% @3 T' h# a: g; u
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
: u% U' M% A/ I. Q! ]( k3 B LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
2 }& b* z$ m1 j) C& }1 C5 o8 ^ LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)4 p) [! R8 c8 s
TextStream.WriteLine LineData
' i" E8 ?5 u4 E# s1 t7 h TextStreamA.WriteLine LineDataA/ V4 t- z$ } _7 ?" k
Next
9 _2 ~* T' q& \' |/ @& Z% s TextStream.Close
1 X0 Q0 _* N; q TextStreamA.Close/ Y" |8 p H4 J, `
3 D7 @# a W% Q7 r A
n- r" ]* M N' N# YEnd Function
2 A, `% U6 z+ W3 _ u; H$ Q* [; w8 e( X( H
Function CreateAsciiDataDayes(). H+ X# F5 M0 I; l; C
Const ForReading = 1, ForWriting = 2, ForAppending = 8
9 r; `% s3 s7 C3 P, ?$ X3 s4 ~ Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2! }" N; ?# f* ^5 Y7 I
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
! l5 B4 Q0 `# M7 N1 |+ ] Set Fso = CreateObject("Scripting.FileSystemObject")4 W" l7 o6 i# G+ v
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
+ z) m# C* L! d4 r0 P FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt" K( b6 V9 P* i Q; ]8 ?/ D& }# S! L
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
! [: S. i N5 `# X# l Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
! I! \" T1 S, `& T x ArrayLast = Ubound(Barposes)
8 y5 w4 d( X! _3 g: r if (Datalengths=0 or datalengths>=ArrayLast) then
/ R1 q4 b0 L+ m6 L, s4 O Datalengths=ArrayLast
' y2 v2 j7 [6 N3 B end if
& W! s2 Q3 b3 E; D$ u9 s6 I% A0 v Datastart = ArrayLast-Datalengths; m- u# Q/ @$ ~- S5 I
! L3 K2 Z6 `5 R! m5 V For i = Datastart To ArrayLast q; x _5 o, {& `
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)$ f8 @, E. H( N: ?) ~. \) T
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
7 _& U/ m- W: M8 A* c Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)0 I+ [. s# |$ h. t5 c, G* D: d
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)4 M2 X6 E& r. q, d8 J$ D
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)9 D/ Z: B2 S1 H* X
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
) }9 S7 [" j) k$ D Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)& n# V9 @& K6 T
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)" m8 E8 v# M) q. Y( o$ Q
If Opens(i)<1 Then Opens(i)="0" & Opens(i)2 M" K) |: W- J3 P' z( `+ p
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
% k& T! M3 W; d0 u$ K9 } If Lows(i)<1 Then Lows(i)="0" & Lows(i)
- A# Z& |3 B) e2 _5 J) F+ f If Closes(i)<1 Then Closes(i)="0" & Closes(i)
: K# A4 B& s) N3 L If Vols(i)<1 Then Vols(i)="0" & Vols(i)
& p9 C, n; a. c If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)$ C: |. ^/ y. T8 V% u( q
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
; I; z0 \- s3 v- o2 N LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
" }1 [" w3 u! } W TextStream.WriteLine LineData5 R0 ^% |( T- n# _; `+ _7 O
TextStreamA.WriteLine LineDataA
" J5 f" \$ K5 ?4 \% A Next
7 ?( `+ `* g( d/ I. l. x. l TextStream.Close
# x( |4 e- [& @) v4 `9 T TextStreamA.Close 9 T6 ]1 b- p, V; Q! h% g1 L L
End Function
6 }# U& G. O% U% a$ H% X. Y" l
' N6 t* ?6 k L6 B7 |5 [4 JFunction ReportFolderStatus(FolderDir)
t( F% O2 M6 X Dim Fso, Status# Z2 y0 l! ^1 g9 e9 E5 b: @
Set Fso = CreateObject("Scripting.FileSystemObject")& G+ y) l) s. l, s8 k$ j: s6 t- [
If (Fso.FolderExists(FolderDir)) Then
- j! u6 V: r0 z, ~% b. x6 K Status = 1! _! j! l6 X" C
Else. W' P. f$ A* K: O5 v {4 _
Status = 0
7 v, z- Z3 a* y# M/ E/ r$ g0 C. x End If9 e8 E. ~, A: k& o. u0 @( P7 ?; k
ReportFolderStatus = Status! ~- l$ p, j0 O k! i* y
End Function
$ B9 J" |2 ~; X: R5 Q# J( I* X" \- z, ]
Function CreatFolder()
2 @! y& o: B, s- L* w! D Dim Fso
9 _# D5 e8 u( c& {/ Z Set Fso = CreateObject("Scripting.FileSystemObject")
# c; I& H4 D8 a! [* n Dim Folder0 m$ G# V3 E% `8 \# |2 b
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")/ |5 u+ i+ K, F( N1 y: B; d' F
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
' E( ~) z, Z2 f Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
1 p2 C: I; }1 C, r# D9 cEnd Function
. a: X6 x) O1 g6 ^) `8 x%>) _' O* ?2 E: M, d' j% [
* p/ M$ D7 m! R, R0 W
explain(1,'--非日线为伪日线输出,两种输出格式:');
& O) @8 A G, i3 `! ?8 J- o9 j9 i+ Yexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');$ Z1 Q0 m6 p" {+ S
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
# J7 U6 P! R' K o: M7 s* V5 ~3 S& A) |
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|