|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
! W# K" S2 I9 B/ J y; Q数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据& R: X0 g" O! x z/ W+ x1 b4 Z; y
Datalength= 输出数据天数(0~99999,0/全输出)
% U6 i/ j2 w: C& Y1 X1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股0 |" ^( F9 g2 y8 s$ y8 S
2)全输出: 用嵌入其他指标的公式在A股板快选股
( N6 ~2 o* w3 y! ^1 {------------------------------- n* O/ C3 `7 d# G; H% F% w
参数:
- c$ B. q% _5 }( J9 s0 l9 e' \数据输出 0,0,15 i! g7 N0 f& s7 y5 t K
DATALENGTH 1900,1,99999
0 ?2 b4 z. k# Q//, ]- j9 p. Q( c/ d
vertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;$ o3 H5 ]* u/ u1 r
转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;& L3 Q5 L# T U( s& |2 h1 w
数据转换:数据输出,colorred,linethick0;+ ~: D. O; h- b1 k5 k+ w% a
' W% m% E9 C( m( gIF 数据输出=1 then begin1 g* t- Q' C2 F$ K% U0 R
_Barpos := BARPOS;8 }4 X2 O7 h, `4 ^7 |3 Z8 E4 M
_Year := YEAR;1 b7 J1 ?6 M L. e" D0 y
_Month := MONTH;
* e- R: `8 [$ H7 k" t _Day := DAY;
3 C6 e; ]. y2 R2 C! g; \* L0 }2 u _Datatype := DATATYPE;4 Z* C- N9 n% V H" c( s
_Marketlabel := MARKETLABEL;
" `6 G3 @+ S4 f/ p4 {$ ^2 g/ p4 ^9 B _StkName := STKLABEL;6 d' ]$ Z* n3 {# j0 V$ R
_Open := OPEN;
' W( E; t) F$ s4 Z9 m _High := HIGH;
5 Y. x9 ~" S8 `; J2 ~/ Q- b, [ _Low := LOW;
$ t( k! h- f, U2 ` _Close := CLOSE;
" F) o% ^: ?" ~* o8 {0 A- i+ h# f5 a. K _Vol := VOL;
' q t) U/ B" l _Amount := AMOUNT;
& F( Q8 ~! o3 P _Datalength := Datalength;
: V. w+ H7 c! X0 t) X& _ O8 m0 K7 Q3 @, P
<%
% G( V7 y1 j, ^Dim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days; H/ |% ~" L R* W! r
Barposes = ffl.vardata("_Barpos")0 g0 z" K: Z- O# o
Years = ffl.vardata("_Year")' z! ^) j2 y( c7 U" r
Months = ffl.vardata("_Month")
Q8 y+ o8 F; T. U& w4 R3 @ Days = ffl.vardata("_Day")3 s4 ~7 l( W* u6 J& n
Datatypes = ffl.vardata("_Datatype")
l; k1 z4 ^0 f0 y; zMarketlabels = ffl.vardata("_Marketlabel")
- ?% ~* v5 K \/ h6 j Stknames = ffl.vardata("_Stkname")
9 S8 Q, k; u3 h' l* W Opens = ffl.vardata("_Open")
* @: M% Q$ n/ J, p! x" ] Highs = ffl.vardata("_High")
' u" F$ l1 f# T$ o/ _, W5 } Lows = ffl.vardata("_Low")' }9 V/ V# W$ ?3 G
Closes = ffl.vardata("_Close")
5 L7 d8 J! C: }7 p Vols = ffl.vardata("_Vol")
$ j' _5 S1 |! D h) |0 d Amounts = ffl.vardata("_Amount")
8 u9 Z- P2 t: p5 ^ Datalengths = FFL.vardata("_Datalength")2 p+ `2 G+ a( q1 F, h, m, j
6 N; a+ C- V, n3 h/ O! ^7 w
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()$ e. A/ G) Z/ k) W. W
SelectCreatAsciiDataType(Datatypes)
; c, A) f# |) |. |$ [- u! W) Q% O8 d& X. o0 g
Function SelectCreatAsciiDataType(Types)
7 o5 H& U' Y, ~7 P Select Case Types/ a4 M$ R- B, m/ u0 t( W7 v
Case 0
2 K6 h O% y' N0 f/ |$ H8 U! {5 c2 F- o6 G7 E$ n" r4 H3 O) }
Case 1: ]5 g/ {6 v" O( q6 Z# p" T
Call CreateAsciiDataMin("_m01")
* s3 z9 Z, ~4 f# ^7 D Case 2
/ s( o" {9 B/ `6 D& p: a Call CreateAsciiDataMin("_m05")
" L, I2 Z9 M; e8 ] Case 3; V8 v+ X3 {8 T' U1 Z. ], T4 \+ D
Call CreateAsciiDataMin("_m15") 9 n. T6 Y5 o) |9 p! ~3 n
Case 4; L) w2 K- W7 F, y$ P+ b
Call CreateAsciiDataMin("_m30")
9 b0 B& a. f7 j' Q Case 5" q/ t. x$ h8 u* a& _5 A
Call CreateAsciiDataMin("_m60")( w! W8 l1 g3 u9 u+ }
Case 6
( b* l0 E2 i* d+ W( d Call CreateAsciiDataDayes()* q1 x- t# ~) ?6 T! L* y
Case 7
* q$ t; A) L* g) T" g Call CreateAsciiDataMin("_wk")
% [) p# W$ g# t Case 8
5 a2 ?; s, X$ z) O% [$ R z Call CreateAsciiDataMin("_mth")
- J& S7 o, b' o Case 9$ W/ ` S: M% K+ J5 O# s H
Call CreateAsciiDataMin("_yr")
$ G& F, b% J& j9 }' l- N% y Case 108 | k) ]7 U) _5 ]
$ s4 c, \/ M# Q) } Case 11 B, }! X7 ~6 S: I
4 n$ |; R$ d: r ^
Case Else
; e! E$ U G! p0 T$ s3 }
- h: X1 f! f1 J2 W- W2 Y$ ^8 r1 V End Select
, d8 a! L$ d; aEnd Function
. \2 W1 g$ G* s) P3 A% _, |. H, `8 d, I: \- ^
Function CreateAsciiDataMin(FolderName)
5 ]2 S p/ K# x$ @( @ _; x Const ForReading = 1, ForWriting = 2, ForAppending = 8
# c$ p0 P3 q! v" \& t Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
7 O( f/ [: ~ }. I Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay. {$ ], `' P) Q5 ^, C; y7 G
Set Fso = CreateObject("Scripting.FileSystemObject")
0 T4 i3 d) I# R- R( A, a FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"! b4 f* Z! u( N
FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
. W2 z) Q' e$ S5 P5 Y& I" l0 H2 u+ u Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)) J; l' O5 e0 R7 i0 b2 U0 x
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
( ]: h! m. Y0 u- s& Z ArrayLast = Ubound(Barposes)! g$ g7 h1 x, y& u
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)
; D* L5 t& B+ N) q
" @: p3 ]& b. o9 j* f. u1 u* q if (Datalengths=0 or datalengths>=ArrayLast) then
7 T5 I* Q* i# d0 Z5 |2 {3 p s Datalengths=ArrayLast
4 v7 _2 T7 z5 ]8 `, T# V end if n. Y: o; r, T: F$ v6 ~
Datastart = ArrayLast-Datalengths
' \7 D+ b8 g- J/ s
6 [- t- L4 x$ h# k1 z" w! N. X, j% b For i = Datastart To ArrayLast Z2 c) \2 h2 ], n
AforeDate = DateAdd("d",(i-ArrayLast),LastDate)
6 a4 o2 S D' l& O2 V AforeYear = Year(AforeDate)
# G: w# E- l4 U5 r* I# v AforeMonth = Month(AforeDate)
& z" K* T: @. j$ ?! y" e' Q9 [7 Y If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth( q a* h7 u- W6 i* U7 F- ]4 B7 D
AforeDay = Day(AforeDate)
& G! A$ k( e3 ~ If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay h* j% y5 j& k8 r7 y8 d1 Z
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)& u* f. z _* m4 f; v
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
% l" P7 b" @% o Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)+ J4 P1 J. A8 E( `+ T0 g9 N
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
2 W) c) \1 ~! ? Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
4 _( I' n# S/ I+ d. b( B. C, _0 w4 R Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)9 M6 J- [& s+ p* o" a6 S8 B. W# v
If Opens(i)<1 Then Opens(i)="0" & Opens(i)2 \! f) J! P) M9 C- N' F
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
8 O: ^" q: L' C6 r4 z: A# [; {6 f If Lows(i)<1 Then Lows(i)="0" & Lows(i)- C: Z7 \% d, ]$ B
If Closes(i)<1 Then Closes(i)="0" & Closes(i)) z: a# U& k3 ~6 R" N2 W1 M; H
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
$ A4 z1 O0 y) v4 z: P- E If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
: x9 g( q( O, I! L1 i5 c4 I: ? LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)' W( z- @6 g' E0 u2 y
LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)9 Y' m( M1 B" _' ]( s
TextStream.WriteLine LineData
7 e6 h) L# M& _7 _- L9 q TextStreamA.WriteLine LineDataA+ m, K3 q: f% w$ L
Next
2 p4 U5 k# C& F, T; { TextStream.Close
9 ]( m2 w: \$ Z1 ?8 E, k: N TextStreamA.Close0 i$ Z1 X# {- h. v/ k
( J3 \. @) w7 N
! x/ p4 u7 z- h3 _4 @End Function% [ t6 ]* r/ l$ k, f( {/ h& N
( I+ B. {$ J! f3 y( W: i) hFunction CreateAsciiDataDayes(), J; S9 j% L$ o% u W
Const ForReading = 1, ForWriting = 2, ForAppending = 88 O d; r9 j, T
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2! g4 z! L9 S' x; F# X: l! p
Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast6 l$ V! x2 B3 ~0 a+ o; W; t
Set Fso = CreateObject("Scripting.FileSystemObject")
' a; n! T# f3 r% r FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
% m2 R' L" r- U, y FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt"4 S, @0 e( v' b4 X: v6 S
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)
7 P; U# P* K ^ g j. E Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)% R! l' L. \" I
ArrayLast = Ubound(Barposes)( ?7 L' {! E) e: U: N
if (Datalengths=0 or datalengths>=ArrayLast) then. A; @) p, B6 B2 ^
Datalengths=ArrayLast
8 `; v7 Z5 l& E* }$ [ end if% M, y, ]8 {# I! }3 o$ r
Datastart = ArrayLast-Datalengths+ H6 m" i) W% B8 W) D
0 U& Z4 s! D1 X
For i = Datastart To ArrayLast
& P+ E& ?- ]& p4 b If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
- D# |, U; c3 t/ F! u+ l8 e' h If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)) Y5 Q% q9 ^3 T
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)9 w& a% K9 H( @; f7 q: [( z- G
Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)
, d/ o; v! w" e8 } Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)- z6 o- h/ J* }; k6 u; ]
Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
% U$ U: {' I( B5 E0 F' d Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
9 o5 z& K: {+ E1 H3 `$ K Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)1 Y" g# d+ w% T# f, _: k7 g% H
If Opens(i)<1 Then Opens(i)="0" & Opens(i)5 P4 |5 N7 B+ Z% [
If Highs(i)<1 Then Highs(i)="0" & Highs(i)
: T9 b1 J; n5 S6 i f# ~ If Lows(i)<1 Then Lows(i)="0" & Lows(i)
+ t6 g. {' w8 {9 y. ?4 S0 k9 ~4 | If Closes(i)<1 Then Closes(i)="0" & Closes(i): Y! u' c% C( t, V2 C9 f% h
If Vols(i)<1 Then Vols(i)="0" & Vols(i)
. C% `# J/ B) S If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
. k0 d3 N' P, X LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)- y# U% D) A: U& {: e* d5 R+ o
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i) \ f" P+ g% C% E
TextStream.WriteLine LineData
! H* j% ]3 {( M2 I8 S TextStreamA.WriteLine LineDataA* ]( K9 s; ~! Y( o- H x' P
Next
; w" P d3 f) i! d4 C0 e TextStream.Close
$ @& [- C1 R1 {7 f$ O+ w; U/ L TextStreamA.Close $ r: ~% l0 W3 ]+ v! h1 V' X
End Function
* ~4 s5 o# n2 t0 d; a% R: n# E5 h/ ^8 s- o0 W( Y$ f
Function ReportFolderStatus(FolderDir)
$ z: ~% m, b% h Dim Fso, Status
$ G z( N$ d3 N5 g' R# e Set Fso = CreateObject("Scripting.FileSystemObject")
! K4 w% C( Q2 u: N If (Fso.FolderExists(FolderDir)) Then
" t* S, V8 f) B7 W L z) ?7 O4 K" _ Status = 1; c1 ?( ~* x H
Else
0 h u: u9 C8 { Status = 0 |! T- C3 x/ g% [& O" O
End If
. C2 a# ^7 n6 v) u3 I ReportFolderStatus = Status
/ y2 ~: E: K$ I1 E8 hEnd Function
! o1 W5 s8 L( }, G
* [& [, D, Q% ~9 _- X7 r; ^/ PFunction CreatFolder()
) w3 d8 e. r( J( O1 n Dim Fso
/ N! h. O v/ F Set Fso = CreateObject("Scripting.FileSystemObject")! S- P8 R7 x7 M% _
Dim Folder
" B) C1 t$ n6 j- P1 [) G Set Folder = Fso.CreateFolder("D:\Stock\TXTData")* Z* Z/ J' I" U2 _8 p3 D7 U
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")& Z( ^+ q( v9 ~ h
Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")
8 r3 Z% Q1 ?0 s5 GEnd Function
, f/ d3 A) {' a6 y/ Q M%>0 ?+ E5 \3 t! @$ O
, Y0 s. X1 o; `- Y0 u
explain(1,'--非日线为伪日线输出,两种输出格式:');
. j7 Y# V% ?8 ~3 K* |: G/ Dexplain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');
5 ]$ f6 T8 y3 M: n1 E9 ]explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');
0 K9 }& U: H2 i l1 H2 A% b Q/ j' l+ n; G1 ^
[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|