|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码" H: q+ o& E- i E
数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据$ A- C' k5 `' i, H4 n. v1 g M
Datalength= 输出数据天数(0~99999,0/全输出)
- X3 a c* f& s( d# E! l1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股
& {' m6 f- P# ?% U4 k2)全输出: 用嵌入其他指标的公式在A股板快选股
- t( ]' ~; r4 M! Z! A0 h5 g! p------------------------------
, j. r" P; A* D$ W2 K; e; ]/ R参数:0 R+ @! c+ x; V4 P
数据输出 0,0,13 P: M4 l. Q; o/ r5 T/ _9 ~/ p
DATALENGTH 1900,1,99999, J* D7 k( v/ f$ ~ ~
//
* U5 W6 v" a7 K: h4 U' v+ ]vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
# C8 q+ q4 D0 \% X; y转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;
! W! s- c2 U& Y数据转换:数据输出,colorred,linethick0;
) Y5 z# D; A) t6 R) k& J8 j' p8 v+ ~" D. {
IF 数据输出=1 then begin
; e2 A! \. w7 P6 q4 K _Barpos := BARPOS;
; ?+ {5 U. p9 e& d, g$ f& d _Year := YEAR;
8 g6 l$ |; s7 k* O, x _Month := MONTH;: I4 m4 Y: F! I* F& }; Q
_Day := DAY;; `7 I8 A* i+ k) `
_Datatype := DATATYPE;
! b) x. m& ~" h, G M0 P& f6 a_Marketlabel := MARKETLABEL;& G/ a6 {0 Q! t, r. `7 t
_StkName := STKLABEL;
* M& d w& P- m2 _ _Open := OPEN;: ^3 ?5 S3 o2 a. {* H g
_High := HIGH;$ W1 @ E( F. Q
_Low := LOW;
5 E# N- F, }2 `1 X3 v8 O5 T3 ~ _Close := CLOSE;' C$ W8 {+ m% Z; [( _
_Vol := VOL;
) [; Q0 h* P) u, C8 K _Amount := AMOUNT; # E& R& Q0 q. C) x( I8 L
_Datalength := Datalength;, w2 _# v& Z, d* z- a7 K
& |/ n9 B- I1 C2 g<%
3 B9 b- V0 K" ^Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
1 M# E( s1 D' l4 O" D0 O& ^ Barposes = ffl.vardata("_Barpos")
. l; U# p/ S% |( J' C Years = ffl.vardata("_Year")
9 [& G0 F( H# S3 L) A7 I2 Z, s Months = ffl.vardata("_Month")+ h& K2 J e- q: n" s$ ~5 V
Days = ffl.vardata("_Day")
1 V8 K% n( l% h, e9 ?4 F1 { Datatypes = ffl.vardata("_Datatype")2 J! Q: U6 a R' |8 X
Marketlabels = ffl.vardata("_Marketlabel"); Q8 s6 _0 _" w6 \" _
Stknames = ffl.vardata("_Stkname")
" Z1 v1 M' r. t/ g$ |- i! }4 [: R/ \ Opens = ffl.vardata("_Open")
+ D: ]& t2 I! _& I8 g Highs = ffl.vardata("_High")/ Y2 \' b& P+ A2 L* U
Lows = ffl.vardata("_Low")
; y3 e) H6 I" |9 z I Closes = ffl.vardata("_Close")6 u* T/ R2 I- N
Vols = ffl.vardata("_Vol")
5 G, p3 a2 u7 ?8 ?& ~ Amounts = ffl.vardata("_Amount"): D/ e9 v* K0 m2 x$ H+ G* s+ [
Datalengths = FFL.vardata("_Datalength")
; R+ |& D. J( x4 n" z& Y# I, [2 ^7 g @. h" q* M
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()% z" a6 E' i# S0 ?4 ?! N
SelectCreatAsciiDataType(Datatypes): `3 s1 T% V5 f3 o
/ ?3 Y; Q' E9 n; Y5 o1 R' HFunction SelectCreatAsciiDataType(Types)
! b& P, I* E6 _3 X- _! i5 M7 x9 p. Q Select Case Types
/ O: ?- u5 b. y- h: Q% w2 p Case 0# \/ D7 n# W- L2 s6 m+ M
; u8 @$ p# B1 F6 x. v1 Y6 S8 c
Case 1
% A2 V" o! h$ d/ i# H# X Call CreateAsciiDataMin("_m01")
' ^* m/ ^7 v O Case 2! [, _; w2 v0 v6 `- d8 w
Call CreateAsciiDataMin("_m05")
6 O/ U& L) V+ L# Z, q/ O Case 3
[+ Q6 q7 H+ U& u Call CreateAsciiDataMin("_m15") 5 c$ ?- X3 F) O P+ e1 _
Case 49 d' Q0 ]4 Z* X$ P2 n1 @
Call CreateAsciiDataMin("_m30")
2 {$ I8 g: d& b5 X; d( q; y Case 5" w8 q: Z3 H2 S5 ^
Call CreateAsciiDataMin("_m60")0 e Z% U h) f# c
Case 6
" ]) q) M% T- [- Q/ ? Call CreateAsciiDataDayes() h* G8 k$ z( k; }
Case 7
& D% z8 {# g; ` L$ `+ [ Call CreateAsciiDataMin("_wk")
! q# D5 u5 Q) x" v7 s Case 8
- z0 h; O: P/ A6 U! @& i1 j6 o1 T" G Call CreateAsciiDataMin("_mth")
; @- M# x5 l* u! w% R% H Case 9+ a6 w6 A$ b/ S8 g9 G
Call CreateAsciiDataMin("_yr")
" S3 ~" V3 ^4 [$ m Case 101 ~ Z/ z# E# O5 `
* u- Y( i- L1 ]; d' \3 e
Case 11; q$ I+ |/ ^: ~) z- F( T
/ v4 k* u( ?9 O+ {# D Case Else6 q' j& X! R0 C
. c3 a( C. S2 D End Select
1 F! I* V- }/ |( m+ ?1 O9 pEnd Function' Y: k& {" d( U9 r( h3 h. }
6 |8 ~) q+ M+ l Q7 h% O, z% ]6 I
Function CreateAsciiDataMin(FolderName)
' R% W2 Z9 s, f7 N4 H Const ForReading = 1, ForWriting = 2, ForAppending = 8# p2 ^6 A2 o% p8 y0 h
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
* s0 [# ^+ `- l) D# P2 ^ Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay
- q$ e; z* R& T3 W0 p Set Fso = CreateObject("Scripting.FileSystemObject")
) g- E/ z* \& k1 r- g3 l7 @ FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
0 }# O6 y# C% \$ L6 p! X FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
# ~" ^) W+ ^+ ~$ X Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)
* Y, d& X0 e0 s1 Q7 c1 r9 y$ l4 v Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
; u# V; }2 X) g/ }+ L ArrayLast = Ubound(Barposes)
( x$ i8 q+ E& u! m1 |' n LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
0 G0 @: o o) q0 G- I: ?' C' v
3 \% c; ^2 v( R4 ^4 }0 j if (Datalengths=0 or datalengths>=ArrayLast) then' K6 H& i( z2 D2 `' R! U
Datalengths=ArrayLast5 _# P7 s2 y1 G5 N/ _
end if6 ~8 Z" G g! D" O
Datastart = ArrayLast-Datalengths
, V& y* G1 t5 E9 H& ~9 e& _4 @; u8 g9 r f& D" O l d% G6 _
For i = Datastart To ArrayLast
: J7 }+ T. I* ^ AforeDate = DateAdd("d",(i-ArrayLast),LastDate)8 y% }/ h6 M# O$ n) ~
AforeYear = Year(AforeDate)$ u5 j* E, G! x9 C- r% l
AforeMonth = Month(AforeDate)
2 X# u4 |) Y1 M w; H If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth0 q; R, [. C8 F# u- D8 Y' G$ Q) i
AforeDay = Day(AforeDate)
8 c8 B2 H4 b9 s7 U* w' b0 ~0 z+ W If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay4 w Z7 Q4 } f
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)1 m: I& u1 \$ I5 h6 G
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)& _3 S; O& I; y6 Z; H# H
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)' |1 U: a5 H j
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
) n; X' n$ K9 \ Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
0 l' b8 ~- \3 N' b8 b F. y# m Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)
- D* l( X& }6 {' Q/ H If Opens(i)<1 Then Opens(i)="0" & Opens(i) |- _! ^4 K4 r% g
If Highs(i)<1 Then Highs(i)="0" & Highs(i)0 m( |0 x0 m! C, @/ |4 Y7 c
If Lows(i)<1 Then Lows(i)="0" & Lows(i)
' u6 }) p Z7 s If Closes(i)<1 Then Closes(i)="0" & Closes(i)
( e% ~; N6 C: s If Vols(i)<1 Then Vols(i)="0" & Vols(i)
# A) E1 x, n7 j3 {1 B) O If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
! u, X, \4 F# {3 h LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
0 s* H* k, w0 i& Y5 O LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)& i- W% R8 {! q ^0 h4 ~- T3 |
TextStream.WriteLine LineData' X' T" V( G Q' p
TextStreamA.WriteLine LineDataA" t% t" z6 q' i" K; {# S- l
Next
/ q3 Q2 `% s& B& l) F4 d2 j/ m TextStream.Close: R+ j8 l; W7 U- y
TextStreamA.Close
9 f3 ^! ]' d) [1 |7 a3 G6 W% S0 u- k
! W: w, F: h5 V/ O4 K7 q" Y- u
End Function
- H! N1 q5 d; @
' M' v. |9 u8 }7 h, j( u' AFunction CreateAsciiDataDayes()
- U* w' o0 N: f i9 ?) O! ] Const ForReading = 1, ForWriting = 2, ForAppending = 8
9 K( e2 M4 K$ l2 {- m: r' i: [2 ] Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
7 P! U/ k: S) _& R5 m Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast' s( W8 k; ]5 m& Y+ i9 ~! F
Set Fso = CreateObject("Scripting.FileSystemObject")
# p+ h; D/ g% Q9 @! f$ r1 E FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"7 |6 F3 Y- H! E2 m4 g) W) U, ?0 P# i
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"8 e2 z3 ~5 M; F" b- _
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
% q# I; f+ \. Y4 I: X# { Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
3 Y. L0 _/ G1 O' k0 C ArrayLast = Ubound(Barposes)
M7 x: x+ L; C* h3 v" o5 b if (Datalengths=0 or datalengths>=ArrayLast) then
9 V- M9 U8 k! N! e4 y* P7 [ Datalengths=ArrayLast
+ M9 R6 M! B B8 X$ X. M& w7 d end if
$ U1 ?" z9 X5 n: b$ Y6 G: `, J Datastart = ArrayLast-Datalengths1 Y3 ^0 L2 A: [" I5 W& b
7 K/ c h8 L7 C6 b
For i = Datastart To ArrayLast7 ^" ?! V3 t7 g) @. n3 n
If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i). N/ T) R4 Y+ e, ^. c$ k+ j
If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)" `( r) O+ E2 a
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)+ ^. G7 I; [9 B' e# u/ N
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse), g9 L) \) h- l: M) I2 W1 z
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)' l/ \" @9 [& a8 ^2 z* e {
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
4 y D: m2 V& z* x Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
; |+ j9 u3 s I8 ^- L3 I( j& s( P Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse), _* N5 j2 C4 c) Q! A i' v5 p
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
. B8 Y5 p( v3 V' r# M4 u If Highs(i)<1 Then Highs(i)="0" & Highs(i): i' d: [# `4 {9 H5 b; j! d
If Lows(i)<1 Then Lows(i)="0" & Lows(i)+ Z0 D$ ?3 ^1 V6 M1 u% w7 I
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
; S$ t: n7 [$ S9 i If Vols(i)<1 Then Vols(i)="0" & Vols(i)
7 E9 v! J' I8 z1 Y) e0 N0 h5 ^6 s# I If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)% b& P0 S! u3 D2 ~& S
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)+ E' g/ v# M# O8 [: C3 U
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
2 P& {2 G& R# D+ j/ V) G( R TextStream.WriteLine LineData
) @7 v" c3 m4 Z TextStreamA.WriteLine LineDataA3 j& S5 [; X W" w& v2 D
Next
0 y5 B5 Y0 _4 a6 ?6 V TextStream.Close# i4 N. E" ]# ?, L: {; K) n
TextStreamA.Close ' f9 Q; V' \! B
End Function
4 F7 s, B3 p7 [$ U% P/ f% O, n! I( z
Function ReportFolderStatus(FolderDir)9 j, U7 O# N: J H. ^6 W' ]: a3 y
Dim Fso, Status: m$ g6 I+ \0 A( ~ Q" w) }7 o
Set Fso = CreateObject("Scripting.FileSystemObject")# J% f. W' j2 F) e U n* k
If (Fso.FolderExists(FolderDir)) Then
4 I7 u4 |# H5 x. W/ {( p' ` Status = 1- F; O- _( j& Y
Else D7 t/ B( y# {" A4 a
Status = 0; Q3 r# D$ f3 a) M
End If
8 y& y7 F) f M' l* e( ?/ M2 } ReportFolderStatus = Status
( h4 g, }0 S: @" F D2 MEnd Function2 h) p% ?* ~6 o" w' l7 z
& \6 R- U G4 [: EFunction CreatFolder()3 C& l% ]- @1 Z
Dim Fso
- L, `- h# X# l: x! d. \0 d Set Fso = CreateObject("Scripting.FileSystemObject")2 B+ O2 }% Z. Y$ e
Dim Folder
; Q! S9 _% w9 S Set Folder = Fso.CreateFolder("D:\Stock\TXTData")% y+ Z. N3 P) l4 b( ]
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
% V+ Y5 X6 [+ L* { Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
* l) z3 _4 \; r. WEnd Function5 Y' w: M$ { Z0 Q
%>
6 ~' T2 t9 W2 e7 Y) R3 x9 A: D
+ }; b- u% j, Bexplain(1,'--非日线为伪日线输出,两种输出格式:');/ I) G) r2 ]+ w% h" R. l
explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');2 x# u9 @- C* N; `
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');7 ^" D$ \5 H/ R* l6 { J3 q) M
. `) X8 [7 `8 V) s[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|