设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 29101|回复: 105
打印 上一主题 下一主题

[经济] 一个用stata 计算股票成本的小程序

    [复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2011-8-13 18:03:43 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 awer 于 2011-8-13 20:49 编辑
# k9 ~: T2 [# _. a+ D/ S# [) A
2 @' N( c) I' L5 B2 l
   我是从西西河一直追虎大追到爱坛来的,虎大曾用stata 分析过股票的长期成本和一年的短期成本,但是直接用kdensity命令无法得出筹码峰的具体数值,因此我写了一个小程序来计算股票的筹码峰值、长期平均成本和短期平均成本。下面就给出具体实现方法。
计算之前需要有
1 招商证券系统(通达信其它客户端也行,功能都差不多)
2 Stata软件 (我用的版本是Stata/SE 11.0
然后
1.新建一个文件夹储存股票数据,比如:
e:\stock\source
2. 股票数据导出
a 进入招商证券, 系统-盘后数据下载,更新数据
b快捷键“34”进行数据导出, 在弹出窗口选择
' t- E# p/ r* c* B: c( N
高级导出”,
在高级导出窗口选择日线导出”,
将导出目录选择为你新建的储存股票数据文件夹的目录(e:\stock\source! 切记切记
文件名 XXXXXX.TXT
勾选  数据精确复权
添加品种中选择想要导出的品种
开始导出
3下载 stata, 将本贴附件中的hello. do文件copystata根目录下
Stata中的 Do file editor 打开hello.do 文件, 确保hello.do 文件中 e:\stock\source 和你保存股票数据的文件夹目录一致
现在就可以计算了,以露天煤业(002128)为例
Stata 输入如下命令
do hello
hello 002128) i: `" c9 p2 e, d5 |; I$ Y

- U5 B) |5 b* P# w( f/ g(002128
为你想查询的任意一只股票的代码)
几秒钟之后应该会出现下面一张图

( P( t  b" A' Q9 d+ k$ h  ^
hello.do (5.25 KB, 下载次数: 12295) 其中蓝线为股票上市交易以来的平均成本值(注意!此值没有去掉一级市场发行和国家的0成本)
红线为一年内交易的平均成本值
黑实线和虚线为一年平均成本值附近两个筹码峰的值
黑方框代表的事20内每天股票的收盘价格
红方框代表股票最新收盘价
山寨完毕, 收工!!

评分

参与人数 3爱元 +17 收起 理由
坚持到底 + 6 谢谢分享
常挨揍 + 6 谢谢!有你,爱坛更精彩
万里风中虎 + 5

查看全部评分

该用户从未签到

沙发
 楼主| 发表于 2011-8-13 20:20:36 | 显示全部楼层
这点我也注意到了,所以我用 成交额/复权后的价格  作为成交量 用于权重计算

该用户从未签到

板凳
 楼主| 发表于 2011-10-19 22:03:57 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:49
9 s. ?$ H) k* m能不能帮忙看看:6 T) r7 c9 @  @+ e, Q
8 K  U' b/ K9 V6 j
do hello
1 y, Z# a( m+ ]
你算得哪个股票?

该用户从未签到

地板
 楼主| 发表于 2011-10-20 11:18:45 | 显示全部楼层
沉默的前哨 发表于 2011-10-20 10:32 ' y3 N; ~; P( T5 n2 q
do hello 后变成
+ d7 k; B8 ~  \5 b......
2 `/ Z! H/ r7 X$ J

该用户从未签到

5#
 楼主| 发表于 2011-10-20 13:32:47 | 显示全部楼层
沉默的前哨 发表于 2011-10-19 20:45
/ y1 |/ {5 g+ k1 n为什么老是提示:type mismatch
" U' S3 I" a! R1 [
注意 日期格式要选成  yyyy/mm/dd,要不然时间变量格式不对

该用户从未签到

6#
 楼主| 发表于 2011-10-21 10:05:17 | 显示全部楼层
琴心三叠 发表于 2011-10-20 21:37 5 z; U1 V. B( w/ A! l
谢谢答复  还有一个问题  我导出的文件为何只有当天的数据  而不是历史全部数据呢 ...

# ~6 z: P4 v8 j* G有很多问题是数据不全造成的
$ g: j" F2 O/ i) @- n8 c1 \如果想要全部数据,
( W, W; L% N) P4 C; t系统--盘后数据下载--日线数据--日线和实时行情数据5 k8 h# D2 {4 P; X2 L, D: _

  R! m, e) {! L: v* I把开始时间设成中国股市开盘的那天,下载全部数据/ Y  a4 e9 V. J  x. R
% Y' \: H  o: r
下载完全部数据后,在屏幕上使用快捷键 341 o* }' [" a# A6 L
7 A: F, H% D* J' J5 ]
34--高级导出--: }4 G! d8 D9 k, j

3 R0 t) s5 b8 }2 d然后选中   日线导出;选定导出目录;文件名设为:XXXXXX.TXT;勾选精确复权;不要生成导出头部;分隔格式为tab();日期格式为YYYMMDD,然后选择添加品种9 U3 i& f5 B. c! \5 J4 h

" `& c, Y" B; m) [! y4 G  }我一般都是把所有数据下载到指定目录下,然后进行hello运算
! G) s: g/ V+ Q3 U# m3 m2 ^$ u4 L! B( E5 Q+ g

该用户从未签到

7#
 楼主| 发表于 2012-3-28 18:06:25 | 显示全部楼层
改了一下,这次运算应该没啥问题了; ^! Z# p: A7 O* t, o3 N# t: T

