|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码7 y7 S3 F0 e; M( f" c
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
, {1 {% d' x$ j$ `6 }! f0 ZDatalength= 输出数据天数(0~99999,0/全输出)
3 S n5 P. i+ k" O, v1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股# f3 |9 W1 V3 G4 z6 e" @0 k2 f( U) Q
2)全输出: 用嵌入其他指标的公式在A股板快选股
8 s% l, s! H. C) }: d/ q' r------------------------------
2 _+ q& p; F G, [- F& v参数:
( ]) V4 i8 I- x, u' ]- \数据输出 0,0,11 ], f. L" e4 q1 B
DATALENGTH 1900,1,99999
0 M9 R. s, G# u2 N//
, a) U* w0 p! @# y! |5 \vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
, a- j9 M/ Y% s. l: b9 v转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;+ R5 z4 G8 N! v3 u/ i
数据转换:数据输出,colorred,linethick0;0 O; y- ~1 ], N: K& E. L. i
. o6 g. S1 K, ?7 kIF 数据输出=1 then begin! P+ N" v, |$ `- K! x! I
_Barpos := BARPOS;2 U- G- r2 j2 C5 }
_Year := YEAR;
' ]2 J- ^% P. n5 M- g: q _Month := MONTH;* c0 s. ]2 l4 U3 D4 C H1 e- \3 V: A
_Day := DAY;. Q' q) T- u2 E
_Datatype := DATATYPE;1 L3 c2 ~6 I3 U
_Marketlabel := MARKETLABEL;) D, z. |. }* B1 F5 F s1 p
_StkName := STKLABEL;/ t w) e# K' q
_Open := OPEN;- V8 A& J6 x, @8 g
_High := HIGH;- j7 ~% y( ~) y+ z& @ P
_Low := LOW;$ S: ?6 S9 u+ Y! l* ^" K$ B
_Close := CLOSE;
5 ^+ [( a; q1 Q2 m4 d _Vol := VOL; i+ v3 I0 A- _, ?1 ?+ `/ {
_Amount := AMOUNT; ' Z9 p5 G+ a$ ]: v, S
_Datalength := Datalength;5 l) @3 u5 ~4 q! L4 ]9 b" f7 | k( C
& l; _. z- [ w' S, q
<%
. v' R2 _3 O- ~: ~. M# W; CDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
, T, i- B5 I, Z, a% f1 b7 N Barposes = ffl.vardata("_Barpos")
& l1 }6 P+ @- a! d+ J% i! z4 L Years = ffl.vardata("_Year")
; v" B$ v3 S* s' P2 K1 P5 e2 J Months = ffl.vardata("_Month")
1 |; l+ w) p$ s Days = ffl.vardata("_Day")9 s$ P: L7 H/ y5 h
Datatypes = ffl.vardata("_Datatype")" k! [$ C5 b) v7 F
Marketlabels = ffl.vardata("_Marketlabel")! q- c. O: ^1 }# w
Stknames = ffl.vardata("_Stkname")' t8 k4 Q3 S7 t$ a
Opens = ffl.vardata("_Open")
8 Y3 s! @4 `" f3 Y4 Z" Z Highs = ffl.vardata("_High")9 J/ w4 H( e# u" T
Lows = ffl.vardata("_Low")
g$ v f2 s: v5 Z Closes = ffl.vardata("_Close")
' j+ k5 @: K. Q! W, K& [! {% Z Vols = ffl.vardata("_Vol")
, j$ i6 K! p/ ~ n5 b Amounts = ffl.vardata("_Amount")! a" j/ D0 P3 l8 J8 j, A
Datalengths = FFL.vardata("_Datalength")
- |; y$ T/ x6 g4 z
8 o7 G! y% w, n9 r; ~7 C; D, V, y8 [If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()% s; M8 \9 }! V
SelectCreatAsciiDataType(Datatypes)' v8 V; i1 {4 |! F, [9 F" Q
4 ]% ^1 o5 Y E9 n+ C; |% HFunction SelectCreatAsciiDataType(Types)
; X/ {# T- H* z) s) x; d% {# Y Select Case Types2 [0 Y2 S- n+ D& H5 X
Case 0, f: j$ m/ c& b" G$ \3 {, T2 ~8 ?
; i/ e4 {* o8 N8 Y Case 1 n- w; |! ?8 z ~7 y* Q7 n9 g
Call CreateAsciiDataMin("_m01")
7 b, `8 D+ t/ r9 S8 ~' G Case 2* v! ~/ ?, k9 v% I- j
Call CreateAsciiDataMin("_m05")
' H; I' d# e' X) C( A6 V Case 3" L! X9 d3 P2 ?$ L1 j9 P
Call CreateAsciiDataMin("_m15") ) P/ a# D7 i3 V1 L$ f
Case 4* q$ _8 }' H q# Y9 \
Call CreateAsciiDataMin("_m30")
1 q4 f/ {: k" t& E, } Case 56 Z0 n0 z3 o# ~0 i( ~8 O
Call CreateAsciiDataMin("_m60")0 d- L# X3 F& L8 Z6 {
Case 68 F# [& ^6 E- l6 ]; u5 U
Call CreateAsciiDataDayes()( F ? E& h+ S! G r
Case 73 z& J) W" k0 L$ B3 k1 t) n
Call CreateAsciiDataMin("_wk") 9 J7 H+ q9 J" W; _1 v
Case 80 E7 U V' h( y% D" f2 W" k
Call CreateAsciiDataMin("_mth")
7 B1 ~4 ]6 _5 b' c+ p F Case 9% s) l8 p3 u% V
Call CreateAsciiDataMin("_yr") 2 | k* T+ Q9 w2 R1 x% I; A5 I
Case 10( X0 l3 `' G7 V" D3 U& t. `
0 P5 t3 E- O* H& `. |
Case 116 Q% _7 v3 R( a0 o& {; l
# f {+ b- |7 J4 _$ A- f1 _1 _) e Case Else' U7 u/ Q& t, F4 h/ }
. Q0 s* q' {" Z3 v/ B5 ^! g6 e8 \
End Select
% ~9 N" a- Q% F- i' x% O4 rEnd Function
; W1 M( c1 J! u9 S9 v0 s1 ]
6 c& E, X( X+ N( K8 s: L) f0 q/ NFunction CreateAsciiDataMin(FolderName)
3 l" u2 L1 I% C d0 J( ?6 V Const ForReading = 1, ForWriting = 2, ForAppending = 8$ ^" E+ x- @3 }3 {$ s o( {
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
- G) }' x; ]0 _6 m2 G" e Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay& l" C% s% U& E
Set Fso = CreateObject("Scripting.FileSystemObject")
6 U" A% p2 n5 n FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
' l" t+ n0 T. p3 J/ \ FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
. C1 {8 C+ P5 G3 n' r7 R Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)" R) j3 J5 N7 v7 i9 C
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)5 n+ q2 H r, H" g
ArrayLast = Ubound(Barposes)' a7 m& Z9 Q, S, w
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
. E# K0 G% R) |0 p% A: o( N) E% H) a- v3 W# v0 ^* t4 O
if (Datalengths=0 or datalengths>=ArrayLast) then
( ]+ x$ k, P6 p Datalengths=ArrayLast
& k: ~9 K. z" f' {( Z$ l' C end if8 u+ x. q( ]$ l5 s! D9 c' y( n$ D
Datastart = ArrayLast-Datalengths
4 D N P6 M+ U! Y* F6 E, g R; r* A
For i = Datastart To ArrayLast4 f3 m+ B* Q6 k/ W+ Y, p! T& a% s
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)! _4 Y& d: }( u
AforeYear = Year(AforeDate)
% L3 d7 K t3 q AforeMonth = Month(AforeDate)3 @4 p4 O7 U/ v
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
8 i7 `0 P# J6 Z: A! l AforeDay = Day(AforeDate)( x4 K$ t6 D9 F! w# H! _- _! m
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay4 E$ d" [! t5 b/ @1 L
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
( r$ Y! E u! O# v3 z Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)! ]( I8 E. P4 l! a& P
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse), }" p W1 `7 I5 l4 d. a$ z6 U- G! P
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
& [ i/ e# Y" ~3 J Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
* n- q8 C7 a4 U% P' ~ Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
5 [7 {" r6 {, H# } If Opens(i)<1 Then Opens(i)="0" & Opens(i)# I) w' H7 E7 B
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
' e% a E8 c( J' F( Q4 _ If Lows(i)<1 Then Lows(i)="0" & Lows(i)5 r7 s6 @. L& Y9 J
If Closes(i)<1 Then Closes(i)="0" & Closes(i): e% ]0 G1 R) e* t! ?9 R
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
2 o5 u' E8 L" ` If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)1 g9 t5 B1 M& e. a1 M
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)4 S% h- ^: ?# l+ x% N; h
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)' i$ I5 H) a8 L1 Y9 u r
TextStream.WriteLine LineData" J9 x+ X+ Z$ E. Q; y0 f
TextStreamA.WriteLine LineDataA* j7 q/ P! v5 w) E: u
Next a& k- C- e+ D/ @/ q
TextStream.Close
" E9 V- [8 ? d' _3 m TextStreamA.Close2 }. x8 o' O) b/ }' R# \* _. P
1 \, P0 q4 A* C# Z7 B
) _! T4 s4 p, aEnd Function
]2 [/ K" N7 Z4 P/ S. A' X, u: j* G- B. f! l
Function CreateAsciiDataDayes()
+ j0 u$ i% [, s% H, H$ ` Const ForReading = 1, ForWriting = 2, ForAppending = 8
, K5 N" q: S8 P: b" T( d: Y Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
' [! d$ A d" Y! ^! P, P9 V( @; S Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast/ c- o/ H4 c' f$ W, b+ S/ Z
Set Fso = CreateObject("Scripting.FileSystemObject")
$ f1 ~1 L2 b: \ t! c- O6 E1 V FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"8 L& m! F* P' U+ f8 U
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
8 H' _) ^( x3 b- u& m n, `* U% Q Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)+ p2 ], r4 \7 i! ^9 F, f, k
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
+ L6 Z9 A* ]" z7 G- r$ K6 Z( ?& T ArrayLast = Ubound(Barposes). W" B" {' ~# n% }( y4 b
if (Datalengths=0 or datalengths>=ArrayLast) then- [0 X( E7 h- Y8 X1 v5 h, c, V
Datalengths=ArrayLast
6 p, z6 Y' ^( y, C end if
% H/ i+ l5 e' L, g5 A4 E9 ]. ~ Datastart = ArrayLast-Datalengths
4 _7 `7 J7 Q1 ^ ~
( t$ u+ z: {! D. L, O For i = Datastart To ArrayLast! s3 ^, C) _- R% k( r
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
$ P8 H% p q3 u$ b: z5 @7 ^4 W If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)7 [. H" W/ K# ^! ]$ u
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
q) u, m8 e9 L. [ Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)' U' z* k t; }
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)( `4 D. D: O# I1 s% h. S
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)' X+ C Z3 i6 V4 A$ z4 K* b2 \; o0 S
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
' ~. S* S: i ^, M" j Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)1 |0 q7 ^; i' m- s% X/ B2 t
If Opens(i)<1 Then Opens(i)="0" & Opens(i)8 {/ ^% T4 j _& B( {- ~( S7 R
If Highs(i)<1 Then Highs(i)="0" & Highs(i)/ X0 a. A# n1 p# v5 {
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
0 _8 D5 ^9 ]( b If Closes(i)<1 Then Closes(i)="0" & Closes(i)
4 n: Q7 P" v+ D2 s7 Z4 O If Vols(i)<1 Then Vols(i)="0" & Vols(i)0 }, h8 v" \" K W
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)0 `/ h1 L5 ?6 Z- _5 C: B
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
- Y, |' l0 q# p LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
6 Y. _. f" {8 i; C TextStream.WriteLine LineData
1 o+ @7 V5 m; H8 F TextStreamA.WriteLine LineDataA' d( }- t* ^7 R4 M- p$ _
Next, Y$ W1 q, d2 h" H3 l
TextStream.Close+ A, J" y& R* N5 f
TextStreamA.Close
0 l" |; E7 d( Z+ S3 fEnd Function f. v: \# J1 ?
7 O+ t& o1 x) d3 M& f$ ^. j! f& h1 tFunction ReportFolderStatus(FolderDir)% b. `6 B+ \2 U8 ^) p
Dim Fso, Status
; [# s6 }' ^- @1 z Set Fso = CreateObject("Scripting.FileSystemObject"): S9 j7 ^ g) A1 W
If (Fso.FolderExists(FolderDir)) Then1 b5 `5 W H% C' x0 x
Status = 16 b* n# t( h0 v+ b5 y
Else
% [0 Y. A' e0 i; O: q) B: U2 G Status = 0
+ \# a% {3 ~* @" [ End If- D9 o6 I7 X! ?9 B
ReportFolderStatus = Status
- s3 W! G' t# pEnd Function
) ^1 C. R& i4 E! ]& i G9 N
@8 |; _. I. UFunction CreatFolder(), I |4 b8 O0 P) o+ p |. b* x
Dim Fso4 K2 K3 [' h) z
Set Fso = CreateObject("Scripting.FileSystemObject")' c+ [" S" a0 x/ x
Dim Folder4 ], t! m7 X3 \6 Q$ y) [
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
. ~5 L R- q( G! Q Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
* p, H8 o1 L" l) y Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
7 e; ]& @0 K% q" K IEnd Function+ C8 L. S2 l* t. {
%>* T& ~2 o& [9 i! {' e: N/ N1 b
; w" W( q+ {( Y5 |7 Sexplain(1,'--非日线为伪日线输出,两种输出格式:');
j( N0 ?+ G5 ]1 eexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
: F2 b [2 T. ^; Nexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
9 Y9 I% @9 D" x
# J7 `8 g, N, r) y. s! `[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|