|
|
maodeng 发表于 2013-1-28 13:13 ![]()
- q$ ^, ~; d" ~" U" w! M. hello 3002368 E$ u+ d- A- i4 x4 A& a
statement out of context
+ q: f! [1 Y9 J' y e' ~r(119); ' d. p& Z# B: n9 M9 \; U
抱歉,最近太忙了
& k O" H( _/ Q6 b5 @. @3 O& w* G, j$ X, Z7 d' q" y' }
300236 我用下面的程序试过,没问题7 [( r1 i8 n5 \! h) z
2 ^' M% y! _9 i' D6 y8 _$ a/ a
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
: n, G& @& w6 L! q' E/ ?) C" t1 Z, r' X5 {! I8 I# |- ?; ]
capture program drop hello
/ w0 Q1 K1 N. k- j A# i, H* K4 L0 k
program hello" |& ?) W9 F' B; ^% e0 M
4 R9 ~. l# M1 M( l' P8 { quietly {6 `3 G$ y$ C: j3 }
/ d+ L; t# O) g8 f1 pclear
* T8 {+ K% L% v8 H6 E7 C5 f
$ e+ F* h* N( V2 v$ m' Zcd D:\stock\test\source2 V9 c2 ~) r: [, n
; W- S5 N8 }# O! u5 J% L
insheet using `1'.txt
0 |, ?- A9 T; u5 L1 c. h+ X' C/ k
. x6 L; X1 h( {9 V& u- D' q keep if v5>0
2 u$ r) O; r6 a: j8 w
6 Y4 a0 d! |6 o0 F gen vt=_n) i/ l7 u8 A0 S Y- ?! R j! ~5 }
8 ]2 }6 m z" v Q" K6 [ tsset vt
" Q- U4 I# c$ z& ?" K. p3 e+ q3 L2 x+ a6 ]( e
gen zf=D1.v5
5 a, }6 f; \* W/ ~
% W3 F3 e# q* l' }- h gsort -v1) o% C' c6 Y8 S
2 t; w9 h0 l# a9 Z5 ]
gen avol=v7/v52 T* X9 _( Q& E
$ u. i5 a, K9 G/ ~' z( Z" C1 | keep if avol>0
. e& e: e; j. O0 s$ ^0 V
: x) X; f- T5 h: ~ drop vt- D$ q& s6 O( @0 k
% @* G# u# A: r u+ [9 ` gen vt=_n
( ?: Z- a: f# f; p" ^* B " |5 z8 u8 }& K; s
tsset vt8 k" Y& K& {9 o5 N3 N1 x
( f/ p3 Z+ G2 K' @# X sum v5 [aw =avol]
! e' @- T- t+ [9 O
; A' ~ C' e' t$ `" f; I- U* B7 v, y7 C gen amean=r(mean) in 1% I) `' j" F" Q6 N) Z
* V' _; L& p% }" g! r * 总加权平均值 amean. e5 L7 M6 {! n* G0 p
) a5 n0 }( t: r5 k* Q$ c i7 v
# \7 k' }2 x2 l' |9 k9 Y3 W keep in 1/240- U G9 s. U5 d# s
* ~7 E( s* C+ d& v1 M
sum v5 [aw =avol]8 p7 ?) l1 {% w; _2 |; S3 V
r& M& ~ f( Q7 C. Y gen mean240=r(mean) in 19 j9 G- p" C- }0 D
1 d7 y: H0 l1 H' u+ o
*240加权平均值 mean240
6 [6 q a0 {9 c* v- M, o- M- H/ p 5 L( G& [# l2 i+ @
set obs 500
F, I- G, `$ z% n4 u3 w9 K: y ( U5 g: Z- w2 E3 I
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
5 f+ w& M6 c6 J. P: [' C( H2 R& p
5 U$ X6 j2 h+ M$ Q *240 kdensity(dx240 dy240)3 `5 @% F; d9 x( F4 i N. @. S/ y
! Z. T& }1 W4 b
sum dy2406 S, k( E4 C P' ?
; a0 ^2 X2 o* u gen yxis=r(max) in 1
1 |8 L' O) V6 [, f2 ` J! o
0 M6 B: Y* X; j9 e" Y gen yxis2=yxis/2
0 [& g# |1 N- m& E/ F( N: X 3 D. y# F3 C1 }- g+ Z7 x
*yxis
" F; r7 p8 Z2 o8 B9 s5 d 7 Y: L% L5 ~! d4 o/ g I) x; { @
gen dy240max=r(max)
/ `' Z& D: T- F2 B, @
* `: `- q/ v4 @ V6 U! J gen dy240minp=r(min) V* F$ J3 ]1 C8 T4 b
! n/ h0 u( H/ G7 S' M gen vtt=_n; B7 S/ E3 i7 C' g
0 F! d- t( j& p* j4 R& C( ~ tsset vtt
9 c/ n' [5 ~$ A7 N4 U- f1 A
7 Y/ t& D( t8 X( Y7 P N% w gen ddy240=D1.dy240/D1.dx240& S& ^0 Y2 K+ A! {$ J; v) Q# r. u
6 _4 y/ e! i. \% S
sum ddy240" I7 K# t7 J1 `
/ N) k, B K4 k6 `* N
gen ddy240max=r(max)2 f7 k5 O4 X r a
7 @6 n' m4 W" P" c& K% m3 U gen ddy240min=r(min)) f. t$ g3 V% ^2 b4 L1 T
4 J5 `9 e; q0 c2 M2 T: T# _
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- {' s8 N4 G2 W% v
& z1 N: K& Z0 l$ ^9 H+ L4 e9 F# {3 m
sum ddy240g& _% o' ]* G, X
* s' a1 i7 w% j, B. G5 E2 O& q gen yxis3=r(min) in 18 {3 O0 H* L' ~- q2 g, E3 u
/ O% d7 ~4 g# i# X+ g gen yxis4=0 in 10 Y; K* b; U7 M% b% c- n
" I- t/ h' G9 F+ L3 J/ c
*ddy240g
1 x; w' e% {: x" T+ v% H8 u( V * z. Y% n3 p5 {$ Z5 ~( Q$ w# R) J
2 n( l+ ?2 P0 ~7 T# [1 T1 Z preserve : T8 j4 ~3 p4 u8 m: H' F$ B# o
$ ?* E, f; T! |* l% W: H) N: z
sum v5 [aw =avol]1 S: z2 ?+ V* U( ~$ T- V; {% s
. z, I C; @/ T- s
keep if dx240<r(mean)
, j. H5 o8 {% w' z3 j8 S8 Q
; o n! ]( g0 |0 ]$ b2 E sum ddy240
0 V+ x2 z5 n; Z7 n4 Z1 i ) {. c7 A7 F% y. h3 V u
if r(min)<0 {- E! ^- T T1 H! {) }
q+ e2 g& J) M; K! s* w keep if ddy240<=0
/ b g4 v6 w( j0 ~
: R, D7 S# u/ L3 ~% ^( X count, x" ]5 _, ~5 J+ U2 l
" U9 [! i8 v$ k( Z8 W' k; P if r(N)>2 {
2 [# ~$ o8 N& c" L- U( A: {. g
! w* r* P6 c; R0 i# L8 {. F pkexamine dx240 dy240
. G) \. F0 ~" u 6 P+ F9 k2 ?! J
local tempminp=r(tomc)
# u8 W2 G) M# ~ restore + M9 k6 o7 s" u' [
}0 ?! o( \! o0 q& `. E+ N- C7 A/ y! ~) R
" o1 I, [: ]: s2 L( x# d else {
$ l/ @/ Y8 o) ~: P" ^$ L
- j8 F- T8 S5 W" u di "cannot find minp"% Y9 ^: `& [2 {2 T) M: l
2 w- ^3 l8 |9 g7 L- h& x restore ; j( l8 J4 F1 X/ P+ w; R' @1 |
sum dx240
" \: A, t$ o, J; P( ? local tempminp=r(mean)
+ |: K. h5 n+ p0 F& H- ?
( ^% \' O6 y1 [6 m0 } }
/ z: p( t( Z% e7 m! o }
$ K5 ]/ W; c: O" C x else {+ j) o+ O, Z, g/ P# s
* s# g3 }. S! J2 k. S" ~: B keep if ddy240<=r(min), W$ e& m2 R9 @* p- x2 I5 X2 }
1 j0 ]6 q# z' @4 Z2 q* ~
sum dx240. H B! z- m* L: R4 r. Y2 y
7 J# R- ?. m$ d, o; k& `% h local tempminp=r(min)
# t/ U8 O0 |7 E! @ restore $ Q% `. V, b/ }6 j/ J
}
2 N4 N0 Z+ G. f$ f
9 c4 F4 E, l6 q* l2 x7 B0 i+ g8 e$ X8 U
- w# G; u5 m' y3 v* q& A* f9 T1 m gen minp=`tempminp' in 1
) T3 e" u3 K T* U3 ^ *240 minp& S. B1 P5 I0 n5 P$ o
0 q& E0 ? c/ p# n; o! {8 L
" T/ Y" q2 d, h, x2 z+ W 9 V& w: ^; E* y* D
preserve
- ?! u! h5 }2 ?/ p8 ^# v* P! d
5 {8 c" J: k' h0 N7 c4 s( J3 j sum v5 [aw =avol]
) G! b R% V8 C4 y; @
/ ?6 j6 J- k$ a& B! m( x6 h keep if dx240>r(mean)
# Z8 ?, b0 t" m1 a / n# ^* d6 {! u1 A% X1 F
sum ddy240% r5 p. t: U+ K( l( V/ x8 m
: I5 L. M5 V9 L) D" E( ? if r(max)>0 {6 M+ x4 a1 R) ]' D+ J) p# J
# G" k$ Z7 C& U keep if ddy240>=0
# z1 g$ I e9 n$ _ 4 J' D# j+ p R' y
count
, T; p5 ?- Y2 p* r% n/ ^
' e1 P1 a0 v+ L/ @; s% L$ X if r(N)>2 {; `5 g! [0 o6 l, v3 j
7 j$ [! {3 {; e' M* E5 |
pkexamine dx240 dy240
; j2 @& n" r+ k) d
. |# o3 G* N2 `; i" u& G8 h local tempmaxp=r(tomc)
' D7 i7 z& B! E restore
) y ]2 X* K1 v; Y# A# D- U }) }* f; n2 _+ }+ @
5 U) g, v9 k$ U) l9 } ; A+ H4 b: N8 k6 k& U. u$ C7 o% f
else {
; b+ R* b k% @( `" q" J& x restore ' `, g& q2 H3 C
di "cannot find maxp"8 T2 q$ u1 Z* I9 I- D4 N& L5 F# f
* Z! {0 N$ e. `2 s
7 \, O+ A: ?2 {( D, D sum dx2408 N' o1 P } C5 U
local tempmaxp=r(mean)9 T: p0 l2 n, _) W( c" i
! y. j9 ~& l- T; C9 P3 ^ }
y7 |0 e0 n3 P 3 F% `9 M: h$ e8 M7 G( i8 D
}
2 ] y5 Y2 q2 @- S8 b , L6 Z) H2 Q5 I
else {
2 c% [8 v0 K/ O+ F: w. W+ G
5 r# O4 J# u6 L+ Q9 `8 U keep if ddy240>=r(max)
& ?' n+ d0 N# c+ {) A5 ?
" ]& m7 R% i1 y2 T8 g sum dx240
) @5 S p. m/ ~' t ' a4 ~9 o, p- g4 ]8 I) m- w
local tempmaxp=r(max) : B4 Z- B8 K+ c, R ?% e" t8 E* a* c
restore
4 W: p- v: \* e( v+ l/ m$ s }
3 u2 ?3 N `! ?0 ^/ R
! n- ]% p9 m0 p3 ]- [
M0 K7 i5 @2 \( p
8 S0 X9 B3 X( S. W
$ z6 N" l( k0 g& x6 \; E( j gen maxp=`tempmaxp' in 1* v& z$ a0 U) s4 O" {0 K
8 } S+ L( J A a" s( ` *240maxp7 b, R( N) k- M8 [; B" j8 ?
) x5 x$ l4 R- ^! m 5 O8 [: ~- Q& X. [5 z
*-------------ddy240pminp左侧高峰值-----* j& a, X% q' j& z
! M+ C0 d- X) T9 G9 k2 j
preserve
6 }" S$ V; m9 W \8 v! j / O) i; V- S- ?
keep if dx240<`tempminp', {4 }2 R5 Z/ K) k) \ x
7 k4 G& m0 w/ q, b, g& u3 W" [
keep if ddy240>0/ H6 y8 P1 Y5 Q9 n$ E* S
* e D) L; q0 B. ]* M } count
& I$ s& t) z& B) w8 S ! O5 Q* S- |5 w# ]1 q0 ?: z
if r(N)>2 {9 c% a8 U; v' A6 T# X4 [, C
: d$ `) D( N; R. D5 `
pkexamine dx240 ddy240. D: w @* V# R K7 V! ?, U, J
* i+ |" P$ [6 c0 u1 |
local tempminphddy240=r(tomc) 7 T0 m+ R% Z( {8 j
restore' b& [, u5 l' H9 H T4 B/ e& Y
}4 {9 h/ Z5 }) I
4 {6 u+ Z2 n$ y6 ^3 A# ~ else {2 ^- S' a1 ~0 }8 s
restore # K) G8 Z0 z4 h& |, w. e4 }
di "cannot find pminphddy240"
3 @; S# _/ `; K) s & O9 k: p" A5 Y* M5 h
, |7 ?9 u4 y! B3 V
sum dx240
! i# z" l+ c; w" ]! }4 ^ local tempminphddy240=r(mean) ; ]* Y. D! |1 G% u9 M/ D. X
$ F) Q% m; X8 i, k. p/ [/ a, V " M, K$ B7 _- A& O% N( X% H
}- g2 B: |9 x8 X
8 I. L6 J1 `# ?2 c4 m) n5 h$ t, ^5 e
- X2 V; T% M/ j, H
s0 x- i p# W( \2 B3 i
# u2 ]/ G( v% f$ A( }. R
- K3 j, ^! Z) U& {4 g
9 ]- s2 ~3 |. _2 h
gen pminphddy240=`tempminphddy240' in 1
0 @. ]5 k$ t! B! I 4 D+ I8 _* s2 B; _
, a+ m3 Y8 v5 v; l6 K *-------------ddy240pminp右侧低峰值 -----------------. t' |: N, g) J: L8 V( I( n0 Q
preserve & ~" B r( {- G5 R
7 c8 r8 M v: S0 c- c; O! x
keep if dx240>`tempminp'
9 j& t" I0 ]) Q( H% _ 7 s6 A4 H+ a( K
keep if dx240<`tempmaxp'. P Q+ L: |" ~5 P8 y
- J, C9 t& v) T% s# z, f keep if ddy240<0
6 P2 ~+ I: m' s* i: q4 R* x/ W : O. j+ V M' L( e* G% k% T
gen temddy240=-ddy2406 X: g5 i( v* }6 ]* J
! }7 x- ~5 _/ [$ j, Y
count
2 z8 X+ J! ?# X( w; W
6 X6 T9 ]1 }- |$ e+ ? if r(N)>2 {. `" S( u) i/ ?
; q# t" ?4 M; [2 S( K) S( a" `
pkexamine dx240 temddy240
# y; i3 n) K7 V; `! |0 n # T7 a- L: i* A4 W1 q4 S" j
local tempminplddy240=r(tomc)
4 r1 R' `5 f5 E restore
, R1 Z4 B/ Y: z- }+ L m6 X: a }
7 I4 H1 n" ~0 L
- ]; ~$ B/ J8 l& c( l2 |4 F& } else {% P7 }+ A+ ]/ x1 S0 P. u0 c E0 D$ v0 ^
/ Q/ D( X+ ?8 D: E. [$ l- } di "cannot find pminplddy240"; a* X$ k9 g) q/ v2 W- M6 @
restore
8 D% k+ l( c& D/ T% E( X3 s" T 8 a- M' N; D/ }2 c1 t8 a+ X
sum dx240, w' u0 R# z4 z$ A7 O# @
local tempminplddy240=r(mean)3 p0 S% b6 p2 e1 I5 @% ~. T1 C9 e& K
O2 M, Q. k0 x" Y, G$ G
4 X0 `) I8 P D P4 k( x2 W4 u }
M4 f) a0 _6 w& F/ }# d [
. L0 c, {7 M& r- D4 i5 E0 s' I * o3 ]0 _) B/ U# N- O& u
4 R, M0 H6 C; I$ _/ u5 H( F
$ r5 P! {; e( i$ R- Q1 ~) t
w/ q6 {! g. {$ ~3 [; }5 R8 V( F3 l gen pminplddy240=`tempminplddy240' in 15 E( ?5 T3 j# Q5 ^$ ^ C& C0 P C5 N; c
8 h5 K9 R* s Y5 s7 t' G* s
*-------------ddy240pmaxp左侧高峰值 -------------------
2 d' x2 o0 S: l5 P
2 L$ O2 l" N7 c% s; R. A5 p preserve 9 H4 S! y6 N8 b' s; V
+ T6 j- t0 N! Y: k
keep if dx240>`tempminp'$ A: R; a9 y* u5 i
% w: m/ o: C! [. w7 f, N/ v' Z) q keep if dx240<`tempmaxp'* n( Z/ g& ]7 D* J% _6 n R* B
8 j) n2 ]8 J6 n# h
keep if ddy240>09 T- d: p; V. \2 U/ ?, |7 h6 Z. @
count+ I$ V C- B. p
: s7 i( a7 O: d+ O( D
if r(N)>2 {
8 V$ s( ?! Z$ W8 v/ f- r0 O$ ~
; ^; p" Y$ o+ A7 x1 z! [8 x4 g% K pkexamine dx240 ddy240
/ M. _3 k2 n* @ % c4 ^$ S5 b) ]: W5 f
local tempmaxphddy240=r(tomc)
1 R" W4 ~3 n* i6 m/ k. h" [! P
4 r: P5 p) v7 s }* z4 O+ |0 w restore
" v) y6 c$ `5 h2 _/ Z3 X7 e4 S }+ W+ E3 s! n* U2 Q- A6 A/ {' M) q
7 q) h, F: ]+ M8 A4 h* Y G r
else {/ |# `1 r. G8 n* O4 q6 @! L, L' ?# \
$ Z1 z- S7 a `% n% L* J7 ]* \
di "cannot find pmaxphddy240"+ T, |4 P% F6 c2 U- l8 ]
restore1 E( u/ D) T( q( {
* B6 r) G5 P: }$ \0 {. }( Q/ Y; j+ |
sum dx240
* A1 ]( x% P3 m6 {6 I, ^ local tempmaxphddy240=r(mean)
/ H) u5 J. o! t
8 ^6 }, Y3 N# _" z7 p8 o J/ P0 E1 { - s5 N$ B1 h2 I+ ]
}' X( N, T. { H F o
; d5 g2 c. v/ d" ?4 t
4 Z7 G% ]' D7 j% z+ y0 {5 n% j0 i# y - g; L6 A: | T" w
: F7 A. [* B3 W/ H8 Y
9 @$ [% E) a. w" t, c* n
: a+ m7 h0 f7 m" \- g! e" g$ b" R gen pmaxphddy240=`tempmaxphddy240' in 15 z; J1 d. Y+ e8 G
! H; C) V/ ~. u4 x
4 Y' ^9 _1 O! M' r& |3 p *-------------ddy240pmaxp右侧低峰值 -------------------, \* ?/ k/ O* ?. ^, _
/ T3 q' d5 _* o8 [; o
preserve 2 h) r* z5 M; Y5 I/ Q8 H" o3 u! I/ f( V
1 |1 p- T3 _/ { A; q3 A7 a* ]8 C keep if dx240>`tempmaxp'
! u! p2 \3 a5 v& f9 T7 J / k5 [- u; q/ ?" m- `' b3 x' N* t
gen temddy240=-ddy240( f" M0 a K7 A+ a8 X) z8 _
7 h7 N( V# B# J# y9 F keep if temddy240>0
$ C9 s( l/ g! Z% V- J( { " U6 b# G$ v2 h1 l) C" ]
count
% x' x( i! J/ d9 j
) S! j- f( y. g8 A7 B& q$ n if r(N)>2 {
1 u- E( u- g. @2 t1 K( B5 e5 l2 m- K% C; U 8 v* R4 U$ v$ D4 T! \
pkexamine dx240 temddy240
9 @- Z! ?5 r- d3 A & p1 A ] k/ j
local tempmaxplddy240=r(tomc)
7 k& A2 e% c) d* @- @, {- Z restore
$ E- i) v" c( A: n- E# Q }# _" Q- [) a5 {
! G" q* p ]5 I3 ? b else {
+ B6 N0 _* c0 Q/ h3 E5 t! h restore' U% x; f7 V8 u' Y
di "cannot find pmaxlhddy240", w# `9 E6 w- J, H- V/ g
' v: J# c8 m5 e# d& S9 Q3 x
R- q7 j4 Y4 j& x3 b8 M/ J) c, w sum dx240
: U: Y; \" T& L, Q& Q7 j" X& ~ local tempmaxplddy240=r(mean) in 10 \& D6 y* y$ r$ X* N& K) a
; Q: G) K) y0 m+ t# m; ^
" i, t7 a- j6 ]2 a0 N }1 c) O* @6 K7 d
% h U0 L; S& V
* Y' Y! Z- a& ~# w* ` 1 z5 ?/ v v. l4 c) L* V8 W
1 I) o" q8 z4 D2 _! b+ ~
% t m( y2 k, _. h6 S4 ]7 R7 f& F
5 t- l% A7 N! J* Q: l; G9 M' q' p gen pmaxplddy240=`tempmaxphddy240' in 1; [5 Z0 g! c+ E) y3 g$ T
6 |" D" D' q7 a* `( a5 ? *-------------------------------------
5 V6 P1 h& f9 e6 J [% ^) W 6 s2 H; Z- E. Y6 T4 i( i' X" ]
gen price5d=v5 in 1/20
+ ~1 X6 v: a1 ~ ( o9 G* z* N0 p! h3 l' B2 A
gen price5yy=_n in 1/20
C b) e. k1 V1 A& Q$ m* N
5 M, [+ K* m8 v# y! G gen price5y=price5yy*(dy240max-dy240min)/20
1 ~6 h. }6 [$ X" H* d. g2 k' F. X * w6 h/ Q/ a) }1 ^: a1 G
*price5y &price5d2 j& M* q5 q% @) i4 Y ^, b
2 r, t- q3 [" o# t% m gen priceny=price5y in 1( l3 m: ?6 N* W' q! l5 X4 N
4 F' `# w3 J _* N j8 T5 q: |
gen pricen=v5 in 1
' `' O% v& n/ o1 v4 ^, ~; I5 E* u! ?4 `
4 g8 f+ T5 `: L/ i: g& S
*priceny &pricen
$ z3 m; ]$ @! R. K
0 `6 I$ k# ~( g1 L
; N! V) u# S- |! n. g0 v* V1 b *-------------------------graph------------------$ t0 M' E0 R% Q# ]7 s. x" {0 O
4 R5 m7 Q$ Y# _- X7 n" s5 r# {
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)
- m2 E, C8 W# L2 Z/ e8 q( [" o# b9 ^6 }( A. w) Z3 f9 r
* ---------可选项目----------------------
5 P" o" _0 x% R9 v9 }- w% u*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))/ L9 U1 Q3 A2 M. Y. W
}3 v( p. z" t" O4 t# }) x
end# @9 c# X% R3 x( G
|
|