|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码 d: x: M$ K" j
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
- g9 E8 T; X5 g4 e, I# c5 {3 a4 O, p# mDatalength= 输出数据天数(0~99999,0/全输出)
( [7 r5 E" K( y1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
% n; D$ ~) X; }# q2)全输出: 用嵌入其他指标的公式在A股板快选股
4 |, P. T$ P( p2 y6 D4 n0 N) r5 \0 ^7 d------------------------------% {' x4 B: J/ A. T$ H& [5 Y% u
参数:! S5 y* X9 ~1 h/ {( S }/ E2 L
数据输出 0,0,1
n6 t0 J. r" b3 M/ w) g8 c9 LDATALENGTH 1900,1,99999* }+ n- h$ `- Y5 B
//
! W' Z/ Q( g' W2 e+ K( P4 z; Uvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;/ I+ P/ k( n# E2 Y, I7 k P
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
$ G6 l( k; x L+ e, x6 l, G数据转换:数据输出,colorred,linethick0;
k2 X6 h) I) A- y5 m. A) T, t7 Q3 W# j, F
IF 数据输出=1 then begin
. w. i" v) z1 p" i+ g _Barpos := BARPOS;
, e( w6 C4 `" x2 `* R1 ` _Year := YEAR;
* K9 F/ d, z, A9 T- [# f; A _Month := MONTH;
$ x8 A& a) F- N. }/ j! ^ _Day := DAY;7 s/ q. \9 @* i7 Q" h5 }3 Q
_Datatype := DATATYPE;
% ~7 ~/ A6 ~( S+ ?( o_Marketlabel := MARKETLABEL;
5 R' ?. [7 B% C2 e' Q( Y _StkName := STKLABEL;# ?2 e+ E1 |+ ?
_Open := OPEN;8 t! W. {/ f3 i7 ~ x: U
_High := HIGH;
8 [. R$ R$ e, j5 r& ^ _Low := LOW;
1 F, p- ]0 A* D7 S3 f. }( Z, T8 Y _Close := CLOSE; U& ?7 t2 ~. j0 K, Z8 |: b
_Vol := VOL;
( r. u! ?; U. ^# u _Amount := AMOUNT; + u% M" \6 I* h0 Y" M
_Datalength := Datalength;
+ U8 C7 n" {# n7 [! F' p' s) w
u; Z( b9 V1 h4 e( M& k& B; w<%
- N% P# C5 j* B2 C7 d- ?Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
+ x& R6 _9 G& D/ j T% n+ y Barposes = ffl.vardata("_Barpos")
: L6 A* i# O' H( ]$ ^ Years = ffl.vardata("_Year")4 @( [; s: ~, T. o9 U9 b" ^1 X
Months = ffl.vardata("_Month")
& t5 Q; S% e' c Days = ffl.vardata("_Day")
, R/ u1 c* h; n8 }1 s+ H7 t Datatypes = ffl.vardata("_Datatype")1 r3 Q7 O0 p' c3 c$ b; k) v
Marketlabels = ffl.vardata("_Marketlabel")
9 w7 U. F" A5 t6 @4 j! R$ a Stknames = ffl.vardata("_Stkname")
8 \" K% V3 O+ x* O$ } Opens = ffl.vardata("_Open")' K' r( B/ u/ M- @: F# ?: r
Highs = ffl.vardata("_High")
, H5 p+ o0 \2 Q2 {0 b( ` Lows = ffl.vardata("_Low")) Z& T- u0 u6 g
Closes = ffl.vardata("_Close")
8 d) H2 m4 d, P4 R Vols = ffl.vardata("_Vol")
( Z8 f6 X+ \2 `0 {* l% Q" S7 ?+ X+ R Amounts = ffl.vardata("_Amount")( y3 U/ E, x3 `: k9 k6 D% e6 l! i
Datalengths = FFL.vardata("_Datalength")
; s+ e# g' v0 w9 H: \+ f; D1 i* N. |3 W% b1 \+ U- Y6 N
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()
) v5 w! A8 k* D6 q6 USelectCreatAsciiDataType(Datatypes)) z9 t0 k* A$ K( V1 E2 Z
5 O, o. q/ k, f7 }9 t
Function SelectCreatAsciiDataType(Types)
3 o: U' p/ x/ F Select Case Types2 j& O; e" O5 n7 L V8 F
Case 0
- E, q7 F, T# k+ m5 ^
, o9 q6 `1 y$ e3 R: o: {' J Case 1/ V3 k+ R- v/ \2 n) | ]% [
Call CreateAsciiDataMin("_m01")
5 _. e8 ?4 p6 h6 t Case 2! E. B% V# ]- J# K6 B1 Y; P
Call CreateAsciiDataMin("_m05")
. w5 c( w0 M9 ^6 l4 K* z8 Q S! n Case 35 g# [9 p+ k% D4 Y& b' e' {
Call CreateAsciiDataMin("_m15") % C* |1 ?- ~" V% f: T
Case 4* @ T7 \8 q' ?; c
Call CreateAsciiDataMin("_m30")
5 ?4 M% L) V; s+ F! c Case 51 z% t8 p" c6 C1 B
Call CreateAsciiDataMin("_m60")4 ^( P1 B0 ^2 n' P4 b4 S; [# s/ @
Case 6+ R. }; Y; N" k# |
Call CreateAsciiDataDayes()
2 U. Y1 Z+ S& r+ q2 [( K Case 73 |9 Y2 I' x3 H3 u
Call CreateAsciiDataMin("_wk")
7 I4 x$ f7 {+ ~' k- N Case 8
h# x8 ^) R- G. \9 q# w Call CreateAsciiDataMin("_mth") 7 y/ p: z$ r+ ?# D! |
Case 91 [; x* K( r2 b" U7 M: d- @% L
Call CreateAsciiDataMin("_yr") ' J1 ?* b0 Q$ W, \
Case 10* d4 G% p1 ^7 [! ?
6 D' y0 L& f7 }# [! q2 J" f c# N, M Case 11
/ T) z- g+ |" s! _+ `# c; Y4 a( X1 H+ w4 }4 ]) {9 I% a8 `7 `
Case Else
. X, J* t7 _6 m7 {0 B: r1 u0 Y; M/ M
End Select
* C: |% d6 x* z: f4 Q& D3 ?6 {End Function$ H6 g2 \( @1 K
) S1 A1 f" n* [! t/ |# {5 G5 X
Function CreateAsciiDataMin(FolderName)
, }: G0 k3 B( ? c5 z Const ForReading = 1, ForWriting = 2, ForAppending = 8
& ], p- k' { j, K, G, t Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
7 y, o/ m) q$ g; X! W. i Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
' h4 O/ M/ @# O. y/ \( i# R) G Set Fso = CreateObject("Scripting.FileSystemObject")" C+ T, T$ K8 M6 _
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"% o, j3 g$ m, J& R
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"& L6 o6 l5 E+ o, @) K/ z! l
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
/ t/ L* a8 i! K' v& n Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)) W- Z5 O& h: P# x [1 l
ArrayLast = Ubound(Barposes)
6 }: S9 @0 V# F6 N4 M LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast): `" v" x0 B' D& p( J( y
, n$ r, V. B! U# K0 I- Y6 U& f
if (Datalengths=0 or datalengths>=ArrayLast) then
) W# y+ j; \) a5 ]( D y, o Datalengths=ArrayLast
) ~. g" _ ^$ | end if
& Y5 V" O( I1 y' e8 N/ } Datastart = ArrayLast-Datalengths
% ~& d3 O% t* w
& V' v5 G6 q- b* X' S For i = Datastart To ArrayLast
: a- \- U3 @! a% G, F9 B AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
- O \$ y Z7 X4 S AforeYear = Year(AforeDate)
: p8 `. y. A& P5 z% R. \ AforeMonth = Month(AforeDate)
- Z; B2 L/ Q& w! \7 u5 m If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth+ S" z! `# t/ C2 M) E9 j
AforeDay = Day(AforeDate): {% y8 M6 g0 ]8 ]* X! G
If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
, W+ U: m [, v9 y- W Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)( `* q5 x6 c" e3 L( C( e: W* Q1 S
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse): B5 g# k2 }( j1 c
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)" I8 ~9 P8 j* r
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse), v6 Q; ]" Z% y1 F! s* R
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)# U* \8 l3 S* ^3 Z/ u5 u$ F7 |
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)! S0 u" l$ V+ a, W, W4 s+ O H5 `
If Opens(i)<1 Then Opens(i)="0" & Opens(i)9 L. b ]8 |' o# m" i" I
If Highs(i)<1 Then Highs(i)="0" & Highs(i)* n4 o+ J$ \+ F5 Z) N: w! M
If Lows(i)<1 Then Lows(i)="0" & Lows(i)- @& I$ n) P4 D+ S5 b6 \9 E2 `
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
: t! q& ]0 G, a, p; z If Vols(i)<1 Then Vols(i)="0" & Vols(i)
8 u+ ~7 ?3 J% H; s7 O. ^$ G7 y If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
2 @2 B4 T+ U5 v, T. j" B LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)2 y1 K4 P1 Q# a1 s( t8 \: f" |, X/ K+ k
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)" e- h! |9 F, }5 D
TextStream.WriteLine LineData
, t6 |3 x- c4 j2 U% Y TextStreamA.WriteLine LineDataA" b! r1 N) O- S* \! Y
Next7 E& B$ h" b( F
TextStream.Close3 S4 H. R! @5 [2 e0 _0 D3 T
TextStreamA.Close+ g2 V$ }1 g" `/ F h6 }9 x1 }$ G4 X
- j6 Z! N, A8 R/ B/ g+ ~4 P2 B
; Q9 p) r- M8 ?& b0 y jEnd Function
1 J( B8 L* r9 C! J2 C, J. ?: L1 V$ f
Function CreateAsciiDataDayes()
; x0 g7 I2 y! {. D Const ForReading = 1, ForWriting = 2, ForAppending = 81 q9 Y7 Z% ~ z7 f" ~) Q
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
9 @( v( P2 }/ t7 z Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast% ?+ W9 l1 y3 |( `; J/ T4 i
Set Fso = CreateObject("Scripting.FileSystemObject")
A+ y2 p" k' w7 p FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"' M5 e! Z1 C& W- Q! Y) h) K
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"
3 \+ h( a7 N- ? l, g1 ^# a Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)8 J# m. \+ N1 Q1 v1 y: X
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
; E+ J* x6 `! l4 o7 u& w ArrayLast = Ubound(Barposes)
- M6 v# b; b; C% B# ^: _6 n% \# O if (Datalengths=0 or datalengths>=ArrayLast) then
! U- V, C! q0 ?, n: w) d3 Y Datalengths=ArrayLast
3 x; }# O* {. L1 s6 V0 r! z3 N& q end if* ^: C( ?! ]; Z; A5 D
Datastart = ArrayLast-Datalengths
9 s' V, Y0 _0 W$ X* h* _/ _) u7 V9 r0 L/ d9 x' i1 G: H
For i = Datastart To ArrayLast% x O2 P& ^& b3 t
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
& f: v5 }5 m# i/ b0 L, }& C If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)/ X& F% k! r0 X s
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
% s" x* z: _5 L2 X8 W @ Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)9 U# l( ^! L& r& \/ H' i
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)- \/ ^( y8 g- N
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse). ]+ |' \$ G; G6 `8 m* k
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)4 T/ j0 }( H8 T. U( w
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)# `4 E( v8 \% ~3 w) }
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
- y3 D1 e5 s; }9 o' N If Highs(i)<1 Then Highs(i)="0" & Highs(i)
& v. Q6 D8 F7 t! I; I0 W: y# \ If Lows(i)<1 Then Lows(i)="0" & Lows(i)& Y8 l" H* [' X! n6 Y/ G( `- [6 ]
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
* T: c) F/ j) V) W+ B2 k3 O If Vols(i)<1 Then Vols(i)="0" & Vols(i)
+ A. B: u! f) ~ If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)+ n2 ^4 B/ t0 u- x8 o' F; G0 i
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
0 c8 X- F, j4 N$ \5 P1 H LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
0 c5 k$ n! w* l$ H5 E* `- P$ t TextStream.WriteLine LineData
& ]! s9 G q X" i+ x2 V TextStreamA.WriteLine LineDataA2 f- ?1 j; o" h3 T
Next+ `9 \3 C/ t0 F# g3 J8 h/ @
TextStream.Close' M, n) p0 s# S9 y0 f
TextStreamA.Close 9 w7 `: ]0 I; d% s/ }
End Function( F7 s) |; s; |* Z
2 {+ g' y5 H( O# u) ^7 S3 W
Function ReportFolderStatus(FolderDir)
+ ~$ z% k" E# Y Dim Fso, Status! c# b2 X& t) T
Set Fso = CreateObject("Scripting.FileSystemObject")& z( F& @3 U: c1 `( d6 m( s; l
If (Fso.FolderExists(FolderDir)) Then Y* y0 g/ f1 }4 x) O% g1 S
Status = 1
) R6 y+ m" E( b9 L+ [ Else4 p. Q: U* |4 V& [/ y& ]
Status = 0
4 t& l6 N; A2 v" l3 p3 Y$ O3 k End If, c l3 p: S; O& y2 {* L3 y
ReportFolderStatus = Status5 h6 y) u4 t. V4 B
End Function
e! C ^' D1 i: ]
N/ T( R6 S: O7 W9 [7 uFunction CreatFolder()' H0 s8 `: p* u$ G# a" ^
Dim Fso2 \: }* k# X7 W: Q; g- M4 ~
Set Fso = CreateObject("Scripting.FileSystemObject")
. ^, T0 ^" C* ]8 u Dim Folder7 T% v2 e8 ~+ ~' g
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
6 Q5 I( L) V& } Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")9 s* Y! g$ C$ `1 s
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")8 I! H$ Y/ H1 n0 w9 H4 f
End Function
9 {6 N8 F6 }, m8 N%>
% J$ \. x1 s, {$ L8 J5 L. j6 k5 ^6 V: P" C, U9 q
explain(1,'--非日线为伪日线输出,两种输出格式:');/ b1 T5 H1 Y5 v4 d
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
: a. D" h% z {% m3 z5 Q8 eexplain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn'); u- ?" `, s* q: T' H) b
; x, q+ Q2 e# g; B+ K4 ]
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|