|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码/ k, o6 l" ~/ O* ?
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据9 f! l. U1 z% [+ g, t5 ]- E
Datalength= 输出数据天数(0~99999,0/全输出)
L; q4 ~3 v5 p/ ], G7 _, b# A1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股( p* x& q/ H5 F7 W3 n; S
2)全输出: 用嵌入其他指标的公式在A股板快选股3 B( V) v% ]5 ?7 q K% E
------------------------------
D0 l+ Y4 p/ l+ a9 U. d% a参数:
- K0 s5 z8 G7 F" x% M. U. J数据输出 0,0,1/ m4 U* K0 W+ F9 A! ^6 Q
DATALENGTH 1900,1,999992 a B- ?& [: J. k& @: B
//7 s( g' o$ b* A: `
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta; r0 o7 G! A8 L6 o, s
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
! C$ A* ?$ B/ j5 Q4 F. s7 V数据转换:数据输出,colorred,linethick0;
* Z' @- Q0 X3 q7 O. d3 t, [4 u% c3 l0 k, G# @
IF 数据输出=1 then begin, F' M: k) r/ V; p
_Barpos := BARPOS;
9 O; u; p: w; p' _$ r( p$ s: D _Year := YEAR;
3 S0 c$ S7 ~$ q2 x: Z: c( a0 _2 A _Month := MONTH;
( w8 B% _, u& S; z4 H _Day := DAY;
% {) O2 Q/ w$ U& ~+ e+ w9 R _Datatype := DATATYPE;+ {" o( e! R/ [5 s! J
_Marketlabel := MARKETLABEL;
! I* x* T x* K _StkName := STKLABEL;
1 Z- y! A% p) T9 n5 i$ {0 `4 c _Open := OPEN;
3 j0 n8 M! C: M" H Q+ v _High := HIGH;
% V+ _ P! L( Z _Low := LOW;* H' Y7 F0 s0 T/ Z$ j
_Close := CLOSE;
. I! y5 ^) x& s( Q3 H$ x. g G _Vol := VOL;9 h( M7 A! e+ `9 W# p- b' z; R- t% `
_Amount := AMOUNT;
, Y4 E8 j, [, U3 \ x _Datalength := Datalength;& @8 Z3 E# _. t8 ], i
. E. A# w( V& ]" W<%5 p3 S& y% J# i0 O0 u3 o, g
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
% _; Z S1 D6 o! ~# v4 P { Barposes = ffl.vardata("_Barpos")/ R6 a w4 s7 L8 C7 q( U
Years = ffl.vardata("_Year")
5 g, H3 O! p0 [; T7 ^4 T Months = ffl.vardata("_Month")
- R8 Z" r' j/ G Days = ffl.vardata("_Day") Q- r4 s3 W( O2 j- a. g7 w; K% p
Datatypes = ffl.vardata("_Datatype")2 E- Z+ I3 h% J0 d9 }6 G* g
Marketlabels = ffl.vardata("_Marketlabel")
, J" o7 K" c J$ _& l$ z+ t Stknames = ffl.vardata("_Stkname")( W/ N: n) M+ v/ N
Opens = ffl.vardata("_Open")9 r6 E1 ~0 {. ^& z* n
Highs = ffl.vardata("_High")
. I0 {! W& F3 X2 }6 B/ Q3 {- s# q, Y Lows = ffl.vardata("_Low")
# T3 D: z7 v# Q$ I Closes = ffl.vardata("_Close")
; R5 p. D& i) T! n* l Vols = ffl.vardata("_Vol")5 x' [! D/ p$ t: S
Amounts = ffl.vardata("_Amount")% t( B; y( }7 V1 D5 B3 m2 P0 x3 g
Datalengths = FFL.vardata("_Datalength")$ e' b+ r" }7 E A" N2 T D& ]
+ F7 W. d7 Y Z7 l' T: }3 u3 K S
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()' R) U6 E0 U# ?5 T( _% j- A
SelectCreatAsciiDataType(Datatypes)
/ y" e. ?6 r. A9 E+ S0 F. J5 W, b+ p- c* q! m' ]' {9 k
Function SelectCreatAsciiDataType(Types). ]+ i* P/ {9 n# F7 b
Select Case Types
$ V1 o: z: M* d: M$ ]' G* d* } Case 0
# j# D7 ^- H. c
. q! n* a4 h& W8 y, t Case 1
0 l8 E% }8 z8 W2 T; n Call CreateAsciiDataMin("_m01")
8 l$ N5 r/ R5 [/ ?' D Case 2
1 C: s" A2 G- j Call CreateAsciiDataMin("_m05") 2 a1 s* y" V7 R0 d+ \& q# ]5 j
Case 3& \- S) J# V. @+ H. ?. [
Call CreateAsciiDataMin("_m15")
1 J( C/ d3 ^# A' c" x7 R! `1 X! L Case 4( {" |; ?# ~3 l+ u: E9 b$ _
Call CreateAsciiDataMin("_m30")
: r* n9 {7 H5 e Case 5; F; y' M$ b7 F7 Z* ~
Call CreateAsciiDataMin("_m60"). |* l C H' b1 n4 B
Case 6
7 f+ [% u6 |) b9 q Call CreateAsciiDataDayes()
0 |# ^/ e; V, {+ T* W Case 78 j: |' V6 M, @! u3 f/ y; e
Call CreateAsciiDataMin("_wk")
m3 j5 u5 M- Y9 {1 P) i' ]% W Case 8
5 Z5 i% G6 E" U, W$ }# ~0 j0 |5 X Call CreateAsciiDataMin("_mth") - n: X5 O; M2 g& p' f3 P4 n. a
Case 91 l" J, c; T9 t: F$ j+ @, J
Call CreateAsciiDataMin("_yr")
# z9 |' D* @0 E* k' T Case 10% q0 C! N5 o0 q; S$ d
* N5 q4 }# J1 k! i
Case 11
7 w1 k" u; G* u( S6 B, o4 ^7 u) a
+ b( H. ~$ ~ \& N4 `( e Case Else, i% z2 b% C% b2 L
9 g4 I$ U* d: q2 w& C% Y& T5 p End Select
9 t- b- I m, G) Q* \; wEnd Function/ y" {# _( T, c+ j, u d; @3 \# [
+ ]; y4 r' \5 P0 k% _) w1 uFunction CreateAsciiDataMin(FolderName), X1 D# D) w6 ?" l+ i2 V6 _
Const ForReading = 1, ForWriting = 2, ForAppending = 8
. k9 s7 K% v+ I/ j$ Q+ i Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2- W0 D2 w1 X* e
Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
7 n$ J$ Y; B* x0 t# z2 K+ C" ^ Set Fso = CreateObject("Scripting.FileSystemObject")- M4 m/ L) q' m3 V5 `# [
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"3 N* X: b7 u9 g: y& X
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
1 Z6 J% K7 j' `6 o( f9 ^ Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
1 Z) H! u4 e( K Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
5 c0 ^8 @2 }4 G+ S ArrayLast = Ubound(Barposes)
1 R, P+ c% o% Z+ u LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
) Y' ~* D2 |9 D
* Y" f6 `8 L2 _- G% F7 X7 L& c if (Datalengths=0 or datalengths>=ArrayLast) then
" L e3 t+ Q$ Y$ d; Q, T7 Q Datalengths=ArrayLast
0 Z" ~% D. T* |" A! \5 S& E end if" d" B9 u; D3 }" S/ r+ c% l9 t9 s: ?
Datastart = ArrayLast-Datalengths
/ p, j- B) r: ^8 R( ?! _6 i* V8 {
For i = Datastart To ArrayLast3 k* H* b/ M" f" A
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)* H& H" n& k* r6 d2 d3 Q
AforeYear = Year(AforeDate)
- U' _ S0 I3 N AforeMonth = Month(AforeDate), {) u/ ` |4 t2 ?- B& J0 U
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
) y- R' |; s; n! q7 r7 |) ]7 T AforeDay = Day(AforeDate)
# [9 o- p# ]8 V. L If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
, J% f t7 Y) M6 {2 S0 g2 A Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
4 K( [/ d$ r" M4 I$ p5 i# K' d Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)! Y4 Y/ s& j7 k: _2 ]7 j2 d
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
$ @& r/ }2 c9 e0 @. l" L Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)) |' I5 H+ Y/ u4 @7 ?+ W
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
5 M0 }" l/ R2 {2 c/ K0 r Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)4 y7 c6 B( M* R% _6 i4 ~& v
If Opens(i)<1 Then Opens(i)="0" & Opens(i)( U' K# S1 a" Q- E
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
* r' P4 j2 G" X# |+ G If Lows(i)<1 Then Lows(i)="0" & Lows(i), o9 ^- V1 z/ D) g! Q! a
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
5 C- A$ C# \& a( h If Vols(i)<1 Then Vols(i)="0" & Vols(i)7 V# h' {% h) w
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
" c; D/ P$ E b7 }2 n" ^6 w LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)* c$ F! A; @* W: ?9 x3 y
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
' Z8 N6 R& @8 a: c, r* d( l TextStream.WriteLine LineData0 O6 _5 L3 a3 Z ^1 r" k
TextStreamA.WriteLine LineDataA
/ H+ h6 e- \% W' N Next
1 d9 k; ^9 H8 R+ t% {5 t' [2 r8 g9 m TextStream.Close
. K. m3 k, C/ s2 B$ s# Y TextStreamA.Close
) `4 `: ?4 \7 `4 A- E
, p; r6 b0 ~) ~% k# q
( H. H1 w* ?+ i& _8 J/ ~End Function2 R8 R! q( w7 { J+ S% B- a
4 D, k }" q. r
Function CreateAsciiDataDayes()9 y- g& R1 i; G: {
Const ForReading = 1, ForWriting = 2, ForAppending = 8
0 I7 ?& Y7 O$ s/ O0 O9 G, \5 ?9 R Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2/ s+ b v" A- ?4 _. w! ?
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast
4 w* k v% h8 Q1 s$ y Set Fso = CreateObject("Scripting.FileSystemObject")
& F, v8 K* p$ m FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
1 |; y9 r$ H. V8 ?8 b1 u x2 f" o FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
" h7 C) b9 X, ?- Y* ]1 C1 v Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
s) b9 O8 n& W& f$ E+ D Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True): b& c3 _! S& q) T) C% Q* o
ArrayLast = Ubound(Barposes)" |9 V6 H; ~8 ?3 J' P
if (Datalengths=0 or datalengths>=ArrayLast) then
" ?( c9 u2 A3 l) y) |7 G( H' ]. { Datalengths=ArrayLast$ q) ]5 l1 ~( `) b0 |
end if
( z7 e; p* }4 N- W) |3 f5 q Datastart = ArrayLast-Datalengths8 J! Z% J0 ^) O5 d/ h
0 o; I; C* y$ w7 ^( ^, @
For i = Datastart To ArrayLast
6 S7 r( C- M( f' }8 w If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
- x. s4 ^5 P O2 r If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)
8 M1 \* m# M1 _ N$ T5 b8 y Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
( r! b2 H8 O0 A$ b1 b5 ~7 y& a# N% B0 ^ Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
: s6 Y" \! g3 g& E% k) J! ?. Y' N1 A Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)# [' Q( k Y# _/ K
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
6 x3 X8 X2 t% T: A- ^ Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)5 e p# p5 J5 S
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
" i# {+ d0 P. A" Z* ?% x+ C. Z7 m: n If Opens(i)<1 Then Opens(i)="0" & Opens(i)" R0 Q( M2 j/ }9 h* t8 h* _$ z4 w
If Highs(i)<1 Then Highs(i)="0" & Highs(i)% g1 h! |6 D$ g3 b5 _- S" S
If Lows(i)<1 Then Lows(i)="0" & Lows(i)( x# y0 C0 P5 V. h. O" c
If Closes(i)<1 Then Closes(i)="0" & Closes(i), B, l! Q9 Z8 c0 U$ ^2 N+ g
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
) e$ q4 A* P( \ If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)7 z; Q- G3 X5 T/ B2 X7 U- t
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)- C( m. F& X2 I8 x8 ]- F3 r
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
: D. J) v5 {# v1 G0 _ TextStream.WriteLine LineData* s/ A% h2 e9 w, ~: i+ k# `1 j" n# B
TextStreamA.WriteLine LineDataA+ o+ n i* A$ C# B7 ^9 @
Next
) x+ l* V$ @ l) W' ^9 J7 k TextStream.Close2 P* o' ^3 c6 Q
TextStreamA.Close
2 K1 d! q- J# s% a0 BEnd Function) T1 H+ o/ K; |+ e9 C" F( Y
3 S% R% c1 O6 `: _& R" ZFunction ReportFolderStatus(FolderDir)
6 r! D& K% }3 i$ K8 }& ^* C Dim Fso, Status
' i* i3 e) Z9 F, g O Set Fso = CreateObject("Scripting.FileSystemObject")
: O) k+ ?0 N4 t7 B If (Fso.FolderExists(FolderDir)) Then
( S; ?0 J) k* P# p8 C4 C! d Status = 1
. s! x$ {' @- T2 D6 U8 C, L7 S1 Y Else
) q3 n+ g5 A( I Status = 0* X( [3 I3 {! I, H7 A, T- h
End If/ Y, ~- u, t8 }) j
ReportFolderStatus = Status6 y; J3 K# v9 K4 {$ j* |
End Function6 K2 Q7 P$ v4 a) D' y+ }
9 x% r! w) b; _) ] ?Function CreatFolder()9 @, ]3 o' [* ]6 q$ d
Dim Fso
/ b5 u# N3 @2 h" ?4 C% P8 C Set Fso = CreateObject("Scripting.FileSystemObject")6 e$ J# @! X8 U( a& e3 B
Dim Folder
2 {5 H% B3 l& W) ?' Y. q Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
* w, \+ x) q" Q U' C Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
% I- ~: f9 n$ ]! w% q Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
6 k) e, c1 |( T& I$ p& o; uEnd Function2 Z$ L1 A3 B4 i
%>
6 z& ?& i3 w R# C$ A
% v# n" C2 H- x2 A% Rexplain(1,'--非日线为伪日线输出,两种输出格式:');: T8 N: Z. M/ [( @7 r: o- C2 Z% z
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');0 a. X9 Q# _5 S; l, W
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
* W* K K" H% E: @/ R: A
* O- N1 s* {- m! d- ~% E[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|