|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
! j$ A7 [ J4 ]+ @数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据1 L A6 D: W6 M' {3 M) N! y
Datalength= 输出数据天数(0~99999,0/全输出)* o' f9 O" G4 \. i' K. G* Q
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股" g4 i" B1 K G* s
2)全输出: 用嵌入其他指标的公式在A股板快选股
- Z! k' e% P4 U3 l( ~6 d M------------------------------
. f5 M) `( i5 Z2 g- n2 ?+ k参数:6 z1 Q9 ^, n) o7 D6 J$ _
数据输出 0,0,1. T! `- b: r; M3 q' m2 R* K
DATALENGTH 1900,1,99999# a v5 q' n) ~6 f1 s5 v
//
, u" T1 M6 X: _0 Vvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;! q* C3 o# D5 V* W
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
& v; @# D$ S1 o: _数据转换:数据输出,colorred,linethick0;+ c4 I: x$ B N8 R# o
2 {! M% w, v% m8 vIF 数据输出=1 then begin! |( ~; K7 M9 N+ c4 Y
_Barpos := BARPOS;$ c3 s; ?# ]0 U: P; b
_Year := YEAR;
' V$ J; d$ o. l _Month := MONTH;2 m5 a( S- K. f, `; H
_Day := DAY;2 _2 U7 k) q7 q6 D) R' l
_Datatype := DATATYPE;* E( M9 S2 ?, V# E
_Marketlabel := MARKETLABEL;1 r" A1 @5 J6 @
_StkName := STKLABEL;; J [1 f! V8 \! [. t2 E
_Open := OPEN;
8 s5 G, L; j8 @! E7 `9 Q _High := HIGH;
; |) \! M L* q$ ~0 K9 D F8 ` _Low := LOW;" [' K" R8 z9 R1 F6 f4 J! v* ?
_Close := CLOSE;2 ~/ t/ E, X* t A" H
_Vol := VOL;
/ h% b" a- b* {5 C _Amount := AMOUNT;
5 X4 t2 k' p/ E& x2 ? _Datalength := Datalength;
& C6 V& T/ S! k4 ?( f2 L6 F# p' B+ m
, H, |& l ?7 u7 s% q! }<%0 J. G2 z% t# z# a# _5 }
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days! w+ r; t$ B5 Y$ }4 S* B
Barposes = ffl.vardata("_Barpos")8 e2 d' h9 L2 y: G& j
Years = ffl.vardata("_Year")
- G1 s- V9 v0 a r) F: o Months = ffl.vardata("_Month")4 q1 m$ U$ X1 n. o
Days = ffl.vardata("_Day")
4 c# n# W9 K0 F; [3 H Datatypes = ffl.vardata("_Datatype")
8 m% J) p+ E" `Marketlabels = ffl.vardata("_Marketlabel")
( B2 j: q1 l n9 ~/ U' Y$ H Stknames = ffl.vardata("_Stkname"); h' y5 D" h; N6 k
Opens = ffl.vardata("_Open")
~% p% D$ {. ]- l& V+ B Highs = ffl.vardata("_High")
1 ~% I! T( n- }5 I Lows = ffl.vardata("_Low")6 ^1 q- Q5 w' @5 t( c8 v" Z3 ` M
Closes = ffl.vardata("_Close"). v8 s. e( D6 G5 J# O. U
Vols = ffl.vardata("_Vol"). h) Y! A+ b0 g! p8 _& O; `
Amounts = ffl.vardata("_Amount")
# G7 M) m( ~& N8 G1 o2 c4 @+ F Datalengths = FFL.vardata("_Datalength")' [1 \3 G0 \% ~, }
9 |1 d' m6 n9 f- U
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
: H4 N" w# [9 J: k# ~SelectCreatAsciiDataType(Datatypes)3 b4 z* @, n3 f) R# q: ~* v2 H
3 g8 N. O$ [, p) s' \Function SelectCreatAsciiDataType(Types)
; P `# ^0 n3 R Select Case Types
( l" r& |: r# Z Case 0/ c2 n0 s2 J6 q7 r
9 z3 a8 t& ~. Z
Case 1+ r2 ?! H- B G. _( O$ K2 y5 i
Call CreateAsciiDataMin("_m01") / ?8 k2 a- G; k5 R s, J4 m, O( Y
Case 2" C. a* [# P: {
Call CreateAsciiDataMin("_m05")
. q$ c' ]' G- [8 J: @. l* f/ Z) ]$ F Case 3# X" D( n. U8 u9 `) f
Call CreateAsciiDataMin("_m15") , C1 @+ Q/ X* ?
Case 4% {+ T% D) m( t; ^
Call CreateAsciiDataMin("_m30") / s, o; v% `1 T
Case 5
! Y7 O" h9 X% c5 U4 H1 ]5 `+ h Call CreateAsciiDataMin("_m60")" a1 ?7 ~2 z0 Z2 k" s6 r
Case 6* h+ k# F( P/ z; J: |
Call CreateAsciiDataDayes()0 z4 S F. h6 g# v; [" A/ c+ t! q
Case 7
( \+ h7 A2 Q( w& \4 p" `0 Q+ C# P Call CreateAsciiDataMin("_wk")
: b/ X# L' E4 t) \- ]' j7 G Case 8
: d6 o& i: D2 D) o1 W; V Call CreateAsciiDataMin("_mth")
5 Q# u/ {+ U* Y/ d' R3 e9 F' j Case 9
0 H2 u8 n1 _. Q' W# w1 K Call CreateAsciiDataMin("_yr")
$ V" Q2 F* W7 `2 V+ v Case 10( j+ v( c+ W$ W$ W
. J1 Z2 ` C8 f
Case 113 d. p1 d9 S( E
5 L4 Z" q" Z( o7 `7 ^
Case Else9 |& S8 N2 O8 U) j2 W
! Y% c$ Q- l) [: ~+ q8 r$ \2 D End Select, Y5 F2 V4 X( _) r6 _
End Function
P+ Z! l0 s# [1 C7 F) w; H
9 |: Y, v, z7 S7 D R2 WFunction CreateAsciiDataMin(FolderName)
' U7 @1 @$ i* \/ M0 t+ w Const ForReading = 1, ForWriting = 2, ForAppending = 8, P0 N/ ]/ b: T# X& M" H6 K% t; Z% z
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
# h" u2 j9 E, P5 P# \ W1 W Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
' _ g4 M' h/ \) ?* l Set Fso = CreateObject("Scripting.FileSystemObject"). E5 l8 b: E, F, H. P+ w
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"3 Q9 r r7 g0 n
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"- O9 {1 A' W! I) {/ M( P% f# B7 D
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
/ `" U9 ~" i6 Q6 v4 v Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)( v5 j% M9 l6 H& c3 Y1 A& t
ArrayLast = Ubound(Barposes)$ ?3 C' V G" N" T. M j
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)! h8 D! s$ d5 h# \! w
* D* I3 x B, [8 A4 D9 Q: U
if (Datalengths=0 or datalengths>=ArrayLast) then
4 n) z3 ]' [6 u; Y; A$ m3 w' B" b Datalengths=ArrayLast
( n! e( y: n0 A; W( l; d end if
& v* {7 i, _8 l! E. i E2 B Datastart = ArrayLast-Datalengths2 b/ s. ^9 Z+ N; F' a; R* \
8 W8 m! g& @8 O/ s$ Z For i = Datastart To ArrayLast* Y# x; h1 d, |# o+ }4 n
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)3 w: n( b" h o3 L- T; W; ^, |5 j
AforeYear = Year(AforeDate)8 r* }. c( C9 ~5 Q
AforeMonth = Month(AforeDate)% j# s4 S) ]) @ W& Q9 s) X
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
: x1 z9 O! _3 c& z: T1 q$ c; Z AforeDay = Day(AforeDate)+ v7 B4 g$ B# r/ Q, @( y
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
: o. ~4 s, ?& G) p( w6 c5 b3 A Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)) I" X( a7 g! w% E3 [0 h
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)) H3 j" K/ t4 X% \/ y2 c6 L
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
( ?$ F0 i U, n( e' f! b Z: ], B- u Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
2 s; u4 o# e: i" e8 `2 a2 E8 I+ L: S Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
`: S# M' \, {' n Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)7 t8 L7 k, E1 n! k+ i$ E6 I
If Opens(i)<1 Then Opens(i)="0" & Opens(i)' t1 k( i; P' N$ c! a: g% ^
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
! `- t! [: S# h/ [! H" `- l If Lows(i)<1 Then Lows(i)="0" & Lows(i)0 c8 w. w- a9 l* V/ z$ c' d9 u: ]! |) S
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
& Q( g, f/ H' N2 g# s8 K If Vols(i)<1 Then Vols(i)="0" & Vols(i)6 Z: u7 s' }( S" n; p$ f
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)1 t2 ]$ O% e; l$ p
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
6 p! C. |; C4 c1 n+ V' n6 v2 O LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
! q, y" J2 g, I9 ? TextStream.WriteLine LineData7 u0 Y' O4 Z4 D& K1 o8 G* F5 x
TextStreamA.WriteLine LineDataA
% S7 S+ J$ @) ] Next& ~" Y" H/ `# N+ {6 k- ~- F
TextStream.Close3 N+ m/ l* B' L" x8 {5 A9 |4 j
TextStreamA.Close
# Z& e$ V' L8 v" j
% g J* o; Y- A' t. Y9 |- `- r. P& Q
M% l. n9 |2 Y l$ `End Function3 }/ u( x7 D$ m( z2 [& _- _, |
# F x! T, q0 q$ U, O& L1 b; R
Function CreateAsciiDataDayes()7 b3 X- u, z C ]- s& N% M! s
Const ForReading = 1, ForWriting = 2, ForAppending = 8* }8 k) y! q, s' P, g& E7 k
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
8 s3 ^1 K; h9 x# W8 c3 l+ h0 K Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
6 R) R7 ?( l6 g Set Fso = CreateObject("Scripting.FileSystemObject")+ B$ U8 U1 |' k, a' v
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
3 L4 ~( a4 P# n' F( y6 f FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
0 `2 e5 I* A% B3 _4 G$ x6 k Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)' n% E, q" q. r. ]: X3 t
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
6 m9 h3 ]) ^( L% Z5 q0 l" Y3 Z, } ArrayLast = Ubound(Barposes)
6 B0 r1 q r/ Z if (Datalengths=0 or datalengths>=ArrayLast) then$ [* h/ c& z1 Q+ ^, w
Datalengths=ArrayLast
8 g- t$ B1 Q! J4 w. ^ end if' M* E4 L A; Y1 G; y
Datastart = ArrayLast-Datalengths
& ?/ v' c. h1 D4 m
9 \- X7 o* z' T9 N For i = Datastart To ArrayLast
1 W% U7 j" U# o* T If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
* ^; O$ D0 H/ J: }6 Y If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
9 ?7 `: H$ u% c% h/ D8 R% R Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)8 i# f( _9 v2 z" ?2 Y" ]; U& j
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)2 t& F" o& L) F4 c
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)" t3 ]3 v8 _' W* G% k
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
$ V; |9 f0 y8 ~8 T Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)' N; h( I4 a5 \* o
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
: P1 K1 [/ [. o If Opens(i)<1 Then Opens(i)="0" & Opens(i)% {* k6 G' _, N5 U$ q6 G
If Highs(i)<1 Then Highs(i)="0" & Highs(i)# m5 K% P0 { Q
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
+ P9 W2 L) {0 n* ]) A8 _ If Closes(i)<1 Then Closes(i)="0" & Closes(i)2 i9 T: t: p2 W( x5 l1 F
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
6 y j7 E, u+ Y# C7 y If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
: N- S7 ^$ ~! d& n; L% A LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)9 s1 k) r/ @+ _5 L" C- F; l, [
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)" z! S6 s I5 Y0 v* x
TextStream.WriteLine LineData/ ~: U# G/ A2 J, c- S: c
TextStreamA.WriteLine LineDataA
5 [- D4 O% q3 N C5 R# P9 b Next
/ q/ D* l2 d9 S: A5 K% ? TextStream.Close' Z9 D u8 r" m9 Q1 I! a! t& ]
TextStreamA.Close
% ^# O+ Y; R N, KEnd Function0 ^. Y& r9 Q0 P) f; R7 U! Z' |4 a; ]
. c6 P. t0 f* z/ u. u, c: {3 o
Function ReportFolderStatus(FolderDir)
% k3 G) ]2 K; ] Dim Fso, Status
5 T0 K; W0 N1 k Set Fso = CreateObject("Scripting.FileSystemObject")0 G0 S1 M2 s, r4 C6 `
If (Fso.FolderExists(FolderDir)) Then1 a9 J1 x- ^* B
Status = 1
& ^) k7 z* H0 z @( B7 A8 Y/ k Else
/ e7 A* P5 n% P& g r Status = 0& @+ P* v6 O+ r
End If2 i* G/ r9 p( F: [0 \4 d
ReportFolderStatus = Status y' L3 R! n% [8 G
End Function) u. k/ B4 Z2 M. l; V
; ~* F4 _. s; j3 b% E. ~Function CreatFolder()
7 }. U! j1 S' b- K' U5 V Dim Fso7 Q; P0 r6 ~$ |* J- }' M x+ g t t% N) N
Set Fso = CreateObject("Scripting.FileSystemObject")
! i. _- K% B2 e" }8 B/ k1 Z Dim Folder
* ~0 W; _& C3 D$ [6 t; k Set Folder = Fso.CreateFolder("D:\Stock\TXTData")0 {6 G$ t, C# O' _
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
$ r+ [5 A0 w; A: b, p Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
2 X: c4 @. G, V% o# a& o; uEnd Function i8 x0 |; N) E3 Q6 Y9 E2 J+ K& r1 q
%>+ x$ y' c( Q5 Y; N" P, C+ o( @
1 h9 M/ d. m F4 m$ i2 p$ D) `
explain(1,'--非日线为伪日线输出,两种输出格式:');; e4 R2 T" {) a/ X
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
, P! a4 a9 D3 L3 M$ Iexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');$ ]6 P+ f; p% x
- y1 C4 l. k3 _- N
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|