|
maodeng 发表于 2013-1-28 13:13 ![]()
: u: A2 F- t( }" ]- v. hello 300236
9 J# ~; [ P, g, Y4 rstatement out of context# R! |& ~7 p1 i- X: }: W& @$ e
r(119);
& C: F Z2 r0 D; ?; C抱歉,最近太忙了4 \( y( M: f, }8 C0 ^- \/ R
9 M- I P! K0 A0 {* g- [
300236 我用下面的程序试过,没问题
& ?4 d3 d# ^/ l3 c- y0 T3 S% u8 u3 N; a
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试( B4 Z2 b, X9 S! k
' k& s& v" r9 R3 z6 q; a- Q5 a: ?
capture program drop hello7 o I" I2 ~6 S% _6 c% K- m& F! X
3 [2 K- [, X* X1 R6 w/ x7 Y5 t% Z6 Q. ^9 @
program hello
) j: I' H5 f4 n" x$ \6 ?& ?, G5 z' @" e. ^; U. }
quietly {
! `" m/ F" q% y) M( `( h/ q2 R: G( q- x) y, y: q* s2 c8 }
clear. Z X4 C2 V* l$ T4 R
) z m! O2 X9 `# B% e P* M( `. gcd D:\stock\test\source" {+ l1 b: N/ s. u" E2 _
; G$ H Y7 N7 U- h; s$ B: T. Jinsheet using `1'.txt
3 C3 K+ O- o! M! w5 }0 y" d- j* K/ f9 Y
keep if v5>0( H: j9 X& V5 z+ t% H
8 s* b* }; O' _5 n/ W' G$ I
gen vt=_n7 I' b) T3 ~. [1 [8 v
) v0 f% N' j5 N7 Q8 P; l
tsset vt+ f0 e0 A3 v) A+ D9 \
4 B/ v& A1 c) b' ] gen zf=D1.v51 K' f* y- R+ o0 b; H$ M
7 O1 X# h3 ^2 B; b; C; N gsort -v10 C, N, d9 m- J* A
$ w5 q/ E4 k/ }3 d
gen avol=v7/v5
$ _# \: ~: X5 Y+ J( \% G" C9 G : R. ?5 ]2 }6 Z9 K8 \
keep if avol>0
7 b" P0 [ c+ T3 Q: L6 B8 Q$ M4 |- d
" m4 S, p5 h' O+ d; `) J drop vt; O3 J/ q+ t) {2 A
7 D" x& q9 e1 \, B2 P0 w* Y1 Q
gen vt=_n6 t3 }+ S; X; p" b
; D) w& B4 z8 s tsset vt
, q# V0 b/ V2 Q0 i. D - f, k& |+ @% N8 R2 d
sum v5 [aw =avol]8 ^, I! K/ N( h3 j# m x
) E' j ~4 q+ ^' ~3 x, t6 w7 a
gen amean=r(mean) in 1+ ^/ Z* }8 B& M
! W0 v. j+ J4 R+ n% h: P * 总加权平均值 amean# u, v% q5 y2 @. Q! `4 C8 i% V; A
0 k, I- B X$ k5 B: C
9 b6 A) }, ~1 C, A1 X keep in 1/240* ]- S' J! ]1 ~2 G
- i' Z9 P$ q( A$ {) \, h6 ^ sum v5 [aw =avol]7 q0 D5 R$ \# I4 h# T
* Z! _# W0 L, h3 L. v/ |) I gen mean240=r(mean) in 1
+ e( Z+ T8 {5 P8 [
+ g' a+ J' I W *240加权平均值 mean240 P3 D; D6 `" y. d/ u
& p" v; G# N3 |" U( O. |
set obs 500 8 n' k _. r0 r4 e3 `" _
2 e7 H4 R% Q, F! ^ kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph2 u+ S' H. h: \
( _0 D7 d. C8 J$ D9 |% |+ Y
*240 kdensity(dx240 dy240)$ G+ A( H1 h, h
5 I1 S7 y' Q8 E/ r7 p3 c sum dy240
$ a7 D' W# c# s# I ( G3 e. g8 F9 x' R G$ D
gen yxis=r(max) in 1% p7 Z1 g/ w- ^* t7 W3 u
* w3 |4 Q+ \1 `0 I
gen yxis2=yxis/2
! x$ R' S/ P V- N6 e' ~) Y0 l
) }4 u! e( E9 \* w( `4 y5 O: j *yxis
- e7 y- h) g" q. V3 C" Y k; U7 I3 `" \3 d
gen dy240max=r(max)9 q* S4 K1 j9 U: G! W
* w1 Y4 x8 d! q) K
gen dy240minp=r(min)5 K) ]& a. I0 [% K, r" F3 ?
+ [8 k2 ?% _) q: N. ` gen vtt=_n5 P& C+ P3 s1 r
6 Z9 Y: E" Z3 p: c. g3 V9 O) F tsset vtt6 k, {9 o5 Q2 o4 `$ s; {8 y
: y, e3 M4 F7 o. I% y" G6 d4 C gen ddy240=D1.dy240/D1.dx240' J2 W* q, W# s2 X, y1 }
& c& m A; H* L6 Z sum ddy240
* E! a- S; { {1 a6 q0 @+ c r
5 h9 C. R$ T# @ P' n gen ddy240max=r(max)
, R' G7 u; Q4 |( k3 k c7 `" u: M " ~" M- o9 s) f. p* g. E1 c! {9 \
gen ddy240min=r(min): E, @9 m% m' D1 s7 s- e4 S
% w/ J& i7 s u0 F4 }- u8 H gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( [ T& K' d) E
. l) r& j+ r. `; Y2 V, K sum ddy240g: T7 m0 Z7 S& r9 M$ p, s7 j
2 Y7 t3 }4 X# U& Q! ?6 h& U& \. m gen yxis3=r(min) in 1
: u6 n# S. f! C' L+ r 5 n3 V, T3 p, l, S" z
gen yxis4=0 in 1
/ E3 A/ h% A4 \% [
8 |0 j, A- h5 v4 L: j *ddy240g . v. C6 t N# E
) g" i+ z9 y$ V' |' @
' R7 w1 I4 V# N' g @) I7 z: V9 V
preserve
5 o9 Z ~. N1 I1 W& c ) q8 J' s" ?3 A
sum v5 [aw =avol]
+ T1 T% q+ L3 H: g$ V/ O
. z, C& w s# C3 @5 b6 v keep if dx240<r(mean)
7 C1 O* |* o L4 ^
/ S; |4 G6 u( l4 q( D sum ddy240
3 w+ y- f, V( u7 Q+ D) D! O
, W) z/ m, S5 i- P if r(min)<0 {
- {( d: ]- x0 k8 z% a- M
$ v7 o% r* m2 |) B keep if ddy240<=0
0 V3 \" {" S# ]( N + T& b* B9 ?% _0 s& D# c" F
count9 u+ r7 d, B- A* ]: ]; |
/ ^* ]9 w9 k8 F) q if r(N)>2 {
# |( z8 ~; y" L3 x/ t( C9 v2 a
4 j# C$ E2 a3 i' M- C4 _ pkexamine dx240 dy240+ J; {8 Y! I' z: E
" v" R6 J$ w3 ?: I9 e
local tempminp=r(tomc) M$ _8 H9 }# J/ x A0 E, Y1 I0 D% e. s
restore 0 x2 T( M* L* |( g
}* u/ u% o6 T) d8 {. {
0 f' f; J5 { K* y$ N8 H5 C! l else {
# U) _8 A, y* h
' r; ~3 g9 R: `* c S& A% c di "cannot find minp"
1 K1 J5 H, A+ l# ?- f& @
2 K; I A. j' z- Y$ Y restore & ~5 d G9 s5 c4 |5 j# D. g# k
sum dx240
" m! T) \& c0 s* K7 v local tempminp=r(mean)$ P6 D! z2 E [8 K) X
X" r; f+ z/ R/ x* q' F }
9 y: q- \: u' ?6 n7 s% M }
4 Z$ T0 r# e# [5 y! H& s: O else {
`* L: U, U9 L! Y
' d/ e0 k0 V; V, i; d keep if ddy240<=r(min)4 |4 H/ A) ^3 c9 v( e2 u
. M/ c1 }& R6 J& y- q+ Q
sum dx240( l1 O& b0 B0 b0 ]! P6 x! y" N
8 W! B, `( R T7 Q local tempminp=r(min)
8 W/ o+ ]) {* Z( @) X restore
$ R: s* i% b( R' k8 @; a; _ }
! u0 q# D2 L) ^& w* F" T) Q
5 {- x! |' m' e0 q
3 O* i& D! B v
! G) V- U" ^; f. w gen minp=`tempminp' in 1- W' [. i9 {' \8 u4 y! X7 [1 q' s
*240 minp
. t" I7 C* k7 ^8 t3 h( z4 r( C) I9 b' s+ P/ t, L( H! y
! E! W; T0 L y u/ v/ t$ v
9 ?' b9 a/ m$ r/ {. A" E3 Z
preserve
\! t. |" q' T$ v6 H( J8 ^6 X
1 Y Y! F6 f' S1 s+ \ sum v5 [aw =avol]
) a. E( c3 M" [2 R 1 | q' ^; W6 G! r% u
keep if dx240>r(mean)
# Q8 y* N9 @$ v5 c7 i* | # {# B3 E$ `7 ~. r6 J. n
sum ddy2400 [ e$ J5 @0 P
$ O# `" W/ Y2 h$ p& |3 T0 q2 R if r(max)>0 {6 F- Y1 e8 ?" v: M1 o
" Y7 d* p4 A" h2 e% Z
keep if ddy240>=0
1 o. j" O& K" \ : L& P7 W! a4 {8 r5 D5 ?
count
9 w* R* ?7 {& A4 o' e% H) B * U* w% q" M* W! V' P7 E* ~
if r(N)>2 {; b: ?. U# t. l, a! h0 T, P: @- U
+ p8 a4 A5 V5 F3 y4 C8 o; o" ~+ F
pkexamine dx240 dy2404 ]* [: N0 E' O* O0 e; f; L. W
9 U# S; p! j: T" R0 r5 }% M
local tempmaxp=r(tomc) , A9 w, @3 H" I
restore ! h" m' n# z! x7 `
}
1 w/ J, ~% `$ m) f" f8 f" N7 ^$ D' ~- S
) L0 ?, k' R5 X ' Z: f. B7 o. q: C, b3 x
else {
3 O1 d& }5 R2 Y3 s( J# [2 X restore
* f0 D1 ^3 c& T0 ]4 s2 } di "cannot find maxp"
8 q- v: K; f. }/ J( S " k) s9 I4 p, S4 N4 e* `
2 S; F1 e T; n* j. y sum dx240; `) t4 q5 }# x1 F! F
local tempmaxp=r(mean); i) Y, z, H' Y4 i* b9 `* [
! `4 ~8 v3 f# p- S! U- |: b }
+ j9 u3 d5 c2 i( s 0 G% G5 }' G0 u4 ~$ h6 V% _- f% ^
}
6 |( s: L. k$ h( [6 ^7 ]! Q
; M% \1 B* Q3 `$ T else {
6 d' T+ l9 l) `- M7 V9 O. A+ \ 7 `8 S0 x& m4 E4 K+ t9 i! p& U
keep if ddy240>=r(max)
! `/ `3 {7 O4 j1 c1 y
; N4 J0 j5 t* H8 r1 t+ R sum dx240
- G2 a. z- h! I% a8 s- v' U
- Y' f! s, D8 D* X. [% i4 [) K local tempmaxp=r(max)
' @0 q c% ~' u2 m$ V- N restore 3 P! q7 N. H; V8 V- o
}9 O/ [1 e7 E: Q1 Q8 d
9 J C* S5 F; n* ~% n: V
1 y: w: Q9 ^- h% [ / u h, Z" w7 ]: T7 p
9 Q# t7 \/ }& n0 U2 E4 M5 H
gen maxp=`tempmaxp' in 1
' j. [9 D3 J- {/ |2 F: z
& F9 Y5 N2 `3 y *240maxp7 g1 Y, a3 L$ z t. a/ U- v6 U0 D
' D* y. k8 I$ H7 |
$ X9 ~3 E# \# v9 d8 f s; {
*-------------ddy240pminp左侧高峰值-----2 d$ E5 I$ a! I8 |
' j+ Z' w' r& x5 h5 [8 f# u8 n2 ^, l preserve ) S) |) s7 R- a. B6 t+ d' f, F6 U% Z
/ U" @3 T2 \5 b Z5 P6 B keep if dx240<`tempminp'
" d* G- ~4 Q, P2 {% e& L: A7 w
8 s) t- B( w" }3 B keep if ddy240>0$ j* h3 Q. ?& a# I8 C
. D! }6 b4 n% V4 B- Q7 L# ~ count
8 J* Y( Z# l& K . O7 O7 o, l! o
if r(N)>2 {
8 i/ Y6 N2 {) ~% E9 [9 @ J( M
9 c3 s; w* Z0 j& ^1 G& `7 j8 [( } pkexamine dx240 ddy240* U3 M' m+ a' _: H
- h& ^0 N+ M( B4 m3 }& d$ Q1 \- V& a' V
local tempminphddy240=r(tomc) - [* l! q% B- O0 z- v
restore& O3 o# L+ t0 M
}$ q1 I* s4 S+ ^3 m2 I
! }3 `6 i; P) U$ v" E6 z else {
6 J( g2 i& T8 g5 b8 v restore
) X5 P* P7 J' L) @( V* j% g& K di "cannot find pminphddy240"; Z/ ^2 f7 }$ F! i M# q) k2 ?: t
( F( q2 K9 b6 F; H : ^, F) ~2 y- [( u
sum dx2400 P6 d- ~" Z! ^. U! K$ w
local tempminphddy240=r(mean)
; |5 ?3 D. O) X9 Y4 ^; i# D 4 }6 E( G, i. y5 v
# n* t& W0 d$ }
}4 E1 j; p, J6 b
% H3 b' q7 v% `$ a! K0 l
+ B' v2 y4 H; q7 ]. x
( v; ~' q; j1 Z# n, Q$ ]
0 F" H: H ]" d1 H" m
( j" H- l2 x8 W5 l
/ L) T/ ]' [& n0 o0 n0 |7 | gen pminphddy240=`tempminphddy240' in 1! n: P- G* \+ I* i0 Z4 g5 d# `
% b# n$ K% B$ d& S7 s+ S" q
7 s4 \% K$ F, {
*-------------ddy240pminp右侧低峰值 -----------------, ~' r! C: O+ k* U4 z8 R3 y
preserve 1 Y& C7 k+ M5 \( T9 p* [
! X' w8 f( b" Q( L+ I keep if dx240>`tempminp': h! M' I0 s2 U& i" i8 f$ |
% s2 {! s0 C+ D- N8 B keep if dx240<`tempmaxp'$ `4 a0 {. M* H: m4 Q( a6 m( c
: P: y C# W7 e+ Z5 R5 p
keep if ddy240<0
x* [. g2 i/ Z0 r 6 w' y( W$ O/ ?. Q( V# }& c2 x3 b
gen temddy240=-ddy240& Q1 @; y* V* A
" S/ B" D7 E0 E8 s1 u
count
* D- M. F# q. p, Y5 b% }! w$ d
5 |: L- t+ Q; M0 a+ t if r(N)>2 {
) s; \4 F. \, Z1 T! o % p6 q- c8 u$ D" W: b
pkexamine dx240 temddy240
: B' R" C. Z3 f' g9 D4 g# [- W / G: N* u) ]& E1 p
local tempminplddy240=r(tomc)
$ F T# W4 h) x, f/ N( c( a8 L6 W% a restore
4 Z. i8 W5 F& }( x( t6 A }
O# i$ S. L+ C
# g9 q' r T1 ^ else {4 t1 [$ f$ j6 ]) j8 v
# D) R9 B5 [; C8 N
di "cannot find pminplddy240"4 ]& R5 R/ l( w* I# e9 b. g
restore) ]. [1 f+ h& E8 V
2 c9 C3 v ]6 Z
sum dx240
3 [6 G8 [ y' k. M8 G) [ local tempminplddy240=r(mean)
, }5 E4 K! L, [0 }1 C L
3 Z1 P" `. @& A3 m+ s" W
" A/ s: ^' L% F" [7 \ }
& }4 R8 p4 m, ]8 C1 Q
9 T" V6 [ u* g. P1 l
4 y0 L; A! G( r6 y
7 h8 B0 c {% }$ ]* Q7 W% m: @ ( q$ {% S$ O: E6 N( G4 X1 C
" P7 S3 g+ z' ^) H. W gen pminplddy240=`tempminplddy240' in 14 t! U- X; ]; i7 b7 ~' m# m
d+ x/ A3 N0 W9 [
*-------------ddy240pmaxp左侧高峰值 -------------------
: n8 T+ z$ c) }" r5 I
; y+ q$ S' |; u; v) C preserve " Y, h/ y$ T4 P. y* f. F
- P) E5 X) m' i) F* Q& d Z
keep if dx240>`tempminp'9 ?* s% E, T0 N' x# ?% m
2 f- [, V; _& T keep if dx240<`tempmaxp'
# ~6 u( {. s0 z' D ( s- w! |+ M+ t3 A) n: S
keep if ddy240>0
% m# S( x% R7 m2 }5 \- B) t' x count1 Q! P9 u9 I2 ?& B) o+ J4 J! g, z
2 {) M. S: d0 X, m' y& Z
if r(N)>2 {; F3 X) D" z( U$ n6 Z3 S6 T( h
0 u" y; J" g( K
pkexamine dx240 ddy240 z! B& Q; i$ p
4 \' X& }$ F" @& Z+ E7 G; w
local tempmaxphddy240=r(tomc)
- a# H; G5 }" F' I+ z! O7 Q - C% ^/ U& q+ }% V8 v* |
restore! @* C& N/ e# G7 A0 l
}. T, V, i# M) V" D$ A' A
8 {5 \5 A9 d! D, z else {4 a% r+ \, X7 C- b
1 b$ u4 w" b% ^& R* O di "cannot find pmaxphddy240"; [0 r) F C7 C0 R+ V
restore" M) y q( B& {+ \( Q) u
% O: u) q% d) p7 l- O& `+ T5 _) `$ t
sum dx2400 ~! a$ s6 N2 |, n
local tempmaxphddy240=r(mean) # a5 z1 X0 r, A0 u
" e x9 c6 v" S7 {$ _- K! j3 _
8 e/ _# L; L0 ~9 ~ }- N% k! y* U3 q( k- i
# {0 d1 C2 S0 R* X
. s# U+ d! k$ F" l1 Z+ j 5 h( E( ^$ F* E, V0 b2 @
3 |- e! R; N! Z: B
) @5 \8 t4 R5 h l3 F
l/ {# Z9 D. ~' Z gen pmaxphddy240=`tempmaxphddy240' in 1
- A- s6 S' j" I' F8 j, I1 j 0 `' w; p. ]# s# F' ` i2 G
. F& y" `' x% z, l
*-------------ddy240pmaxp右侧低峰值 -------------------
3 |4 @7 y1 O% f, V$ I4 S3 a/ E 9 \* e4 a; i' Z6 {0 w
preserve & N, j, ^* z2 D+ |5 H
4 m; J6 j5 D3 U/ ? keep if dx240>`tempmaxp'( p' J& X z$ H" S" o% j, z) }8 ~
: u: \! [7 A, U4 s+ J5 A
gen temddy240=-ddy2404 ^8 Y; q- P- f4 c4 R
" Y9 {8 {. H3 L6 ~9 R' B keep if temddy240>0" q! v. O, O2 ^ }
- k6 Q5 _* }% _6 P
count9 _0 ]+ `, q, I+ x) {
/ L7 U, N: \; v/ T& @
if r(N)>2 {9 A- R$ H. z/ h9 }5 K9 `6 o2 p7 O
! M" a. c+ U9 A g' n: M! ?
pkexamine dx240 temddy240) x% v4 a5 l4 s) _
4 h# O/ X% b3 C- f6 B# A7 _
local tempmaxplddy240=r(tomc) ' D" L% J) b+ {5 A" f. M+ o" ?: {
restore8 ^1 ~6 T& d" `) e. Q7 T9 f
}% P8 a. R1 f5 R! t0 {1 v9 P
% A/ j. L, ^. ?3 D else {0 g4 e( `2 L# H( f$ P
restore
; E+ C8 ^) U( U ^3 ]: c di "cannot find pmaxlhddy240"
9 m" S, d) l3 k: |2 J * }) G8 r* Z: ^% M: G! a
) z# u0 Y( ^) q* H8 ?
sum dx240 j# b' n$ s" h
local tempmaxplddy240=r(mean) in 11 h8 B) `1 D5 w& n N5 R6 ?
* a2 q, l. a- f4 O1 l5 z9 |5 j: }
! ~8 b. s) _' M) O* N }1 k! K4 e) z9 j' H3 b, {
" b1 N' r! T& K6 W: R
' o9 _# p) i& c; ~, ?# ^7 C6 B " C4 C- |( ?1 P( G6 P- |
4 {5 Y1 j0 M- V& A3 P' d
3 N% s+ o) m4 j5 l5 u$ _# h9 h* _ ! k4 b5 z% U; }1 w- S1 i: ^' }! [
gen pmaxplddy240=`tempmaxphddy240' in 1
$ T5 R' b# g' z+ M 8 b* }* L) K* K
*-------------------------------------7 p" S( F M1 b8 q9 [4 h* G
8 }3 i, }; W- O9 h6 y/ s gen price5d=v5 in 1/20
7 u/ _7 v6 w L$ z 6 [+ ^* L2 C' y
gen price5yy=_n in 1/20
, J( W) c7 ^6 Z6 F1 X! J 9 ]+ i5 V% d0 t% |/ U7 ]4 ]" X
gen price5y=price5yy*(dy240max-dy240min)/201 h7 h9 z7 z2 ^! S
9 g$ c' P* D# v9 B, E *price5y &price5d3 U$ d' p0 Z4 I, V* v) ~
' v# K* M$ [4 f, [2 L2 M
gen priceny=price5y in 1
S& n) `; L2 f- Z % a, B/ Z5 D' N+ Q
gen pricen=v5 in 15 A8 h* l3 B7 N; ?/ t: }% Z8 H
: o, Y, s+ o3 X4 ~6 h % U6 c2 h* @7 h, l8 {
*priceny &pricen# O. R/ r# i7 G& _' X
^% u/ w# m' Q
2 f: J: j c, j- S' }9 G
*-------------------------graph------------------
+ Y# B7 o- v3 T9 ~0 h9 Y- X; z ; S$ w$ P" k7 J
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)3 {% H" P7 Q) M( c
. U! S6 e r8 ~8 w* ---------可选项目----------------------
# q0 _5 z/ N5 h1 e0 \3 r*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
; b( t; G1 h8 h* a4 Q}
6 W+ F# n* }- g6 @+ ^: Aend" P! Z8 ^( N, A+ i' w) F0 ~4 r' n; |
|
|