|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码* N5 |5 R9 I8 y- |3 `( J) h
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据; z9 W8 L5 j4 S% w, s5 r! g% n
Datalength= 输出数据天数(0~99999,0/全输出)
+ R9 n( m" V; D- ^7 X: m; J1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股5 _+ |4 L! e/ N' l
2)全输出: 用嵌入其他指标的公式在A股板快选股
0 u: I6 m0 n8 _/ w% }# ~" Z------------------------------: V o' {) V( W4 [
参数:
|# S2 r5 [- |* w: v" {6 A$ @数据输出 0,0,1
- z& _- P4 g1 Z5 |" j8 f# b, DDATALENGTH 1900,1,99999* ^! A. m2 G. x$ n' Y. ~1 c
//3 p% A$ b& F& q6 P
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;7 v t2 G4 T1 T& r
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
8 k% D _7 D* C! m: x* s数据转换:数据输出,colorred,linethick0;
; }, \6 V' K5 R% t5 {/ t
. i9 e' V& u+ `" i# fIF 数据输出=1 then begin
1 F. q; Y( ]% L _Barpos := BARPOS;
6 a ?2 \2 r9 x8 } _Year := YEAR;) Z' [" X* b! o+ y6 F# ?
_Month := MONTH;
4 t; x- Q9 E9 S B* t1 q `, y0 O, Q _Day := DAY;: d u/ \, E# g3 [8 C
_Datatype := DATATYPE;
) z; m) ^7 T% s6 t& {8 M_Marketlabel := MARKETLABEL;$ V% I1 Y5 c# e- j% d6 Q( Z
_StkName := STKLABEL;6 v, D' z% {% m0 X6 ]* ?! W
_Open := OPEN;, `1 G- ^5 O1 U9 v* P. t5 I0 _
_High := HIGH;
3 q3 d, \/ G# r4 O. e( e5 P _Low := LOW;
& k8 U9 H0 n, l" W# z' \ _Close := CLOSE;
6 K e) D0 y6 Q _Vol := VOL;" g* h* d( J7 q9 O0 x) ]
_Amount := AMOUNT; $ A u( Z% ~# P3 |$ i, {
_Datalength := Datalength;: } F! u+ q2 M& e
8 H; @; @" h: F
<%
' e! |' x" u( L1 M# QDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days+ |9 v' o) }; t/ l, g9 u2 V0 Z
Barposes = ffl.vardata("_Barpos")/ F8 x3 V' N1 r7 a* Z, H. y; Z
Years = ffl.vardata("_Year"): g+ Y/ p' Z R
Months = ffl.vardata("_Month")- f# P* V) z" I& F! {% d0 d
Days = ffl.vardata("_Day")& W! \- e9 d d3 ^
Datatypes = ffl.vardata("_Datatype")
( q: p3 O" H$ Z7 }9 L* O* lMarketlabels = ffl.vardata("_Marketlabel")7 ^' y2 t/ U& Y, u! [! o& g6 e5 [
Stknames = ffl.vardata("_Stkname")
y% s& s# [0 a6 |# F Opens = ffl.vardata("_Open")
: x8 L9 r) I% V& n' y Highs = ffl.vardata("_High")( W3 G% r! P3 v; J8 x# t3 Y9 X
Lows = ffl.vardata("_Low")( y. k7 p3 l- X0 f3 H+ |8 D$ F' h
Closes = ffl.vardata("_Close")5 E* }8 k3 p9 T( ~+ s
Vols = ffl.vardata("_Vol"): T# ?6 \! c* R
Amounts = ffl.vardata("_Amount")
& I. T4 v/ `: |$ g1 o$ T8 m Datalengths = FFL.vardata("_Datalength")
/ q# m1 j/ K; X3 A" A% n% f- l! K- d3 K( |1 Z7 z6 S% j5 g1 x* _
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()& e2 U1 C+ `. A3 ]' T8 Z
SelectCreatAsciiDataType(Datatypes)
7 L8 d4 F+ B% ]
0 B0 O2 F' r2 N& O" sFunction SelectCreatAsciiDataType(Types)
7 P+ E- j7 U# O2 t* Z- ]5 W Select Case Types+ S4 P- w, Y8 j+ ~2 k: U
Case 0
+ j. t( L( X) @0 b7 F/ n! q# ^0 n( j" l' c3 k; o
Case 1
+ O' j& U9 w! d0 _# a( F% c& ] Call CreateAsciiDataMin("_m01")
3 X% x% T3 x& E0 n Case 2" u" U5 q/ Y* l) Y
Call CreateAsciiDataMin("_m05") 9 {0 ~* _# O" ^% [0 H: q
Case 3
* v$ m9 X/ T& K! y& D8 V! U* x Call CreateAsciiDataMin("_m15")
7 ~1 K! F1 f E; D, G Case 4
8 P/ m6 ]% z. I8 g- J Call CreateAsciiDataMin("_m30")
+ d5 B2 E' V. L Case 5
' D4 l$ T# s" F' I6 o/ R Call CreateAsciiDataMin("_m60")/ P; v0 b* ]8 F5 s) O; b
Case 6
2 C0 R) g8 ?1 O Call CreateAsciiDataDayes()
9 ]( N% h7 W* b* h7 H Case 72 j! t4 j; i6 J0 p( G9 s% \
Call CreateAsciiDataMin("_wk")
! u. O# l+ F+ Y4 G- k! w& `0 L Case 8$ Q [ L, U ~# H4 m+ E
Call CreateAsciiDataMin("_mth") 4 `1 u8 e* F$ U+ \" y/ X, R# u
Case 9
% C) s5 n- @8 E5 \# U+ t7 U Call CreateAsciiDataMin("_yr")
6 C+ A' F7 D' }6 Q Case 10& }. R2 L" _4 E7 j/ N
; X, o: ^2 N3 T' B3 } Case 11
. [. h2 f: x) e8 Q. z6 X' _/ R4 D' O/ l) D5 `
Case Else
' P/ M% W/ v+ \0 ^$ t
7 V5 X5 ^+ b$ O7 R End Select- D& q3 X9 G# N; f
End Function+ ?" a2 _2 X, t: w, p3 r9 {: }! V
. [$ ~& z9 s% D F- |% XFunction CreateAsciiDataMin(FolderName)
9 V7 T/ i) M- p2 x) w$ W Const ForReading = 1, ForWriting = 2, ForAppending = 8
1 F1 e. Q* e" Z8 q6 @0 V; K Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2$ o. ]- U3 j9 k
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay( A% t" _2 C3 h6 N" J5 b+ E
Set Fso = CreateObject("Scripting.FileSystemObject")4 n0 n2 ?( a- _
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"( p7 _% Z. Y9 V l$ b! _& p7 ~* }
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"* J( f* u' K9 T4 Q0 G
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
5 h- P* e( v. Z0 }6 _) v+ r Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)$ Z2 t! M& [4 J8 l$ e
ArrayLast = Ubound(Barposes)4 H# i1 S4 O& u7 L
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
) J* J) n* W5 ^% c. t; `" e5 m0 [4 r0 `6 B3 d8 |
if (Datalengths=0 or datalengths>=ArrayLast) then
C a% V9 Y) K, m Datalengths=ArrayLast
9 E$ \1 D9 I2 P: f' o9 S( f end if" B. I7 ^7 ` B" S- A) t9 h9 r5 @
Datastart = ArrayLast-Datalengths
5 O! j6 l+ K; N( M: w$ ^/ p4 r" i
+ I1 X9 Z3 L5 ]' D4 d For i = Datastart To ArrayLast, ~( z$ ?; O/ C# j: k, {- t2 e
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
8 b. E0 M# ~0 B1 ~) H AforeYear = Year(AforeDate)/ o+ w' T- g5 E8 q' f6 t" P
AforeMonth = Month(AforeDate)! A( F# _) H. y
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
+ }6 v) h. I# T AforeDay = Day(AforeDate)
- g U; B4 M+ U: P5 C If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
) Q: d. S2 `2 K6 x Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse). ]$ \' z9 W: L! c
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
! W0 E( [6 M$ t) h2 X0 Q/ @# L' C Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)- o% P" g* E5 w
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)* h& B+ L7 W4 Z( U
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
6 U+ a4 _" Z6 i% t. I3 X5 J# X Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)2 Z; b/ H. c, h g7 @
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
2 `1 n5 y8 f! ~7 w: N# L If Highs(i)<1 Then Highs(i)="0" & Highs(i)
; t, X! y1 j- w8 }( t0 P/ h1 ^ If Lows(i)<1 Then Lows(i)="0" & Lows(i)4 T; B9 _/ v# I/ z5 U! h6 ~: Q
If Closes(i)<1 Then Closes(i)="0" & Closes(i)7 N [4 c3 O* P$ M: E* A c
If Vols(i)<1 Then Vols(i)="0" & Vols(i)$ M1 r! t+ l4 n! B, l0 m
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)0 E5 W, [! H A! ~
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
7 d* ~, c3 z% Q# d9 K LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
# S. I7 l, X- M2 E" ]. n TextStream.WriteLine LineData u8 k& @; l* K3 j! H7 Y$ O* T
TextStreamA.WriteLine LineDataA
. R, Z' I0 k: u$ {! w Next
' P, }% S; v0 S% w8 J6 I TextStream.Close
( x3 h3 x" ~) p. c% D- p TextStreamA.Close% r5 n; v, f9 H( s/ G
$ ?. U# |7 o* {, ~
2 Z) x9 o* c% ]End Function1 Z/ h( L; H% b1 O/ e/ Y( \# @
9 E% x2 a& y+ M4 a- ^Function CreateAsciiDataDayes()1 l! \0 f" A9 J" V0 i# F" j$ |
Const ForReading = 1, ForWriting = 2, ForAppending = 8, \, Z9 d9 ~; \6 Z3 a
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
$ k# c% \; A$ X. y) \" U# s0 r Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
) i/ H4 n1 k3 X! [ Set Fso = CreateObject("Scripting.FileSystemObject")
% y4 t6 @, F% F' V FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"7 a2 i. Q2 f1 B) ]5 V5 z# S
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
# S4 `4 m$ }0 ?( q# K4 e Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
* R4 r- n& W& h6 I3 _7 `0 q( C4 j Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)% b+ N3 m; T+ N
ArrayLast = Ubound(Barposes)' x8 F$ y: s& `$ z4 v
if (Datalengths=0 or datalengths>=ArrayLast) then6 q; M% |% Z0 P
Datalengths=ArrayLast% ?5 [8 s0 H- y8 S, q
end if1 H. D P1 s+ W. s8 e+ \3 [" ?
Datastart = ArrayLast-Datalengths
$ \0 m& X6 C' q" M
/ c* R! J0 b/ [ For i = Datastart To ArrayLast! S3 { o8 A. _" w
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
" \. n! C" \) W$ K' F) ^ If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
9 l! f4 b4 w, A4 | Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)8 Q- s B1 `9 k, l2 V
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse): b0 x& M7 d# O: I7 D0 j
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)* H% f7 H& w' K% S7 a! s& t s( I2 R
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
9 _: w6 I; u, ], C. _ f Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
' x; r) a/ X% ]9 } Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse). l9 Z" P4 ~ [
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
6 j. r+ h8 [$ O7 z+ d" T# B If Highs(i)<1 Then Highs(i)="0" & Highs(i)8 s" U+ ^( a- M9 Y
If Lows(i)<1 Then Lows(i)="0" & Lows(i)2 ]3 b9 o" I. v# s* O
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
6 z6 y9 W2 F) F' |' F If Vols(i)<1 Then Vols(i)="0" & Vols(i)0 d5 C2 t2 f! ]9 J
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)/ z* U- G- N6 G( W# R; e
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
4 b6 W8 x$ i. H( o% Q6 { LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)# P3 M0 P6 U6 f
TextStream.WriteLine LineData8 i9 ~, _; }" P3 g( n( L
TextStreamA.WriteLine LineDataA
8 z2 `# y; y8 e Next2 b t! Q* Q+ o' c/ ^
TextStream.Close. @2 ]! U* O7 @9 p. Q$ B8 ^
TextStreamA.Close
$ \0 j5 p1 `5 Z* [: Z3 k* k* lEnd Function' G4 K9 ^+ Y5 ~5 Y
1 E2 i8 d, I, BFunction ReportFolderStatus(FolderDir)
+ h3 \7 h5 Y8 W5 N Dim Fso, Status
; a, {1 e: c& H& _$ d Set Fso = CreateObject("Scripting.FileSystemObject")2 {! Z, ~- D* u9 Q
If (Fso.FolderExists(FolderDir)) Then
9 m. u9 I: R/ `5 V; t; \ Status = 1) ~' A' K$ I: C: ^
Else* s) T! o& T' H/ U1 S, Y3 a/ k
Status = 0
" n1 c! D- F4 K! J$ a2 z End If
2 N4 v) @! ^# _- E1 k ReportFolderStatus = Status) z5 X$ s& L- b5 \
End Function" F) W0 W5 \; P! {) q, H
2 |7 Q" [/ R3 m8 C* RFunction CreatFolder()# C# T0 W. U4 |0 v, q
Dim Fso
2 n# }$ d; ^4 x1 M h) w4 r Set Fso = CreateObject("Scripting.FileSystemObject")7 R$ m# w w1 b; Y; P# z: J
Dim Folder
. g- E( u. y' ^0 K5 x$ N2 @ Set Folder = Fso.CreateFolder("D:\Stock\TXTData")" a I# N0 H' \
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")4 v+ g" Y, A F5 B
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")9 d9 H1 F) e. D6 ]# H
End Function: R( G9 c! m! M4 k: a; v
%>
% A# |' F% q T5 t' m- H& e/ ]+ z A
explain(1,'--非日线为伪日线输出,两种输出格式:');* l3 u# A9 ~6 J2 i- i% ^7 s
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');. K$ u2 U6 I) O9 x; R0 O3 B
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');% p: l3 q" E' @, _1 b2 a: T
, N% R! `4 Q* M( Y1 P/ N) i
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|