|
|
Fox和GET的 数据转换原代码
Fox和GET的 数据转换原代码
8 o/ a/ L1 Z2 V v, Z; f数据输出=1 输出eWave/GET 伪日线数据(0/1) ,可同时输出两种格式的数据% }' h6 b* x4 l- `. c
Datalength= 输出数据天数(0~99999,0/全输出)$ k. ] R* ]7 Q
1)嵌入一个指标到下面的公式里面,把公式调入副图,想转换时 调整数据输出=1,输出个股1 m, ~1 J2 P$ d! R! D
2)全输出: 用嵌入其他指标的公式在A股板快选股/ f, [- Q7 q' _1 R
------------------------------
+ m' b3 Y, L% i0 |" y. D参数:
6 \* Z) B' F* a( o% q: @$ i( F( B+ v数据输出 0,0,1
% D* T" q9 r; X8 a7 y6 P0 Z. W6 jDATALENGTH 1900,1,99999$ T5 S9 A5 v. S" W; _5 q
//
9 D+ ~2 c3 ]$ T) cvertline(barpos=datacount-Datalength and datalength>0 and datalength<=datacount),colormagenta;
( w3 h9 I( D4 T7 c5 I1 q转换天数:if(datalength=0 or datalength>datacount,datacount,datalength),colormagenta,linethick0;9 p0 X0 O |$ y" S- P" Y/ u
数据转换:数据输出,colorred,linethick0;
% P3 ]7 a5 p0 J* ]' P/ k+ X% G) U) Z) S
IF 数据输出=1 then begin
. y" A, m1 L& d& i8 B' l _Barpos := BARPOS;* X, @/ q! C$ R' I5 ?
_Year := YEAR;9 q* F; C2 q9 H. @3 L7 t* `
_Month := MONTH;
4 ^ g- \" T. x8 I) B& V( a! M; L# W _Day := DAY;
5 t1 V" ]. H& i; c6 _& @1 P& |, ~. F _Datatype := DATATYPE;$ f8 y! Y! N: s7 i* Z, R
_Marketlabel := MARKETLABEL;
/ n8 t, x* L: [2 v7 M _StkName := STKLABEL;$ `$ K E3 U, g# m, Y3 |% X. w8 n1 I
_Open := OPEN;2 X" F: m5 {- d h+ U2 ]: H
_High := HIGH;
- @& H. Y$ _9 k3 {- O _Low := LOW;
, p7 N. |, z1 q) C) h8 K/ w% J+ y; B _Close := CLOSE;7 J+ ~; y" V% \# u2 o+ @
_Vol := VOL;# M( X3 u. A% L& r' H/ k* _
_Amount := AMOUNT;
: q) A( B: g3 J; t _Datalength := Datalength;
* Y1 x% H) E' ~9 S+ X5 h; [; ~
% H5 a E" B8 ?# d' \ B' v<%
! t1 w( B# v, t3 \+ DDim Marketlabels,Stknames,Datatypes,Opens,Highs,Lows,Closes,Vols,Amounts,Years,Months,Days
- ?& o Z; B q H( i Barposes = ffl.vardata("_Barpos")) c T: g y! B9 @
Years = ffl.vardata("_Year")
$ a2 g6 R6 B5 b/ Z Months = ffl.vardata("_Month")
, k6 w8 u! N9 M/ d% A9 Y Days = ffl.vardata("_Day")) L8 ~+ f$ E Z( n3 J& X# r. D) W
Datatypes = ffl.vardata("_Datatype")+ a3 y, H% S9 Z8 |- D
Marketlabels = ffl.vardata("_Marketlabel")1 |1 { U1 `2 V6 s
Stknames = ffl.vardata("_Stkname")
/ o0 u' g6 \7 M& X1 C8 i8 ~ Opens = ffl.vardata("_Open")
7 R" I4 J8 G8 ^ k2 p Highs = ffl.vardata("_High")+ T8 H2 d/ L( F; K7 H
Lows = ffl.vardata("_Low"): k, ~1 P4 E4 j* r5 v: ^5 X4 G
Closes = ffl.vardata("_Close")
6 w/ L h- Z, H; C$ T8 c Vols = ffl.vardata("_Vol")2 r y" x6 c; l8 G$ ?/ Y: ]1 a
Amounts = ffl.vardata("_Amount"); u+ O: O+ U+ A' h
Datalengths = FFL.vardata("_Datalength")8 a( H) ^, q( k% U, H
6 D9 V( }/ C3 n% X3 B
If ReportFolderStatus("D:\Stock\TXTData") = 0 Then CreatFolder()- @# V- Y' l) |3 s' q( W' O/ J
SelectCreatAsciiDataType(Datatypes)
* r4 v2 c4 ~7 J% f+ V `% b8 _! W
Function SelectCreatAsciiDataType(Types); a* Y1 t! s/ N# c& V, ~
Select Case Types9 i8 K. A! K0 ]/ s
Case 08 N1 C; q6 i, Z7 N8 |6 b% f# L
: {, G7 F+ H; l4 e# `; H7 t Case 1
4 N& s+ q2 Q) y1 f& J( z6 |5 a Call CreateAsciiDataMin("_m01") * B+ o! J: n4 }' x
Case 2" L! U8 m) i Q' T! J
Call CreateAsciiDataMin("_m05")
) X7 C0 i& F2 J0 M8 q4 ] Case 3
+ K! r% t: f3 U% ^ Call CreateAsciiDataMin("_m15")
7 g/ E9 M( U( L* h Case 49 I$ p. X0 a/ g: f* B2 F; C2 a N
Call CreateAsciiDataMin("_m30")
5 E3 b' B) F% r4 t+ } Case 5
* y* ?- i2 m& | Call CreateAsciiDataMin("_m60") d8 v& v! F' {7 s" k5 i" g) \4 F
Case 6, T @0 P1 S0 c! r& ^7 X
Call CreateAsciiDataDayes()' _+ p1 A, y8 k- S$ a a, L5 H
Case 7
: B, ?. |2 A8 P6 a A Call CreateAsciiDataMin("_wk")
" N) L5 X1 F G8 Y6 h% B Case 8
0 e1 l) z% L5 D5 K8 f8 S Call CreateAsciiDataMin("_mth")
- {" |( R9 B M+ f+ K1 \4 v* e& w Case 9& h" W, g: r+ `: P+ b
Call CreateAsciiDataMin("_yr") 8 ~5 B) B7 r0 ~, Q# p# a d
Case 10
) N& d$ Q# Y2 L: w& Z+ p8 l* X/ u- x. S; _3 F2 |# z* Z& v+ v
Case 11
* s6 C8 h$ J- d) N+ o+ c: h: e7 U+ z: I% T( O b9 w
Case Else e* U" D! F7 w5 q
$ E9 ]. F! U" k9 O* b End Select+ Y% J0 e: ~# r1 Z' V6 m D0 A
End Function- e z* a+ y- ^& j
3 T. P, r/ c( ~# j7 I- }3 Z j
Function CreateAsciiDataMin(FolderName): c2 {. n- G8 C+ b: U& U
Const ForReading = 1, ForWriting = 2, ForAppending = 85 x( {9 W# _4 m7 P
Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
, b$ S" ~; Y: e( k6 c Dim Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,ArrayLast,LastDate,AforeDate,AforeYear,AforeMonth,AforeDay2 p" L: F2 c+ e2 N( Q/ u
Set Fso = CreateObject("Scripting.FileSystemObject")6 E4 A' A' n# {5 I2 c: Q, f
FileName = "D:\Stock\TXTData\GET\" & StkNames & FolderName & ".txt"
$ e" N, t: \6 A7 u. n M5 i FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & FolderName & ".txt"
: T" L1 v1 Q" q% Y Set TextStream = Fso.OpenTextFile(FileName, ForWriting, True)$ O% W7 j/ h6 }$ y* L- S+ I
Set TextStreamA = Fso.OpenTextFile(FileNameA, ForWriting, True)
. g9 \% K/ T Y' P. j% B ArrayLast = Ubound(Barposes), C% L6 b4 }4 e6 u
LastDate = Years(ArrayLast) & "-" & Months(ArrayLast) & "-" & Days(ArrayLast)- ?5 U3 L; _* {, q$ b" P2 y
+ e1 H; n( [0 X/ r* a, O# o' T' n
if (Datalengths=0 or datalengths>=ArrayLast) then# u+ S( a+ H9 [) O+ Q7 J
Datalengths=ArrayLast
6 v6 Z8 [6 @, b; E end if
) x3 l8 h$ o& V Datastart = ArrayLast-Datalengths" |% n# ~' K7 W. s
0 i5 h k4 y( E" [# o* B @4 b" D
For i = Datastart To ArrayLast
8 }9 u# t& ~& A$ \/ [5 o* }2 b AforeDate = DateAdd("d",(i-ArrayLast),LastDate)7 j e- b6 [) x' ] Q
AforeYear = Year(AforeDate)) O' t( o5 g }* r* h$ F; O
AforeMonth = Month(AforeDate)
% c' O5 p+ k% @* M9 b' w* f If Len(AforeMonth) = 1 Then AforeMonth = "0" & AforeMonth* s' z+ g* n5 K
AforeDay = Day(AforeDate)
/ j* f8 }) l9 r6 n$ J If Len(AforeDay) = 1 Then AforeDay = "0" & AforeDay
, F! c& M% ]5 I* f( j# n Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
1 t% O, E- [4 t Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)# ^0 b7 Y, }# z' R" g$ ]6 h( {
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
: o' W7 w" `% ?9 U/ o/ P) P9 ?; y7 L3 P Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
( x+ J8 M+ N; ~5 w. r) U Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
w5 f# J: e& A4 a6 m Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse); A5 G9 }- x I* G
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
( e$ y, r' e1 I/ F If Highs(i)<1 Then Highs(i)="0" & Highs(i)9 z+ }: }5 y4 ?) t2 r5 d3 X
If Lows(i)<1 Then Lows(i)="0" & Lows(i)5 U5 n8 y+ L: T3 ?. q2 }5 |
If Closes(i)<1 Then Closes(i)="0" & Closes(i)
; G- h7 S4 j4 Z If Vols(i)<1 Then Vols(i)="0" & Vols(i)
; q$ [4 h. g* j, K2 t If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)
# r2 k1 O2 Z1 x; K. P/ ] LineData = AforeYear & AforeMonth & AforeDay & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)
; }6 Z: }& w7 Y& O6 T; v LineDataA = AforeYear & AforeMonth & AforeDay & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
" c" L7 _+ k: \' z. d TextStream.WriteLine LineData( h; ^% |* ?% f* J' q* R; G
TextStreamA.WriteLine LineDataA$ t y9 t+ X" ^. [
Next7 q! u1 ?- I" g
TextStream.Close- E$ G0 }8 ?9 e" b9 P0 L& X" C1 y. X
TextStreamA.Close
$ @+ l8 |2 O' R4 S4 R
% } f3 b6 k4 N9 D. a" F9 g
* |5 j, G# S ?5 oEnd Function1 v% \( l1 ?7 P4 u1 w3 i1 G8 o
1 M' F- h* u" E |" {
Function CreateAsciiDataDayes()
' `) {4 J9 i2 ~9 D$ t Const ForReading = 1, ForWriting = 2, ForAppending = 8
0 e% V5 m/ z' M6 ]8 b4 w& a Const TristateTrue = -1,TristateFalse = 0,TristateUseDefault = -2
) u' a4 V3 n2 c Dim i,Fso,FileName,TextStream,LineData,FileNameA,TextStreamA,LineDataA,AforeLast,ArrayLast. N% O- y% c+ @; A i; @( K3 \
Set Fso = CreateObject("Scripting.FileSystemObject")' | H2 x+ V! X: M' m
FileName = "D:\Stock\TXTData\GET\" & StkNames & "_day.txt"
! g% \, J+ H3 ?! z" [ FileNameA = "D:\Stock\TXTData\ttpcn\" & StkNames & "_day.txt") X: ]3 N) m, e2 o2 C( P6 a$ U
Set TextStream = Fso.OpenTextFile(FileName,ForWriting,True)$ P- l: ]1 E. s% M, W$ F; h; k
Set TextStreamA = Fso.OpenTextFile(FileNameA,ForWriting,True)
6 o8 ?* r; k) v% ~ ArrayLast = Ubound(Barposes)
/ y7 c/ }! S- _. K Y if (Datalengths=0 or datalengths>=ArrayLast) then
/ F; T3 H% x9 D* P" f6 V" o Datalengths=ArrayLast6 [( w1 N# q) |4 n9 n
end if
\6 F) G. d' x$ f Datastart = ArrayLast-Datalengths
2 O" W! @; L: M* m5 b) ~- I; i. C8 Q9 Q
For i = Datastart To ArrayLast
; o1 p4 a' j* b y0 y If Len(Months(i)) = 1 Then Months(i) = "0" & Months(i)
" ^7 K! `. |4 v6 U E1 u If Len(Days(i)) = 1 Then Days(i) = "0" & Days(i)4 g$ g( \+ K, C6 f, D: J
Opens(i) = FormatNumber(Opens(i),3,,,TristateFalse)
- _1 p+ g! B" h9 i. w Highs(i) = FormatNumber(Highs(i),3,,,TristateFalse)2 m/ L; {' F! |
Lows(i) = FormatNumber(Lows(i),3,,,TristateFalse)
! x; x9 }2 i9 M- O7 F H Closes(i) = FormatNumber(Closes(i),3,,,TristateFalse)
6 E5 c5 `, h) ~1 t Vols(i) = FormatNumber(Vols(i),3,,,TristateFalse)
+ g9 ~# `1 P& z+ S/ s" F6 u0 }1 w4 { Amounts(i) = FormatNumber(Amounts(i),3,,,TristateFalse)0 K! n* o0 O3 g. C K0 e
If Opens(i)<1 Then Opens(i)="0" & Opens(i)
) H- u) ]- `) G8 E If Highs(i)<1 Then Highs(i)="0" & Highs(i)
% [; u1 ^6 q2 s/ w3 F( m+ J4 v If Lows(i)<1 Then Lows(i)="0" & Lows(i)
7 q! L5 h, F$ {+ [ If Closes(i)<1 Then Closes(i)="0" & Closes(i)4 Z2 c7 c" C- ^! T P0 F8 ?) O! S
If Vols(i)<1 Then Vols(i)="0" & Vols(i)! P7 t9 Z L* p) j
If Amounts(i)<1 Then Amounts(i)="0" & Amounts(i)8 {6 l. U+ e( ~' I6 n
LineData = Years(i) & Months(i) & Days(i) & " " & Opens(i) & " " & Highs(i) & " " & Lows(i) & " " & Closes(i) & " " & Vols(i) & " " & Amounts(i)3 P/ ]& {" y; A& d) `
LineDataA = Years(i) & Months(i) & Days(i) & "," & Opens(i) & "," & Highs(i) & "," & Lows(i) & "," & Closes(i) & "," & Vols(i) & "," & Amounts(i)
) v, F2 |. r# v& I) \& h TextStream.WriteLine LineData
^+ x! O; u; @: g; s m$ U0 ]8 @ TextStreamA.WriteLine LineDataA( A/ A( a) o6 O e
Next
8 s: O `% b3 I9 _, J TextStream.Close
; P) R: {0 j- R5 w1 m2 M+ F$ }& A TextStreamA.Close
$ p- l1 f- q* Y8 o+ V/ U1 t% BEnd Function3 c/ f+ F) w: K
/ p3 Z- [. H0 |6 [9 F0 j
Function ReportFolderStatus(FolderDir)1 J& {1 s5 H9 m: r# i1 g( ^
Dim Fso, Status
e# _ U9 F# z, f6 J0 x" w Set Fso = CreateObject("Scripting.FileSystemObject")/ x8 B8 v! d4 I! ]$ h+ e. U
If (Fso.FolderExists(FolderDir)) Then2 S2 a; k3 J; T4 J% b, n0 U2 l( K
Status = 1
4 d, e/ k6 ~2 l Else
$ f; w' G# Z }6 O1 D t Status = 03 i/ p8 b3 a" G, l
End If# R- i6 a, b, k0 _! {
ReportFolderStatus = Status4 S, q3 T$ E) x; {2 U
End Function! {4 ^" Z# I. f
; z: i0 c4 l# _Function CreatFolder()
, s# B2 z5 e ~% |8 b Dim Fso
- B" \( J0 d! P9 _* [ Set Fso = CreateObject("Scripting.FileSystemObject")* C* F% n$ l. S/ N
Dim Folder0 g: J+ _! U" H/ Y( f; R: f3 |5 `2 |
Set Folder = Fso.CreateFolder("D:\Stock\TXTData")
* {" x3 T4 w5 n Set Folder = Fso.CreateFolder("D:\Stock\TXTData\GET")
' _- y( w" }: F2 q3 s Set Folder = Fso.CreateFolder("D:\Stock\TXTData\ttpcn")3 U" w7 V/ _8 \7 x G
End Function6 H- ?9 h8 ~ j A6 v$ Y% a9 p! j
%>
/ A& O8 j8 @9 @2 |. w
$ H. J0 O; B" Y, v; v) w4 P3 {explain(1,'--非日线为伪日线输出,两种输出格式:');
% c; I6 t! b$ j6 ^7 ?$ ]3 w# ^explain(1,'1) YearsMonthsDays" "Opens" "Highs" "Lows" "Closes" "Vols" "Amounts >>D:\stock\txtdata\get');, ~" x" ~. \, x2 A C. b- Z
explain(1,'2) YearsMonthsDays,Opens, Highs,Lows,Closes,Vols, Amounts >>D:\stock\txtdata\ttpcn');# j; G& r9 `$ q+ v" w. S9 |
# T; I, K1 A* s& Y' w1 o[ 本帖最后由 xmhenry 于 2009-10-20 02:02 编辑 ] |
|