|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码 F" s2 a2 l- @9 J+ R. ~
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据
+ g% F# t$ ]0 B4 Y' w+ l/ C( c' GDatalength= 输出数据天数(0~99999,0/全输出)
5 s9 y) t- Z) w' l& O) l7 ^. L% \1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股' _) q8 R' B2 ^+ z; P F
2)全输出: 用嵌入其他指标的公式在A股板快选股
+ c3 w- c! q: h# q------------------------------( [5 q8 ~6 }( Y z
参数:
* z# c. Y- J, q! O- Q/ u5 I; Q" T数据输出 0,0,1
: |3 t1 l5 r$ N2 ~DATALENGTH 1900,1,99999
6 I4 h9 ?1 j2 {6 B) F, r. r/ n//! M* s$ q, k' D) O4 l1 t) [
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;) z% Z+ c; e" ]( g q! X
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
3 t+ y+ Z1 S% \/ f- B! S5 q数据转换:数据输出,colorred,linethick0;
/ A0 E+ ^1 I$ _. z6 Y1 C( O4 y; v. I1 `+ {: \8 B
IF 数据输出=1 then begin
6 v6 H [. b6 D4 n _Barpos := BARPOS;
+ l0 h1 i& d/ T- b _Year := YEAR;' B% W1 C% t6 ?# s* a' j
_Month := MONTH;9 N! U1 R9 @( M4 _8 j& ?# E
_Day := DAY;3 u; @8 j; ~5 @& ^; u) m L4 _# l
_Datatype := DATATYPE;8 y1 G1 b) K+ U; L% P& m# x) i& J% l
_Marketlabel := MARKETLABEL;3 y$ }& S+ C& h, V
_StkName := STKLABEL;- l1 z- A3 `) V4 k
_Open := OPEN;- @# V8 z2 ~- |# k4 O0 D3 U
_High := HIGH;
, f: x! P, g K2 i _Low := LOW;
( e4 z4 T1 I1 V* h4 V3 m _Close := CLOSE;9 d: e. N$ I9 C5 u/ M9 f+ f
_Vol := VOL;8 x1 t6 b( ]7 |/ B7 R2 f6 n
_Amount := AMOUNT; + H, u3 G3 V% h `
_Datalength := Datalength;2 w6 n" d/ K& B
& i+ E- {6 G3 `2 L
<%
2 P0 w6 b# _! `Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days+ [/ J- `5 _. [) ]
Barposes = ffl.vardata("_Barpos")
% |0 o8 b2 L2 v+ e& }2 Q) `7 @ Years = ffl.vardata("_Year")5 _2 M3 ~: c; B0 g- B
Months = ffl.vardata("_Month")6 e/ t, P( |/ F
Days = ffl.vardata("_Day"): A' N8 N b6 [) D% @
Datatypes = ffl.vardata("_Datatype")
) {) c9 k" ?0 T# e" `! i+ l, m- z: hMarketlabels = ffl.vardata("_Marketlabel")
; t3 b; s1 e; h$ y Stknames = ffl.vardata("_Stkname")2 G+ {+ }9 S$ v& V k
Opens = ffl.vardata("_Open")
8 P- T4 `9 O7 y ?3 X# G) A R Highs = ffl.vardata("_High")
/ Y6 e4 m) w& N* J; y Lows = ffl.vardata("_Low")
; ^- L3 K& i# d/ G0 w Closes = ffl.vardata("_Close")) d; t" e% o o8 a p$ A" m& i6 c
Vols = ffl.vardata("_Vol")
9 O" @; q Z, q: b/ H9 J' {9 _ Amounts = ffl.vardata("_Amount")" N3 k# H: N/ B1 G0 I4 m5 s
Datalengths = FFL.vardata("_Datalength")
! q- d1 }. {) g" [8 c! q- |; Y6 P6 {9 [/ l, q) U R# Q! O
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder() b7 e. x8 j. D6 p" n* i! i; i0 _4 _
SelectCreatAsciiDataType(Datatypes), d0 r+ f- T% ]
+ R1 t( p S3 i+ z9 s' r* tFunction SelectCreatAsciiDataType(Types)- U5 }; S R8 W" A
Select Case Types
/ |4 S* q3 l. o1 u9 G Case 0
U, E8 g: t8 P+ ^+ u/ N7 L; Y9 _5 j
Case 1
! O0 s) L+ d9 d( |( w Call CreateAsciiDataMin("_m01") o" L" R0 n7 D- t
Case 21 V$ N v& I) ~+ l: t6 N+ c. |! j$ c
Call CreateAsciiDataMin("_m05")
/ O9 d; Y9 }% p6 Q9 A7 d Case 3
* c, `" W1 ~! ~/ S$ k! @1 v7 V' I Call CreateAsciiDataMin("_m15")
$ d% h; H9 T* a& z, x: P* Z9 M6 B Case 4- e4 O0 ]2 r+ f5 Q( L
Call CreateAsciiDataMin("_m30")
$ c) h% M* w3 j Case 58 f% x" y9 O& Y# j0 }, \
Call CreateAsciiDataMin("_m60")0 B2 U1 ^4 u8 y- f
Case 6
' c4 S2 Y% S* v$ z1 L c Call CreateAsciiDataDayes(); E7 L. K. |# r- j+ ?1 o
Case 7
( o: b% C# R: U; B0 o. }( ? Call CreateAsciiDataMin("_wk")
$ q1 s8 `9 Q2 g. U/ @ Case 8
$ q$ {) O0 j. z( ~7 y3 m Call CreateAsciiDataMin("_mth") K$ I" z" p a4 p
Case 9# I; Y+ }* O+ |4 ?6 v' s
Call CreateAsciiDataMin("_yr")
: U T, I1 V8 ~! W8 T9 _* ~% }9 Y5 k$ j Case 10
4 K* |1 x( q2 x# l- L- j; K: o8 G; g f6 Y$ e% c% C( X
Case 11
( C6 ]* B0 v( \/ {: E+ I& d1 M
6 N' x# F9 {0 N Case Else
) z8 m; V5 @+ u/ k$ i, [3 O
% R* \, Y: l8 s3 c End Select& m, ?% W9 [& |5 z2 L- o& F
End Function
+ U# p$ W/ [- W6 \9 {+ a
6 h; Y! l4 u* g, a: [7 ^3 `- OFunction CreateAsciiDataMin(FolderName)/ M. l+ l" x! @+ P
Const ForReading = 1, ForWriting = 2, ForAppending = 8$ o; E# O% \5 A; U3 l* n- p
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
/ n3 [1 j4 N7 P5 W/ f+ k8 k4 p1 f Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay* v) V9 J( Y2 @0 L0 {8 e6 A
Set Fso = CreateObject("Scripting.FileSystemObject")
' }4 P' z/ z7 M, e# M1 o! e FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt") \9 r% k' w* z
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt" G* t7 ^& F2 I
Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
7 C. ^0 C% s- b8 N! I. f9 N Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)- i; Z7 H0 u) ]6 R M# W1 _/ f
ArrayLast = Ubound(Barposes)
% o# Z$ j6 R( A+ ^5 ~0 ~$ E. l LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
' }2 b) H2 U! Q, G6 [( C, S4 f7 f- r
( @: X& ^, b H, u! } if (Datalengths=0 or datalengths>=ArrayLast) then- r# Y/ ^; U8 c) n% v2 u; {
Datalengths=ArrayLast4 {& P7 w/ Z0 Y% W% t. ^
end if; V _ E, C6 q9 h/ V# `, e
Datastart = ArrayLast-Datalengths, B- b2 ^/ y7 \& b3 r d" X
' `, x f u; i0 T' i& u For i = Datastart To ArrayLast& v6 a2 _+ _2 p
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
( y$ a2 q. L( @1 v AforeYear = Year(AforeDate)
; A" z5 F: L: b* o0 d. m6 x! | AforeMonth = Month(AforeDate)
/ v) K3 P) G9 H7 V, @( i9 s2 @ If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth: E! U& \& o6 ?1 S3 y$ I% N0 e1 m6 f
AforeDay = Day(AforeDate)
( O) x) E/ W0 l" r* N z7 i5 Q* z If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay z# ]7 Q9 F _) s% r% b
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
* j7 ?3 P0 m6 P2 v- N8 |9 K# ~ Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
: K0 a7 Y) ^& Z" b% `) @) H j Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
$ j6 s# y' J1 Y Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)2 y$ a2 L3 a) `. c G1 X8 f0 i# O
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
9 H2 q1 I# |4 n. e& ^ Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
# _4 ?/ N P; v [$ i If Opens(i)<1 Then Opens(i)="0" & Opens(i)
- A- d6 K3 w* D: t/ F1 F' @8 G! Z If Highs(i)<1 Then Highs(i)="0" & Highs(i)
6 F# n# X4 ^; P. E If Lows(i)<1 Then Lows(i)="0" & Lows(i)
$ A; P& n$ V/ U; p+ { If Closes(i)<1 Then Closes(i)="0" & Closes(i)
0 G% ]) Q2 `# C$ A If Vols(i)<1 Then Vols(i)="0" & Vols(i)
/ z3 ~0 @& I# O, ]$ ` If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)- c( l/ L; w) a/ s
LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
/ ^# u$ [" S6 p* I' f' y LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)) C7 u" ]; N$ t" |' v
TextStream.WriteLine LineData
3 c% [- n M/ ^. P9 x: S TextStreamA.WriteLine LineDataA i' A9 |4 B5 l7 a0 L
Next: x e' l8 d0 E2 q: x1 H
TextStream.Close
1 S6 @7 b+ I4 ] T5 N TextStreamA.Close# f, r7 ]8 v; x7 ?
- ?4 X# y# y" e9 ~' }
! C/ v, b8 o3 s3 r; REnd Function
) k6 y4 T5 d/ Q/ E* m. j% U) R1 U7 ?* K4 N8 E# r. I
Function CreateAsciiDataDayes()4 }3 i# v& |0 C; r4 D" w' O
Const ForReading = 1, ForWriting = 2, ForAppending = 8' f4 ^& A. @6 O/ j$ u" m6 x7 j0 H
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
# X( G- c: u% T/ d2 W% P Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast o2 B/ J: T' `. @. Y' T
Set Fso = CreateObject("Scripting.FileSystemObject")# ?& L& h M0 }7 d2 _
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"! U+ s% X* ^ c$ P% B8 x
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"8 C0 }6 D5 H- o: t B* S- z
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)0 r# i, B$ V# |* _3 b* L
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
5 g8 O& s, y w5 y% b6 D: M ArrayLast = Ubound(Barposes)4 q; d; P, ~: j
if (Datalengths=0 or datalengths>=ArrayLast) then% t7 F7 }( u: g# a+ {+ y8 ^5 ]
Datalengths=ArrayLast
/ C+ `: Z/ H; p E end if0 I3 t7 K' U2 n3 ~& J
Datastart = ArrayLast-Datalengths* ?! t5 p5 |! B$ @: ~
j! Q1 x1 |# b: g& Z. R For i = Datastart To ArrayLast
+ L. O, C+ K# F8 \( E3 D+ b* ?4 } If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i). C1 K3 F" W) P1 [
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)% | Y$ y6 U& L* B, v. L! R% ~
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)9 E$ _+ N% S5 g6 `% k7 D0 A" I
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)& L& q& \8 S: ^% \
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
7 ^: ^5 E A+ C& O Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)9 X: ?4 K+ [9 R6 ^
Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)2 c P6 r* |% C/ j6 E4 v$ }1 g% m* q
Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)- Y: O. Q+ y6 ]1 r( B' H. d
If Opens(i)<1 Then Opens(i)="0" & Opens(i)- W$ F3 u3 H* X3 [. P- @
If Highs(i)<1 Then Highs(i)="0" & Highs(i)- G- q' C( a( U6 G1 [/ k
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
. C4 b. L* _& ]6 ~9 I* {5 o$ ]" b If Closes(i)<1 Then Closes(i)="0" & Closes(i)
& m$ o, W. h7 y) K, Q! t f If Vols(i)<1 Then Vols(i)="0" & Vols(i)$ I* R" u3 g4 W4 N/ Y& t# ^. ]
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)3 g+ ?+ _, I" j! h& B3 k
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
$ d- G o/ \: p0 S+ L LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i): `8 X- b7 M8 _5 F6 f# r, T, l: e+ u
TextStream.WriteLine LineData. d4 i3 y; z5 ?! H' r
TextStreamA.WriteLine LineDataA: s2 }/ ^( @5 X6 {
Next. z& [2 p3 Y6 j0 i. j6 n7 w
TextStream.Close
9 e! s5 r$ Q( h7 A TextStreamA.Close
6 d6 ^% t. T" OEnd Function
( i; {5 y6 Y' ]% R
+ `6 Q+ U8 ^9 n0 }7 oFunction ReportFolderStatus(FolderDir)
7 r$ K/ N( X0 Y/ J1 u% { Dim Fso, Status
) @" C5 X9 K% A: I4 @" u4 H Set Fso = CreateObject("Scripting.FileSystemObject")
& A) T% L+ e: Y, J( K' U+ J3 i If (Fso.FolderExists(FolderDir)) Then5 r2 ]$ b, U6 \- u- R% r. a, `# U
Status = 1
$ e; h, `( c# e2 |# [0 ?/ i Else
( I" N3 A- I5 z9 \2 X" i% w7 W3 j Status = 0
7 Z% B e- G% T4 ^1 u+ }7 f End If' C/ ?8 b+ E: [/ E9 g$ o
ReportFolderStatus = Status
4 A7 t& P; `1 o0 B# C$ ^( XEnd Function
, ^7 Q. c- m5 G
* K# {, j: A4 F* \Function CreatFolder()
4 ]; z/ l1 H. i& n( ^2 g Dim Fso$ v# P K) @6 y
Set Fso = CreateObject("Scripting.FileSystemObject")
8 B+ Q; u7 h% c% U$ N, R- V Dim Folder. c+ k! M) z& X* a0 y+ D% m
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")4 e, w6 o0 J' G
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
7 @' N' R+ O. T& H' \ Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")6 o+ c/ d* J8 z4 J- d$ W& t
End Function
2 m5 t, g# N3 T$ I5 v%>4 G: G \, z: {" z [
& T1 X8 K0 k) e9 P
explain(1,'--非日线为伪日线输出,两种输出格式:');9 y& j: `; M, {" s+ z
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');% a: [+ ?* C. M7 S
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
# u* _( e7 U+ q$ F& f' {8 T" B; A# M0 t, G% o& g0 w
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|