|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码: }( A. I$ g) K
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据+ _6 g% _ T3 d
Datalength= 输出数据天数(0~99999,0/全输出)
8 i" S# ]7 z1 f9 f( U5 i" G1 s1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股1 ?+ S0 N$ B! y0 k6 ~% Z% C; d
2)全输出: 用嵌入其他指标的公式在A股板快选股/ R! q* z, T' M% D4 F
------------------------------
3 t* s8 F- C5 H1 f. X. V, u参数:7 F S2 N, \% v9 e
数据输出 0,0,15 \ P7 `7 ?, A3 x7 [' Z# f c$ r6 k
DATALENGTH 1900,1,99999$ W$ T# t* | c% r9 Z. y8 R
//
: [& n* v8 X9 `4 t& y6 c2 q5 z0 Tvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
+ U! ]$ ~2 l* y, I( R转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0; p9 C. m; F) o( Y5 n
数据转换:数据输出,colorred,linethick0;+ u, \; s( a4 k4 c. I9 Q# d1 A7 ]) e
3 p5 o+ C% Z1 ?% U; P5 w" Q
IF 数据输出=1 then begin- M; r3 j J; G8 T, i: q `, |
_Barpos := BARPOS;8 A# t- X: D3 Q
_Year := YEAR;
! A! _$ t3 U5 e1 x. V3 E _Month := MONTH;% M" H- L* n& K2 g
_Day := DAY;
0 v$ R; l- q/ ~! V( ]& N _Datatype := DATATYPE;
: |- \$ D$ q5 y; A_Marketlabel := MARKETLABEL;: t9 u5 x5 d# K# d* a0 d
_StkName := STKLABEL;5 h- L2 y& `+ S- @( u6 J3 i0 I
_Open := OPEN;
6 A" N3 [+ ^0 ^- \5 _ _High := HIGH;
& @$ x7 N5 ^" J Y3 d _Low := LOW;# [1 _* M# i& V* }
_Close := CLOSE;
, c7 e- |9 V% e! W; f _Vol := VOL;, ^; o8 M% n" n2 r5 N; {$ n
_Amount := AMOUNT;
x% b O7 S$ ~8 V# Q. H2 `6 ]4 h _Datalength := Datalength;
4 L; E% P. ~! W
4 A1 U5 v: \! m' B<%+ @9 h1 {' P9 U
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
& o( n7 \/ O& p. [6 k Barposes = ffl.vardata("_Barpos")
9 B: i/ p, w4 T9 p6 O( m Years = ffl.vardata("_Year")5 |% |5 M- i& B$ H* M: A( I# d1 d
Months = ffl.vardata("_Month")% @& C0 t; t* b
Days = ffl.vardata("_Day")
. m* Q; P% a) L- S& C( \ Datatypes = ffl.vardata("_Datatype")
4 x0 x5 u4 d4 l+ u. g% x2 ^+ j! ^Marketlabels = ffl.vardata("_Marketlabel")1 J7 n3 c7 t2 X5 W6 H3 v4 w3 K1 i
Stknames = ffl.vardata("_Stkname"). x& K- z$ u4 ?5 X' t% A
Opens = ffl.vardata("_Open"): G* }( m& c* X
Highs = ffl.vardata("_High")& d1 f" o3 }: D( H' V0 i/ H) y' R1 E
Lows = ffl.vardata("_Low")
' N- U# \ C1 U6 a$ l, E Closes = ffl.vardata("_Close")
# _6 k/ P2 e/ I h& T! x Vols = ffl.vardata("_Vol")
1 N$ K7 P8 Y" [4 }. W# | Amounts = ffl.vardata("_Amount")
# C1 c$ U+ S3 k Datalengths = FFL.vardata("_Datalength")
4 t! t- K2 U" B
) Y- \) U% ^# U% X& |) ~' ?If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
# V6 Y! y5 J+ i$ s9 jSelectCreatAsciiDataType(Datatypes)- t. p2 ? b7 Q# m
% x- C2 G q* d/ }0 M K
Function SelectCreatAsciiDataType(Types), |6 b m9 s& A6 P
Select Case Types; c5 a1 z. k. @. f: R! X
Case 0
" v3 N$ |. k2 Q( h6 t! D) C: M7 j$ y, v5 S
Case 19 B6 K9 V- ?3 z/ j+ Q5 F' E' ~( K# l
Call CreateAsciiDataMin("_m01")
5 W- g9 N6 M! F9 E9 M Case 2- W5 H6 T: X- S/ u
Call CreateAsciiDataMin("_m05") . o1 k3 z4 o- L- a0 q' D; [# B6 U! h
Case 31 R, {7 k W# p9 i5 g
Call CreateAsciiDataMin("_m15") 2 z1 ~( K+ e. |' Z( D. ~8 F' k
Case 42 h+ a* {$ w2 u% c( _. J
Call CreateAsciiDataMin("_m30")
/ Y3 Q! j1 F4 P) e Case 5
- Y. y( J4 e+ x7 N l: F9 \ Call CreateAsciiDataMin("_m60")7 p& D5 b3 q& j c, i7 u
Case 6
- J, X7 @/ f, M1 M Call CreateAsciiDataDayes()
" R* B0 l8 x' s7 A/ U2 X7 X& P Case 7. E6 X- o# ?% F4 U7 V1 @* w9 e1 L
Call CreateAsciiDataMin("_wk")
* @) h; g0 Y9 O- |5 k Case 8
3 f3 D2 U9 c9 I+ O" u/ c Call CreateAsciiDataMin("_mth")
2 n* p% R! ~& F Case 9* x' z" ]: b! i
Call CreateAsciiDataMin("_yr")
2 S7 e2 o8 `- d7 o% m2 p: E Case 10
+ F) b' K( r) h. S1 f( T; L; U! N$ E* ^ `& B* X
Case 11
6 m2 b! g( X5 J) S( l0 h
* O+ _7 }0 ?! H9 }5 |8 Y8 d+ i Case Else
; x4 f* U- O Q# O$ [9 \( r3 c! Z' ^
End Select
0 ] p! b( Y* x) B+ Q4 fEnd Function( \0 F4 {0 t9 g1 S C
+ z0 ?# o) p4 t1 a6 A6 p% ~$ @
Function CreateAsciiDataMin(FolderName)/ r+ H4 ~7 y/ G2 B( y2 j
Const ForReading = 1, ForWriting = 2, ForAppending = 8% P3 v, m* M8 h1 [0 r# i& J( g5 ~
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2+ n) @& s6 l7 P0 X7 S
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay* K j7 ^" _5 k$ I- X$ A; t. L
Set Fso = CreateObject("Scripting.FileSystemObject")
* g# O! ^+ R, ?% F- Z FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
) |, W4 o: Z8 P. H+ U7 M+ _# i2 C FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"% y" }) f; G5 p; H9 P. C
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
" I9 S+ j. G1 A! K' ^: V" Y2 ?+ G Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
5 O2 p7 y* e& @' c ArrayLast = Ubound(Barposes)
" a6 D# M2 g3 a2 R w \% x& v) v LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
0 J0 |/ _: ?: u6 o) a, T0 \
. I; Y2 |- ~8 j3 Y- A if (Datalengths=0 or datalengths>=ArrayLast) then
3 v5 ~: z; t1 D1 |' |% C Datalengths=ArrayLast
1 I+ a X" [% {) V. S; T, i end if
7 y6 d Y5 l3 l* E: r5 \# w Datastart = ArrayLast-Datalengths$ O+ z. L X' t& V3 n
* j7 h& a- i0 E2 m# F
For i = Datastart To ArrayLast
8 W+ H4 g1 E, L: s0 }! J; O AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
1 _4 d/ @# M# S! t' P# v& q# b AforeYear = Year(AforeDate)
$ K. `1 \) G) L AforeMonth = Month(AforeDate)2 B5 s+ j' s- Y. ^
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth3 T) w a' o$ F# F4 T
AforeDay = Day(AforeDate)
) ]6 W) H1 O+ ]- O4 V If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay) T$ O8 G. w4 d) a5 V3 L0 ^* B5 }
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
& O9 v0 |$ C$ m( q7 a Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)7 c8 u( y( J7 t- |4 T
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)7 M+ t0 w; Z! I) d- |
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
! h/ g9 |- j" O6 M/ e! x. i! W( C Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)3 P8 g3 @% p! c' D9 m5 B
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
* y: G2 I0 j! d0 V: U" I If Opens(i)<1 Then Opens(i)="0" & Opens(i)
$ D9 \5 y( e/ ?+ V# l If Highs(i)<1 Then Highs(i)="0" & Highs(i)6 N/ }$ f" Z+ n: ]
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
# T; C1 C3 c* ^2 B* F0 Z If Closes(i)<1 Then Closes(i)="0" & Closes(i)2 b! r' ]8 \8 `; e, p
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
, _' z! w( {7 O' D If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)" A9 D( d! i+ X
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
7 R/ |! h, S: W LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
l& L2 m' P* u+ A/ C# Y TextStream.WriteLine LineData
* ]/ F/ c" h( W# _; k7 E* }1 t TextStreamA.WriteLine LineDataA
7 P7 Q& P4 J3 g/ Z8 i! u, s Next
) s4 A# Y: @( [* j+ e+ b# n9 l TextStream.Close! r$ M, O7 b3 x/ ^* O* O1 P+ L D
TextStreamA.Close
" j! G# H' u1 L, c3 Z3 L4 T" S3 K
. n& }1 N1 } P& v5 k8 }& @7 q! yEnd Function6 {' x# C! Y- j% P! T
/ f7 `$ W, i; t2 y. [* I
Function CreateAsciiDataDayes(), f( ?8 `4 Z- g
Const ForReading = 1, ForWriting = 2, ForAppending = 8; p0 ~) h" w; ]
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2* m5 x7 a0 M& l/ c0 \
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
: f% T, k: ~' I: K6 w Set Fso = CreateObject("Scripting.FileSystemObject")
6 M9 w% g" R" R1 J1 W FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"/ P2 m, X$ p7 g, ^3 G
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"5 {, N' l) h- Q- H1 T
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
$ C2 ]+ `1 c1 I; D4 N! B Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)( e( H/ C5 p5 x1 K; d
ArrayLast = Ubound(Barposes)
% ]) j' e0 C' o if (Datalengths=0 or datalengths>=ArrayLast) then* p+ I, n1 w+ C) o# p: y8 M
Datalengths=ArrayLast8 I! j! L. ~2 v
end if7 q% M+ Q/ D7 y0 X, f
Datastart = ArrayLast-Datalengths
3 k9 ?, n2 _2 U- f: q
: B- n g; Q2 d3 ]6 t" Y1 H6 ] For i = Datastart To ArrayLast& J9 c F1 Y" }: I9 e8 u
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
4 Q2 M& |7 B4 M If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
6 d, O9 Y1 R$ ]+ Y' I, ] Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)# ?' r( H0 c+ N
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
& |. _9 f- c6 x. l$ U5 o Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)# |6 r a* t! {3 I2 `5 p
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
+ _. _, w. t' |( J; ^3 i# M Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)' U6 _; Q: \2 P& Y* p
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
1 k8 c$ h1 s0 f, i; z i' j( ? If Opens(i)<1 Then Opens(i)="0" & Opens(i)
0 {1 h9 G/ r( J! b If Highs(i)<1 Then Highs(i)="0" & Highs(i)3 d) U- S5 u' o0 `
If Lows(i)<1 Then Lows(i)="0" & Lows(i)2 s. Q+ {" m: r, M
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
4 j1 l6 ]/ }7 s/ J0 z, c$ [+ k/ d) h If Vols(i)<1 Then Vols(i)="0" & Vols(i)
& M _6 [- R& _4 D1 s If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
6 d5 k- k" v3 n; F LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
1 Q# \' _+ f$ f8 d6 a LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i). ]/ u/ O( @$ j" H; I+ j Y( A
TextStream.WriteLine LineData7 i3 w4 @2 h' }3 _3 u+ s+ P5 U4 f
TextStreamA.WriteLine LineDataA$ Q( t: W% F/ P1 A# r
Next
% @: k9 Z. Y: `8 R( S TextStream.Close
3 f0 A% @" W6 c2 g# J TextStreamA.Close
, n6 ~& [0 ?7 U) n# T: c5 x& AEnd Function3 a. b1 q& w/ I' @1 a' l3 U
; ~# i1 m+ \! H( T8 [# e
Function ReportFolderStatus(FolderDir)
& L' g& |/ T1 d( `' d Dim Fso, Status
' W% r# W* S4 d Set Fso = CreateObject("Scripting.FileSystemObject"); v; U# ]1 d! f; @5 r0 l
If (Fso.FolderExists(FolderDir)) Then1 J1 l1 J) L% m9 X; h
Status = 1
3 R. \3 l# ]5 H- W Else* f/ S: C0 U' j4 j1 o4 {( f7 M$ j$ n2 ?
Status = 0
' V: O- O. ^1 x9 t End If/ x3 T( h$ f; Y# n& X; `; a7 N
ReportFolderStatus = Status3 k% y5 E$ _7 r4 s
End Function
' o. [: ?8 J8 l- z4 N6 ^/ j+ n: o6 e+ I
, [9 v) z0 S/ V, zFunction CreatFolder()% e, t( a% M; Z. J+ N
Dim Fso; {3 a# g& Q. h t, q' D% X
Set Fso = CreateObject("Scripting.FileSystemObject")
4 E, ^% ]5 n! e. u: |& L+ O Dim Folder
+ |" S5 v; m+ {, P Set Folder = Fso.CreateFolder("D:\Stock\TXTData")2 e3 j1 F8 I6 T7 k1 Y, M. i
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
; j4 n( M4 e* ? Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
' l0 E7 R+ j# p4 G; E! {End Function
* Q" u+ J+ P8 c# ^. p%>
) I8 K8 N. ^; T+ ?5 M% v' s
- Q3 L; V% t( Hexplain(1,'--非日线为伪日线输出,两种输出格式:');
5 J, k$ i: d/ m0 W9 H% Cexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
! ~. `6 A8 o- _explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
\2 R2 {2 M* I9 R! a
9 F7 @/ \7 n2 f/ D8 H[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|