|
|
maodeng 发表于 2013-1-28 13:13 1 |" e# x2 s5 J. s" u1 ]
. hello 300236* V0 U3 G6 D* g. g b6 p6 r
statement out of context1 B+ _# G1 D* i* y& m/ a
r(119); 3 [% y" f4 j' R6 Z ^
抱歉,最近太忙了
( k: p# _+ m9 P
. i" `- T5 L8 V300236 我用下面的程序试过,没问题
# o" S( f# J( E6 u) A$ n5 H3 S- `- i: z2 Y5 x& g5 Z& _
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试- S, X! d: Q" @- r# K
5 B% N* h" l* a; u, scapture program drop hello
; [/ S5 D0 w0 \3 {* n E/ Z% v
2 r2 C- ~* Q- z1 y/ i+ }# N4 Wprogram hello
0 J0 A2 Q5 _3 K) _2 K
( d' o9 O' P) v! u9 R( p quietly {
$ X8 D* }. a! u* K6 p! q7 P* ]8 z8 _
clear
) ]- a/ ?$ f( a7 b; |* B
& n Q) k9 |! ucd D:\stock\test\source
5 v3 B, q5 t0 w% x% u: E! H, B
4 J4 q$ x1 K* X' O6 g1 f8 Y3 ainsheet using `1'.txt
3 u+ ~4 Y7 }- G) Z! Q& `, F8 h& ?" m$ h' d
keep if v5>0
0 V4 x! P( U% l8 b$ E2 H+ \
: c* t9 o) n4 e0 g, p! o5 m. r gen vt=_n. e# R0 q: {6 G7 j. d7 P
2 c8 C$ Y1 T& ]
tsset vt/ D# k+ w+ v; L4 E' ]6 w1 w
! ?& z% a6 h2 g
gen zf=D1.v55 j# d. r1 l! N9 G) H# f0 O
6 j% l, n* O* C$ Z; [* g b
gsort -v1
[1 {3 _- H1 C- T8 A; `1 L: z8 h8 a/ z
gen avol=v7/v5$ U$ V& f5 A5 ]/ g' U# O L
7 c* c' V6 w4 ?9 _. H
keep if avol>0# @' ^/ X) D) }; O& F5 {- T" F
1 b% I: @4 Q9 o. u9 ]. G( ~ drop vt
+ U* C5 H. U6 }% ?% O% `1 y" h. @
1 f* O, P4 J. }! l1 Z# s9 {7 ` gen vt=_n W) |! \" }9 `2 a
! {$ a! s8 J+ P' l# L
tsset vt e+ y @% a2 R
- @3 {, `" u: I" v9 p" z# u sum v5 [aw =avol]4 [3 D/ @6 O! m3 O _. W
4 d/ ~ b1 @. N0 V. Y/ Y9 x# H
gen amean=r(mean) in 1
1 D4 F# s& R9 f: I# }# E / f) t# C- S8 ^6 j
* 总加权平均值 amean a7 f8 X" U" O! R# X9 X1 [
: E6 E% c8 ~+ y/ E& p& j/ ~ $ h) A& S4 a' M T. F' e" e7 k% b# w
keep in 1/2400 A) J& M: y. U4 b0 r7 f
9 M0 ^( a- y4 O7 y6 [
sum v5 [aw =avol]9 @ E1 u5 q/ f0 a! v) J5 C0 y& s
( Z& X; m5 z+ c2 _) J) W) b gen mean240=r(mean) in 17 u4 Y* r2 H4 ?
# T. Q4 Z' {. b. p
*240加权平均值 mean2403 Y5 x! b' V8 p+ g2 C
5 V1 Q& [& f) P" B set obs 500
1 j9 O% S* b- M, A. ]
- x8 G2 v5 N' v& C- | kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph1 | R$ b, f: \3 ~ Y& Y
# R& n" F7 d6 D' ]! E, V( j6 h *240 kdensity(dx240 dy240)
/ m @# ]2 q( B9 p
, e& |% y% x ?% g. v7 {8 P0 ? sum dy240
- d( m. B& V% I2 T: [$ H1 z( o ' r1 O& x0 ]! @' ]
gen yxis=r(max) in 1
9 q' O! G) e% y" d# J3 q5 ? ( M0 s6 n# i& Z
gen yxis2=yxis/2) p' H. F, B+ W& A: Q" e! E
2 s2 y& }# b: m& e# Y U& ~ *yxis
- |) H) b. s8 Y! J
- v9 a+ n6 J4 _/ B; d6 ~ gen dy240max=r(max)
- m+ `0 Z( |3 F+ O2 u6 T, D 0 i5 h% z+ A- D5 ~7 O, d' h& i
gen dy240minp=r(min)3 r" z$ x1 _' Y/ K" e- q2 \; R* }
* b$ S6 ? T% f; D% `8 Q7 D2 {" H2 n
gen vtt=_n& h+ w/ j2 J u; y5 Y
6 d0 o4 U! H9 k" ?( s8 r
tsset vtt
! \1 [& a1 P6 k
0 i9 @7 i" D% S* j! J: S3 c' [ gen ddy240=D1.dy240/D1.dx240! x+ n9 T7 D1 u6 G# A
( G$ g ?' A: b% }& g
sum ddy240& e0 F/ y3 A1 f. ?
' X9 G; ^% I, _+ I
gen ddy240max=r(max)9 O: j* ~. B U0 i! n6 Y1 L# r5 L: ]
/ q% U ~* ~ s2 ^* u gen ddy240min=r(min)
3 J- @0 f4 ^" U7 r |6 n/ X+ r
- p9 [; v2 f* {% h1 n# M4 b' z gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)
* q0 w$ b; H u) k % S+ B1 X3 C( @) E
sum ddy240g, x1 T9 n- K" J1 _% {: q4 @' a( U/ a _! O! o
9 W. f6 r" l1 r+ s gen yxis3=r(min) in 1
8 v. |# n& f% M* p& |7 y$ j
) u6 {/ Z# {' P gen yxis4=0 in 1 s& C9 L- h, d5 Z- @
& l" ]' r S( h- G' ~3 t *ddy240g ! z3 t& l$ \; F/ j, T# X7 Q
. N5 [ U$ ~7 i* G4 j( G
4 [& \7 _7 Y& k! g! ^ preserve
) t: Y) }* E8 x 3 `4 |, i; y! S. ?6 s
sum v5 [aw =avol]
% @* M& K4 L. \8 V& K
' S. j+ ^& _: f- f7 M& H keep if dx240<r(mean)
! {% t7 b5 O, q# ]! N & C5 J1 H! h0 r
sum ddy240
* z" g% Z8 Q% r( c- Y
0 K7 l" R, X; t/ U if r(min)<0 {3 Y/ L& D% _2 L% _+ `- ?
! M: Z8 h. E7 y" V3 n
keep if ddy240<=01 y( Q! l+ `' Q1 R8 z& e# x
6 Q/ ~+ ^+ K4 G4 N count
! t* T4 Q/ P$ A8 v ) \8 w0 S. r# a: Z1 ~
if r(N)>2 {8 z# K5 e+ u; M, L
/ W& K' {6 m! e# l pkexamine dx240 dy240
; W+ h! P4 f% u$ t5 _ " [9 \( l4 `2 z# o
local tempminp=r(tomc)" ?/ e. ^; U; f0 `, q7 g
restore
: b$ V7 P7 _+ Z }
( c- C/ q6 K: V6 e+ a- Y9 z ; o* R$ b0 d: { r( [( T
else {
) m1 h! I+ ^0 v* `" w$ b" h: ^ 9 L# e" ?7 ~1 I7 d
di "cannot find minp"7 v. {/ x _/ X
! y8 s5 w2 c: ? F$ S7 |7 P; }
restore 6 M: }) K$ k4 r v, a$ o
sum dx240
; ]. i. `0 C- l8 f- A' O0 o9 O local tempminp=r(mean)
. ?1 o- N2 |) K , a6 m) W$ R* s
}
2 Y/ R+ ]' I9 F0 u }
+ v, X' {2 r S5 z7 n6 F else {" R3 a5 @' [2 v+ _- ^2 V4 u
0 ?% [2 {$ X0 ]0 C keep if ddy240<=r(min)) }+ w- `( N# O
) z% a" P/ J5 z" T) Y% Z3 F3 I sum dx240
! b& r* `2 ^$ j8 W1 X4 { 8 j0 F7 j' Y# g5 V; R( P6 x: W7 I" {! m
local tempminp=r(min)# Z! |8 I3 P6 }& A5 c! J
restore
( g% I0 N2 ]9 S5 Z7 W# ~ }
( E+ @9 j; K( @ G& k6 i% l/ }+ @: z% d/ G/ S
! c; r& G, I- W/ t
+ k( W3 L9 ]# i gen minp=`tempminp' in 1- s1 c1 F; Z. }9 ]
*240 minp
: D% K. A2 C5 ~
6 U5 t9 Y+ S" n) A8 x: v2 a3 r1 ^; Q6 E) R8 I! F3 T: `
+ S# c( W- e+ u2 T preserve
: u9 d$ w% s0 ?& n! h# p
$ ]) j V& ?0 m6 j0 @& }2 ? sum v5 [aw =avol]/ G/ G" `& s2 r* g) i
. I4 O; {: p! s) q. F keep if dx240>r(mean)
0 F1 H) C' o7 q ( a/ r0 i" U; `( E( q
sum ddy240
( ]- Y* H e g2 j7 r' S) P7 M- U & X* R2 e( o& r) B7 i4 f% `
if r(max)>0 {: K7 b1 o! M; n% s/ `
0 a; q3 Z( }/ S* i0 ^7 ]' P
keep if ddy240>=03 \ Z8 a G, k& K' a
: Q8 |% D: p, D count
# O/ R+ C: [! | ; x4 E- I: }7 d6 O7 e8 H6 x1 ^( u
if r(N)>2 {
3 \! e g; o, I6 ]$ p - \0 g J9 R8 \) S; }9 V6 V$ Y; B) q
pkexamine dx240 dy240" g0 W5 |# }+ ]) o7 m s0 E9 Z
& U0 U( _# B; S) o: X+ F local tempmaxp=r(tomc)
2 L1 R1 v0 I V: A restore % y* \( e V' j5 }0 {1 H, |
}
* {. P) n% [! Y- D* D2 L l4 K
$ Q5 A/ I8 S4 @! H! R7 q8 i( @
- e/ l6 W' e6 F1 S' e else {0 g* H, _; ?$ m3 j; v ]0 d+ Y- C
restore % r' K4 W" p6 n
di "cannot find maxp", h. G- V) n* z+ G) E6 }, H
9 Z2 M. f8 ]2 t- i8 m% E 9 v8 B/ R9 p% c( X
sum dx240
+ b# w9 @1 Z$ Z6 B9 F5 \( X local tempmaxp=r(mean)5 D* |+ w- n6 N( h7 d
8 g! P: r# Y9 C6 O8 v% K4 N
}0 G% c% W2 x. b8 ^# ?: ?" e _
; _! k8 F+ B2 T }
; r" V' G5 z1 A/ i" K+ s
5 _6 o3 P) y9 W% L' F else {, I8 u5 H2 n( d. @
1 Z H+ J; p; N! ]$ B
keep if ddy240>=r(max), A4 A) m2 W6 Z8 E
/ b/ O b: S! }1 Z# H0 }; z sum dx240" w* d% V5 P" e( ]. `& `0 U
; u( `2 \6 ^& T local tempmaxp=r(max) # |8 s$ e6 _2 ]
restore
6 m- o8 u; X( Q* S3 q" o' B }
8 [! ?# Y- z( C' g; O8 V
: ]" e( y% ^& Y9 ^9 R* D: U/ _
0 l9 B+ y' X6 h9 u* y+ k- G S9 X# a1 N% i, T
5 {! C$ |4 V9 x \! t' f b gen maxp=`tempmaxp' in 1! d# c( S4 }5 a" ^1 \, p
0 x5 r: R4 A/ ]' K/ O$ p *240maxp; [ E& T$ @( k& U8 ?) p, T
- U0 e6 Y- q4 Q) e: @6 S+ I * G4 z3 R+ R. h2 F" L- m, f4 C
*-------------ddy240pminp左侧高峰值-----
" A6 T6 z, D! N0 l, L
# K9 _1 L8 s% L+ e% c# L8 G# s preserve
! ]. [1 v- M q0 a0 Y' N5 ]" I' _' M % s. Y, D: ~% ^% w% i: `
keep if dx240<`tempminp'. `- U' R9 |6 ]( ?$ w- [2 p
* R4 v+ a U' ?7 ]2 y1 P keep if ddy240>0
0 S6 j1 E* k: N5 [
' i, O t+ N. n: x* F5 Z count
* A2 [+ B* W/ ?4 r5 J- m
+ M& x. W! R0 \# V( w, y if r(N)>2 {% u, R% Y/ K% B: ?# r) J
- m- U& ~! a; ?( R
pkexamine dx240 ddy240
" U# W2 ~: G% \! z0 f
& z" Y3 D! F4 ^& ]& K5 m5 G9 F P( M+ H local tempminphddy240=r(tomc) 5 z: N# T( v& F( u( Q& R. Y3 N
restore
3 p2 k; W, t! q/ i9 ~6 U( m }* x2 c, Z& y0 a% B
8 q* d+ J+ R5 v
else {0 K; \4 B" O- }( g+ t+ Z/ ^3 b
restore
& t% l7 J" G8 A& x# p$ z$ P9 Y, ` di "cannot find pminphddy240"
) e/ j b9 V- S% E2 W/ M# A" |9 t 0 ]8 T4 n2 O; f* W/ o1 C- a2 \4 O
$ s! J1 M3 @3 g# z6 ~8 z sum dx240
0 @% j% }( f0 G5 J2 ^ local tempminphddy240=r(mean)
9 j8 N0 p; f: U$ H W- A2 u* m
6 x0 J+ N* ^2 R! G% U9 Q " M* h5 m" y( d" q% }& ^$ _& v
}9 r, t( j* l3 s* y( h' P, M
; {; H9 f! o) `! |) Z! p
) _9 p5 M) C+ k9 q) V' R, x, E; Z a8 z* a [9 h. [9 M. d4 |4 O
+ Y) C5 k( L' ?- Z! H 8 P0 D. A, m H+ j
x& E' n- T8 b' o* H! M gen pminphddy240=`tempminphddy240' in 1
% V2 A2 [, G0 n2 B
. B6 D/ Y9 T9 X+ R5 o9 W" q3 k 8 s) U& {: H* O7 r- E
*-------------ddy240pminp右侧低峰值 -----------------1 e6 S+ j9 H- k, _% |8 K
preserve : K/ t$ f4 _( J) c- f% C; ^1 }
) q* b! B' {: V5 N: L+ E
keep if dx240>`tempminp'5 w J7 y# h3 L
2 `; W& E ]) n3 _
keep if dx240<`tempmaxp'. i4 f: j* i6 i3 ]5 ?8 m( O3 N8 X
8 {/ |' B, B# v; i( Z) b+ b
keep if ddy240<0
7 b3 ?* m: C1 P' @ # R5 D |4 r' s
gen temddy240=-ddy240
( h q: ?; p1 y 5 T3 A* ~# O' B; R0 @
count' b0 p) W# b4 N. U0 v
) Z" ?' j* E( t, ^ if r(N)>2 {" b$ I y: [- @. a9 Y- [8 H
# S+ @, G5 w2 o* m pkexamine dx240 temddy2403 w! { T/ R- B3 O0 R
, S: l" x! I0 @/ N) f0 L+ Z
local tempminplddy240=r(tomc)# e @& p9 {. J' Z( G
restore
' Y! l3 O6 _. q6 j; e }" l8 B' [: h1 p" z9 R+ M
% G5 u5 j9 f- u; k
else {3 ]9 U7 M. E1 O
/ h* k5 ?) H0 b4 a& y( u3 } di "cannot find pminplddy240"
& L5 I% X# d6 _ T; Q0 o- F restore* P' I' N4 ]) _
# A; m; i! }8 C# q! ?" ]: o$ O6 Y
sum dx240" G9 i( q5 ]" e2 D1 V8 Y
local tempminplddy240=r(mean)
1 Z" u" L" m0 ^# k( D! O9 s$ k) _
( @& f+ D3 R! u
: @" T. E1 P6 \) j }
0 Q4 N. x0 j( ] Q1 \8 O
1 ?: w& m- L, a % s. l4 L- V+ H3 A. L5 K$ L" m
$ E, ^3 }* W y: j3 }3 _
r: n" M& h8 F) f! O' j* H
; i3 t2 t) f" O5 f+ W0 ^4 D1 ] gen pminplddy240=`tempminplddy240' in 1
7 [! T( w# l1 Q/ \ 7 E- r* I2 H+ e' K" m( F% ]
*-------------ddy240pmaxp左侧高峰值 -------------------+ r. c: D- ]% w6 c* o( H
: g9 s' u# L8 s
preserve
/ y: v @8 R0 t S! [/ G. H( o' S ! j3 X: w$ S# R2 k8 l+ ^
keep if dx240>`tempminp'2 X0 {" s3 u: e& H4 v9 b1 ~" k4 x
5 T$ Y! ?/ ?* @' Z) H) |
keep if dx240<`tempmaxp'9 Z2 K3 i, j6 `5 {) q5 v0 Q" ?
# S3 N9 ?$ n% N. {- I6 U, X
keep if ddy240>0: S0 {! a/ n ]( N2 W
count5 x# _+ k. L; I8 K5 ?+ _/ [, Z5 E2 [
1 P- H0 l9 Y7 k3 `/ Q if r(N)>2 {
; u5 W# G" @/ m8 {- |# l + P1 h3 j& S" S% j2 f
pkexamine dx240 ddy240
2 B0 b2 @6 y I# D ) ~2 T H/ q) N3 r6 s' g
local tempmaxphddy240=r(tomc)
/ D/ U* F$ W6 _; c3 m$ P- ?& V' k : v% {9 Y0 o, z1 ?, J( c
restore+ i& ]! |+ x6 K) G
}) i" L6 {; W5 E5 Z; s! y% |5 m
1 ?4 m+ g4 _1 f% o8 l5 z% K else {
J% U; N# n i/ [6 d5 L; I o) X' m& D% n5 B7 Y% m y
di "cannot find pmaxphddy240"* ?, t0 N Z- ?3 [) i& X' E" q
restore
: E* f% |" T7 x5 B' g; M/ k 7 n$ Z; @# |8 J& s8 r7 {! a/ s
sum dx2401 {$ y# I- r( A" M) c* t; v: g
local tempmaxphddy240=r(mean) 6 e, \6 \& F( }
# b* Y2 i# }0 @
; C) l3 y& P' N! Q! g9 U }
: r' g1 ?' s8 a6 Q" I S) S % a" I/ _6 b% O# b3 T, Z
3 y! `- ^0 F* C5 d
/ J4 `& d' H3 T7 e 1 P2 m# D7 O5 F/ p
+ d0 H' c# ~5 X) G# _: y
- q W# i3 r; ]: G+ `- Z l7 \! G
gen pmaxphddy240=`tempmaxphddy240' in 1
" v5 W& p% p; }3 { ( r/ E5 a" Y$ b0 F$ M1 ^5 E5 w/ u
, Y! I) |! @9 c7 Z+ ?" p. b *-------------ddy240pmaxp右侧低峰值 -------------------( K H; c- R, s, c1 F
W. Z/ X- s) h preserve - w; c6 I$ r7 ]& Y H' K5 V- X; g
9 X& f; d" Q# U1 U; g% _9 Z; m
keep if dx240>`tempmaxp'
+ h e3 k( v3 J: M: _% n' l1 P 7 H0 Q4 B1 n7 x, D
gen temddy240=-ddy240
) f1 x; N% S8 a4 l1 a
7 M7 H0 R: j- g3 _: s% h5 X; s keep if temddy240>0
0 n$ J, I/ k$ i8 y, _ % J$ L6 `( ]+ x. p' z
count" y# g4 g4 O$ E) {. d9 n8 i! Z7 Z
2 h6 n6 _3 V1 M7 h/ d+ ~
if r(N)>2 {$ p0 r+ I' r2 h* ?
9 X0 G9 E* y9 @/ T$ F- K
pkexamine dx240 temddy240
5 x! Q; }4 u8 Z; O1 o% n: P; P : J" i/ U3 k8 o, E
local tempmaxplddy240=r(tomc)
# z6 R3 A9 l# B7 I4 Y' W restore- I: ?# E& L, B* H, m
}1 O5 V* x: f2 ?9 A' l. ?$ }. B
8 H5 Z' ~. {! M1 u6 n* Y
else {
: ]+ P2 d" u) m' ~ restore! Z' Q& q* O7 f/ R6 e9 @* F% I1 Y9 C
di "cannot find pmaxlhddy240"
. L- x0 n$ W: U, p9 [, M9 X 9 P( \7 ?# ]6 e
: ~$ f0 Y" g& n: A+ w sum dx240
# N' {5 u3 j8 e; G- L# f: }9 P/ u local tempmaxplddy240=r(mean) in 1
S2 ]7 \! ~" m: J2 H- h
: l! F" B/ f7 m4 e/ m0 t 6 p& Z- A& U/ D* I) B
}* N& O' m1 ?! j" R. H/ R8 I
- Q' y" k9 F- T0 E
* |/ _/ X0 j$ S/ D' ?" Y. | + o2 w/ K9 ^; z5 `5 B
! ~% x& U, ~6 `8 V# b! ^ N
* ?6 [( H: n5 d8 c0 ^
* d2 I& m9 D( R6 t9 ~ gen pmaxplddy240=`tempmaxphddy240' in 1
3 Q+ X" @7 O5 \4 |
2 W% o: ?! \& b8 ]$ r0 Y *-------------------------------------
( x( k; t( G9 x" ~/ ]- Z3 }# ^# a
. C8 g) m* F& ~- x3 | gen price5d=v5 in 1/20
5 P( H* r" t0 Q& ^& Z; d1 O* Y
4 l. y$ e* I# }3 D gen price5yy=_n in 1/20
, b/ P7 q$ E! ]# C: k8 O7 E0 m3 y ; }& E4 d' m1 T$ Q
gen price5y=price5yy*(dy240max-dy240min)/204 a7 e2 T" c5 O. v) r
, v( q% j& |5 r$ V
*price5y &price5d
! V! Z8 L$ B5 J ( I$ z4 M5 i: {/ ~% m& p# k
gen priceny=price5y in 1* s/ _) J9 G, h" A& i
6 p( o7 ]2 ]- q# `7 c
gen pricen=v5 in 1. i( p( b3 }) ?
8 h. }) k% v+ t g0 c3 a
" e- f) @; Q6 u; g
*priceny &pricen E( k. j* G9 }% H! s& R6 ?: V
+ v3 d( Q& q; F) _0 n
# u5 w6 G6 }% S1 u/ K) r$ L% I! w *-------------------------graph------------------
& p, M' }% x S3 }* l) i
6 [* n' _/ \4 i- I$ ? 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)
" S/ a2 T1 E) Y, g0 P
+ ^/ T S R0 d X4 t" r* ---------可选项目----------------------
" j6 k o! v9 a0 L6 d*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))' b$ e- m( O! H' i, b
}5 h1 W9 F! F V! Y+ y6 g
end
5 L( i+ P# M; r! Q) P |
|