|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
" [: w- K$ W$ h数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
" \) l* X( N) ?9 s t6 mDatalength= 输出数据天数(0~99999,0/全输出)
8 s$ Z3 _$ Z. _( v$ A1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股 U" d8 d' F! W4 v! n! q L% O" l$ \
2)全输出: 用嵌入其他指标的公式在A股板快选股5 ?. W( u, p5 z2 y' t
------------------------------2 U$ L3 k# g" H$ ]
参数:
: A+ o0 R0 V- I. |7 `+ h8 T P数据输出 0,0,10 ? O. h, ^0 @" h/ i6 p
DATALENGTH 1900,1,99999; O/ ~% V% K9 Y8 N" x* F8 r3 @( {
//6 L) {( M# E/ r
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;! B# Y, L0 y- |+ P( i" S) W; H `
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;: P9 }% w0 ^ [, R3 |
数据转换:数据输出,colorred,linethick0;/ J: F+ K, S5 R$ U
/ ]1 q$ F; l6 L4 N
IF 数据输出=1 then begin V4 j% U6 N3 x. o
_Barpos := BARPOS;# ^9 [+ |! B$ g/ l# O
_Year := YEAR;/ n, p. q6 P8 E4 c6 k, r
_Month := MONTH;
& U8 u! ~' j) d _Day := DAY;0 D, `# }; I! R! b* t) Z
_Datatype := DATATYPE;
0 S5 j& Z( m+ F1 I- m* q* X_Marketlabel := MARKETLABEL;3 B9 B, m, |9 R8 G' ?4 M
_StkName := STKLABEL;$ t+ S4 U' d4 w0 z2 s W* b* g2 A1 ]
_Open := OPEN;
- p: [. m( Y+ l) d [ _High := HIGH;% |: V9 _7 h8 R3 V1 f* A7 U6 v
_Low := LOW;
: \- y, N; J; ?. M) G) }9 q4 z _Close := CLOSE;
* r1 I/ J+ O/ P/ G9 \2 V _Vol := VOL;
& _/ u5 G% ~9 e6 h# t% ?% W2 p _Amount := AMOUNT;
# S) J$ ]% C3 n& g+ s* H M _Datalength := Datalength;4 A( W, a* D6 Q- o. o# h& f B$ h& @$ y
5 r/ B; b4 _0 J |# v% R* V. P/ t<%
, Z2 h/ {/ L$ d5 VDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days( N$ d0 h. I2 L+ d- N
Barposes = ffl.vardata("_Barpos")
5 ]2 b! J: J; J Years = ffl.vardata("_Year")
9 y. d/ z5 b) ?* N- X Months = ffl.vardata("_Month"); M: S+ \2 M5 \
Days = ffl.vardata("_Day")
% J( O0 l6 r* z' |+ A# \ Datatypes = ffl.vardata("_Datatype")
! ]+ N# f8 m5 ^; v+ wMarketlabels = ffl.vardata("_Marketlabel")
% x/ t" V& J" G" d Stknames = ffl.vardata("_Stkname")3 g+ O X0 k; w5 i: q
Opens = ffl.vardata("_Open")+ O& \3 n) y, ~: n/ K/ [; J
Highs = ffl.vardata("_High")
# \, R' ]* J; e7 p& u7 U* t7 c Lows = ffl.vardata("_Low")
* h1 p! E0 g( U0 ~) Y+ `" _ Closes = ffl.vardata("_Close")
+ o+ Y) o( D, S4 k6 s$ N Vols = ffl.vardata("_Vol"): a1 h- o" a; S1 D. V
Amounts = ffl.vardata("_Amount")2 j8 z6 o3 r! @" e1 ~1 b
Datalengths = FFL.vardata("_Datalength")) N8 ^1 J) T' } p9 y7 P5 \
. {1 T7 `" o3 [; G
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()( i" \0 p7 p& X
SelectCreatAsciiDataType(Datatypes)# g: O7 p! [' z+ M8 _
3 x0 G l2 f, n% X% h- }5 aFunction SelectCreatAsciiDataType(Types)' J; I1 v4 Q, E& o1 n1 t
Select Case Types) ?( J* `$ X) j! K
Case 0
0 C% P6 H. g. E1 G' I
7 p. j- u$ b* {, \4 I. d$ ]- m Case 1
) p' w; ^2 `, Q) e' G6 i, E Call CreateAsciiDataMin("_m01")
" w# l5 ~, `% Z) f& Y7 { Case 2. M" m+ q7 T8 w0 D+ m
Call CreateAsciiDataMin("_m05") ) W! K: e( Q/ O' d
Case 33 q ~( a: U. X7 e# }( P- r) A' ~' M
Call CreateAsciiDataMin("_m15") 1 o0 K* }8 E5 j9 K
Case 4
6 `" i. X: c+ S# c8 d( f# d# ?. C Call CreateAsciiDataMin("_m30")
# L: [9 ]* l2 f% g" A W- h Case 5
- W$ f3 [# A7 Y% z Call CreateAsciiDataMin("_m60")
3 `! g$ H P( K1 n4 L Case 69 ?: B! k4 j0 p) F8 o6 ? j, T0 {
Call CreateAsciiDataDayes()
/ |" s$ e3 h5 P/ Z. [$ v Case 7
9 W' a% c3 A% t: X Call CreateAsciiDataMin("_wk")
5 _! L' b' A8 W0 g Case 8
3 u: o) c' N4 ~% [+ c# q Call CreateAsciiDataMin("_mth")
0 i' D/ K$ o2 w" R9 T Case 94 W3 w' i" y( k' d+ S. g3 v. f
Call CreateAsciiDataMin("_yr") / Q2 z. B+ S! K3 L/ l
Case 10
, v. G! q2 m) }- q( [6 M2 l1 r* T7 t/ E. G3 y _8 W
Case 11! e+ R+ q B* F
0 a# {* |! M+ g5 h- b! F/ g Case Else
, j8 p- e$ s8 T; @# r9 a
7 y3 `' X( u9 ?: ?4 ^ End Select' f3 Q5 k/ ]' t. R1 y' G7 n
End Function
5 R" J- d/ Z) ]! O1 |
1 u0 ~% z' M0 X! \Function CreateAsciiDataMin(FolderName)
+ k' F# ^6 Q( z& s$ d2 h: Q Const ForReading = 1, ForWriting = 2, ForAppending = 8
/ F* S c: D- `' F# K3 X% j0 s Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2+ Y( B2 W3 w4 B$ y1 G: m, e
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
" _0 n6 j& Z& J) l6 s" k/ t: c" c" x Set Fso = CreateObject("Scripting.FileSystemObject")
1 |+ M9 k6 o: X" ? FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"* _4 s8 d; k9 J+ u$ c7 _
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"1 y1 q" H3 O+ L5 f. ]3 w5 s" R& Q
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
5 X: w' }. j! Z& c) [5 D& U Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)& L! s% I g+ v7 M! F
ArrayLast = Ubound(Barposes)
7 z( F; L& V W$ m) D LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)0 m% w, F' h9 Q5 X0 w- q9 f$ P$ i4 r
5 A9 w) W4 c* \3 ^* y1 z. A
if (Datalengths=0 or datalengths>=ArrayLast) then
+ o& x f5 t o0 L2 p Datalengths=ArrayLast
1 L$ k( d, v3 ~1 v0 _& k; A end if
: P$ r: s& K* |3 W Datastart = ArrayLast-Datalengths
* F- n. ?+ D4 h* {' Q( _) @! e: `9 H9 d$ m( L$ m
For i = Datastart To ArrayLast
8 A- N1 i& _6 f+ D AforeDate = DateAdd("d",(i-ArrayLast),LastDate)+ O# a" s2 V/ M/ O; ^
AforeYear = Year(AforeDate)- [9 {; j! h9 k- Y; T
AforeMonth = Month(AforeDate)% G7 b1 d# ~9 b" e5 _, D" j3 g. c9 s
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
% i' I. s6 {8 S AforeDay = Day(AforeDate)
9 b- u4 C& n% C) L7 r6 ~* o If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
5 R9 \6 \4 g4 M9 j6 G" @; Z! _ Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)9 c9 ~+ z& k" \
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)% U: y2 Z. C; k+ u- p! H% m& S
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)5 R5 f5 d1 n, g+ y5 J$ [
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)! b7 R8 [8 N8 y5 B9 S- _. P: O% h0 g
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)- V2 M5 S, p% V1 Z! E
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
+ G4 y5 o# Z, T If Opens(i)<1 Then Opens(i)="0" & Opens(i), L1 u& x; u: n% D1 f5 r
If Highs(i)<1 Then Highs(i)="0" & Highs(i)/ E; T! W v# v$ P
If Lows(i)<1 Then Lows(i)="0" & Lows(i)4 ~ O- P& j0 |( [8 l
If Closes(i)<1 Then Closes(i)="0" & Closes(i)# d: s, A# v3 y7 ?
If Vols(i)<1 Then Vols(i)="0" & Vols(i)8 e% H- A L, ~: k( _
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)1 b6 i& I, E* v9 d3 K
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
7 q6 t/ O+ R8 R. H9 x2 ^ LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)& |6 `9 N; w; |; L
TextStream.WriteLine LineData
; g8 y/ Y N) z: d9 |* E TextStreamA.WriteLine LineDataA
' u+ A Q1 x5 r: e) A Next
4 I+ @' m n& ?( h# c8 \ TextStream.Close
' z9 S' o; z# r; Z% I& x TextStreamA.Close
. h4 \$ X/ S7 C) U4 L8 Y5 H5 d' _4 s# @) H
; C% U% |9 p0 D6 X$ [1 REnd Function
- U0 V+ s6 l; B& [9 K
2 G. W- }' `5 x6 | i% IFunction CreateAsciiDataDayes()
: w0 h8 _4 I l+ y; w p1 z3 D Const ForReading = 1, ForWriting = 2, ForAppending = 8
% r; t! j$ l$ i' y5 O( Q Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2% a Q+ C, d& r3 }7 r# D
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
7 Q5 N7 `& a7 ~& v Set Fso = CreateObject("Scripting.FileSystemObject")
. j i; A- `7 n, A" g6 s+ H/ T; h FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
0 T4 |- ^5 N# `, x& V" p FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
/ N. X% ]+ Z/ w2 L: r Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)9 T* t, g8 {4 @9 ]6 l, h" h
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)! W3 o6 W, B' C y% K+ S7 o
ArrayLast = Ubound(Barposes); p' x) H4 D* t" A# b4 v
if (Datalengths=0 or datalengths>=ArrayLast) then1 a5 m5 H, U: t3 l- m! _; ~
Datalengths=ArrayLast
1 H% a ^3 `4 e- F: \9 s' P end if: U2 z* D% P' G
Datastart = ArrayLast-Datalengths0 y6 v# W; I0 z. L2 z% s) E
: s) g* t: |4 H' w1 v3 S5 R; y6 [0 ^ For i = Datastart To ArrayLast
1 T/ J8 y9 ~3 u# E If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)1 k4 @5 R- }+ o$ n$ c" g
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
, @. y0 a( z( t9 _; | Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
3 _) q" p1 W# f' V! s9 W Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
: B0 f) u9 K5 c" k Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)& u8 E9 C: N" o% y' q
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
, E4 m: \! p5 W5 r Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
/ [6 [. @- R& |) ?6 `: D Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
9 e; I; t) e; a2 c: Y4 n If Opens(i)<1 Then Opens(i)="0" & Opens(i)3 {* d7 h* `% m8 P# z0 Y9 X
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
2 b1 S J: m' o- U% x If Lows(i)<1 Then Lows(i)="0" & Lows(i)
6 U9 I* {" H! W) N If Closes(i)<1 Then Closes(i)="0" & Closes(i)8 O/ r5 ]4 \) g! b9 \6 c2 G
If Vols(i)<1 Then Vols(i)="0" & Vols(i)$ ~; e( A3 }; W# F. P9 q
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
0 x! i* I1 @$ [- z LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)# [2 W, q( I4 Y# w0 E
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
" b- O# i3 b9 V TextStream.WriteLine LineData& Z3 V) A9 H! @7 Q6 q. H0 I
TextStreamA.WriteLine LineDataA" r. c' U: d. p. A, v1 C
Next
$ D6 U8 T- I8 z9 v$ L# O3 g TextStream.Close
! p/ i1 |) [3 s' o: [) u/ ~ TextStreamA.Close
# q* `& H9 R4 W4 Y7 fEnd Function
( B" A. l* M9 T8 p! I" B3 j4 y
- H; D) Q7 ?- PFunction ReportFolderStatus(FolderDir)$ F, q: L1 K% u% }$ Y6 }! Q
Dim Fso, Status
$ D$ G' s5 s& C) P) M Set Fso = CreateObject("Scripting.FileSystemObject")4 @0 L3 Y8 S6 A- Y- f
If (Fso.FolderExists(FolderDir)) Then2 I0 K* U/ w; m0 s# @
Status = 1
7 a& O# Z+ N" J+ \% u7 Y) K Else
5 w. `+ u# u. R2 n+ B Status = 09 } l5 ^; L* n8 B
End If
0 `( a0 I. \1 ~' o ReportFolderStatus = Status
! @5 N$ M# w! X' a3 Y; i$ t7 hEnd Function# g0 g8 T- O1 @
$ R3 s5 P; `1 M2 zFunction CreatFolder()8 C* c" H7 g1 n+ n( H- C: d2 ^' x! |
Dim Fso
/ v: I& y/ F4 |* o. | Set Fso = CreateObject("Scripting.FileSystemObject")
; J# w' S" H& j/ ~5 _, N Dim Folder" n H) }; R. H+ s1 c) e' _
Set Folder = Fso.CreateFolder("D:\Stock\TXTData"); m9 z- n1 Z* P/ O$ ? z, s% U8 l
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
3 _+ r5 d" x S& t Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
# P- N9 J2 a0 E1 C, o( ]5 iEnd Function
& L8 @8 J7 W; P) e1 t%>
, D% j5 c% l# U$ q- E+ [1 t7 \" I) n0 M' F4 C! G& {3 s6 d+ U
explain(1,'--非日线为伪日线输出,两种输出格式:');
+ W- ]2 N4 N9 P2 G6 |explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
) |( |- x/ I/ l* J7 uexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
( g" E7 ~5 O4 B5 l" x5 o! O
9 ^# \' r& [8 p7 S: Q[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|