|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码) p) v; w/ R& G7 V
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据; t! _2 {: O2 l# P
Datalength= 输出数据天数(0~99999,0/全输出)
# C4 e1 G( Y( n0 c5 F. T1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
8 J( k, B, B7 g, t2)全输出: 用嵌入其他指标的公式在A股板快选股
! h* [. V3 L( D; k3 i: P------------------------------
6 g0 k: t0 i& q# r% b" @$ o; A1 B参数:
" G5 u* t0 V8 c7 k3 n数据输出 0,0,1
: h, t* d0 \/ q- nDATALENGTH 1900,1,99999
. W% f/ G, D8 {' T7 Y. w4 _//
% ~ X3 K$ q" |/ {- {6 i- j. \& Lvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
' W, Q- a8 \7 ~' }转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;1 ^2 Y, g0 d+ q5 A8 P N+ C9 r9 T
数据转换:数据输出,colorred,linethick0;" W4 m: t0 M7 V/ }, a2 @# |
9 Y6 C5 E) D) d3 m: |! EIF 数据输出=1 then begin) o" |- U; d" X
_Barpos := BARPOS;
' Z4 l* {/ s5 ~% W9 b+ ]! o$ D _Year := YEAR;
" c" G1 R- t) j1 C: @; L _Month := MONTH;
: g9 d: L/ P; j% Y5 f1 R- ~ _Day := DAY;
: `" Y3 v( s( V5 ~9 q _Datatype := DATATYPE;# j5 R# T% `! c3 L% n' N
_Marketlabel := MARKETLABEL;) Z0 Y8 J+ X* }+ |2 L& K
_StkName := STKLABEL;
9 F2 M- w1 H. @3 ^ _Open := OPEN;
) o. a. N4 Z- p, y _High := HIGH;
# E, V# q( b. {/ C# r& \ _Low := LOW;
& ]* K3 e; g9 B- B4 e _Close := CLOSE;$ j: f: t+ z* B. O k% x* g* Z
_Vol := VOL;1 i7 V" q2 z$ y$ ]- \0 G5 r
_Amount := AMOUNT; 4 k3 I2 L) R+ d. o" i
_Datalength := Datalength;
- f& B8 F6 z) [# r
! B4 d- n# ?! ]! w6 k<%
! O$ N- s" u8 yDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days8 T! y3 d2 b% j. O# [
Barposes = ffl.vardata("_Barpos")
2 b9 z+ c. K: N- n6 a$ j) O* {3 { Years = ffl.vardata("_Year")/ _7 D+ _, d9 ]" o- Y N& j
Months = ffl.vardata("_Month")% G+ O Y; g- ~3 X8 |
Days = ffl.vardata("_Day")
# ?5 p9 ?2 ?5 |' ]% h Datatypes = ffl.vardata("_Datatype")( _- U/ c/ d9 v5 t0 V
Marketlabels = ffl.vardata("_Marketlabel")
( H6 F5 P ~' {1 P Z+ U& X Stknames = ffl.vardata("_Stkname")
( m2 y+ b3 n8 _: O; u: o Opens = ffl.vardata("_Open")
% G% ]/ d2 P d8 I% r Highs = ffl.vardata("_High")5 e- T+ j4 D; T
Lows = ffl.vardata("_Low")
" `! o9 b1 ^/ z" G2 z+ t9 {/ z- ] Closes = ffl.vardata("_Close")
( `0 {; o+ M, S7 f Vols = ffl.vardata("_Vol")/ o7 [. X4 z* C Q7 C0 u/ Z
Amounts = ffl.vardata("_Amount")
$ G$ _( m% p4 \" E/ [ Datalengths = FFL.vardata("_Datalength")" O4 E; S& Z3 }0 v% c4 w L7 B2 U: i
6 f1 f$ D6 _7 X
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()% M8 A z! J b0 F
SelectCreatAsciiDataType(Datatypes)$ o1 }. d9 f% r% G* i/ c. @
) {3 ~( K: R" O B' M
Function SelectCreatAsciiDataType(Types)
/ m3 n9 U+ x& R6 X/ C5 I Select Case Types5 p: P$ x( E, M7 y% h
Case 0: g- w* D) e: f5 j% }
6 B( i4 f! d, {# I2 k( D Case 1
" R* k% h- T/ ]3 `3 _ Call CreateAsciiDataMin("_m01")
3 I1 G+ t; p5 q5 ~$ e2 G Case 2
- y( y' D, ?, y. T$ h Call CreateAsciiDataMin("_m05")
/ X6 d9 d- i3 ], ]( h @3 r; T( m" M Case 3- u4 L6 m: U' |0 y0 E! H
Call CreateAsciiDataMin("_m15") 3 @5 N5 C; g& E
Case 4: d0 \ p* u, @/ `. M
Call CreateAsciiDataMin("_m30") 3 a# o1 i6 t8 |& Y: K
Case 52 F ?+ K4 Z' P& M. S# V/ X
Call CreateAsciiDataMin("_m60")9 |8 p+ _$ \4 s. p, }7 p; C) y
Case 6! P/ j# f# Y6 ?, T# I- z8 _3 O+ m
Call CreateAsciiDataDayes()
' `( i4 u7 T' Z) h Case 7
1 {) {+ G# a% Z/ n, w9 t Call CreateAsciiDataMin("_wk")
( [4 P, I- G$ j$ P7 A4 B/ u Case 8
" ^; |5 A: c* n9 m Call CreateAsciiDataMin("_mth") * f; M( ]/ w' `+ }! `
Case 9
! |' `' I3 e5 A$ G/ e Call CreateAsciiDataMin("_yr")
/ [4 m; M0 x' p) p& D6 R# \# M3 F Case 104 D. F% G1 G3 [6 _0 Y
& w y2 d; n& C4 s$ G Case 11
# c) f' p- Z' e8 y# V& x/ X. q; W+ y! k7 n# O6 T
Case Else+ D: f' q* Z0 t
. {4 V& X( ~9 F. K% \
End Select/ P7 j C- F4 A5 [ c! L
End Function" E; W u/ i& G/ D$ Y- ~" X0 s
" F/ ]1 d& E8 |Function CreateAsciiDataMin(FolderName): i" Q5 z' X: Z. z2 k- L- P
Const ForReading = 1, ForWriting = 2, ForAppending = 8
) z+ C0 A1 S& }# Y' [2 e Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2& o/ @$ e) x& a/ d( @
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay/ k) s: B( k7 Z% b' H3 P' P
Set Fso = CreateObject("Scripting.FileSystemObject")" C" Z$ J) m' y) |7 q. m$ L/ a
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
8 F7 m2 t0 E, ]/ K m8 j FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"' \' p% N2 \$ O" L
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)- b/ \" e u4 y0 I! O
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
3 m6 E$ c$ x3 k" Y3 m- L" N; J ArrayLast = Ubound(Barposes)
$ U1 d! v, X% g, r* D0 ` LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast). C( ^2 I9 u) e2 n& k
8 t9 v, w5 l/ d4 V if (Datalengths=0 or datalengths>=ArrayLast) then. W% n9 I+ o5 D/ _; U# ^
Datalengths=ArrayLast
$ s) m; q: y4 E% |9 T end if+ a; g3 v; v1 V+ I
Datastart = ArrayLast-Datalengths$ o2 p- _7 |* ?0 \* C6 G6 u
d) c* o1 B# H" B3 j+ l& y8 l: B For i = Datastart To ArrayLast
: p. H6 _' ]( [2 C AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
1 }3 R* I$ a9 M, A/ j5 D AforeYear = Year(AforeDate)% `- i( x! e$ V$ s, S
AforeMonth = Month(AforeDate)
u7 N V5 |9 O* F. I& f# l If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
- ~* {0 [7 k: C* g) \% K3 g AforeDay = Day(AforeDate)" U' w) c, z; V0 I4 `7 q7 t& D
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay, Q! n3 m4 c/ ^' M5 m% d9 K$ I5 E
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)5 ?+ i ~0 l' s2 A: U+ S
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)- {- @! i8 \( C- a5 E# {+ m& ~
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)5 c' I1 V5 f+ @# K- \' O
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
$ `( H c5 b& N/ h0 N3 t! G" B1 K Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
; h0 F: |! q* ^% e0 M Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)) f3 \1 M1 H. W f+ E( y) W
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
) R* p# z: M! Y# ~6 d If Highs(i)<1 Then Highs(i)="0" & Highs(i)( K: }, Y( ` ?- y& ~3 g
If Lows(i)<1 Then Lows(i)="0" & Lows(i)' ~+ _5 C. t. L# ~2 E
If Closes(i)<1 Then Closes(i)="0" & Closes(i)" t2 C. ~- T, O0 m. A6 F# S, f
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
2 Q$ u9 b7 T" j If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)/ o2 P* K0 G y- E: K) Q- v
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)% z6 j6 s* s% L6 n4 D% O
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)7 ?" o k+ U6 x h- ]1 T$ p8 j }
TextStream.WriteLine LineData6 N; ~. x+ D8 ]$ s2 ]
TextStreamA.WriteLine LineDataA
9 e& G% x: H; e; x Next( v: G: v$ V- {
TextStream.Close
2 _- |- G8 a( y$ ` TextStreamA.Close
, {5 n2 c: u5 t6 C1 B
/ F8 R) X2 Z$ V: Z& K
; Z* Z1 e/ @% r( M7 jEnd Function
4 _ D- H7 p: {! z+ b) Q, y& v" h, S3 T4 t
Function CreateAsciiDataDayes()
2 _, |1 L8 Z& `! E) S9 Q5 X Const ForReading = 1, ForWriting = 2, ForAppending = 8
- N3 e- S F- q" @ Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
) `2 N1 [# l( M% V Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
& I# W( S, S q/ m/ t7 h6 f Set Fso = CreateObject("Scripting.FileSystemObject")
( d4 [8 m$ x# W* C% g2 I$ M FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"7 K1 A, y" h0 B
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
' S+ C" C4 `8 C# V! G Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
: Q7 `! f# z. B9 U; h Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True) r4 h, ?; L' L7 c# T6 ~
ArrayLast = Ubound(Barposes)1 C3 o Y% {) y- T* G$ E
if (Datalengths=0 or datalengths>=ArrayLast) then2 r( F l7 a: G V! M" M
Datalengths=ArrayLast
1 B; _. i8 D+ W" X end if8 `( y# A! r. B6 h
Datastart = ArrayLast-Datalengths
# x j4 W F( K
: {( r0 {/ u% Y! h4 Z/ B For i = Datastart To ArrayLast6 e' R m, K! H( H
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i) q0 M O- @; p+ \3 ]/ O
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)! [8 L1 _4 @5 a
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
& Q5 t0 ?& U8 \& Z7 E2 W Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)& V/ I+ m' b8 h0 v# {
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse): ]; q2 d5 ^! o' v# Y' }
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)& l1 a0 v6 |3 O
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
' Z/ R3 t* b% v Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
( l' p; ~8 J O* }; q( t If Opens(i)<1 Then Opens(i)="0" & Opens(i)/ B' \0 N. U. j
If Highs(i)<1 Then Highs(i)="0" & Highs(i)* }' @* K# @& r; a/ O& b0 H$ p" m
If Lows(i)<1 Then Lows(i)="0" & Lows(i)+ a0 t$ P) L6 }! m, K
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
2 K8 ]+ Y! M4 Y6 N# ~* E) T. d If Vols(i)<1 Then Vols(i)="0" & Vols(i)% s5 j5 ~* u. L( S6 |- E5 Q
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
: t, l/ X( R( j LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
e* d- I. j: Y' o2 `# P LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)4 x0 W. S/ ?. s( y: s
TextStream.WriteLine LineData
" B- i; h* w/ ?* u% Z3 P5 S( \) y TextStreamA.WriteLine LineDataA
0 f/ d7 p/ e$ s! M$ A Next0 M. S b# u P4 x4 T0 ]* |6 {
TextStream.Close; u, U9 g' Y7 Z; }
TextStreamA.Close - r$ t. n: x- B. F# m. g
End Function7 [$ T. Z+ Q( J
* N4 B0 Y" ^9 X+ x H- B6 j% Q1 @/ y4 B. PFunction ReportFolderStatus(FolderDir)# ~3 S- u @ c/ E: S* C9 ^) `5 K
Dim Fso, Status
, }2 }4 q" E+ v Set Fso = CreateObject("Scripting.FileSystemObject") u" k0 \# v# D' R" P
If (Fso.FolderExists(FolderDir)) Then7 Z4 ? H2 h* o1 L5 b+ u R" a
Status = 16 U4 K1 \. G1 G8 D
Else2 X, j+ ]+ ~8 u7 P( r$ }$ ]
Status = 0: Y/ z9 O T' w) i4 f
End If
( D1 D8 P& W5 G/ E) t ReportFolderStatus = Status! ]" C& S% c$ K1 f9 D/ |: w
End Function
! N% a6 A/ i3 _5 e- J; ~) g+ r6 t6 `, ^5 _* b, K
Function CreatFolder()6 u- [: T* e8 W
Dim Fso T }2 C1 ^) Z- k
Set Fso = CreateObject("Scripting.FileSystemObject")2 l' G, h" A" X- u0 y M* j
Dim Folder- Y$ d7 V7 X* E% ^
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
$ v* |. | e) x4 a) l Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")' `% o% _( k! P" o3 r
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
/ J) z+ r8 E2 b1 O; l, I. y5 P8 gEnd Function
6 Z1 f% x/ H2 O%>) h' D' F! N- M( \" c8 X% N, z
9 X, n3 L3 F4 r( n6 L" pexplain(1,'--非日线为伪日线输出,两种输出格式:');/ {1 u c' ~, T; H6 n
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
1 a: a# `1 V# J5 M5 p# j3 _# sexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
; v" @( H- f& \3 T& g$ z: ~; T2 ?8 ]2 k1 }+ m
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|