( [' \, Q% N! o+ w$ @# B
. k# b" T; V, I+ Dcapture program drop hello
" z* H4 a- Q' G# [
1 j. y: R' Q7 Lprogram hello
7 Y2 u. f# L( I, N, @" A1 t5 i6 b! B5 d' U2 u% l6 [
quietly {
& D- w+ H+ O3 x3 U: Q& E
* M8 a  j8 n& w+ B& q1 aclear
$ J+ L- _; l3 Q5 l. b; r# ^
% u1 P4 Q2 E& [; U% Z2 s* Ocd e:\finance\stock\20110101\source, T6 C1 i5 g, i3 O, c
0 U- s% N* M& k* P& Y$ s
insheet using `1'.txt
$ i" }5 x+ b2 @! Y+ Q- v7 h" w, o; B
   keep if v5>0. }3 Z, p7 Y2 ~/ E$ w9 D* Y
   
# L+ ^- p! V5 W   gen vt=_n
( a9 b8 P# q7 q& r+ R+ ^1 ~   
  _5 D, A& T+ U2 H$ ?   tsset vt
9 `3 k+ ~. L$ @; Y( d# r2 @
. E1 F3 N6 N5 g+ d3 ~- i   gen zf=D1.v5; j& i1 N- S9 S* Z

" |& o! ~0 R- \7 q1 P, W5 J, R; j   gsort -v1
) S  k: o$ \$ }- r! R( R# S0 y9 K6 N7 i9 d, w3 X# s! \- y- O
   gen avol=v7/v5
; g0 Z: u1 r" ]! F: e3 K" k+ {   2 ?* \# w8 C, p" k/ D. }
   keep if avol>0: V& a# u5 `# U" l
   
7 D8 C, ^* J, t; N( k$ c+ r& d   drop vt+ x3 [' V; L- V, J4 A! T
  , C$ A. r5 T$ p
   gen vt=_n2 b- x% W9 l$ A; }3 g8 D3 u
   
" v2 h: z' ^, v+ O# i   tsset vt
8 l. T" }# A5 q" d   + K9 J9 q  R7 u8 r5 p
    sum v5 [aw =avol]" h1 X* @3 O. W' O  j

7 H3 U/ ?1 u" E3 w  L   gen amean=r(mean) in 1
4 i( |. v- o* K7 F1 y: {   & R  V6 l' a1 Y, s1 `
   * 总加权平均值 amean
* a# u2 }; S) g0 k: W; u0 ^   
, K  D- k) D3 h* a" H' U   
$ n: [+ `8 x/ v7 U' I, s& P3 |) o   keep in 1/2401 }9 [+ J8 X3 F& s" {
/ b) {& U2 }# x* K; \! D
   sum v5 [aw =avol]0 ~! c8 g4 f( S6 m

, `+ h9 |+ p8 A0 j1 n4 k2 A6 x   gen mean240=r(mean) in 1
' B& I5 g/ I% q* t  A; w   : b& a7 b1 }( h: ^
   *240加权平均值 mean2400 z; g6 C3 f4 e* C
   3 r2 m( ~5 U3 C+ Y: ^% y! z
   set obs 500 6 u1 `  ~1 h) e0 y" T
   0 I) p1 P$ |5 |2 ^% ]
   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph
/ ^7 f- l. T. U   1 o, k, q+ P& e6 \" k  M2 l
   *240 kdensity(dx240 dy240)  {' G' r( g' x; h2 G2 s
   7 N8 E, S- h" d: w  |4 G
   sum dy240, N0 p& I" `5 f" E* x6 Q% c
   
4 G9 {8 g, _6 J* R4 S/ |   gen yxis=r(max) in 1; i' S& N& p) s2 m& a6 V- j& U
   
5 r, t; F8 ?. A3 g# `) q, j   gen yxis2=yxis/2
' _6 q- H$ X! `, j8 g# f3 K, _& H. V   
0 k+ B4 r& S# n8 s4 E. ?8 C   *yxis3 }7 m" N3 z+ ~; @- j
   
% N' M$ t( m& @, k4 {% _4 i   gen dy240max=r(max)
' W6 F1 S% \4 n5 h: J' F& l/ w7 ^   
/ w2 @( [; p( F# y; v7 J5 U& d# o   gen dy240minp=r(min)$ P: ?- Y7 ~  \, g

; R3 }3 E: I/ ?    gen vtt=_n
1 h8 Z' y* z8 s* a7 _& W0 y" Z8 W9 c! V3 ^
    tsset vtt; ?( x% y+ q! B7 h: B
& A8 C$ w, e' u4 {4 b
   gen ddy240=D1.dy240/D1.dx240: w( }# l# A6 H/ D: v2 i* Y
   ! J. t9 p& q, y4 n7 e9 k& d+ E
   sum ddy2405 m, U: A5 [8 l
   . M* m1 o: y7 y/ K5 g8 K) A0 {
   gen ddy240max=r(max)* r% h9 u, _" S, b: i* T1 g
   
! U& H( Z6 v/ `7 u- B   gen ddy240min=r(min)
1 g, w; ^7 M* l* f3 K     0 S$ D$ _0 A/ ^4 M
   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)- D8 I: L6 o* [9 E% }
   # c; I! l  [' q" \, A; c
   sum ddy240g
- B6 H5 M9 m6 d/ V% }! Z   6 J8 s9 l3 O& N; B2 l2 ~$ q
   gen yxis3=r(min) in 1
8 C' I1 v/ F6 l7 q; W- p   4 v& N# J2 |. P5 T# t% I
   gen yxis4=0 in 1
% v! \+ k1 A% y  
: n( N' t, u) u  *ddy240g $ v+ x2 J& m4 ^8 ?& P! r
   7 W: G% g0 H8 D0 H4 w' ~
   
7 Z: ^+ ^8 R0 i" a, g  preserve & T, s2 H+ ?. F# l1 o- }
  
. J* ^0 h- @! F; X/ O' s  sum v5 [aw =avol]
7 c$ S! ~, P# M" T  , [6 x7 [. t, N! m6 ]
  keep if dx240<r(mean)" \. e" {; q* g
  , C/ K9 z: Z: k% q# k
  sum ddy240
) R$ |, u: s  d' X5 j: ?" e  3 {: L; S( ^- E/ _
  if r(min)<0 {
3 r6 V) K' \, H! t" u/ T6 V        
" ^5 o& T/ _4 F4 S8 J                keep if ddy240<=0/ V3 z4 C0 P0 L4 t# H/ B
                ) F2 u4 x5 d  r# a/ X7 Z, A1 R* E: G
                count& D2 h; ?( V9 K
               
0 [6 P  w+ t+ s- D                if r(N)>2 {
& W7 B% Q, s/ w4 d" j                 " O1 Q& i% a( I+ O1 t: x. X
                 pkexamine dx240 dy240/ l; R3 I1 L  w
                . Y) x' y8 M# t4 K  [1 }( i
                local tempminp=r(tomc)
( }; `" B1 H* x                restore 6 H$ H1 Z% {' g9 R2 ?
                 }
( ^) q- t7 C( |# A4 M7 j                 
' U* V" k  L% t1 f5 l        else {
5 D2 t5 i# {; R/ w" s3 h. ?, V                $ F% a5 ]6 M7 ^% c0 ?' K' S
                 di "cannot find minp"3 e% _2 G! j7 l5 f! [- ^* p9 S
                 ) X8 x  B' l: R7 h
                restore
3 O% h" E; k3 o4 k! Z- L                 sum dx240* y* b& Q/ y/ Q8 ~, b
                 local tempminp=r(mean)
2 E+ L: X/ g9 S' z8 S7 A                 / J/ a2 b* E+ T2 ?& ~- g7 s
                 }6 @  D* p9 `+ r/ \4 p' k- ^5 j
                }, D$ B! _9 ?  t  f3 F6 [
   else {
3 V1 [0 I: N/ Q3 N+ a- O* n3 \0 O                 2 l1 R: G: n" g) L+ u* ~. r
                 keep if ddy240<=r(min)( d3 q2 v+ [& x. ~* D! L* ?/ R
                 3 I; [# ~  o, ?( z( E: ~) n
                 sum dx2405 B1 Q" q% R6 }* i& k7 P
                 ( N0 X& b- N" s* L1 _6 q! _8 w
                 local tempminp=r(min)* l; _2 A) i7 Y/ }) {
                 restore
# a! d/ G) k, ~0 C' ^5 A2 @& T9 }                 }0 {6 M' [8 M8 x* m1 X
2 N8 \  |; C5 B& k+ k# O
; @* N1 a' ~4 @& j
: W9 c# E& c# ]! y3 h4 g/ w! m; [1 v
   gen minp=`tempminp' in 12 O' t1 @. ^0 R
   *240 minp
0 b% K2 X  X6 g- U/ Z  W: [  Z! l* Z

& R5 F' b5 R8 N4 D1 \   5 y/ X+ T) i8 F
   preserve
4 m* X- ?; S) v- ^6 R   ; X3 g  h, x3 ~- @7 M6 k5 w! Z
   sum v5 [aw =avol]
; @0 j* E7 o0 ]( W3 y$ m, [& v: K   
0 z2 z. S2 I& g( N* l$ B0 a   keep if dx240>r(mean)
4 w4 Q9 U$ N2 [, F4 _) Q7 Y   + ^3 y) D% p5 G& {
   sum ddy240+ q$ z) E2 l* R* _  F, }& z
   ' _: }/ V; Z3 B3 |/ E0 o
   if r(max)>0 {
! B0 v: I. ?2 u9 h1 p               
3 r# U% d. s6 H% i9 f                keep if ddy240>=0
6 t; Q. T5 r7 |4 g8 g( r               
/ p9 Z- o& i) e  P0 t- v) b                count9 y+ H  f7 P9 x
               
8 h) T3 w1 ~2 ]8 f+ k                if r(N)>2 {- Z! i6 |% y* }; r
                 
% p% j, l  J" w: V                 pkexamine dx240 dy240
: N; M4 w8 |4 b3 [- [* H                # N7 W& S( B/ e7 v9 T1 X' C
                local tempmaxp=r(tomc) . u( {+ C$ b5 }2 U0 B
                restore 0 ~; Z/ v3 F* z9 r
                 }# |$ Q; k( C; A' B+ w3 B8 |% L
                 , q4 V5 O4 G& h% a+ r! D
                 
" A/ M9 ^. P! A  Z5 V  [        else {' \# o! }, s, a$ f
                restore
; X+ B/ b4 y& r                 di "cannot find maxp"+ m+ P/ H9 S- \1 }/ d. _) O
               
1 A' ^, |  o, U  a0 E3 {2 @+ P7 a* K               
* c# t8 ?7 H' V  H8 D, C                 sum dx240
1 r1 w* G+ d+ P/ P/ [7 t                 local tempmaxp=r(mean)' f" b/ y- B' S8 d' n
                 8 O) ~  m& b" i. @; j+ m; j7 Y
                 }! Z% K$ F/ {9 @! x6 v4 K; D
                 ( I. ^, F" V. h9 n. h: q: B$ g7 }
                 }% e5 p& ^; P3 ]! B. O$ f- d' o' L
                 8 @! q& ^/ `2 Z$ @) ]
    else {9 f# y% O; @3 t# `9 Y) ^8 r/ ]  q
        $ l4 t* Z3 y2 E: m- Q
           keep if ddy240>=r(max)9 E& s* H) l. z) s& T6 m. a$ w# Y
             u4 H% w8 t" o& H2 `
           sum dx240( H: Z& j$ A4 X: j
           4 N+ w/ S7 b! U
           local tempmaxp=r(max)
$ O8 [( w  }; \8 j/ N+ a" C           restore
) v: u! O: y/ O! h* U           }! o, P9 V7 t% K$ r
       
' O7 @1 b' M8 B9 I) F, W) I" N+ V& L# A$ P9 L
  ) z+ {  K" T3 [  u6 |# i

2 N7 i9 }4 O5 _7 z   gen maxp=`tempmaxp' in 1
1 ~' Q' S# b2 d& }! q+ g; e& @   
- U) ]+ ^3 @- ~. T' Z: U' |   *240maxp0 N; A. N; C4 r' y0 ], H# |( m) L
   ! ^7 e- i/ ]1 m. A1 G
   
" E* _+ A# C, T" ]. J6 R6 a$ y6 }   *-------------ddy240pminp左侧高峰值-----
$ N- ~0 g: z, E   
/ L! i! E+ e5 {  U4 g    preserve 9 c2 f  _9 u, y) e' x) m
   
; f; o# @0 A$ f   keep if dx240<`tempminp'
# |' e) \! O- a: z6 M' R% ~: S   
" p) w, W5 J7 p( l+ R% l   keep if ddy240>0
4 ~+ ]9 b: G7 U/ `0 Y/ Z- S' f   - U# U$ w2 T( S  R6 B  Q& [/ E$ X
   count
# v* u9 j' D( \# K               
$ u* j, D$ R; j% E4 x8 |# T                if r(N)>2 {
9 b' l& S# B0 h3 {! X( J9 I                 
+ X$ O  {/ R; P2 M  w                pkexamine dx240 ddy240
8 r6 G. i* c% p5 L" q" k/ |               
0 \- u. q' S! B+ b; ]                local tempminphddy240=r(tomc) ' N' U5 J$ `- ^9 x* T. h
                restore& E( U7 q' ], w! ~9 A. K
                 }
/ l; ^+ _  ?. R; r) e/ m% ]                 
; l; {1 L3 ~0 E5 x, @9 I7 l9 P        else {
/ b4 u4 r/ G0 F                restore ( V# h4 v& g" o! j, k& {3 c
                 di "cannot find pminphddy240"
! I6 j+ J! R0 ?# x; Q5 o- Z- ?: O                 ) ^  s' q9 a( e
                6 n4 p: T# B  P8 k! m( _3 W( M
                 sum dx240
2 i& d4 D; _$ D/ `# t5 m8 |                 local tempminphddy240=r(mean) 2 z1 T: O8 A5 A
                " o3 }! C0 c+ Q& q9 O1 J, @
                 
- D8 j; d; f7 ^( a$ ^2 ]1 A" c, h                 }
4 T) ?9 {5 I; o                 
* ^7 U' Q  [9 }& t  g1 V   
( _9 u4 K, [2 f4 c) y! @4 J+ a& W   
6 Y& N; u$ i; b   
/ x+ y& w8 f: _1 p7 `; g3 G! {; \6 I, L   * i- Q* Q6 v9 P% Z" f- j& z
   
% A" Z/ d- w$ {  x4 ]. J1 r        gen pminphddy240=`tempminphddy240' in 1. i% ]. s% f5 j8 g0 O: Z
       
4 R8 d! ^( U3 z1 ?; G1 F        1 n4 \( [2 j8 y+ `0 M$ X
        *-------------ddy240pminp右侧低峰值 -----------------8 I, w5 a+ C9 E; R" u
    preserve 3 g2 I+ u! U/ T5 g) r) w
; j4 s* T5 F8 t6 A4 q
   keep if dx240>`tempminp'
  v: K% W! g) q3 T6 a& U   
* r  I3 S& l, F8 u   keep if dx240<`tempmaxp'
4 ?& q( M; q6 H( }1 S4 c   & z( ?) Z8 ?7 I) X
   keep if ddy240<0
9 E7 e/ d' R2 j   2 b; k8 f7 g& _) w6 g9 }4 B
   gen temddy240=-ddy240& t4 e, Q* x/ _: r8 M4 l
   
; x! U. i3 @, a0 B4 I1 J4 a    count1 w+ j: T$ q. Z) b" |/ u" d) Z
                & j. _9 W+ L! F3 V, L3 V2 G8 C5 e
                if r(N)>2 {
: l. l8 y( I1 w: V) \/ l                 & U  T* _* M0 O1 C9 U5 c
                 pkexamine dx240 temddy240
8 e0 L& o% T0 k. i2 \6 W   
' i/ C" ^; l2 M2 G( S9 \  local tempminplddy240=r(tomc)
  L; i1 U1 k. I0 H9 q& }: Q                restore
1 a( @0 T# W" Q% \8 `                 }
+ e4 w5 S+ a" S, {, x! C                 6 y9 v, U5 X/ f% p* c+ T
        else {' h' k9 R( A$ t' Y& P4 n1 ^" c& f
               
8 L' C2 M- I9 X% M% D; w                 di "cannot find pminplddy240"* O" I, ~- @, Q; V3 j' }- c
                restore0 D7 S  G' r% `7 Z
                 
+ Q0 k4 a; j' n                  sum dx240
: n' a; u' ?  h4 s                 local tempminplddy240=r(mean)
( Z' }% e' [5 C$ @& _1 k) ^                 
) y: G# w" x: |                   n8 h- F9 X, H
                 }% X" \% c% s& `
   
* Q0 k2 Z- s  e1 c  [7 s    + O3 f5 Y% u- A% M) S2 J' x5 L+ k
   
" n" K# Y: ?4 x. v! n   
/ Y7 v) Y3 y) @% E: @   3 C* E$ e# ]2 v
        gen pminplddy240=`tempminplddy240' in 1  D8 Y4 Z; N! G! u
        , Z/ D+ T4 ?, |) O9 h0 V6 i3 t: q: P
        *-------------ddy240pmaxp左侧高峰值 -------------------
9 m$ q' A: r2 L% m- ?+ g/ y       
& {2 ?( `) z6 b" z% {0 z9 M         preserve 4 E  G2 V- d+ g3 b' G
   
* W% s0 B3 v* g7 J# s   keep if dx240>`tempminp'& f) R# H9 I6 ^" A
   5 D0 N7 ^! l; F! v, s
   keep if dx240<`tempmaxp'
. V" w0 \/ |8 u! \0 U' M8 a' u9 I   
1 s9 L% e. f; X! g2 q$ k) P   keep if ddy240>0
, e5 H1 Q! E! Q. ~# @   count0 P6 ]6 D1 O+ Z4 q1 T! |
               
; `" V3 r) Z$ R! R4 C                if r(N)>2 {
1 M2 L( Z6 P2 a5 Y                 5 s8 U. A  q& t. j. M% C! }
                 pkexamine dx240 ddy2402 J6 C6 @- o" I3 P1 N  G
   1 a4 L" }, I1 F
   local tempmaxphddy240=r(tomc) : P: x$ Q6 y4 s
   ! q; @+ A% s! Z3 V( z% R
   restore
2 l& @- N' U6 h1 ?                 }$ s8 K2 F7 N; b  I( Q
                 - R* t! k/ X. q4 n+ t
        else {
9 _* s. i* H+ v: x- w, K$ [               
: K3 A: @4 p2 j2 q                 di "cannot find pmaxphddy240"  d' G0 B' B$ V( X) O% @
                 restore) Z$ R. _' W# Y+ L. `
                # q: q8 o: C- Y$ M5 X5 {: y6 y% p
                 sum dx2401 x) r: A! C! ~' z
                 local tempmaxphddy240=r(mean)
: e* y( K1 y& C4 s% _$ V                 6 e3 _* C0 s+ y' B6 W- P6 ~0 }, Z
                 
# E# _, R8 E% A2 D& H7 z0 @                 }9 s8 X  z$ v( _. Z3 m! G
   , W% G. M  F3 W5 y
   
( P) m! D7 N; m* L' D+ f% T- U   
0 t: L' h8 U, ~- F% I8 n& H" S$ m   % V" X8 C- T. v7 V- @* t4 g( P
   
# i) z$ B, N$ r  k' a# w   % R6 x, e, v- Y% R8 H* H/ W
        gen pmaxphddy240=`tempmaxphddy240' in 1
6 {* q) y! P6 w+ X" }& }8 @4 M* a5 a       
8 ]# ~9 P3 K( j" M        6 |+ L3 J/ R* B* c
        *-------------ddy240pmaxp右侧低峰值 -------------------
& _  X9 O# C: p3 _" H: |        # N5 o- l) K5 n  q
         preserve 2 B. o: c. I- s6 x) S  T8 P
  4 k6 ^' }. n0 q
   keep if dx240>`tempmaxp'0 b! E6 P  j0 P3 w2 S1 ~& ~1 i9 `/ w  A
   
1 Z6 N5 e- h( U1 L" X5 {   gen temddy240=-ddy240
9 b* \! n% ?2 A9 i0 \   - `% B8 R( p0 y' k% r
   keep if temddy240>0
4 t5 }, n) w* U9 M1 C) C   
% c! E( h$ g& F   count6 x% ^. l$ t+ q2 ]
               
/ f: J  q) }6 M+ O! b                if r(N)>2 {" }0 M4 g# J0 l6 N5 d
                 / J- B3 f  \. {) _& |; J" r$ g
                pkexamine dx240 temddy240
1 S  e0 [4 ^- @% G0 `   
/ k: ^: s( n& p% k) T$ I( V3 R* z* s   local tempmaxplddy240=r(tomc) 9 A$ \, J9 P. w; g& t; G7 E; K# g$ m
   restore
7 U) C: i, B3 P( @+ w" O% Q                 }
; f7 z0 {, y7 e4 s  i( \$ J4 N                 
# S" \9 `2 p) R$ B9 n+ e9 Y        else {
. }7 p2 J2 A8 d0 r                restore$ U% _; s4 k6 }  A, J; U  L
                 di "cannot find pmaxlhddy240"
7 s9 H0 K, R* N                 
) ^' M; K. j- _4 q/ r- f; U7 d& `               
) p) b: a- E9 A! P3 g7 N                           sum dx240, ?& _8 T1 b$ Y, d: [1 h
                 local tempmaxplddy240=r(mean) in 1
6 H+ g# O7 m9 `               
; |9 O( N' W6 t                 
4 \# n. b. K& x% q7 G9 z* t0 i# y  j                 }+ B( P5 M2 P& s- Q2 W$ M3 {5 v
   
' J' i. A& W" c" n   
/ F+ Q) B# z6 ~6 O' I, r1 k$ m   
- W( U' H, J" j- l+ V& P: j   8 H' [: w) M* ]& J5 I( u9 q7 i
   3 u3 {5 t1 n: M, q* q; G
   3 g% L# t, F. ?
        gen pmaxplddy240=`tempmaxphddy240' in 1
7 u) i+ t2 P/ T7 {6 h6 C        : ]% n+ B* s) f  t
        *-------------------------------------9 T: q1 x2 \6 t* p
   ' ~/ w- t2 K. S# ~8 J- @4 j& K
   gen price5d=v5 in 1/20$ V( c9 I  d, @- i) }
      ) `/ d! g  r( c; q: Q4 z
   gen price5yy=_n in 1/200 {/ t2 h$ {* a2 }7 V+ A+ p  R5 N
   0 h% M" n7 h$ q4 B+ K" o7 a( b
   gen price5y=price5yy*(dy240max-dy240min)/20( v! g+ W" n+ m1 a6 ?3 [3 \2 |
   
/ i; u2 w: e# s$ o* ?9 N   *price5y &price5d! `, o; ~6 }% H( \" C8 f" |& |% R: `
   
' X7 B. d4 Y# t3 z! L; ?   gen priceny=price5y in 1( c& k; m7 J% s) Z$ J- C2 ?; k
   # ]; ~2 Z% F2 ?5 g
   gen pricen=v5 in 1
6 k) y7 }3 H. }9 o6 N, k( L: f0 S4 e  r* \! Z9 @# {
     ( e1 _: v2 e7 `/ c  o$ u: i
   *priceny &pricen6 U2 Y2 I3 ^  A$ z+ ~
   
) _+ T" P  X* Q8 R   
3 o3 n  n1 c' z& m$ z" {   *-------------------------graph------------------$ l4 w3 S( B4 P3 A7 O7 z9 c+ Y
  
" j- p0 X( b; n" m- o0 K" S4 j  tw(line dy240 ddy240g dx240)(spike yxis amean,lc(blue))(spike yxis mean240, lc(red))(spike yxis maxp, lp(-) lc(black))(spike yxis minp, lc(black))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean)) (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)
6 ?0 d. `; j& w+ B# S+ O6 j! z2 ?! r# l! q/ ]4 e
* ---------可选项目----------------------
1 V  p, K" Z# G+ h
$ m4 x$ R' W! y9 ]! Q  {9 Q}$ Z% a- J8 E! F3 D
end" Y6 s3 W& t9 `; S0 F8 j, q

该用户从未签到

8#
 楼主| 发表于 2012-3-29 11:40:51 | 显示全部楼层
旅途愉快 发表于 2012-3-28 23:23
$ D5 R. k8 H. R- F9 w4 j这段代码是重新复制粘贴到hello.do里面的?
: `+ ~4 B2 @; v: _9 x+ r
对的,就是hello里面的那个

该用户从未签到

9#
 楼主| 发表于 2013-2-5 14:40:59 | 显示全部楼层
maodeng 发表于 2013-1-28 13:13
3 M8 q4 f3 Z+ M% p0 q9 ~! M. hello 300236
7 }- q  c: T& _) [1 cstatement out of context9 q8 I  h& C; X* |7 R0 G8 Y7 ~
r(119);
0 j* r# u$ W$ `2 Q- \* z
抱歉,最近太忙了
$ f9 M) Q- T! L5 l# b: h1 o8 k0 X6 T1 z( O: f( Y
300236 我用下面的程序试过,没问题% c1 r8 e, @5 Z+ @+ J
% i( D- n6 x. X7 w7 [* t$ z0 \, l
你把 D:\stock\test\source 改成你导出的数据存放的目录,再试一试  Z9 d, O( |- p; _& t, d

2 e4 `2 {; Z& d* `% ccapture program drop hello1 K' W& b+ R3 n$ f# u

# G2 x6 ~" T+ a$ e: Z/ dprogram hello) Y% l( j& F1 Z( [1 A8 c

5 b1 R$ L8 ^: ?) o quietly {
5 D" V! i* d, b  }, b* M* J- @- W' r2 j( H4 {
clear' r. e( w- q3 A3 G, l

2 X3 i# w4 s0 t3 w0 L: z% Wcd D:\stock\test\source! G# i6 k9 _: _; k7 v" ?) v% a

; e5 f- g, w. \) [* V4 X8 ~  k1 Oinsheet using `1'.txt  [9 e& Q, g& Z9 @: |
# V+ @* `% {9 v- W& ?, J* b9 w
   keep if v5>0& Z, E( B" ~, B' X* N; ~
      C: C  q  [1 M, `0 \; t, F" Z* t2 Q
   gen vt=_n; n+ J8 n* Y1 |- M  c
   , x* d2 {/ r' \/ s" ^' k/ e
   tsset vt
) P: y7 W- e) M6 |
9 m$ f, G9 A* L& T+ x4 w( l   gen zf=D1.v5
8 D/ q& h/ A$ P9 b) Z( u
* a4 j& u2 g7 A9 Z' c2 r- M* h7 n1 A   gsort -v1
+ x( d' E: V, H4 e
& Z7 D/ C+ H3 s! @, p/ i) n: Z   gen avol=v7/v5
' t; V& Z9 D# ^/ m   
- U9 h% q! u, r( V0 N( U/ W. D   keep if avol>0
8 D2 F$ A! ?8 V1 u   
& R6 |, N6 ^" L8 P/ B4 p1 M( ~   drop vt: z! d, E# D6 x7 B
  
0 A" V8 t, y- d1 [4 I   gen vt=_n
; h' V& {" m7 X' p5 i) ~   
% s& N% A  r3 b5 g) K4 f   tsset vt
+ O9 A' B- i1 E5 W1 B: C7 i   
5 b+ e3 s( a' H7 b! a' W  {) T9 S    sum v5 [aw =avol]  r1 g& k3 O, B# U
6 {) H# P% S) t
   gen amean=r(mean) in 1' \; U+ j% Y+ W$ T! X
   
5 q7 h) G9 L* h8 q" m6 a/ N   * 总加权平均值 amean
/ }' u  {2 u. q   
3 [5 [( Q- r- h7 V& z" B   
: ~& I! s. c' d7 I1 {$ E2 e   keep in 1/240
. G4 m: {* @, L4 X9 q2 R6 F/ D4 A; q* J$ O% h0 w* k, \1 \
   sum v5 [aw =avol]
# h3 i: \8 s' ^8 E) n! U3 w2 O) R5 L  u9 J, e* C+ [( Z9 ?9 E5 f
   gen mean240=r(mean) in 1
4 y( h7 Y) U' ?; v: B0 I; a   . Q) T0 ?# Y3 X
   *240加权平均值 mean240
- g) f5 ~9 g( J/ D4 m   
! k0 L7 \- M6 q   set obs 500
4 Y9 g- @! _1 \   
  `; R/ z5 b9 G% h/ J   kdensity v5 [aw =avol],gaussian n(500) generate(dx240 dy240) nograph, ^7 e! W* y9 R; H3 Z
   ! p0 N' M: V- ~! ?% a! r
   *240 kdensity(dx240 dy240)+ B/ N1 s( H6 E, @0 q
   
0 e: d1 x6 O' `  g  i  P6 @   sum dy240; ]+ `$ y( s9 L3 w
   + Q! n% o& d6 ^6 o
   gen yxis=r(max) in 1
+ o4 a4 ^9 h1 [, B8 w   
; b* j7 X/ @  Y% _, F: [   gen yxis2=yxis/2
0 b9 k2 l9 G8 w* E' c   
5 ~9 ~1 E, K/ X7 A0 A: E; |; \   *yxis
6 I' Z7 q5 t. y! ?' i' v   : T, T  B$ q) e, Y
   gen dy240max=r(max)0 y3 q& ?6 K3 r) C, T
   8 G% J  ]* |% o. j7 ~2 F" [& c
   gen dy240minp=r(min)5 f3 j8 O, ]$ p5 b) v8 |  u2 t! Z
" m, g7 j( `# K8 [3 R  b
    gen vtt=_n5 L# `0 a2 h! \, @7 g3 P2 _$ a, Z; f

! j/ ?" }8 ~( X4 ?/ E+ m" h    tsset vtt
) A' t" @1 f' a7 B( `" o$ P
8 r2 C+ A" k: p( S" g" W   gen ddy240=D1.dy240/D1.dx240+ q' F2 ]) Q$ s0 h! u: E  t
   
  U' I* z& s+ g   sum ddy240
8 G8 V6 L+ I6 _" j5 }% }+ ^. t$ m   
; }) O. F, g* r& J   gen ddy240max=r(max)
3 F3 S. P. E2 ]- F: C   
: }/ Z' A' S$ ?) x& a; ]# h% ]) w- \   gen ddy240min=r(min)
4 i+ F& t! P3 b1 x# f. u     . R* Q8 F( {. W" }. B" a% ]+ G
   gen ddy240g=ddy240*(dy240max-dy240min)/(ddy240max-ddy240min)7 m( L  m  I" ]$ h- M; N
   
/ O7 h( w6 I6 B- b8 S   sum ddy240g
7 i0 x: A4 ]$ L' J( t. W8 l; h   
4 q0 b! N" \- Y: ^   gen yxis3=r(min) in 1' N5 V( E  Q" K1 f: m9 @
   9 u$ f( {7 C' f. ~0 h& f
   gen yxis4=0 in 1
; ~: R$ |! c. i/ B: V' b  - Y+ u5 v  R' `1 G1 t2 ?9 w# [
  *ddy240g ; ^" Q: L# {# l) J' K
   , |4 @0 |+ r6 S+ d$ n1 R1 S+ g- V% \
   5 U8 g2 h5 T& l/ w% Y+ L
  preserve 5 b  O$ W1 U$ n) X
  
! ?: h7 W% o' K4 a/ f  sum v5 [aw =avol]
; e: Y! T. l0 ]" Z( C( \6 ^  
7 x" q0 y" @; a! C  keep if dx240<r(mean)
! t) ~0 b9 h; F  
2 ?$ J2 w8 i# j) n9 g( R% F  sum ddy2404 ~2 }" C/ x6 w5 D" D' N) Z
  
. |& g1 W, @. E  if r(min)<0 {
7 E: s, [% a; }' X7 S  ]          L0 Y" A$ y7 y7 ]# {. I/ f8 M1 e% O: B
                keep if ddy240<=05 g/ k- ~- b+ h8 z, F  _9 p* ^
                ! O6 \$ c$ J) c
                count  M2 I& \7 x0 ~6 |. J1 @6 w- a* p9 w* f
               
% `7 \, ^7 ?! M: \7 j                if r(N)>2 {2 ~- q5 B% Z- t1 K# j/ s6 j
                 / N- O. `8 J) G% E1 M9 ?7 c# T
                 pkexamine dx240 dy240
( Y& d8 c2 _, t7 z- ?; f               
! q# S( b7 _2 |) [7 h5 P                local tempminp=r(tomc)
; \0 k/ c# G9 v* q                restore
# k# x, Y- F. `$ F9 j                 }) j- `- o5 X: y! @, K1 f  I8 m
                 
2 Z+ C% q& p4 C" o        else {
6 @* j9 r1 Z' |; w: P) E- U1 b               
4 Y: e  h* n( E1 E                 di "cannot find minp"  n: Y6 L4 z' s: ?2 _0 O( R: k0 g( s
                 * _7 A# B* S" Q8 S8 i/ ~6 s  R
                restore
8 @: W& o' o6 s0 L: k7 `) w: W                 sum dx240, Z, S0 a7 D8 |) W/ s% u  f
                 local tempminp=r(mean)! ~' l$ R$ j( A3 h( f. ?& L
                   G# r9 N6 A8 ^  G+ W
                 }2 s3 U+ g+ ~7 z/ U8 o9 b
                }; x! S" Y6 D8 R" o  k' R
   else {
2 S, H; H! K3 c, P                 & f6 j' I0 F$ G6 _' F8 o
                 keep if ddy240<=r(min)4 n2 q$ p/ h) Y
                 , G- Q" U8 Y( {
                 sum dx240/ y9 @# q0 ~# d( a; t9 h0 I9 @" t
                 
  j! A0 Y# @) A6 t$ a) M$ T                 local tempminp=r(min)
+ {$ Y, k" M* }5 H) Y. t                 restore
1 K2 X* C" l$ E! y: ]                 }
! z6 S3 I4 k( p6 z9 f3 S
# e0 ^) B0 W& u" S
5 j. y1 o1 E/ b$ l9 o* \" w$ L/ E/ ?) x
   gen minp=`tempminp' in 1% b) b2 q0 }1 i
   *240 minp. [, s7 m& D4 W1 V

& |; H* u2 A' z5 C
, a' W' o9 ?& k- p# R6 S   3 Q( t+ p. [7 G
   preserve
3 m# o$ T/ {3 V   3 L8 C3 d, m  Y) H0 A' P7 L9 y; Z& S
   sum v5 [aw =avol]$ F) j  G9 J3 J- T- _1 h
   , r, f- E' C1 H- X
   keep if dx240>r(mean)
' ^+ c4 t. i2 S   3 ~' R& f6 L, t* }/ q
   sum ddy240
/ ]+ \- D6 w7 M- m/ X% A   ) T8 x9 t9 h, Y
   if r(max)>0 {
9 v+ S7 S6 Z& S/ G               
" L9 N+ s6 g' J9 a0 M: d& g                keep if ddy240>=0& V/ W; u$ u4 y; I
               
+ l8 R. ~5 e, x- H3 Y, L4 n                count
  }  `6 U5 D2 \2 j+ ?+ i                , B, b% l' t8 y! ~3 ?* o  N- k
                if r(N)>2 {+ M+ L; v" R! t  c2 P8 H
                 ; {/ }! @* m; e, V# H) J
                 pkexamine dx240 dy240: O* k4 R# C0 C( R, u8 j
               
3 ?  B+ c! S1 t( g4 v% a                local tempmaxp=r(tomc) 6 X* w- x0 d, H- }
                restore
( V9 M5 f. p% m, Y0 S3 C/ c3 W- M) j                 }  j9 r& g7 F. l. X
                   z- r/ N; b" h1 F$ s. a. g. T: b
                 ; Y8 S) l) C$ ]& R6 N
        else {$ r* y, |7 x* o7 a  j9 r
                restore
2 T) F9 G9 G! A9 B$ R" Q6 @                 di "cannot find maxp"; `$ n5 K; D1 z
                7 d' i- G& }, C: K- p; O/ `
                ( N4 B0 S5 R. `' S9 I
                 sum dx240
6 X7 v, K/ [, x: B                 local tempmaxp=r(mean)
/ Z) p' o# P! h0 W: @! H$ h                 , \# N" f# f2 J3 t
                 }" i( ]5 B9 r$ b0 _$ O
                 
$ f! a! _& z) u2 c1 W                 }# W8 g& H8 F: e2 H. G) Z8 `1 [: R; \
                 
" y3 p, l) |) a$ l    else {
7 ^6 r' }; }. J& B        * e, _) z# x# S7 r7 }! F/ F
           keep if ddy240>=r(max)
, c% d, T1 {' ?, N! T          
, s7 |" f8 ?% l# D/ Y. S           sum dx240: h5 Z; O( n& g7 y. Z6 V
             U3 K. z; `. {. M( g
           local tempmaxp=r(max)
/ q: ?6 J# n* q4 [           restore 8 E# D  t7 M4 G8 m: R
           }/ E$ |. e  x* S" _& E" O0 L
       
5 T1 m* \1 s* d% }) I' R9 C" Q3 {; N. `: ]( s4 v
  
. a4 e- a4 l1 Q* T, A2 K+ U
; b2 f* K! \7 R! g/ J   gen maxp=`tempmaxp' in 1
  W, z. G* R# ]   
& \& d1 m; i2 t) F' k2 p1 i   *240maxp. d4 v9 k; @# {% v3 I, d
   
' U# w. t. i- J1 R- o7 Y   & Y( x" p" D. b" r
   *-------------ddy240pminp左侧高峰值-----
0 M1 V, k* U5 p8 L: u- s1 J4 Z   $ e& M4 D3 `# U+ d
    preserve
/ w3 @" o" T' k! ]) |$ f8 ~- d   ( N+ {4 P) c9 a6 O' ]6 `0 E7 i
   keep if dx240<`tempminp'
) |4 n8 w8 [% u) M! |3 F0 y. K   
6 @, B! N8 E2 J2 k& S   keep if ddy240>05 ^7 e2 `2 ?; o6 e, l
   
, l+ }( ?3 w1 A; d   count
& F" K' E. c* p, C0 G               
" z2 `' P% }8 `* a7 w( t0 U* O                if r(N)>2 {
4 E+ |- F, X( t4 Q: U! Z4 D& c                 - O8 a  K# h- y! w: `' W
                pkexamine dx240 ddy240
- c2 `: X* H" D9 B* a1 j2 Z                ! R' g5 B5 P- Y8 J
                local tempminphddy240=r(tomc) ; U( G, M* r+ t4 O7 N% U
                restore) o7 v5 U( e: Q2 d
                 }
; A, B4 k+ `( {7 f                 
; M5 t: ~- C# q: x2 \% j$ q9 M7 h        else {
9 ?  G. w: N  h                restore
; u$ B* ?: S1 ?) }/ z; p: V                 di "cannot find pminphddy240"
( a4 ~+ D% d0 X& C5 b                 
! D+ D, D3 e+ v$ p/ A                  [4 O/ g+ Y; U, v" a; m
                 sum dx240$ s2 j* \# D5 @# M8 P
                 local tempminphddy240=r(mean)
$ I9 g( F2 Y! L               
' _5 h! j9 Z# }5 c- Z                 6 Q. N0 l- P) j1 d! Q5 Q, R% m
                 }
. E: c2 O+ M4 N; \                 
- f5 O- e% q. m8 P   
* n$ [: G! U& i" x4 _   
6 ~: J# X5 `9 ]8 v) }* S# X7 t   ' v9 S7 R7 O- D2 H! @6 p2 [. w' {
   
7 v: a7 m# u# f9 }, D   ! f' n$ w( B9 J
        gen pminphddy240=`tempminphddy240' in 1+ o- a7 N9 Q4 F7 t' v$ c! j
        ; ?" H, `, V1 B, x
        * i8 r8 K7 Y4 M  G
        *-------------ddy240pminp右侧低峰值 ------------------ @. Y; X- x+ t1 H# C' _
    preserve
# R# F3 p5 N9 a: D/ R$ h  W* u * B5 F) Z9 }/ G6 d+ V2 `4 A
   keep if dx240>`tempminp'
  ~; t' W( t" S" H0 ^: l   , O3 C) q6 d; N) I
   keep if dx240<`tempmaxp'* G9 n" Z+ W6 S4 H* W& n
   
4 `, g! e3 ]" K7 A% @1 k   keep if ddy240<0
2 U( D$ @+ _- l4 ~) y   
& @! f# C" l% G( ~" A; b. n   gen temddy240=-ddy240& Y! ~( S5 Z. f7 }
   $ {# B! `: B6 `2 R) h( ~5 k
    count# z( h3 E# o. p% G) x( X  w
               
. h2 c5 Q! |  q1 \4 n" d                if r(N)>2 {0 _9 M; A& d0 |$ {
                 * e8 F& f& g9 G5 j7 f: h( _
                 pkexamine dx240 temddy240! [  K6 P( W% P0 s& H' s- G
     w* ^) q3 }& W+ Y. X! ]' K" k7 }
  local tempminplddy240=r(tomc)/ f  Q" b0 w% e6 I8 g7 p
                restore3 b, t" x" r- X
                 }' d# ^& x/ O1 L  l6 c5 i$ p2 y* p
                 9 [. t+ m' J  ?; N' X+ C
        else {
- _& z' h3 b- r8 ]! B8 Y: j               
2 @: r8 T7 G! }% Q2 k4 c* D( v                 di "cannot find pminplddy240". C$ w5 ]1 G( A8 I7 C
                restore, ?: M8 {! P# I$ e; h
                 
& o2 G/ [* ]; Q% r- B                  sum dx240: ^  a0 _: Y( ^7 w3 u. |3 T
                 local tempminplddy240=r(mean)
) Y3 s+ d. u; }9 ~* F                 
: X8 T$ }9 N  \                 
1 c+ ?/ s  y) m0 @                 }( m* ]  }# R: ?1 J
   3 t& Y9 B4 G+ v  r" b' v- Z
    * \6 p. Y# R+ t/ J
   . N  @/ r# W7 m; M! @  {% u- }( c1 {. k
   2 |+ O4 q  U- T
   
& k/ W' |6 t' \        gen pminplddy240=`tempminplddy240' in 1- S, j8 E( I! F* G9 @
       
+ Q/ V+ y7 t' }# l1 z6 [        *-------------ddy240pmaxp左侧高峰值 -------------------' S! @$ V/ P! X. N# S
       
6 N& b7 |0 h6 o4 [7 ~         preserve ; H% y! {/ o# L) H0 M
   
$ k7 w6 |5 O" M- R% p- v   keep if dx240>`tempminp'7 `+ t1 e3 H" A& u, [5 P) A- L
   0 M; a! c$ d2 D3 v6 P# s* @3 ^
   keep if dx240<`tempmaxp'
5 F- z! y4 T, y9 S: E+ I5 x0 Q   
6 h% R- S. ?- c( N5 C   keep if ddy240>0  V8 ?6 t) r) v: k' T+ y; }5 p
   count0 x* z4 N$ E) x' ^5 [: Z, [
               
" p5 M/ b2 e* m                if r(N)>2 {
5 r9 @1 E5 X% `7 I4 O! y1 \- s                 4 J2 a# ~3 s; V) x6 L) ]- ^
                 pkexamine dx240 ddy240  A- Z7 u* v" C0 }- y, r/ I: u
   . H% y! S' T$ y: M# p5 {* u5 v; ?
   local tempmaxphddy240=r(tomc) % i! ~: _, u. ^: E6 s3 Q! P1 _
   % D4 z0 @' o- E/ U- z
   restore
+ d" f% c8 E8 v2 }9 B! N( m6 ?                 }6 S: N$ K0 u; n) _% z
                 : V4 C/ V+ g7 B& p- F" h
        else {
$ b; o* k& i* A* {/ e8 g% {                : f1 L5 U9 E( n5 n# _
                 di "cannot find pmaxphddy240"( v8 |5 ?9 \2 T$ f2 ?
                 restore4 G' y9 Y1 ?7 z7 {
               
+ O  _; U$ a6 j% k- U# Q1 h$ H                 sum dx2405 }: B0 A$ K3 @, F; P8 a, a( H! i
                 local tempmaxphddy240=r(mean)
" h& A5 r  \3 T, d0 w% _                 
  i1 X+ I# R0 Q$ F. q                 $ i( Q, u/ G9 J8 _2 ^2 O
                 }
" w8 l6 u. U3 V' u( c   
( n; }3 x, Y8 v2 V* R+ |( Q   
5 r' |- s) ]) h/ c7 j/ t+ E    0 f! C( V  o- l
   
( S2 e, B3 x- q2 O* l: p   
% S+ L" C: ^- }- v! j: ?   4 R& V& b: d0 }7 \* p9 ^
        gen pmaxphddy240=`tempmaxphddy240' in 1
, D) ?9 b& o. K$ S2 z        7 z2 V4 X+ g9 [' C& p3 t
        . V- y5 t9 E% e
        *-------------ddy240pmaxp右侧低峰值 -------------------6 B/ g, d( d. |. l
        , S* j  \6 J2 s  V. @/ [: N
         preserve
5 W2 G! h; g0 s% Z* |3 u5 N' ^( S  & l! S. y8 I+ G7 o! {) i5 k
   keep if dx240>`tempmaxp'
2 c4 l4 ?, ~& C1 J& r4 s( N/ u6 n   
  p) F0 v8 @7 e2 ^6 x   gen temddy240=-ddy240* @. ?: Y) w! W6 I/ T4 d' n; ~( k
   
1 }; ~1 b3 Q" S) M   keep if temddy240>0
0 Z: z& g, u% [   
' [" _6 [% i) s6 h( P+ q" h' p   count
' C7 r* C' [: ?# r. }8 X               
8 {  c6 Q! q  G) v% J# j% J: g- k, B                if r(N)>2 {+ \5 a5 l$ B, H$ ]) W# f
                 * S! P5 |3 U, S9 [
                pkexamine dx240 temddy240
5 q- Z5 j9 u/ i* O   
3 R1 t9 Q- o8 i* e- j   local tempmaxplddy240=r(tomc) 7 w9 G; x& E1 D( E
   restore' H1 r( A, e2 p7 _: ?8 s; a8 K+ W
                 }
6 ]$ |! ?. P! b# F                 : ^  Q6 e) m6 z) {4 P9 [+ a
        else {# X; c  \* K4 a% K+ }* W3 s
                restore, J- ^* M' e, G$ I: H+ h
                 di "cannot find pmaxlhddy240"
2 B1 `4 ~  j% P- f; {                 - i% c5 S5 F$ F- A/ E% x1 L1 m% l
               
+ z8 Z3 _, y) {                           sum dx240
' n1 f& z6 H9 \                 local tempmaxplddy240=r(mean) in 16 W  ?% \: l2 _; R- i* f
               
; c& f7 p% {; x% @                 8 Y# E: L' {) ]* O( X( ?
                 }0 X: v" h1 A0 y
   / W* d% A! A# D% O7 T9 x
   7 u+ M1 C4 m7 c7 k
    ( C) v* p; A9 d$ J
   
" Z% e2 S7 z$ c9 \5 C. K* c6 w   / P4 |1 \) l5 \
   & b# \4 S+ i% C1 \
        gen pmaxplddy240=`tempmaxphddy240' in 18 l& L0 L4 x, P. u. G
       
0 I  s$ k- e2 ^  ]! S9 n0 G        *-------------------------------------4 b; l6 Y- l0 w7 Z6 L. S, H5 e. M
   
0 \: P# Q& h) _   gen price5d=v5 in 1/20
$ [; I% {% H7 R      
2 j0 f" x0 n$ E; r( S6 }6 a   gen price5yy=_n in 1/20
& E! y: n( H$ q0 t  g# a; Z   
. s+ x9 l6 S+ P; A  r3 L   gen price5y=price5yy*(dy240max-dy240min)/206 e+ M# k/ O7 V! l4 S; n3 b5 y
   
' r- g- p1 ^& u$ X  q/ {5 d$ I$ v   *price5y &price5d
9 u6 B# A! [( @; I* ]- C- ?   ! N& [4 s5 C% `, s/ a
   gen priceny=price5y in 1  [: y" D" ?  O7 k
   ! P: n& h+ X- Z1 `, G$ X5 Q7 y
   gen pricen=v5 in 1
- Y: \6 d7 [6 f, S2 y; f9 l; e3 j+ Y% T. Y
     
: M5 @- h0 z" b6 j% {9 ~* ~   *priceny &pricen
. E0 Q  ~' e& T& i5 |) P5 u- ?4 ]' p   $ n4 a/ L, X2 }+ E
   
* T: ^5 K% @, W+ G% r8 ^/ L   *-------------------------graph------------------
/ [1 p$ P4 W0 Q& X  $ _% i+ U/ \/ b$ l) q- a: W  y0 t1 Q: A
  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)$ o& c' M" G7 A% @

  d/ I) I% r: t* ---------可选项目----------------------
# |, [4 \' g! }! p*(spike yxis amean,lc(blue))(scatter yxis2 amean, lc(blue) msymbol(+) mlabel(amean))
9 v* a3 R: M+ c}9 Y8 F$ v- P6 A6 r2 p" G: E
end
% Y- _, t1 c9 r

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2025-2-19 06:48 , Processed in 0.051496 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表