|
|
maodeng 发表于 2013-1-28 13:13 ![]()
" C9 V0 L) G# {# V. hello 300236- @' I1 \# H8 C c
statement out of context
" P& k& u; R- m( br(119);
1 _& w# I5 s8 r$ J0 z抱歉,最近太忙了
+ `( w! E$ g2 K3 v' }8 _2 ]; l# n) ~1 V# ^/ G2 E
300236 我用下面的程序试过,没问题
2 f% }! Y+ t. A( Z- u
1 o. X( |5 t$ J3 z. m+ Z) e0 D2 h: j你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试
$ b! W# _4 v) |! h0 c6 y& C6 ^
. w" N! j( V6 v1 a$ Wcapture program drop hello
# n1 G( g9 e* L' z5 w* E4 D3 a! k2 a
program hello
- v6 W- J* P6 ^' p3 i9 L) ?/ q. \* n0 `! h2 I7 c/ B2 @5 x
quietly {+ x, t3 o% \7 H V2 I
8 u+ `. R. K8 u# v) {# N
clear# W8 \, b ?* o5 f4 E
8 I5 W7 j) h! U0 f: w2 K# `- vcd D:\stock\test\source. L- {5 \2 j! {& h
1 f1 G+ ?4 `" x* `$ Y) \2 c) linsheet using `1'.txt& {: i5 t$ e% s" H7 E: f
9 }6 J0 U* b0 I9 J
keep if v5>0+ y: S' c; Q) f7 A/ h; u
4 O" I7 ~6 g3 q, T _/ w gen vt=_n
$ i3 V1 p! \+ G# {) C. O5 |0 V7 p' Y, Z ( i/ q- h- c" L" n& Z* |/ Z; X0 S
tsset vt. p& y& M3 U9 @9 C* l) ^- r
+ P4 y6 O9 q( I5 A5 j7 e4 Q2 P* F
gen zf=D1.v5$ b6 G) p' r1 u( {
" w! C( w* j- Y gsort -v1! \5 u7 z# ?0 {9 n
5 q- B0 G5 b9 V4 x; Y# [
gen avol=v7/v5
; b2 W7 W# h% T1 Z . z/ m% Z X U* b
keep if avol>0
4 g! X+ ?, ~1 I7 w , r% U. p( ~1 d. x
drop vt E5 N( H- c- a
/ t' F( e3 t# C, b# ?9 Y! j2 Q8 }
gen vt=_n$ a$ R3 G. t( J$ M" n; V$ p" t8 C
1 l1 Y( t: x2 n0 a1 Q( u4 W tsset vt
* I( Y- J q3 S$ E* x- D4 G, c) w ' z. K" L) |, @% z
sum v5 [aw =avol]
2 ~" N; A; c0 x: ]2 |9 G/ R( ?, m( r- J% k
gen amean=r(mean) in 1
/ g+ }. B9 O2 p9 \/ G ; h x0 k: i) G5 g; w# y1 p
* 总加权平均值 amean+ x2 B2 ~5 C; E$ y8 o2 n
( J3 @: r: s! a b" r + Q1 x8 |+ H' a, E+ N
keep in 1/240, B5 A' f4 P0 x8 D
/ y& o4 x( o4 @' L' W) Z: L: M
sum v5 [aw =avol]
% w* @1 c4 o' ?! Q: d6 {- I# n# i- K* ^
gen mean240=r(mean) in 1
, W$ \7 J) V# S1 \
8 U8 w Q6 a3 w3 V3 Q# T3 ` *240加权平均值 mean240
1 A8 T& |2 g* E2 H# M 7 ^9 f, R2 j G; \4 G% C6 P
set obs 500
+ q2 g& }3 s% d- D% F 4 ]( h+ j% {. Q( Q1 U
kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
. r; m; e/ V/ p b6 i4 ]* @ & w1 g1 n. W: _2 m$ \. V' O
*240 kdensity(dx240 dy240)
/ |9 X/ d+ {8 o: \ V* e4 J ; o- E' C; f4 s0 S, E$ U% S
sum dy240) P9 C+ ^- c3 r' U, \3 y9 m% w
9 W/ Y& @) x }0 k! _% C2 | U gen yxis=r(max) in 1
) G. \- \8 \7 r6 n8 `6 W" _! ^
) ^6 Z; u: c9 x& Y3 ] gen yxis2=yxis/2
/ X/ U( z: {) B
1 ]$ I1 } k- A$ M$ P% _ *yxis% H" f) }# f) S* `8 I
! G" [6 _: V, C7 m gen dy240max=r(max): y3 K# J6 d( u' i
4 h$ W/ L8 Q/ `- F6 \6 R gen dy240minp=r(min)
( i; V5 ~* E Z( i' r : l9 W! j, p$ U' b5 m0 H
gen vtt=_n; ?. T6 F. M' ?8 U4 a7 ~ p8 |0 m4 ~
3 A$ O1 s2 l( U/ ]8 S. I tsset vtt
2 Y* f3 {7 P# R N: H; V. l
2 D" ~+ y# n9 _" f gen ddy240=D1.dy240/D1.dx240
7 P3 y8 X+ T4 h % K5 F, X2 h1 h+ v7 l, s
sum ddy240
1 g7 l7 e; Q, y
$ W5 W N% y* o gen ddy240max=r(max)
8 c9 {8 }7 O! x* `2 ^5 r9 j
6 T8 t& e! Y: H. e. ~ gen ddy240min=r(min)# U& c2 B6 G6 ^0 Z2 s
7 X4 O3 N9 ^! ~3 N7 H
gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
( a$ `! O- J# p3 w# l
0 R9 J7 Y3 o9 g- T. H5 a sum ddy240g. C; S3 R) p) K2 i
# U* z( P* {+ j% {. K gen yxis3=r(min) in 1
9 ^ Y* U r" k- M$ S) O; k 1 U- Q/ n. E! ]
gen yxis4=0 in 1$ E6 t/ I9 a K m4 W4 _
~( P3 f2 j8 `8 F; ~ *ddy240g " Q4 p* q1 a5 j# k9 ]7 t
8 |' w! x$ J' W$ s+ c: L0 U + z# D4 w t, l+ C5 v p# A H
preserve
: b# r% h* m! B& x- g- t
9 I/ v& L! r# b6 H# K3 H sum v5 [aw =avol]
% A& o+ s8 |0 Z5 N7 l
) v' T1 }3 C" i keep if dx240<r(mean)2 l( M& i; O) c' K* d
& D' u8 z) ` k* a sum ddy240' x/ J$ b2 D7 T# v ~+ t# g
8 W5 @$ e3 }: L4 f, ~
if r(min)<0 {
% D8 B; q/ A' e: l Y * b/ p7 m6 i8 Y) C6 W7 c% ]! ~* k
keep if ddy240<=0
3 F* S+ L' @* n/ p6 r
& r; e3 S0 s8 q/ P! \: ~ count
+ T# f8 O) n" r7 Y0 R' J# o- U
O& ?! o( r/ J3 I# t( V9 q if r(N)>2 {
# Y& p) Z5 Y) l
& n3 `# A7 W h8 l& s pkexamine dx240 dy240 H: [7 x" r; U* v% E% I. z3 Q2 i; A
, Y6 ], F/ b! X
local tempminp=r(tomc)
/ N, M" s7 w& e* a8 ` restore
j2 W4 z+ Y2 [' N/ z }5 t3 r4 @' K5 R" O' u
r+ Z! [: e+ f) D( t else {2 Z3 P# O8 L2 C9 N w' @
' q/ g8 T$ X$ v6 t2 u# \ di "cannot find minp"" D$ n; o4 s; U9 [
1 P# U" h2 p: q, g$ ]. o3 A) G restore $ ~4 u% |. h5 v# f1 W1 w( l$ R
sum dx2405 m3 r. i( P# i7 R; Z' E
local tempminp=r(mean)
9 G7 s4 G Z7 P5 N, M( u% d
& W' z# D3 @) u! f; k& n) t3 X }5 S; L7 @( P: [3 M
}% ?% L% v/ u7 O% F6 x
else {
) [8 j" Z5 N- Y, X6 V) z. R8 a( \ 3 |, s/ p4 m$ o7 q9 s
keep if ddy240<=r(min)
# V B) w. s3 z) s 4 m" r- Z3 d- Q* T5 r; S& N8 i
sum dx240* R$ S8 I8 K5 @$ d0 w9 p! R1 R& X
9 A* |5 p% V; t6 t7 A0 M4 F local tempminp=r(min)' B& q4 Q4 E- k: i
restore ! p: E' ?( ~' i
}
8 t7 _( O, b: k r* g4 S' E% M+ b, G0 }. d5 w( l8 O
: I9 j6 ?2 _8 K% R, g+ u! ^3 M8 a
4 h& C8 O X/ s9 c
gen minp=`tempminp' in 17 C6 R# y6 X$ ~: v( @( G) I
*240 minp
" o- o" ^. t1 b" C8 c
5 X# i& J. \5 L4 i% J! C* O
" n/ y; j7 j. k5 p & l; ~" [ Z/ b# G! W
preserve
; c6 N1 N7 F( `; }
. |( F, x: B% c) k% D2 x sum v5 [aw =avol]4 Q" j$ c4 r* D( X, |% W
. A) \! h, I" p' q" a6 c
keep if dx240>r(mean)
9 q8 E) e! @* ~$ [- _9 F $ s. E7 T/ W! C
sum ddy2401 s" m$ ?' N( M5 z ?
* P( }- y5 S9 B if r(max)>0 {. Y# H7 J8 t& ^! q8 ]# @5 e
0 t& w' @ u5 U' t' u5 f
keep if ddy240>=0
* j+ m3 _) x# C; U3 h7 O- A
3 [5 d, n0 z) N# u count
' s$ \& M" z' j& Z/ Y" L: ^& g5 t
% S3 Q% K8 X5 r% l: g if r(N)>2 {# x& ]' ~4 E) d) O2 j7 l; u
7 s0 S1 K" V3 n
pkexamine dx240 dy240
. M0 F* E* p& P) h O6 A# w, z" G 5 Y! U! y, F8 z5 s2 ^( L- V
local tempmaxp=r(tomc)
& G% m. | g) ?$ I+ m: \ restore & g E2 E! ?! a9 b! F! n$ I! G% ^3 k/ G
}
$ V' [/ u5 |; E8 Y" G
! O8 O2 |1 J$ b2 K+ F& z2 [- W3 n; Q
9 G/ K5 E4 e2 F1 M else {2 d9 i" w8 c) }, J2 @0 {2 X) \
restore 3 U7 u2 ?- L$ z
di "cannot find maxp"; f2 A5 ^8 n, |3 W- T7 N
" _; K" v% D8 d0 y, Z1 ^
# O- T" H8 z% O3 y2 w sum dx240
) E" P" z" n% T0 B4 o3 a9 E. r; w local tempmaxp=r(mean)
% L! K) w5 \3 j3 S+ \7 z8 A # g* G* M$ d9 c/ t" u: P8 S
}
+ ]( T1 f$ B' Q2 l2 j( x' Z" P1 R ! ~/ p, S V9 [, M0 }1 i. h& F# A
}
- E! B' R0 ^( d# z5 Z& J7 S, P 6 |# F: ~" u8 F: A
else {- Q8 F& q( o$ U8 r1 R$ ~$ D
[' C: m/ S+ B# Y7 P& D keep if ddy240>=r(max)( [5 M% U( W" V x
) s" c; R. p6 A! A, i
sum dx240: X1 x" h* c5 f3 _" a" n
* L+ |) g. p; U: l
local tempmaxp=r(max) 7 ` F9 D A& I9 G+ M
restore
. G; y7 {. v; P6 G& s! {/ \( R* Y }2 J! u6 J) g0 A: ~$ b# t! P
* J0 K& w) Z2 s4 ~# y+ r1 G i0 c' y7 y5 a
5 h, y" V% {. q
; j0 D. h$ U ^" m9 y+ H
gen maxp=`tempmaxp' in 16 Q6 E5 O# K( W2 C2 q
7 h" Q; e$ ]7 J0 @
*240maxp: t l% o' u3 A0 F! E6 e( S! U
! v3 ^4 m) r$ s; S" W* \+ d
2 M# M. ?; E0 p- F7 j5 j *-------------ddy240pminp左侧高峰值-----$ t9 Q- j& u( s
; l( S6 M0 e! d+ F$ U
preserve
4 \# j8 b5 z5 M- `3 p( i; j4 t6 \ ; y' Y. `+ d/ m; h+ i
keep if dx240<`tempminp'* Z" [1 o7 h7 d* B$ J/ o) g$ X
! q6 n* I% v" |$ R* m, c, B- S
keep if ddy240>0; I1 P! t. H7 K
. F" U9 i T" c' R count
- C2 z" F6 q2 R; _# f: A
! |4 [& }& s* z+ Z% B if r(N)>2 {) f/ A J9 R" O. f# \
- n! @' @& r3 R" _
pkexamine dx240 ddy240! y8 Y# ^* \; S- Z9 n
2 ^+ d& g3 X: S! F
local tempminphddy240=r(tomc) : O* W/ J; W6 v5 Q( B! N- i0 o
restore
5 e- y& M2 V: o$ V! } }
- w g3 n9 L0 L. D4 e( b
+ e+ G: ~, \7 Q8 K% @8 h else {2 ?2 B* g# i* w& {
restore
" t0 m- b8 f' f+ F) } di "cannot find pminphddy240"- [8 |3 _; M' J0 @8 a
3 w( r; g J! u 7 z i+ Q% e X" x" ]& A
sum dx2407 H8 o+ G' v9 f) e, _% [8 X
local tempminphddy240=r(mean)
( Y9 t9 @$ }: }' \3 m* U% L
! n6 Q0 [8 a: Y. p" w+ C# U m5 m ; H8 g1 u9 W# F9 c0 X; Y
}
% I7 c# h) i9 o
( P; r- q# W; T/ f; x* s7 a / \2 ~5 o' C; x- ~3 s' l
/ O* }+ ]5 |& y/ v2 H8 e
% p' V" W5 @1 g. P+ h) S 0 S2 f7 P7 C9 A- b9 `4 h; d8 U% S
8 U$ V% ?( X9 B6 Z+ e
gen pminphddy240=`tempminphddy240' in 12 T' r6 x# Q3 D8 U
: I# z p+ w( c6 }- l3 S
. {- j' e. W8 m/ a *-------------ddy240pminp右侧低峰值 -----------------7 Z' _9 l ^4 B
preserve 3 `3 l6 @: F$ c8 |
8 |# T! z# m5 m4 Y3 m% u5 x
keep if dx240>`tempminp'
% h* q) r" G& r- C% Z$ t# g) ` 7 z0 ^( Q1 ?4 M# w8 |* _5 m) _
keep if dx240<`tempmaxp', U1 E2 @" s0 [3 M: @4 }9 r+ E
. ]; V: _) Q& Z& m2 r keep if ddy240<09 a5 Y U: C; ~
4 t) @& |# S' O; s( J( I. x
gen temddy240=-ddy2408 D Z; R2 _; k
# C! Z c' o+ b, z4 N" }; [
count
# I& |' g0 W) H/ P# W6 e' N . o3 e: n$ W$ k4 W! i, F
if r(N)>2 {
5 P; W& W1 I$ V& f: _4 |2 L + x" C7 {) Q5 S5 p1 T
pkexamine dx240 temddy240
1 @; [, l7 @, s D2 O, K0 A+ H* ?
* e' J Y% `0 k& l- z. v9 v local tempminplddy240=r(tomc)
% @/ m) C4 I: b2 S0 [ restore
2 p4 j' o8 `! o% }2 F" U7 i% N }
% E) E' l( h0 r
+ W; w, C6 F+ Z$ B else {$ R3 H# f7 b& \5 X/ K
9 M: c8 m* d6 Y2 o* ~- Q& t di "cannot find pminplddy240"
; s0 H( {4 g1 v( ^0 K, M- f restore: X2 A( J8 Z- n) s# L3 ^1 q
9 i: `; o& Y2 m
sum dx2408 N7 h% _. F; Z1 P S3 d/ T! n
local tempminplddy240=r(mean)7 Z( S. ]) {, Y! a+ M
' U' m4 _* n" S# g0 k1 r; S
$ I- F+ S( k& Q Q8 d3 R( V }
; }# @. Y3 ~+ @( ?9 a+ a , ]. l# J* Q$ _3 b b3 R" }
% t0 o* y5 Q% [6 n" ?
) }$ W0 M3 P8 ^! K: C
; t4 {. W" |; ~. X2 Y
6 a5 i/ Z' g: _: }8 s) ` gen pminplddy240=`tempminplddy240' in 12 i. a1 T6 q4 F: @) R |3 h
- z. d3 q# o. \, Z *-------------ddy240pmaxp左侧高峰值 -------------------$ Y: G, f. w' y8 r; x4 l
- b+ I. ?% E) ]6 S6 S. O
preserve $ g1 c! P2 P; w) r" h( j8 a& ~! i' F
6 Y2 M1 T, h) V% @! U( r
keep if dx240>`tempminp'6 g# C$ z1 ?4 R4 j, {7 F7 p5 v4 V) |
2 j$ m1 J u. _
keep if dx240<`tempmaxp'
" p- w2 Y0 y% `' }# E3 M
9 M; k! X9 H# G* X6 V, ^ keep if ddy240>0
0 W/ t9 G0 ?' }8 d7 n) ] count
& A( s$ M& X4 F6 s1 M* v, q, E
, v! b( c/ o' q: U3 {" v/ `6 [ if r(N)>2 {3 A& b) _+ L. `/ b
9 O+ u4 y; O, Q% s3 d: Q
pkexamine dx240 ddy240
3 o6 L: x0 p. @. N" o! r/ }) a
- v3 H p Y, I local tempmaxphddy240=r(tomc) & g6 M* x1 W. ?
6 l2 `& A3 q; @ Q* ? restore
' e/ X. c" c3 R" l5 o/ X; p& ] }
2 \3 ?5 @# L+ Z [7 S" x9 S4 F
else {# k$ X7 x# f% [* c9 D2 U
) d. n5 |7 _' y; q* {
di "cannot find pmaxphddy240"# r0 F( u' X7 T4 [
restore
# H, R6 w1 h! X B1 l1 v
& U6 m* I0 F& D0 C W! r+ o/ f' y sum dx240
4 c- e- q/ J/ @+ n9 B local tempmaxphddy240=r(mean)
9 i( h& t6 z8 m . v5 u% } J8 I) k9 Y
5 W+ {5 w, y) C3 L, l
}& b5 N) Y, G/ C. w. ^; X4 |
! |4 r) f5 V6 _ B/ m" c& m& i! h1 g
# x6 F) a" A% U
1 v/ o+ N. Y3 d; w. r' i
; V* d% c x2 X! U& x& B8 p/ g' o
! k! U: d% Q2 W 1 h; C" y4 S7 t- w7 f N9 M
gen pmaxphddy240=`tempmaxphddy240' in 1
4 s4 ^+ C; R6 \% r
5 [) J, ~' D; @. W' j / Y7 `( u' m& a, p) o$ y
*-------------ddy240pmaxp右侧低峰值 -------------------
3 w. n2 w8 |' ?. P5 g4 L2 o1 n
9 J9 U. q" u* q2 I! f preserve ) R9 l$ z; F, K5 d
7 p! N- ]3 N' \( d keep if dx240>`tempmaxp'$ N) n+ x( s* I" \; g" T
: I- T: f- b& d gen temddy240=-ddy2406 J7 ^% @0 ^% {. {. }; z3 n
7 l4 }) V2 L F; x* u9 r5 p keep if temddy240>0
1 t/ c9 a" h5 M# R" s5 ~ & d8 e( k! p; F7 k. g. ]
count
! U [" l* k+ y' j) t
' O' k$ j3 c. L( G- F3 n! P/ a* f if r(N)>2 {
. `) {' t( z; x" }1 r4 n / @2 d4 {# l/ Q( s {5 ~
pkexamine dx240 temddy240
& O% ?3 f0 h+ c2 G7 {0 C% R5 R9 ]: S
) e( Y1 _' K- S+ l x4 y: M local tempmaxplddy240=r(tomc) . r F, f' _. q B5 p
restore
& l* l+ K/ m7 o }
9 G. r/ _% S; ]
" A" d5 }, V$ @+ V g: N9 X else {
6 d" t3 `, b, t3 [7 D restore: z" O( Z5 p" V5 t% w, S3 a
di "cannot find pmaxlhddy240"
; C2 ]# ^+ ?3 U) d7 L+ e4 \+ c
! P: l) d. M- b# D + l2 H% _* {3 R+ O% X
sum dx240
: W5 D6 G/ G- e local tempmaxplddy240=r(mean) in 1+ S% U6 `4 x! [- w I, f$ u
! q4 K+ u p# l# q( N+ e ! k, }$ X. C: ?+ D
}2 ^& o( K4 W% \" i! R( a% i! j
1 E+ R9 k# t$ A* g
: I' Z! T$ Q0 f% V
2 p( }) [4 n: H+ A7 f
- m' x2 ?& E2 K/ T& \) l7 n% r, q7 H ( O8 ?; O. P6 b" s. ~% A7 T
* o. c8 |4 w8 I. |9 }: ?( l gen pmaxplddy240=`tempmaxphddy240' in 1
- { k( }' I8 X1 U6 B1 c
. _/ d" X, c w *-------------------------------------4 ]8 p/ f+ A: g: i7 v g# X
' _ T' n% S, V( T gen price5d=v5 in 1/20
. n+ g& `6 N& F- m 4 S% u' N" R7 z
gen price5yy=_n in 1/20; F4 K: I; M" j6 ^9 _& x6 z
' C# ^) _6 `- ^4 N( G
gen price5y=price5yy*(dy240max-dy240min)/20' A# z9 A- J, H
2 q* ?9 P9 t$ @9 E5 ~) Y
*price5y &price5d/ S! _" v8 G2 x- ^& d9 Z
. e) N5 ^( p- c. s) T! e: i gen priceny=price5y in 1- s# ]1 }6 K! M F0 \5 U* Z8 z
0 ^) }! h; x- a! o$ v+ }9 D
gen pricen=v5 in 19 b f4 _* G, C( C d
5 ^ ~! M, M9 j$ x: I 1 n2 ?5 G" Z+ P6 h
*priceny &pricen
0 b4 e1 [" r. [- Q% S! Q/ F. N 3 n) z) Q& p0 R- r. b1 ~( B
; |+ y9 j8 A; F3 G5 i/ ^
*-------------------------graph------------------
! g$ C# X# k4 S% I 8 W/ w" p6 w4 \
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)
1 H2 N' V- h# Y8 [0 [0 }$ f* |8 ^/ R0 b$ E* @0 N3 C
* ---------可选项目----------------------$ G8 d5 ^5 M9 L* @5 u
*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))1 [; }# }3 Z; c+ s
}" _2 c! @% ~/ F+ \
end; R0 z9 U2 c" X J; e
|
|