|
|
maodeng 发表于 2013-1-28 13:13 ![]()
* Y; j* P k* l8 I. hello 300236
; @8 ]4 w& J' ?: vstatement out of context
, l; I, ]! D2 d7 B! Er(119); $ B! ^% l& u" D( w3 I6 ~: O. }
抱歉,最近太忙了+ G5 c9 c9 V# g! Q
" X, Y( }4 U$ N' R7 I q. E
300236 我用下面的程序试过,没问题7 K# G6 X: P' Y! |. H% V
2 p: w1 e7 j! @9 Y+ I$ e" {% @% z1 C
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
7 _, u& Y' A1 V \) g+ W: m {/ y* t3 Y& _8 i; B& b
capture program drop hello% W$ U# v9 o9 F
. [, E9 z* i' U. Vprogram hello
$ Q5 R4 N/ S+ [3 H) {: I; n
9 M4 |, z$ b; N, I quietly {
' O% m5 ]* S( R+ ]" ]" E
4 M& b0 h0 a }. X7 U6 r6 jclear4 u3 b( b0 ~# X; Z6 W% M* d1 `
3 ?7 T: l J8 i7 W1 q9 s5 b
cd D:\stock\test\source/ D% @1 Q5 J ?
D F; Z& ?1 e2 I+ `1 e# ?insheet using `1'.txt
- w' O" u0 a2 W: p. ^! f
7 s$ |8 ]* @3 z keep if v5>05 x/ a% C9 Q) e0 W6 _& X1 h
' v5 E7 V C6 P4 ^5 v& c. h/ U
gen vt=_n" @9 s4 l' H, Q7 W6 }0 m0 j
) Q; y# |' s, {# v9 I- N tsset vt
4 \1 ?9 t8 j" P+ D& d0 S8 C! ]. G7 w, K
gen zf=D1.v5! N0 \. {- b) p# |6 m& H3 M# K5 V
% c+ B4 { P# e
gsort -v17 u6 m0 @. g8 ]' y
2 R" O" ]: }# ^3 n gen avol=v7/v5
$ B+ ~3 W$ l& k6 F& c' a, O5 s
s1 `+ z' N& d }( | keep if avol>04 C- U/ u6 B4 ?+ p
$ O1 G1 g+ G7 Q3 ]- f
drop vt
. w! x q/ F7 n' P' V9 o- i $ ?; Y% t5 l, o# H
gen vt=_n
; w. | E+ o) R 0 r i: K% n6 N6 L& h& n$ G* u
tsset vt
7 ?. t9 @* ~+ Z7 j; @8 m 0 i9 a3 R i$ [3 D3 E$ O
sum v5 [aw =avol]
2 r9 J. w3 r {- h( h: H$ w c- \3 Z. [0 I" w6 @3 V4 c$ ?" m
gen amean=r(mean) in 1
9 o% U* [" y5 b+ R
6 U; O; B6 q- H# B4 q, C7 V * 总加权平均值 amean2 I& J& {( n: G5 W9 I
( b) R6 j8 p$ Z
Y9 w" e8 e& \0 \$ W, r- [; R# ? keep in 1/2404 R- [/ N) O7 |; c$ ?
+ o: ]/ S7 r1 U n5 } sum v5 [aw =avol]
9 u3 ^% ^- G; o0 n3 G" T
$ r- u, L4 \5 h gen mean240=r(mean) in 1
3 h7 k/ H% O7 d7 Z& R
4 O# g3 n4 z" C Q6 [5 U# ~, p9 E *240加权平均值 mean240
3 k+ T3 ]7 t7 h; x# l M4 [$ q 4 A4 \, l3 x: q9 j1 d
set obs 500
; f& b- S, Y8 {9 P 5 |% Y' n* M8 U7 S$ u. q
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph/ T1 N& m$ i. U0 g/ X" @
5 m" V4 ^) y! y% Z/ n *240 kdensity(dx240 dy240)
6 U$ t; a% g; j5 s( V
" B+ V/ r' C& x3 m5 B! Y% \& _ sum dy2409 _) i- P9 m9 G0 J. y1 W7 s! R
5 z2 d! m( O" | gen yxis=r(max) in 1
; S/ X: S* c2 t+ K7 i( O% a 4 s8 F, e8 `* i% [
gen yxis2=yxis/2
: q k0 |( z2 {0 Z4 q/ `; I & M! N6 s) a7 M
*yxis2 {- Z+ R. I7 F! ^, i5 K8 l
2 A* _1 S* g" A+ o4 c2 n gen dy240max=r(max)
! ?1 H) ?. ^# C: d/ c5 Y$ {; R0 Z
7 P+ O- }8 I; g; M1 i1 \ gen dy240minp=r(min)
2 ~( w4 A: f, q/ O) _% f8 c ; m! W; k1 N) g l& H$ F
gen vtt=_n
# _. M J# M. m: _$ d7 B* z* A' x" a1 V8 Y) O$ C, ]
tsset vtt+ N- F* L: d- j% y4 f3 ~8 `
B. {1 M E1 g+ F" c8 u gen ddy240=D1.dy240/D1.dx240
; I; K6 T3 Q! G; ]( s
( I& ?. F( B) E% \6 K3 l( v6 N# x0 _$ j6 a sum ddy240- w" H" q. ^5 U% k/ I# A% N
! T+ C$ L8 `7 T; p7 a1 Q
gen ddy240max=r(max)
, ^, g7 [' Q+ C6 G* H( D i
( L& d8 ]' ?# C" s, y gen ddy240min=r(min)9 E) W, C- U E" c
/ I$ [+ ^8 n0 t/ a" x; ?0 ~
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)3 }) ?0 T+ b. Q0 W1 L5 d/ f+ T
6 r) Z3 A& \8 X+ a6 L sum ddy240g
$ f) p A# k" Z( r" ~- ^* |% u! n5 l
. I8 U' W1 _! u; G4 w s6 s7 m gen yxis3=r(min) in 1
; B) w3 f2 t5 B+ N# S$ n7 u3 _
( h- Y9 H6 f0 G6 ^+ U gen yxis4=0 in 1
' j! G! z8 C; k3 f! v) H
' \/ `9 l! C5 H# Q$ p( f *ddy240g 9 H G, u% K* K$ M
' ], q+ e; x1 c+ t$ L) T) l" F
* T4 \. j1 _6 g3 [8 o ]3 O' `: ~
preserve
8 }3 s9 E) c4 q# Y4 F+ K
; W4 p1 s) b9 i5 P% X( g sum v5 [aw =avol]
, `. y9 J/ d- R, m: E- N ) b4 m+ r/ b3 Z* t' f6 e' h8 L
keep if dx240<r(mean)( W/ q" g7 S0 R7 d3 \' }: F3 A
A8 t& A- D1 t sum ddy240% \; _: |. Z' \- p; N/ h. W, ~
) ]- f# X5 W3 o' n3 {' z) m if r(min)<0 {% a8 I3 X, ]& t6 o; @) V* M8 u
" a) _4 a3 c' A1 p0 e- E9 H keep if ddy240<=0) j6 u" ^- l8 c( ?
/ X7 S/ [* v* y; p1 b/ ^ count
9 l0 x# m7 H9 V b" Y: \6 E V ' ~7 D) t) f( z2 x
if r(N)>2 {/ _: m' y2 R/ n$ }1 P: C
$ p6 I0 O1 Z5 {8 M( O1 G8 c* u% }9 P
pkexamine dx240 dy2404 M3 U" z6 E8 G% ^$ I ~% V* |
& w7 h' u& h8 V# ^# W
local tempminp=r(tomc)' O" D5 y" G! D+ Z& ~! w
restore
: G7 [ M, |( z1 S+ F% f+ }% e' u }
- r5 o+ i2 J( B9 h$ u( C. [1 Z ) j; s- u3 W% y4 w, f5 f
else {1 c# _, F0 j4 a) d
$ \. S0 S. n( Q9 u4 P* [
di "cannot find minp"
* n {1 R9 F4 L) j- f % A% e6 w2 M3 a. ^7 a. w$ d
restore
( i9 ?( b& N" o6 |$ L9 q2 K* Y! _- V sum dx240, W8 `8 a: S% I3 y$ T
local tempminp=r(mean)
, E/ s& i0 [/ K# t) C
, V6 {0 X n3 g/ f' D }' Z, o, E ^# @( z+ {. [* d
}) G6 M7 n' a, r. [5 ]& S9 b
else {
! {; y+ p2 N7 h' m) Y! }
7 x" T4 n6 ?# ]; D5 I, h: t+ f keep if ddy240<=r(min)
' n5 Q. k2 _: x- v2 I, M6 T 5 w% c% O* g+ }; b- L
sum dx240
, Y3 o) h+ j6 v B9 o- X, u + W/ I* W6 I/ a% m$ S7 I) T% x; {8 M
local tempminp=r(min)8 q* G! Q$ [8 y# C* S( T: }3 I
restore
# W6 v$ k! l L6 _. T- A }+ K: ^2 |$ z. L, {; k/ l
+ P# f& E1 e, V9 x. s2 u
4 M" M$ E( P+ g0 a5 T* ?& E
$ h+ c+ L2 s1 z# v/ {5 K S" r: A
gen minp=`tempminp' in 10 r$ v5 G( U( j' I1 q7 a
*240 minp6 m- f6 v4 p+ B2 V
% Y' l/ Y! l6 P# U V
. X2 e% l/ y' \, I3 Y7 {. {( o
7 {; Z* J, r9 D* o8 J8 ]& w preserve 3 G. q4 b6 B; g. C5 l
. Q- y8 O H* q: L, q( z( b* ~ sum v5 [aw =avol]
" G7 Q7 `1 x* P2 @8 B! F7 D
9 W* Q& k6 p& Z4 b( @5 z3 C keep if dx240>r(mean)6 {2 o# W7 ^8 Y! B0 z, J: ?
7 \! ^, L$ E+ p2 k0 t8 i sum ddy240
) n' w# c. m7 G
|( }! t" l# o8 R) W% F9 j4 O if r(max)>0 {
' S. i# i1 e$ k8 L9 T; _# H5 Z
' ^$ F- W5 q# @: s. r7 D: ~5 L keep if ddy240>=0
1 X$ W+ u, ^ a. Z0 n, {
9 ?# @+ X* O0 n- ? count* O4 T* m) O2 N% N" k
: p. t$ J) Z& y if r(N)>2 {& C; }0 k2 _; R% ]& t7 d
4 | ~8 p1 F/ D$ @
pkexamine dx240 dy240- P, f/ |# V$ N
( @) \% h0 X2 p/ R& i# a
local tempmaxp=r(tomc)
U+ s$ q) r: H1 d. O. c' x+ Y restore ' r6 R# O7 O1 B9 x5 ]
}. k5 e# r9 L5 I# D4 u+ P" t
4 l4 b: C5 Z5 q, G$ z
. k) W( {5 _ Q% j3 h else {
) ?" E/ h& _! K Z restore 7 [( b* k7 M! Z6 v
di "cannot find maxp"
+ D, h6 D m+ {9 s/ w# f; d; [. |5 n
3 R" L4 q' r+ C1 ]2 x
7 W' r0 g; g9 B2 {4 h/ o5 ` sum dx240, S+ \. z2 k1 H
local tempmaxp=r(mean)8 n& b& C( g" z) B
+ M6 x, Q& `1 M$ l! `. m
}" j3 d1 X$ B( p2 b9 A
( z6 b3 N f' p" E! e7 E }; d! D5 d: s, t( |5 n! j+ W
3 K% ?$ S7 [) W, m0 g, S
else {
' W. ~" m( k8 h2 e4 V
4 v2 {3 ]2 Q8 T5 d keep if ddy240>=r(max), D4 C5 t: Z; x9 x! E' _8 v; J
: |( e. j( |5 x sum dx240
3 L9 @6 t$ e2 v
9 [. {( p9 ~* s0 r3 f# ?0 M local tempmaxp=r(max) " b5 z4 [0 F0 [( g2 z: V/ H
restore 2 D9 q8 v$ c/ k+ @
}
' Y! c7 c% |. A5 o: ^! `$ {1 ~/ P
* R( N4 m( p: z2 t8 @
3 u: L( L9 M) c2 ], ~" S2 _# _
: r1 N9 ^! J- n( e7 L9 b6 S( @: N8 j1 n% G1 o* S* w
gen maxp=`tempmaxp' in 13 h6 C0 Q2 y+ y. i# Q- A4 D
5 l8 N4 d3 I" ~( u; Q9 |; D
*240maxp4 i, [/ Y" }2 B" P i
2 i5 B/ D: g1 Q( q4 B
3 _4 z% X- X. o' t$ z; r E9 k
*-------------ddy240pminp左侧高峰值-----7 R/ j, u1 B" y! Q) H! D0 a/ x* O
9 S( E7 @0 k& Y6 P1 t: }
preserve 3 P& H+ v2 c: O4 Z0 p, C; h; }/ }
* Z5 C# P8 P5 S5 W ?+ W5 e# l keep if dx240<`tempminp'
4 }+ O0 L' Q* o % j4 ?; n) t- p( O& b+ @1 Y5 |4 O
keep if ddy240>0
, a" S1 n I, k1 T2 U
' h, z: b' D% d9 b* z( t count
$ a$ k6 v1 u# V, f' O: t , p4 L* A1 u9 N0 q/ g, i% S
if r(N)>2 {6 v! M0 k4 _% [' l. U3 W0 \+ E
0 ?# U( u' J+ Z! M ` pkexamine dx240 ddy240
' t$ j( b, G+ t : T! ~' J, l: f$ u- x, O4 W
local tempminphddy240=r(tomc)
6 ^) k& o+ o& z, E/ t7 G. K& b: q restore: [8 z0 l! m* b: S/ s
}
/ H$ N* d {7 o; f! U* B0 A: q, S; i
1 u* j7 z* `- l5 d else {
) I6 ]4 R7 e7 g' {0 Z4 ~ restore 6 Z1 j" t( ` L
di "cannot find pminphddy240"* g/ w3 {7 P& z0 Y& d% H2 F, Y
8 ~: M, k" [' n- v
$ i c# E/ o0 H$ v0 h! f
sum dx240
- a3 p w& C6 G. i7 f+ |1 f. e local tempminphddy240=r(mean) 1 r& @# g9 v2 ~3 b- b/ G
3 V8 {! {- a0 H8 ~; ~, ~' C7 p
, Q: n: b8 S8 N& P }, {) d: F" X4 w
; G. o3 e% H! b' P+ y& m
( b) ]) o5 R& E9 T2 h6 \# [! a# ^6 Q
: j9 P. i7 J3 q& Q( z: O/ x 0 D1 D# Y7 S" N. Q# k' S
/ j. G* ^3 ^) i % ~5 h( q2 x: j
gen pminphddy240=`tempminphddy240' in 1
" @; L$ x+ Z! `0 L4 m ( d5 d" o7 K/ G; L
2 n4 }. o: P4 q8 h- [0 o
*-------------ddy240pminp右侧低峰值 -----------------
5 r& d. m+ w* i y+ i preserve - G5 _7 Z( L2 k' u
, Y9 T& z( j5 o5 s
keep if dx240>`tempminp'
: f/ c$ C, n% [
0 Z2 K# c2 w( M8 E/ l keep if dx240<`tempmaxp'
* y" `0 o3 \: R; p 0 ?) f8 `8 X3 k$ c/ ^' I
keep if ddy240<0! q( h% h& i6 S! k$ I. |
1 u% O& k2 O1 a$ j5 O gen temddy240=-ddy240) K/ y& y8 u, ]
4 E O& w; ?8 u4 I) a count* z3 N9 c1 ]' q
9 g- c" R, a9 C' I
if r(N)>2 {
) q/ R% F6 Y4 p. d4 p 7 f$ O; m* \* {1 G1 ? T6 n) }( h
pkexamine dx240 temddy240! U$ r- {% f: H) r: s, }1 {6 ~
: o( n9 H: v, c- ]
local tempminplddy240=r(tomc)
, J: a k z" ^+ B$ u/ ? restore9 u6 q0 x- r8 p9 X- Z
}/ N" E+ J- G5 h7 B; |1 Q" i
. }* X4 |+ F, Q
else {! ~: `" p8 o9 k7 `
; O& V, A% ?5 \6 h: a7 t+ M
di "cannot find pminplddy240"$ y/ K/ D. q0 j4 Z- |
restore
( _3 n3 `7 W' Q
! V; w, [$ B8 i+ @ ^ sum dx240/ L# P u# }4 Q) j4 F3 {' K; }
local tempminplddy240=r(mean)$ Y0 ?* T1 E! A; _2 K5 Y! q2 F
, b( z* N3 K( s2 G1 O
6 V, `! I( D% ]; }: g" S
}
/ s- a0 u; p" N& V3 l- T
6 F: b. ^: r: K* R + z( I6 {8 u4 p$ \
( f) e) M6 U3 H! X
; n+ a7 T4 ^; G# t
+ X% u' Q9 n9 N$ N0 P% A& c
gen pminplddy240=`tempminplddy240' in 1
0 F- _& j# S) Y" d* o- l7 | ( m& W1 z7 v" K+ i, P9 Z
*-------------ddy240pmaxp左侧高峰值 -------------------9 v' f2 s0 M( J
) m4 t+ q g+ w2 v preserve
( }1 U7 i; T. h7 I+ ~' K
2 K3 h; o/ m C. K+ d keep if dx240>`tempminp'
: C" [) N7 m. f- [1 ^
" M1 x8 H6 h$ N/ [ keep if dx240<`tempmaxp'
, j7 P8 e d. s h B
! F9 `4 O" p' `5 H" G( \! W4 R keep if ddy240>0
g/ K! ]3 z9 p1 d9 Y count# b5 L, P% U' g0 i
& f1 t' g8 p p& @# H- v. G if r(N)>2 {
" A8 B! B6 b5 d7 T) r, S' D
1 l6 Y3 y0 d1 C0 N: X: R pkexamine dx240 ddy240
9 c; a; c! x/ h' P; r 9 c1 V6 V4 H* A( C/ G+ Y/ C+ r. K
local tempmaxphddy240=r(tomc) ; B' V- {& K) y( }4 K8 a" P8 D+ f
0 |- F( ]8 z6 c+ w7 k( H restore: W7 N% [! f& t/ Q( B1 j) X
}) N. W( U# f T6 F" @, X
5 h* `( k, M4 B9 s4 R else {
- \0 i7 U% E4 ^( p' { h" C! |0 L. z
% z q7 u) ]8 r0 R1 R. X di "cannot find pmaxphddy240"
% t( R, _2 ^! F+ s restore
0 W$ E( ^, X5 |) R! Y+ [ ( }. u2 r7 b' F! u5 j
sum dx2408 }$ n# ^. T& U+ Y% `3 ^
local tempmaxphddy240=r(mean) & [6 N$ |$ Z9 K% N6 \4 q6 v k. {; b
$ @" B4 H+ e8 y1 p$ i
$ Z5 ?8 M4 f p: c3 r" v; D }
" \6 E( f# E' u' j2 R
+ g# ]; q* K$ J
* K) a2 f8 Z1 z/ x" E) V: q
: R: c, b# ~1 H( S# o1 {, M 9 q+ D( Q; j3 p
- X2 W. D/ r# y$ k7 b7 z : u! }$ t1 b' p4 Z2 s2 i
gen pmaxphddy240=`tempmaxphddy240' in 1# a2 f, C6 h8 p! t
! b- |& P5 A4 i& R2 C
. P+ o. G7 H8 C2 D7 o; h *-------------ddy240pmaxp右侧低峰值 -------------------" e+ D0 l H) D; F) Z& N V
8 V" y% F* I+ `7 |5 U; ~9 }* f preserve - G x1 w: M& [/ U* u
0 H0 R1 B, P) P' ^: } keep if dx240>`tempmaxp'
- S" X5 c2 n' A . |- |2 P& J( p4 z/ C* @1 e& e
gen temddy240=-ddy240
F* R5 @) c1 z* V$ ? % n) x7 a6 `% ~, K
keep if temddy240>0
& C1 O+ ]4 T+ R* R0 U
1 |! m6 r! r" } q/ e/ m. U1 L count( q+ y! a/ H5 Z5 E9 t7 E, G
3 s8 o6 F0 u# {5 X$ N+ J& l if r(N)>2 {
2 k/ [. U& H1 `/ y
% y2 q I1 [2 f pkexamine dx240 temddy240# t; w6 u* g6 R2 ~0 [2 `0 X
0 ]6 A, T: j9 S! `" d7 j" E, p5 e
local tempmaxplddy240=r(tomc) $ ?9 b' _3 s( F6 p' k, k
restore
, w' ?2 G V$ z. s) ~7 }5 U& Q ] }
% t( f9 `/ c0 u! v, p3 _, d' L ; q1 H* c1 O3 B5 s, ^! Q
else {
% g% K( ~! q4 q8 h3 b restore
) _9 W0 Y% m( b; G" S: X! T; y6 I di "cannot find pmaxlhddy240"/ Z) R1 N& I/ L8 U9 G
* k& Y1 o u* s
5 `3 O# s! O' _" i! g' p: K' L
sum dx240
@9 Z5 E* c/ T+ F7 T local tempmaxplddy240=r(mean) in 1. [' O* M; W3 Z" C% Y/ N
( p8 s+ D0 F! p# J& B& J1 M1 Y; f $ G9 i; ^# m& f C
}
. h% t4 v6 O- n# g % t9 g% F7 ?; z0 L& m/ q# F$ C8 I
) H$ @6 {, B9 n. U- K+ e
) i$ c' P0 `& n4 m6 J7 X7 r
# Q6 n$ u' d& K2 i% o' w
$ e. p' N0 @8 a3 v( ~, k" w4 E 5 u9 i7 @: L* ^& f
gen pmaxplddy240=`tempmaxphddy240' in 1! ~; ~, `9 U, Q
0 m% |$ ], A+ a; y# s
*-------------------------------------; M1 Q+ e; K- P9 W: c0 a3 ~ I
, @6 U) `& L0 v } m0 l7 f
gen price5d=v5 in 1/20
- V3 _% h' h$ E3 h' R ! D% L+ `3 s2 ^4 u5 ?+ O2 L
gen price5yy=_n in 1/20
! u. ^" Z4 G% j2 l1 n: M ; W1 e6 N% [' L* a: E" P
gen price5y=price5yy*(dy240max-dy240min)/20
+ Z4 Q3 F Z. N# |
) D' @4 J" Y5 T& s7 M5 c *price5y &price5d' m, V( G: G I5 V, |" Z
, [: M1 h) }- n0 ? gen priceny=price5y in 1, N/ k6 W9 M1 B% `6 E/ A& {: M
& L2 t/ N4 f; S, G/ ~ gen pricen=v5 in 1
2 \, L. e3 J6 [( t2 X2 e5 G- W) o. r# x
+ L, v4 J: N! L, T
*priceny &pricen
6 f% o: Z3 ~& M2 ]2 D" [# a1 H & z& Z, y1 V1 Z
- {& l1 | ^/ R% D; D5 k
*-------------------------graph------------------3 j$ x$ ?7 |0 w( y: s0 f% V/ N
; q8 y" O9 Z/ q4 k6 a) l$ k tw(line dy240 ddy240g dx240)(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black)) (scatter yxis2 mean240,lc(red) msymbol(+) mlabel(mean240) lc(red))(scatter yxis maxp,msymbol(+) mlabel(maxp) lc(black))(scatter yxis minp, msymbol(+) mlabel(minp) lc(black))(scatter yxis4 pminphddy240, msymbol(O) c(l[-]) mlabel(pminphddy240))(scatter yxis3 pminplddy240, msymbol(O) c(l[-]) mlabel(pminplddy240))(scatter yxis4 pmaxphddy240, msymbol(O) c(l[-]) mlabel(pmaxphddy240))(scatter yxis3 pmaxplddy240, msymbol(O) c(l[-]) mlabel(pmaxplddy240))(scatter price5y price5d, msymbol(O) mfc(black) mlc(black) c(l[-])) (scatter priceny pricen, msymbol(O) mfc(red) mlc(red)), title("`f'") xtitle("`1'") ytitle("density") legend(off)7 X, P7 m, I! \$ z6 _! [; S
* B; p4 T( Q3 O+ h7 h% @: V* ---------可选项目----------------------
5 |! ?( j5 s1 h4 C9 y- e*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))5 K( c& h' L/ V
}, t# }' y# F, ~- b8 I
end# @4 _1 ?: I' E X
|
|