|
|
maodeng 发表于 2013-1-28 13:13 / I( }) |/ k7 R( ^( x8 }+ V
. hello 300236
( ~7 m P" s$ Y. n' lstatement out of context. P+ |1 q7 b5 m
r(119);
" T8 E8 y( n1 w% L* a& }* w m抱歉,最近太忙了
8 Z2 O- ~ o$ R( @7 o3 e
# u0 \- c& q. n$ ]300236 我用下面的程序试过,没问题4 }# m. w% _) `3 p; D
v$ [, b4 _& }+ m你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
1 R) O( }3 Z. V
7 `, g. C3 h, t9 K. F7 Jcapture program drop hello, k9 u b$ o/ A4 ]3 S8 W; n- r% J) O+ i" N
* P3 z( `+ G0 Sprogram hello4 C4 y6 \4 g! |. U6 S: y. y- K
M" P2 `7 O/ E- I3 k quietly {
- P" M! R& N! _5 S8 k& J3 r: [, w/ Q7 r' `
clear) J/ g, R* r' p' C* G
8 N9 @( ~# d0 h! C/ U4 G/ D
cd D:\stock\test\source
9 X V9 w- y# c2 m
8 f X- f! L% X% C' A6 a5 ainsheet using `1'.txt
, O$ f9 s0 [3 W2 L# I$ b1 q' M2 s. ^3 c3 b8 t, ]
keep if v5>0
4 ]& a9 N, p6 i& ?- }% u4 I. G 5 b( @! K" ?8 i7 J0 v ^
gen vt=_n& s% ~3 ?. u6 S1 f% _
6 S/ j" r. b7 i k) D' L
tsset vt6 j( w1 ?8 @' @4 t* i# Q4 D
; a- `7 x q; J% |; q
gen zf=D1.v5
# o! [ c+ [# J. t
1 e1 b, s. d- h; _7 O+ ]: v! G gsort -v1
i4 u# t8 o( [! w; `* x. D; L
4 V9 Z; A8 l- X+ v' W4 Y9 H; E gen avol=v7/v5
) ~* s6 I( X. @0 m 6 `$ v4 z' j) `/ i8 Z% U* R# Y
keep if avol>0/ ^5 f0 A0 \/ g7 f% _. }
2 {7 N3 Q7 M+ r i0 ]
drop vt6 C Q+ g' E) T4 {7 w
8 R+ g$ n/ p* ~3 Q gen vt=_n
* e3 ?& j* l/ k9 M- k4 [3 E0 | 4 e+ F2 T. B) D- V: w1 j$ U
tsset vt6 H* B, N0 g' w& B
; q5 O* [+ r- R2 G4 u+ U6 w. A, c
sum v5 [aw =avol]8 U+ {9 L$ a! H: l# R( {, o
6 ? A _ Z% D1 B# V4 E
gen amean=r(mean) in 1/ G+ Y1 e" Z/ _( w7 E$ u. `; S
8 k% I$ ]5 X8 w
* 总加权平均值 amean% t' G$ x' j& k: i9 n, b' w
' {+ Y' W# a' }# W# C- r3 G 5 _# k& w6 R$ k5 N g2 b; V$ p2 h
keep in 1/240
, |4 T; b6 M* p- P9 \0 f1 m G, c4 E
sum v5 [aw =avol]
6 A8 G5 H3 _7 s6 ~ a% p7 U6 W3 d, j+ `% o( z/ ^0 y& k! o" l
gen mean240=r(mean) in 1/ Z( f1 p7 y1 q e2 `
$ `: w1 \" [/ y- C( `) ?. q6 h
*240加权平均值 mean240
& a# ^+ {, a( g$ [2 \5 Y" w, o: H 8 a" Z% s, J6 b4 n1 C
set obs 500 3 I U1 {0 M1 b# h8 }# ^4 y
! V6 Z$ J) a$ H' Q
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph" `; P' \! F8 D
/ Z3 h! `/ n6 n. e8 \' \
*240 kdensity(dx240 dy240)- h) I# e# x5 u
; I: ], r: G a9 d
sum dy240
# \6 }8 F" {. q3 V" P4 m7 Q+ B G " H6 p+ U/ p5 Z3 f$ J; ]1 s
gen yxis=r(max) in 1! D6 w( v9 g h- c Z$ N
8 _5 i* }' o( G* y gen yxis2=yxis/21 G- ?* `( A- R& l: }8 I
) H, l0 a% h7 _8 Q# @ *yxis
- x/ ]% j! ^/ S- ~$ F+ A5 v ! S2 s' g( F2 ?& A5 @: y( t# b9 a
gen dy240max=r(max)
$ r( F& G# {% d 2 S9 q& t) F T4 _; s$ v0 g2 L
gen dy240minp=r(min)
" A# [: S! K1 m+ c0 p' y/ @
1 H3 `2 h! |/ L% }" S5 o6 t gen vtt=_n
+ P, G& C0 Y8 ~8 c) R2 z a7 [6 a/ f; R% w6 ?2 R
tsset vtt
# Y @, X: y8 Z7 ]3 l
( N5 d9 C8 z6 q7 {# U gen ddy240=D1.dy240/D1.dx240
8 T7 a' g5 Y) m1 ?
- F- |/ v7 J. s& U* I% V sum ddy240. u: p4 b8 {+ f
' J0 w3 h! E* V2 Z1 k1 Q. s
gen ddy240max=r(max)
# a* G% h4 K8 F% s1 H3 H " r, n' H9 Z$ C& h
gen ddy240min=r(min)& e% n0 \% Y/ U q8 C) X0 z+ u! y
* i' b3 f4 a2 u0 g( ?8 C
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)# j7 Z7 F1 u& i0 k4 ^
* i( v6 W2 s9 i* w( W
sum ddy240g& T* k( H1 m1 D8 ~6 n7 L8 u* ]6 {, |
+ |: J, H& I& o" n" e+ t# z/ J0 G; J gen yxis3=r(min) in 1
! S4 k) M0 ]5 ]3 `0 U- i! L( Q
) K3 g4 @5 E6 a* V/ ^3 K# L gen yxis4=0 in 1
( j5 d/ t6 r% W1 R
; J( r8 z8 M7 e. [" ]9 y *ddy240g
# \* H1 x( W* W- ~3 a
: D; \9 S: _7 w: E) _ # y1 _; I! r0 K* y% L; T
preserve + y8 E) J V1 X! u
' \: F% f, Q( A/ x8 x3 p# [/ G sum v5 [aw =avol]
) a, u& G: l1 t8 l% j5 e* t ) n* ?6 C3 I& L" O5 |! S
keep if dx240<r(mean)" ^: o8 N1 A+ m
6 U) x3 e. {& ?" c7 \4 F
sum ddy240) z" V: S9 a6 |2 H! M
$ T' N' C/ m* m% j8 k m3 l9 d1 L/ V
if r(min)<0 {# w- n8 v) ?0 \! G' j, j
- d8 X# c) S% L: H7 R+ W keep if ddy240<=0
+ g- n0 W* K) A& G: p$ C
, r7 h1 z( D/ F count
$ T9 u2 t" G* U8 d( w: R 1 S* m6 J6 f/ h; S. X$ f
if r(N)>2 {$ l- s! V1 A" }$ j9 J( L# n- W
( U; t9 P4 d; ` pkexamine dx240 dy240
2 o7 ?. {& O1 v" D3 F; D7 G) N 3 z: n7 z Y, r& l: [( [9 z6 y, @
local tempminp=r(tomc)
: a* \; o+ {( {; d* _4 w restore ) ]7 S8 P j |4 D
}/ f0 K. z! b% `3 t5 F% I Y
" x, O9 f, M; s else {
$ G9 y! A- K8 w: ]$ P3 w6 [ % O! O! @5 |( z- `$ k( y2 {$ o
di "cannot find minp"
7 i8 C- {) E" ~( D8 P
) w" T6 e6 K3 p4 S8 { j restore
! r. u/ O# V( j2 M" v9 | sum dx240, n9 `( _" p' O$ T
local tempminp=r(mean)+ S. r) z7 f$ W' K0 W! I6 Q+ y
$ S# _* [' K* h& }' A8 E( O1 g }
4 ~# \8 e) Z% q- r0 o }' H: J( X1 C) g; f
else { ~2 R) g- J% O# w
+ s* m* r2 W! [# f8 X% `+ v keep if ddy240<=r(min)/ t5 l- X% U# |3 F
+ X: a' b8 J8 W0 B) o sum dx240
1 G; Z! B \$ W
* {/ a# u) f1 M0 t local tempminp=r(min)
4 S. K4 ~2 }2 y- H4 e3 G+ N0 d restore 2 \ j4 b. E `8 G/ Q4 @1 P) a
}5 E- X3 c% n5 ]* n5 |
3 O3 N) K8 O1 E$ Q }! _/ ~4 A8 P& `0 _- s
# G* E5 t! L0 o+ g6 w% J# @! [" i
# O7 X6 o8 l3 ~3 r, @ gen minp=`tempminp' in 1
" P8 P( b+ J9 R) g8 N8 A: X *240 minp
- u, r- V/ [! w: D3 P: Q3 U
: R6 ?6 f( m7 A+ z
1 ^8 g* t3 [/ s: ?
- Q6 a$ i( [/ X- B) h preserve
$ G( q6 P9 l. P3 @3 x9 S 4 y$ \6 K0 i* ~* g& w F, c* @
sum v5 [aw =avol]
# z2 L3 U2 d- m! P" P" V ' E" m# n4 H& d9 E; V8 Z5 J8 w
keep if dx240>r(mean) d: l9 m# ~% m" z$ P6 w% @, b# A _
0 |% S# p# i' M6 U$ j9 N" L sum ddy240
0 [' b8 |4 {- }$ |0 L# o, Z4 C o$ x" v( D " c# O. n( k/ b
if r(max)>0 {
& E9 g! s* P2 t" E2 ]; N
- ~( \( T0 O. h7 h- h X* ~ keep if ddy240>=0) z5 v6 _9 _# h. o8 E
) h- J5 r: ^- q. q* g count
P4 N; U# `* ]. r2 ^# H
1 l/ d; z! K7 k8 E/ B if r(N)>2 {
$ B* [! T4 J4 O g. X - z5 g6 r$ f0 F8 O0 W7 q
pkexamine dx240 dy240& E! i. W) J; _& ~1 Z! H8 ]; h
( }9 b( b9 I- | local tempmaxp=r(tomc)
3 J6 N; Q) ]. b4 v3 W restore
" E2 F3 [* R8 F0 V+ m4 R- X+ } }
2 R! y; Z1 G: n: \/ i! {8 M
+ @- F% j( o: J4 m, l: E 3 M! c1 U; C* |$ l
else {
% q$ L% G* _" L4 P3 w. ] restore
% j2 j1 @' V! A1 u di "cannot find maxp"0 @* O. a8 |& ~: w
9 ^/ E1 J- E ^/ k" ?
1 _% P1 g" {9 [) C8 ]' e2 B) a* k
sum dx240
% H1 g+ k7 z! K4 M# y, n1 Z local tempmaxp=r(mean)
8 Y" F( e$ P& F: f 9 ~8 S6 _6 a+ Z* S! W3 j( e9 Z
}3 H# }( [0 h0 i
$ n$ F& H8 y' }# _) g
}. b7 d5 q5 a4 E# A! e
6 ^% ?5 h. s' F7 \ d' U0 y
else {
0 y: ?/ y8 K( w+ O! `1 V6 I/ x2 S' X
2 Z" {1 k$ q* Y5 h keep if ddy240>=r(max)
6 f5 J& H0 g- Y- M
4 c4 p7 I) f' a) d2 f# p4 q sum dx240
+ g# J8 X- l2 c8 ~) J " N1 E! n9 D6 g4 k3 w
local tempmaxp=r(max)
9 S/ i6 D1 l/ l- n2 z restore 6 X& ^$ ~, m4 n4 D
}4 h; T0 h+ X, A4 l! x8 o
6 \: k8 y. l1 b' |
4 \$ b+ b3 G. V- o: m$ u " g, G. c8 d+ r+ \! X( F
' D, A* w R7 E
gen maxp=`tempmaxp' in 1
* q9 q2 _0 b) A6 l/ M$ Q) N( u9 c ; M# H" Q$ U! j/ z
*240maxp# L7 c7 r, Q1 ^0 M: Z" `
' ~0 P( z2 h& R7 x0 H
- D# w4 b$ w3 f0 t *-------------ddy240pminp左侧高峰值-----" _) ~5 B8 N& Z" m+ V7 N
; w7 I! Q/ L0 o N# m ~ preserve
9 [ g/ ^. Z3 n3 z5 x # f. Q& b% D) a! {; G2 j9 J
keep if dx240<`tempminp'2 @+ |2 q4 P& O4 Q
$ Z! s2 v, C$ F2 [+ C7 J keep if ddy240>0) O" C0 N0 g* w+ u' s2 q" ^1 k7 Q
/ H4 a h! { m0 C/ b
count
" e( `- m% g3 B0 m. F! Q0 [4 b5 Z p & }3 J1 Y: j' c- C" k* }
if r(N)>2 {9 [9 h% U, n0 Z4 f
3 F1 J2 Z5 b w: }0 `$ S
pkexamine dx240 ddy240$ f( G+ n1 W4 w$ [8 `
' m$ c ^; Y& ]8 g# O- y4 C, B local tempminphddy240=r(tomc)
* S" Z8 J2 ]7 K' L% B restore" J5 X# i. B3 z2 |" v% v
}+ T! o) r5 h( h# T3 e' r, ?- \. c2 Z
# ?0 }6 V% f; r' X V% W
else {) a/ U: r3 M3 g O! H9 J, z
restore
% I! {, G, C. [; v% d7 Q di "cannot find pminphddy240"( G1 t5 U7 X& A
- l# `! J3 m' G$ U: v
+ a0 T- f6 ~) h0 \; ?- X sum dx240
4 E4 L7 [$ d0 k5 q; i* ?& Z+ } local tempminphddy240=r(mean)
. x- L7 \3 d: x6 V/ m: u & H: r& `8 h2 i4 [' k z; O7 n/ y
0 s" o1 j: s: F; K! U [
}# T* ]2 E) ], a% X4 q; X
9 R! o0 S% r7 q0 u9 U U |8 \
# {- I/ h; Y* Q 5 q$ K" F& l2 `4 R/ a
( x. \) O2 a, j$ A
! [8 y3 H+ v5 U. T9 Y& U. H! E" \ 0 w# a+ Q1 K& m7 I7 ^+ Q
gen pminphddy240=`tempminphddy240' in 1
}. _$ @4 ?4 X" ^+ w , G" I' j8 A( K: u
! M, F% O: D9 A* C- O
*-------------ddy240pminp右侧低峰值 -----------------
2 g( h' \3 ~; S. D preserve
* j: E1 A3 m9 ]# _" d W3 U7 K
6 a& [' r f* v4 j% L4 R keep if dx240>`tempminp'+ K( e- f" z$ \5 P% c
) K) n4 e" n0 C9 \ keep if dx240<`tempmaxp'* q0 x# c4 D3 h4 E( _, |
! }2 e. \$ n6 [+ Y4 m keep if ddy240<04 w! P; \+ N2 j# Z( L( G4 O% f9 Q
. E" i! V5 M& w6 u" [ gen temddy240=-ddy240
G" e- d; @* K
6 D. s8 m; o, h M count
+ q8 P+ k4 b6 u9 E6 a0 `
D( _' ]) m5 u- t0 E if r(N)>2 {
) A C* V" V. t; }' r8 M
" L& ]; E% R$ q- A; e/ ]0 w- I pkexamine dx240 temddy240
& H# e- A. Y. ?' a: r% k$ P
! W9 h* d) T* [: Q) ^$ @7 [" ^ local tempminplddy240=r(tomc)
5 r1 V. m/ Y! Q% V restore' Y* ^9 T F3 W. x! y
}8 S5 x2 ]; K/ x& R
1 s! Q% _: [( Q% J else {* ~' L$ V. ]- `
- [% b4 |4 A7 T
di "cannot find pminplddy240"0 `" j1 g+ L- z- X. E5 R
restore2 t0 M$ v' o& J g
7 C1 i( P* B5 T# a sum dx2403 x/ J3 F4 r, ~9 f4 H$ g
local tempminplddy240=r(mean)
. m9 B6 i8 q e
* M3 c1 s0 w, i
6 j1 ?, P! L& H3 v D6 ~( F: l; v. W2 A }
7 z% d* i' m$ w0 K 2 C: m1 @! `( C) e
; s0 X! m' a7 p; G( U7 n+ P8 Q
1 C! }7 ~8 J; m# ]+ |; M 5 B" i/ s7 @1 k( L6 o
; S+ j/ ]0 x! S1 Y9 @, ? gen pminplddy240=`tempminplddy240' in 1( `* ~" [7 Y% T
& T4 ]7 w; B" z, @( T
*-------------ddy240pmaxp左侧高峰值 -------------------
6 f% h* ~, B/ W6 H4 e: Y
* R! P) u# P) o3 l) O; n+ y preserve
/ K; v7 i6 }" K! t/ b; F7 d5 x
, O" w5 D1 V% n: r ]8 B keep if dx240>`tempminp'2 Y: D; ?+ h4 e" e, |) s0 R+ d
" h4 i, Z/ T4 r% `
keep if dx240<`tempmaxp' w/ {* E1 W l6 J6 {
7 r1 V8 h9 g% h p8 \$ o7 T
keep if ddy240>0
( i, u) S, m2 N count
5 B- a+ d5 x- g/ S* ]: D
% ?5 V) {2 Q' m5 F% i5 V if r(N)>2 {
" j4 f$ H9 i; J- n
( `' x6 v1 u9 m9 q4 N pkexamine dx240 ddy240
9 j3 M! e+ d& P; _8 S3 E
3 O* w2 I [* v* o8 A+ m# O, Q local tempmaxphddy240=r(tomc) + V9 h! O6 F0 Y1 }$ {
' q' g7 ? C: D5 V/ q' }
restore4 a( R/ l1 h% H6 A$ h1 w
}. a2 z$ l2 n2 K# k1 T
7 y, l$ f" R9 i! \ else {
4 q+ c% K4 p2 _! S" y6 T/ j0 ?/ G; y
" j3 P7 g2 }. y E$ ]) t1 G9 ^ di "cannot find pmaxphddy240"
, T+ N3 [* n' p; }' s restore
8 t' i J. n6 b$ u5 ^: V2 @; W
$ |% C* ]' H# q& U; r* c% X sum dx240! a5 [$ h! n/ @- r$ q; M# ^
local tempmaxphddy240=r(mean)
8 M" s. f8 J5 ^/ _' }: k ( U \4 _4 R9 C+ g4 G' v$ v
- D5 }: m. ]2 M$ `6 r3 ]: b
}$ L% V% `9 T& |( `8 ~
! ?- w$ k- H4 t5 {
+ n! I5 _, X3 l$ W6 O Z( h" t8 P/ z
8 L6 ]) W' h( \# k" G# `" v7 N, r# U
( ~! T) r# l! N) t. d 2 k; @$ Y8 ^8 e" u
/ G2 J+ c2 W0 K l4 N. C, p7 J; g5 Z4 k
gen pmaxphddy240=`tempmaxphddy240' in 1; u* | Q6 I8 C$ J) h8 o
4 H/ k! N3 z; R8 B! Y4 O ) {# d0 W3 W' V+ I A, Z+ g
*-------------ddy240pmaxp右侧低峰值 -------------------4 A% @ N$ g4 C3 S# a& X6 c
7 l7 N* X; o% _; c. x preserve 4 P! N+ j' @, R! X4 o: {5 R3 [
7 D9 `1 n$ L- b1 Q# g; \! i keep if dx240>`tempmaxp'
7 M/ W4 u8 J0 Y h1 Q & G, v7 a8 v3 \) {3 @
gen temddy240=-ddy240
l3 H% t! o, X) J4 Z5 Q3 [& i 5 W& \% _4 Y9 g9 N* ?3 P
keep if temddy240>0
$ O1 D1 q' k G' c s
/ O9 e0 l, R0 @, U count
; m7 N9 k$ ~5 _( m : [! c9 n% I0 J- f" S3 H5 ]" v# Z N
if r(N)>2 {7 e, `6 V+ i# F, E) {: f4 Q {
( n2 f. e J4 i( i1 o
pkexamine dx240 temddy240- D, ]8 |4 [5 r7 |. c
* [4 G) x% S G3 t/ o
local tempmaxplddy240=r(tomc)
& D1 v- G( J( a+ q restore
2 Y! u8 S0 q! |3 u) B }
5 q4 M! t6 ]& R! @ E w. P; p4 M4 @! v% w
else {
; t: \0 u# z* s& y+ X9 T restore4 v! c: V1 ~0 T4 X6 v! y/ U' ?2 O
di "cannot find pmaxlhddy240"
! Q, k5 w N' Q 0 K$ Q( r; W; U( E( n
) ?" [/ ]" Z7 t" R4 `
sum dx240
, p9 i# ^' d1 Z( V% V local tempmaxplddy240=r(mean) in 1
; h T; ?. V, h9 ?$ z! c 8 q$ Z& u8 g* d
: |: A- e+ f; ^2 G& N }; D4 c" {9 R# L! g d( f9 \ U
`' Z$ b6 Q: n) o' m4 d
( t5 [- r( [- E* R: T, {+ Z/ c* y' T
& ?/ K& Y4 z4 c. @4 D+ O
) y, Z5 g) n' ]- w; M- ~1 ~
8 S. p L$ X: g( g& e3 U3 o0 A& I: } * \: ]8 R' V1 L0 u% s4 ]' {5 ^
gen pmaxplddy240=`tempmaxphddy240' in 1
; w H0 x5 b4 Y8 S1 n" a 6 o) n! l8 Y+ [0 s5 _- }; p6 a
*-------------------------------------
6 [8 q, V- p) v6 A8 ] E( G! d7 q1 Y; d
gen price5d=v5 in 1/20, v1 l1 i+ l y( e* W8 ~; q
6 S! q1 d; l4 w$ s) J9 F2 f. e
gen price5yy=_n in 1/20% H( j, v. Q* s* ?
2 W4 q1 b3 `* k2 h/ T4 ]/ e9 j
gen price5y=price5yy*(dy240max-dy240min)/209 R7 _4 g( ^& G% a7 E$ x
+ R5 \7 |+ ~5 D+ d
*price5y &price5d
! W7 E1 A3 P! @1 a
3 I2 Q# b, e3 X3 b gen priceny=price5y in 1
1 |6 c+ L6 }5 \, C
! T- M- m( `. ` ?; a gen pricen=v5 in 19 Y- W7 T& ], A$ F1 w8 A" Q
) `- j' F+ A5 o( \
; ^ I4 P, z( Z$ }' ^ {
*priceny &pricen7 m' t z' @6 K$ G: Z! }
! ]7 g U" l( _2 q8 s) C ; T4 f. p( p, B* B, ~ }
*-------------------------graph------------------+ i9 E/ l: P3 H" S6 {8 E2 ? e
/ H$ G& F( ?/ `. L; K7 m; s# 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)
( O9 E& B7 l, n* Q' ?
/ B: ~- T7 h h+ S$ K1 ]% M( }5 Q* ---------可选项目----------------------6 m5 A z1 k, f2 X% o5 M, r+ d" U0 e
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
% g0 T- `' E; ?, n$ n}
" ~7 r0 M4 w/ F1 oend
+ j) L a7 X8 }) z& T" {0 B |
|