|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码& Z. F8 L8 l H m. D; K
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
A# [8 P3 n* v0 ~Datalength= 输出数据天数(0~99999,0/全输出)+ {" Z' s9 u2 {: `0 ^$ k5 Y9 U+ K/ o
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股# O' K. M) N( c" [) T$ [: _
2)全输出: 用嵌入其他指标的公式在A股板快选股
5 h _+ w1 t2 W$ ]------------------------------
( P3 L1 E# D$ X% z参数:: L' [9 c- d1 J$ c: D
数据输出 0,0,1
* T5 G- z r9 E/ dDATALENGTH 1900,1,999992 i0 W8 k, ?0 N3 X3 l3 ^- p8 i% e
//
" x' W! o/ g1 ]vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;$ Z$ ^7 I6 V& {- i
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;4 c ?5 {9 K5 y2 Z. y! N; M
数据转换:数据输出,colorred,linethick0;" S8 q, Q- i7 Q1 w
4 Z* P8 V4 V1 k- Z
IF 数据输出=1 then begin
; ?* [7 K& T; T( X* U _Barpos := BARPOS;
# }: d6 e* a @6 L @9 | _Year := YEAR;
* e( {3 S8 ? w _Month := MONTH;
- U1 |9 k& I0 Q/ ] _Day := DAY;
0 g& O, s0 }8 L% Y4 M" K$ [( g _Datatype := DATATYPE;& m; F: X$ b8 L" R5 k% C
_Marketlabel := MARKETLABEL;
( `1 s6 ^8 @$ T4 p" n _StkName := STKLABEL;
' p9 ]& ]: d0 M6 K# M# h _Open := OPEN;
" J, {( p1 ^9 r% e# n: C+ b( k7 W _High := HIGH;
1 r! y" P \& A5 q% f% n% n- Y _Low := LOW;3 @. [; I, u. c$ c% F, k
_Close := CLOSE;6 B: ?9 }& q% c. H
_Vol := VOL;
# d( q9 W" q- j- L2 v8 E6 G4 r _Amount := AMOUNT;
0 K. L- t9 |5 ?/ v5 u3 e _Datalength := Datalength;
, r6 O: H3 ~" } `( h3 U6 T J0 b- n: z; ?% q
<%
, N* O( ^% A- dDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days/ x3 I0 t1 X% \0 Q- V0 U* I9 y
Barposes = ffl.vardata("_Barpos")
% B! g% |2 `9 s- K. T Years = ffl.vardata("_Year")4 J' _0 I& ~; a, L
Months = ffl.vardata("_Month")4 c" l" n, \* P# D! m6 C+ I% }
Days = ffl.vardata("_Day")
& f5 ^2 {& T$ S! r4 i; Z! F5 h Datatypes = ffl.vardata("_Datatype")
1 R3 `: u0 P- iMarketlabels = ffl.vardata("_Marketlabel")
6 |( x4 t4 r6 A Stknames = ffl.vardata("_Stkname")
3 Z0 f9 ~9 r0 Y, Z/ p" ] Opens = ffl.vardata("_Open")6 N6 r" H7 I. y7 o a
Highs = ffl.vardata("_High")- v9 P' }: m# Y/ i2 M
Lows = ffl.vardata("_Low") Y6 e/ [ b- ?+ Q
Closes = ffl.vardata("_Close")
/ A9 a/ j1 I; d9 e Vols = ffl.vardata("_Vol")4 O7 | S5 F8 b' ~7 g, D
Amounts = ffl.vardata("_Amount")
! d1 @- x: G+ ~8 \2 R. t9 K) R Datalengths = FFL.vardata("_Datalength")
5 x3 l9 |* c" O5 [* v* L4 z# B& Z4 p$ n a# z! T8 h
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
* ]9 i3 k8 P2 [& z$ j2 t4 FSelectCreatAsciiDataType(Datatypes)
# A( n! ^) c* m
3 I* d0 x% l% k, U+ S/ jFunction SelectCreatAsciiDataType(Types)
4 D1 A' l7 V- y6 E+ a Select Case Types' s2 ?, M5 Y2 p" ~3 b9 t# r2 O; B
Case 0
2 O0 D$ U$ q5 E/ n8 q1 i- T, V3 g6 C% l$ P$ t3 `0 k5 `/ X' r
Case 1
! U; ^8 |8 G; n5 J' b9 m+ q Call CreateAsciiDataMin("_m01")
6 V! K* w6 [/ v% G- I$ ~2 I! a Case 2
" Z4 G! o2 ^& g" @2 v* ~* Q Call CreateAsciiDataMin("_m05")
! D6 Y( W* L: O' e7 ^6 A8 o' t Case 39 K3 b3 H! H( b# v* {$ w* A6 P9 c4 |
Call CreateAsciiDataMin("_m15") 8 p" f% b2 t8 e ]
Case 41 i' v' F6 O1 v* F& ~; Z
Call CreateAsciiDataMin("_m30")
8 F5 p4 \; \& h# E5 B% M4 H Case 5
, G6 ?$ i! p L( O# }7 b( U" P Call CreateAsciiDataMin("_m60")! `) R& K2 L. r8 S0 I) e
Case 6& M% M* A( [; u) k
Call CreateAsciiDataDayes()
& s7 F ?" z5 C+ o% @! f) ] Case 7
: w/ u6 N/ ~# p3 Y9 L9 [ Call CreateAsciiDataMin("_wk")
/ H/ i& ]: g$ _) ?+ K& a8 Z) Y, k Case 8
/ ^. ^6 L5 B& K- c1 w Call CreateAsciiDataMin("_mth") . \1 v% s; Z6 A( I3 l3 E
Case 9
1 J+ C) b$ q. c7 } Call CreateAsciiDataMin("_yr") : {* |5 r2 o6 `- B5 E8 n7 [
Case 10 l! J$ b5 Y6 N5 Z9 O
- L& J3 P9 W, O" O
Case 11
: j, U9 [- r6 x) u: h1 K$ r+ h3 j' M% T4 k. u' |* b& q/ @
Case Else
9 U1 \% _, z& I7 q- N0 `: Z7 p; k3 x
End Select
& m0 P. V: W5 K5 ^. @7 A" R$ ~' [End Function
) u, J1 _, }. _# ^7 m3 r# X3 r, i6 b! ?+ ?2 L
Function CreateAsciiDataMin(FolderName)
0 k8 x7 m: g' E0 t1 M. d Const ForReading = 1, ForWriting = 2, ForAppending = 8
8 I% A: x; P* A0 g6 A5 Q# Y Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2% k& O+ m# w5 V/ I5 T. |9 k
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
# u5 ~ y* F# H# Q& y" p Set Fso = CreateObject("Scripting.FileSystemObject"), O' {5 r- Q& G/ h1 u: x4 P
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"1 Q8 L+ Q: v) G M
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt" P) J# d0 H3 b
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)% p+ e5 w9 K, R9 \
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
! w+ ?3 d" z K( ~* S1 i' a ArrayLast = Ubound(Barposes)
/ |0 ~! T' _+ o0 }, X LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
7 ]! p# I0 \8 G' m, u, t, X
. g" U1 S0 d3 u9 V* |* _9 D if (Datalengths=0 or datalengths>=ArrayLast) then
" i4 }) [+ v$ p. _( x; @ Datalengths=ArrayLast' N/ |( R1 u1 r/ M& c6 \
end if
0 z7 g$ k* t1 d2 _ Datastart = ArrayLast-Datalengths
0 o$ h5 I& C' f1 _5 ^; I8 x `) s( h( O Y' a# V: B
For i = Datastart To ArrayLast
2 @. c, ~) G( Z' X. n; R& a) G AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
4 v" ?9 h. U' n+ { AforeYear = Year(AforeDate)6 f& W0 Y/ V# B1 S7 M* d# u
AforeMonth = Month(AforeDate), e. G/ A6 J- G9 J: ^0 ?; a
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth1 b8 s( N6 I) @$ U+ R
AforeDay = Day(AforeDate)! q" N2 o+ L# E1 D- l7 M" r
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
5 t; Y6 A. k- X: c' G1 y, U Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
8 z* D$ [8 Q3 q2 g! ?. O Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)2 a7 v q8 v* u8 ^$ b
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)6 ?) n+ T+ s8 c" `6 [# E. W* r1 S
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
- n2 N" V* W$ Z% u; U! E Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
$ S; L; m* _( K, P! s) F8 ` Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
3 `! m- ~ S- A4 Y) o" `% E If Opens(i)<1 Then Opens(i)="0" & Opens(i)
6 u) I! q6 |# J _+ ]6 J/ W If Highs(i)<1 Then Highs(i)="0" & Highs(i)
' v/ e) Q5 ^# M If Lows(i)<1 Then Lows(i)="0" & Lows(i)
1 S; ^% ?$ j! V If Closes(i)<1 Then Closes(i)="0" & Closes(i)
6 U5 h/ G- O$ p3 R0 o: q$ I If Vols(i)<1 Then Vols(i)="0" & Vols(i)
- K2 Q/ k4 b' B If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
7 G3 k9 i4 D% d3 J* ^. c LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
: O0 W4 X2 P: H$ M. x% V0 x LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
. J6 c/ b( P+ U$ I" W TextStream.WriteLine LineData% O* P* L) b% J1 p D/ F. ]$ U$ ?
TextStreamA.WriteLine LineDataA
1 k* X1 |7 h( H e, ]2 g Next3 |! t2 L1 S: N( K4 q% W6 j9 O$ Q
TextStream.Close
" p% T5 g( Y7 \) x TextStreamA.Close
# [. M( w ^. e1 u M
0 P& L6 \# ?; b6 o# l
4 ^" \- P* ?, N5 V3 J* |7 h3 [) YEnd Function* @! ^3 }3 o# n! `
3 ? Q' C& b8 G' N, s DFunction CreateAsciiDataDayes()4 o. d' `/ A, Z; i
Const ForReading = 1, ForWriting = 2, ForAppending = 8& N4 A; A% e2 ?9 C7 p q( h
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -23 |' C C* O- w" _8 ~2 q) ~4 B
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
$ a( m) T$ k3 W Set Fso = CreateObject("Scripting.FileSystemObject")' U& V$ G0 Q: [% }& v# ^
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt", Y. X% P% H! I8 [ c$ O5 M& S
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"8 M: \) }% g4 r; y% k3 Z
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
& z' E- Z* s; k$ J1 J Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
/ l2 ^6 I( o6 E | ArrayLast = Ubound(Barposes)$ {7 \& L2 B) N3 M3 g5 l% G! L
if (Datalengths=0 or datalengths>=ArrayLast) then
1 s: C+ l) r) ?. ^( J$ T: J, J Datalengths=ArrayLast
2 m# E, ` f4 R4 {% I; c end if7 U2 y* v* T( N) s1 @) ]) Z4 E# x8 T
Datastart = ArrayLast-Datalengths
/ x. b, M6 N- h
6 H' E$ G& {4 z; x% ?' g+ o4 @5 \ For i = Datastart To ArrayLast# H$ T, n. z& Q
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
( Z6 x& l! ~* p; _5 X1 O. X% G If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)+ x5 `5 c* J% }( j4 D
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
0 H. @+ B& R* K; z7 p+ W1 Y Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
; T0 H1 m% ~# A& k1 @# {/ ~ Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
$ u3 o7 _" z0 ]+ Z Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse) _, y- a2 |+ |% t) b, n, b
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
, X: f& W! R- o: W9 ]; ]( `0 T9 A Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse). H% I( q, q5 ^+ a
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
( |, m% w0 p5 a! ~) c0 A3 Q9 }( U& e If Highs(i)<1 Then Highs(i)="0" & Highs(i)7 g0 T" ^% r9 y. q" l2 L
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
/ Z. C* v: q5 ~ If Closes(i)<1 Then Closes(i)="0" & Closes(i)
: F9 ]" O( P3 t( M* Z+ R+ p If Vols(i)<1 Then Vols(i)="0" & Vols(i)3 j8 z9 s6 j& r- U: g( K; ?7 e
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)- Q( w. Q- n; E3 x! ~
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)5 Z( m, O- u6 M, M7 N( H
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
2 W* |) ]+ n' H J- j TextStream.WriteLine LineData
1 k3 z" @ P0 X9 a" e7 T/ J& G TextStreamA.WriteLine LineDataA
& }+ ]3 t7 B* m0 G4 c Next
1 I3 M( h+ p7 f& { TextStream.Close; U$ J: M+ V/ {# ^ y
TextStreamA.Close . E2 _. Z4 o% T9 G2 D$ ~& {$ n) P
End Function5 ~* L; Z* \3 I" K
7 |0 J2 ?, @3 O- B
Function ReportFolderStatus(FolderDir)% k0 j1 C- J. M6 g/ T3 p' q N
Dim Fso, Status1 W1 x7 U* e0 ^$ d& n/ J! P
Set Fso = CreateObject("Scripting.FileSystemObject")7 Z5 b: n9 V/ ?0 O: S s/ C; q, U1 U
If (Fso.FolderExists(FolderDir)) Then
+ a2 O$ N+ r. G8 V Status = 1
& `# q- ]/ B7 R! h( T- O) i Else
% e6 b. x; ?3 `- L, A% m- o Status = 0
! C8 M1 b0 \( b3 n: q End If* T" `& i! B# J1 L3 M
ReportFolderStatus = Status
" S: ]& {8 S3 _1 Y( ?& s# t- \End Function
{4 m3 u3 i, T+ g+ ^
& ^& a1 Z# C: H5 @Function CreatFolder(), f. |+ Z' [7 k: C5 }8 n
Dim Fso
( F1 w: ~/ a7 K$ \' Z1 | Set Fso = CreateObject("Scripting.FileSystemObject")( G8 v4 ]! g6 \% s
Dim Folder
: ?8 z. Y& ? \+ y4 r7 i Set Folder = Fso.CreateFolder("D:\Stock\TXTData"), a% A) ]+ b" [9 v' h
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
& L8 v2 J! o0 P5 C$ x6 p+ D1 @ Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")$ n; q w( A! f+ j& W6 @
End Function
3 a" v; q* ?0 F8 Z: R' e%>2 b; w& ?8 f3 N) Y& m
- t2 B* ]6 t3 i! x! hexplain(1,'--非日线为伪日线输出,两种输出格式:');& u8 n' p+ e/ G3 b* C0 S8 N
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
, A% o( v5 \& O* ^8 u) z) x. pexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn'); j3 s' d' v1 \) o
6 u0 o; H. W* ]* }1 ~' I5 ?[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|