|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码; B: j2 Z+ o5 ?$ l4 g" l! J
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据# Z" X$ Q6 v5 P6 ?9 @- \6 t* B
Datalength= 输出数据天数(0~99999,0/全输出), A9 y$ A# f Q. O: e# f0 u
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股/ r3 x# O* H( \
2)全输出: 用嵌入其他指标的公式在A股板快选股
4 T7 B/ ?- m. k8 `$ m------------------------------
, D& r3 ^' P/ o" c参数:: n" e& G5 I9 h
数据输出 0,0,1
+ O* U9 ^. z" A- K% I, SDATALENGTH 1900,1,99999
; e1 R, ?5 _1 G//8 W0 E' Q* Q1 E. t' |* H1 a
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
9 W* p+ M4 O0 ]; m转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;# @+ Y Z' D: i5 e% D* z! C
数据转换:数据输出,colorred,linethick0;
2 g" X" G# c- e- `/ y. E" t
# R0 s5 f" x" j! Q( tIF 数据输出=1 then begin
3 u# w2 ?# a8 ~ _Barpos := BARPOS;
9 ?% R) H3 ?/ B* U _Year := YEAR;
/ \% |3 a* u' O9 h+ m _Month := MONTH;+ Z# t0 v* O" s# {1 C& a2 m
_Day := DAY;
5 `. `/ b1 v; t6 e( j/ L _Datatype := DATATYPE;. [7 U0 C3 s- ~6 ?
_Marketlabel := MARKETLABEL;6 U3 E7 p1 s- _4 l8 ]) O
_StkName := STKLABEL;
' u2 d* f$ b; M1 j N, [# O _Open := OPEN;
6 C& h$ x; Y& ?& u5 U: [/ [ _High := HIGH;4 r' h3 P# e3 R; J
_Low := LOW;
1 f* l4 Q% t5 x# R _Close := CLOSE;9 O1 J9 j: G, U! o3 w' ]' J
_Vol := VOL;
( e/ ^9 v. T! I8 j _Amount := AMOUNT; ; ` S% h8 E8 c3 S
_Datalength := Datalength;1 ^, z6 [ B% |' u1 v& [' [$ C& R _$ d
5 Z+ T- S* F) ^( J5 v<%$ ]- e2 C8 O% K
Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
2 D$ S/ z. k5 \ Barposes = ffl.vardata("_Barpos"), Q7 Y7 U9 x8 r- U- U
Years = ffl.vardata("_Year")
% G0 X; s* z2 T; e Months = ffl.vardata("_Month")
# \( [! x2 X& P5 F/ J6 I) X: ^ Days = ffl.vardata("_Day")
' U; P# i4 o4 c% x8 U2 j Datatypes = ffl.vardata("_Datatype")
! J" ~: n7 b- t% L zMarketlabels = ffl.vardata("_Marketlabel"). i+ b7 w9 ^; K
Stknames = ffl.vardata("_Stkname")/ N2 h6 h. k) x0 H. g8 c& c
Opens = ffl.vardata("_Open")) p9 E0 U( ?: Y5 |* z a
Highs = ffl.vardata("_High"). I b1 h# F; T9 |: ]
Lows = ffl.vardata("_Low")
! x8 O# X* x$ I8 i7 s0 u Closes = ffl.vardata("_Close")# @: p5 w* w( ]( b: i! H
Vols = ffl.vardata("_Vol")" O* w+ W+ z) l. O
Amounts = ffl.vardata("_Amount")
A7 _ v* H) V% M& |8 G Datalengths = FFL.vardata("_Datalength")
* @3 b# ^1 f" @, \3 f8 ]9 y* E. x7 k5 u- q' v
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()' c, s2 D- M3 a0 F/ J- O9 L' j% i
SelectCreatAsciiDataType(Datatypes)
5 y* H. a: y( {! B7 Y' q! J
9 E( B7 z1 v( \' c4 @- y6 \Function SelectCreatAsciiDataType(Types)
9 G) C0 O: Z' u6 q7 H/ |( N) ?4 E. p Select Case Types0 o+ q2 D* V7 j
Case 0
( h; s7 x5 I4 n' u) H( J6 [
1 Y: { \4 j: O' y# ?* \# W Case 11 ]' L4 y) A" }! k% `
Call CreateAsciiDataMin("_m01")
1 A4 `7 ]/ ^- T/ T& v' | Case 2( p: f3 E4 G& u( a$ n
Call CreateAsciiDataMin("_m05") 9 z9 Z% |7 c- `
Case 3
2 O3 A7 Y2 [6 t. k1 O Call CreateAsciiDataMin("_m15")
/ l8 U4 Y0 H- x. c- J Case 4( n+ e9 Z5 ?# s, c( D
Call CreateAsciiDataMin("_m30") ( N" g$ p4 G% r+ l5 ]
Case 5
5 Y( x7 R! {1 l1 x Call CreateAsciiDataMin("_m60")! x4 L8 V: u9 }/ j; O
Case 6) a: F* H- N* E! H) ^( ^. P8 G
Call CreateAsciiDataDayes()
0 ~) f- H) @* [- H* l2 U Case 7% V+ g5 n' _ T; q( I( ~/ s
Call CreateAsciiDataMin("_wk")
6 ?: D5 ?5 a3 m Case 8
/ r; C+ y' ?' v* V, L( d+ `+ X' w Call CreateAsciiDataMin("_mth")
& V# P! r% e4 d. V* \ Case 92 S$ X% ]$ r6 X
Call CreateAsciiDataMin("_yr") / T) c" |! [0 d% I
Case 10
$ U, r, e5 W: X9 l) C& Q4 J# q, T# O4 t) j8 z0 i) E8 d/ g
Case 11 g; i; j' r5 W' G
5 m8 d) c# T3 ~/ L6 Q Case Else
! U( f$ m. z/ Z3 V k2 i' {* T: l) D' z3 D1 v0 \3 O
End Select$ t7 a6 q- w2 ?$ ~& P' Z
End Function; g2 E$ V' _3 P- ^* K1 }
$ [+ R* H6 n0 H7 l3 x) h' V8 ?Function CreateAsciiDataMin(FolderName): z, Y+ ]+ y" h B/ L
Const ForReading = 1, ForWriting = 2, ForAppending = 8
, |# i+ T3 F2 t8 v! K Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
' {% c$ a! v3 s( l! i" [ Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
( o. D: v, k# d# }6 Q, H) v Set Fso = CreateObject("Scripting.FileSystemObject")/ F' p- N$ N5 f+ @, z5 c; |% L9 K% k
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
; j: J* }/ @( I) P: p5 x" ~/ a FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"' P: }4 A1 S% S5 f
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
9 U% J7 I/ u+ W( z! K4 A Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
9 N* B/ P. S+ j+ \ R ArrayLast = Ubound(Barposes)
! n2 Y1 \! Z8 \ LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast): J2 Z' n# D+ T$ c: }: P
/ y# M, V) N" W; u4 f O/ H, e if (Datalengths=0 or datalengths>=ArrayLast) then2 k: b& p( ^; |
Datalengths=ArrayLast( w5 f+ N+ l& X: h G
end if2 {: l" O2 d4 q3 Z% G
Datastart = ArrayLast-Datalengths' U$ h9 H; H, w
. | B( u) U# K7 w: _1 L+ }
For i = Datastart To ArrayLast
) B( N, z! A6 k4 w' ]0 @6 L+ { AforeDate = DateAdd("d",(i-ArrayLast),LastDate): r( K4 b5 t3 C+ v0 g
AforeYear = Year(AforeDate)
% z" R, F; }& h' L" f* ^ AforeMonth = Month(AforeDate); o& L% R5 |+ H G; f- R5 F' q
If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth
' O8 F0 I9 w! @( A6 t- A AforeDay = Day(AforeDate)9 P6 Z" y8 [7 |5 p0 _
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay' B+ {# e2 S2 O2 q
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
* d( U1 E8 ~7 b. h4 A! z Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)$ G( k* R: v& `" {3 T. P" w; T
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)1 U1 O* F! C. O6 k3 h4 n
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse), m) A8 C& g: e1 y# c+ a& Q7 |
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)$ q1 v+ u8 B2 k3 b' z
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse) x. e6 c3 b8 T: s
If Opens(i)<1 Then Opens(i)="0" & Opens(i)1 i/ O% R* o8 e5 t" I: A
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
% U0 Y8 ?( @2 @( o( g4 U2 l If Lows(i)<1 Then Lows(i)="0" & Lows(i)0 j$ v0 H7 T9 ]& {+ U% w* [
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
0 t& B' ^# g& `. ?1 d6 a If Vols(i)<1 Then Vols(i)="0" & Vols(i)
% T9 |& \1 r* N( { If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)3 G' Y' ~6 k8 U* F, ~
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
, b& p/ e1 l- _# f+ j7 M' X- r6 ~ LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)* y) ~. R7 x9 Y8 c
TextStream.WriteLine LineData
: C$ E7 {$ @! r/ U' B t' d3 W TextStreamA.WriteLine LineDataA
, D. v. i1 {/ P/ I Next
# I! F E9 u: g$ e! o TextStream.Close
& p8 g* X8 V; u- Y7 s- r2 Z TextStreamA.Close
& B3 E8 G* B2 U& c# l+ O' W, \& P4 x( ?* L: G' } j
: x6 z; Z* E* FEnd Function* t$ v8 n& q, N( P+ F
/ I3 E2 c Q8 K) H" o- g) uFunction CreateAsciiDataDayes()! ~8 w3 K" H) a5 @
Const ForReading = 1, ForWriting = 2, ForAppending = 8
7 ^" b; z. G+ z; Y% f. l9 Z Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
% Z- v E1 e5 B7 v" f, O Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast; q |) X1 g' [! X
Set Fso = CreateObject("Scripting.FileSystemObject")5 u* K: P! h. G7 e& W) [% q
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"& o8 F* ^( x: d2 L/ ^, S3 ^
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
) C z9 K+ h+ z7 k" P4 r: j& M Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)& {6 `" j7 D) L9 w4 r
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
4 r6 w9 z. r' {5 i ArrayLast = Ubound(Barposes)5 h+ x" u/ C! o0 R+ A
if (Datalengths=0 or datalengths>=ArrayLast) then* a# Z4 e/ N* X# Z! J# h. r
Datalengths=ArrayLast
3 K& F; R9 F. ^3 R* F end if( u8 f8 D6 b/ e7 R; S% _# ~
Datastart = ArrayLast-Datalengths7 H2 _* _( z3 \0 Y0 x/ D
3 I" i% b, Z5 Y6 Q+ { For i = Datastart To ArrayLast* `- l! o& z* e4 [+ z) |
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
' w! R/ v/ S% Y' b$ b If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)" p, x% _$ Q/ G: z) K3 h% w
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
3 f" b6 C: p' k2 k% k, i Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
7 d _+ [% U+ A, |. z g Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
2 v5 I+ a& e% B4 ~ Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)) B. ~5 Q d2 L# D5 b# W& \
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)6 n+ R3 [( Y: ~* W4 C c7 Q
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)5 i( f, @6 D g5 Q* [
If Opens(i)<1 Then Opens(i)="0" & Opens(i)7 g/ _% y2 }6 o9 g6 M
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
; z- j6 j* b x) S If Lows(i)<1 Then Lows(i)="0" & Lows(i)
0 m. r* s3 T# l If Closes(i)<1 Then Closes(i)="0" & Closes(i)
9 R( @& `0 |6 h4 F If Vols(i)<1 Then Vols(i)="0" & Vols(i)
- F2 g3 h* }9 t2 H7 o; d If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i), v$ B: c9 J8 ?" T1 Q* U; h4 ^
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)+ F9 M2 u3 i/ S z+ ^8 O1 n
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)) S9 W8 v; I9 M7 k9 R ~4 A
TextStream.WriteLine LineData
6 Z1 K& ^- u* U( p TextStreamA.WriteLine LineDataA
) ^8 n c, ]- w Next
" ]2 g( s& ?( G2 }& h3 }2 l TextStream.Close
$ _) O) s; X, s8 d+ M. m L. u8 H TextStreamA.Close ; ~' {% M/ k d6 p" t, h
End Function
6 R; F/ T8 e" |/ z% W- `* a/ ]* @/ ^7 [
Function ReportFolderStatus(FolderDir)
' A9 Z8 i5 ]4 l+ y Dim Fso, Status
' O, g6 X) ^9 o# j Set Fso = CreateObject("Scripting.FileSystemObject")
4 m+ I) `+ k/ g If (Fso.FolderExists(FolderDir)) Then# j9 U# ?- [- ~4 Q9 v, s& h7 W
Status = 1
+ l( ?0 Z6 B3 w/ a/ X/ n: g Else
- s: x2 T) v! x# h Status = 0
3 Z: {4 R3 s5 t End If1 x0 z( k; X% q4 ]9 v
ReportFolderStatus = Status& u! T+ e) F. g+ |" S+ r6 U
End Function% ~" N, @+ M" ~' q
/ ^# f& Z6 @( G, DFunction CreatFolder()& O4 h/ ^5 p K# o& W
Dim Fso% Y0 L( l; u% d, \
Set Fso = CreateObject("Scripting.FileSystemObject")7 \ s. i9 ]! t2 K# ^: @
Dim Folder
% q! e) Q3 e4 ? Set Folder = Fso.CreateFolder("D:\Stock\TXTData"), Z; z0 `3 _: B ~
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")! A0 r. F- o J0 m0 S$ o8 @5 n
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
( E/ q U5 x8 S" x3 m3 U' vEnd Function
8 A7 d) G1 t6 B2 Q%>
* I3 ~: w5 C4 y# s: x* V6 Z6 q; d# H
explain(1,'--非日线为伪日线输出,两种输出格式:');" G, y1 L" M/ J2 N6 X& G
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');3 H& R5 F% O8 y4 j( x A9 n
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
3 i! K8 h# V b! O+ `# u9 O4 D, u% F6 j1 B C8 A9 Y8 f# }
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|