设为首页收藏本站

爱吱声

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

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

    [复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2011-8-13 18:03:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 awer 于 2011-8-13 20:49 编辑
: T7 o* F5 F: Y' h% k; w
( r7 F! S3 B3 R# q/ {
   我是从西西河一直追虎大追到爱坛来的,虎大曾用stata 分析过股票的长期成本和一年的短期成本,但是直接用kdensity命令无法得出筹码峰的具体数值,因此我写了一个小程序来计算股票的筹码峰值、长期平均成本和短期平均成本。下面就给出具体实现方法。
计算之前需要有
1 招商证券系统(通达信其它客户端也行,功能都差不多)
2 Stata软件 (我用的版本是Stata/SE 11.0
然后
1.新建一个文件夹储存股票数据,比如:
e:\stock\source
2. 股票数据导出
a 进入招商证券, 系统-盘后数据下载,更新数据
b快捷键“34”进行数据导出, 在弹出窗口选择
: h+ h+ c4 v% W" ], @, Z
高级导出”,
在高级导出窗口选择日线导出”,
将导出目录选择为你新建的储存股票数据文件夹的目录(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! w7 w6 ~; H# m& \% `

8 O3 g; m( J6 [5 h& [' ]2 w, e(002128
为你想查询的任意一只股票的代码)
几秒钟之后应该会出现下面一张图

& |, p) A6 f3 k6 p7 y6 `0 T- s  G; h/ t
hello.do (5.25 KB, 下载次数: 13422) 其中蓝线为股票上市交易以来的平均成本值(注意!此值没有去掉一级市场发行和国家的0成本)
红线为一年内交易的平均成本值
黑实线和虚线为一年平均成本值附近两个筹码峰的值
黑方框代表的事20内每天股票的收盘价格
红方框代表股票最新收盘价
山寨完毕, 收工!!

评分

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

查看全部评分

  • TA的每日心情
    慵懒
    2019-6-5 13:01
  • 签到天数: 115 天

    [LV.6]出窍

    沙发
    发表于 2011-8-13 20:17:12 | 只看该作者
    本帖最后由 明月回春 于 2011-8-13 20:19 编辑 $ z: {+ w: [+ B, w

    , i) x; k, X4 d$ K程序写的不错.2 P$ x( M3 n( ], l5 c1 _
    不过有一点要注意.通达信导出的数据,只对价格复权,并没有对成交量复权.所以数据需要手工处理.虎大买的是Thomas One Bank.( J( Z& B$ R# y
    还有就是虎大除了用了kde,还有摘要功能,你可以看看这个也是山寨8 n+ O, a' [! O
    - u: S$ x) G1 c3 T

    该用户从未签到

    板凳
     楼主| 发表于 2011-8-13 20:20:36 | 只看该作者
    这点我也注意到了,所以我用 成交额/复权后的价格  作为成交量 用于权重计算

    该用户从未签到

    地板
    发表于 2011-10-19 14:32:38 | 只看该作者
    多谢,挺好用的。0 U6 l4 y6 @: Z- p% B' h! p: |" f
    通达信似乎无成交额一栏。导出的txt文件要删掉header,否则stata当数据为string了。
    ; B4 h4 R0 e/ ^  N5 ^

    点评

    导出的时候可以选择不生成header, 这样就可以直接用数据了  发表于 2011-10-19 17:37

    该用户从未签到

    5#
    发表于 2011-10-19 15:40:50 | 只看该作者
    本帖最后由 旅途愉快 于 2011-10-19 17:44 编辑
    , ~/ V5 W- F) t! ]5 B( l3 |4 c+ w4 H' E
    没太看懂。。。0 H& ~* b9 z1 _/ ?" x
    6 [' d2 L4 ^4 ]' K
    露天煤业最近20天的收盘价在20块左右?

    点评

    上图中红点的是当前价位  发表于 2011-10-19 17:38

    该用户从未签到

    6#
    发表于 2011-10-19 17:47:23 | 只看该作者
    仔细看了看,发现原来自己理解错了~:)
    ; @' ?9 v2 ?3 B4 ~9 a: z
    9 M2 d8 u. M1 Q/ g3 h0 K$ U! \谢谢awer。有问题再请教哈~~

    该用户从未签到

    7#
    发表于 2011-10-19 18:09:25 | 只看该作者
    还貌似有一个问题啊,为什么我处理2000年以前上市的股票,都会出现:
    1. $ S6 F% s% r( }3 E' e% I
    2. hello 000425
      * w$ a8 x( m$ G5 ^: }/ t/ s
    3. time variable takes on negative values' u9 ^# s0 g6 H" O6 V! E
    4. r(459);
      5 D2 U* X3 F# P; X. {3 Z

    5. / k% }# y4 |1 N, J" w5 u' k
    6. 7 d3 ^' z9 [9 m" j. o
    7. . hello 000783
      $ n7 D1 {; o+ ~, P9 u/ @
    8. time variable takes on negative values. W% W$ C5 A( Y
    9. r(459);1 S0 X- C- h2 n0 S
    复制代码
    2000年之后的没问题,比如露天煤业。

    点评

    有些年头久的股票, 如果刚上市的时候价格低,经历过复权之后通达信给出的价格可能是负的,所以就会报以上错误  发表于 2011-10-19 22:08

    该用户从未签到

    8#
    发表于 2011-10-19 19:25:36 | 只看该作者
    不错,我也来试用一下

    该用户从未签到

    9#
    发表于 2011-10-19 20:45:28 | 只看该作者
    为什么老是提示:type mismatch

    点评

    看看variable type 是否都是strXX. 我碰到这情况,删掉头文件就可以了。  发表于 2011-10-20 14:19
    这个可能是格式问题,出错的可能性很多,可发我信箱私聊  发表于 2011-10-19 22:10

    该用户从未签到

    10#
    发表于 2011-10-19 20:49:04 | 只看该作者
    能不能帮忙看看:
    ' d7 t* T/ D% T( p0 o0 i) A7 b; i+ ?+ \0 P% u
    do hello
    / f) A! O5 O7 q, p0 X. y% M. |" f" n7 V. t& c
    . 0 p4 Y: B$ }8 U3 u) N7 ?" d
    . capture program drop hello# r% {: R6 z1 t" K' s9 ?9 ?6 ^8 w

    ) Y+ J1 |2 V0 u3 x7 D. # `3 I+ C: K, N+ L. S- p/ [
    . set mem 1024m
    : K) Q. ]' K' ~% [( i' r" g5 d7 Nno; data in memory would be lost* Z* [5 G- G% V- i/ {
    r(4);
    . I# q. V. V  Q8 t( t/ F! B8 y0 J
    . p; _0 m2 }  H" v; S' W* Wend of do-file5 U2 A% M, i& ~
    3 G! r- o) b# A0 Y: b4 O) j. L
    r(4);
    2 H2 a2 }& |8 y/ ?4 ?, b2 H5 G6 [5 Y7 j0 p! v
    . hello 600063
    1 f5 c) Z' I: y, z1 u0 Uunrecognized command:  hello( T- G: m3 ?0 @8 O  n
    r(199);$ T2 J' ?% K8 g6 G

    点评

    把这行去掉不影响使用  发表于 2011-10-19 22:06
    在我计算机上没问题,可能是版本的问题,我用的stata 11, 另外 set mem 1024m 这行的意思是设置内存为1024m, 如果你配置不够可能会出问题  发表于 2011-10-19 22:06

    该用户从未签到

    11#
     楼主| 发表于 2011-10-19 22:03:57 | 只看该作者
    沉默的前哨 发表于 2011-10-19 20:49
    0 [3 p, V$ a" ~$ p5 w9 ?能不能帮忙看看:6 J5 K% s. p. T0 r5 S! }1 x
    5 p4 u& N. F1 w& O: t3 ?
    do hello
    / {+ F" ^# X+ m$ w5 i4 v
    你算得哪个股票?
  • TA的每日心情
    开心
    2018-3-27 20:38
  • 签到天数: 83 天

    [LV.6]出窍

    12#
    发表于 2011-10-20 08:52:00 | 只看该作者
    awer 发表于 2011-10-19 22:03
      P9 W  {# |0 |2 ~你算得哪个股票?

    . e' m. V* A( j) T" c那现在露天煤业可是在平均成本以下啊

    该用户从未签到

    13#
    发表于 2011-10-20 10:30:02 | 只看该作者
    awer 发表于 2011-10-19 22:03
    # P# U/ W# n; z6 U- X1 X你算得哪个股票?
    + t) S) u# M* y+ l3 C
    我是用通达信引出的数据,比如600663,在e:\stock\source 里的文件是以SH600663.txt存在,无法执行,后改成600663.txt还是不行,请指正!

    该用户从未签到

    14#
    发表于 2011-10-20 10:32:35 | 只看该作者
    awer 发表于 2011-10-19 22:03 $ K+ w7 a: l* m" J. V
    你算得哪个股票?

    " `7 ?) {1 x! z( o5 z% wdo hello 后变成
      J# {! _+ r+ q8 I......
    ( A8 c' ?# @  t8 f2 J& P
    6 d. p4 Y7 q- S2 {6 b, J. ^5 }end
    . U% V1 N' l# H. {" a, w0 F
    6 T' E! G0 z7 h8 `2 J. ; g; ~' h5 ?: T  R2 U
    end of do-file5 L* S. u+ I* @

    点评

    我运算没有问题啊,你检查一下是否是导出的数据有问题,各种格式是否正确(日期 开头等)  发表于 2011-10-20 11:13

    该用户从未签到

    15#
     楼主| 发表于 2011-10-20 11:18:45 | 只看该作者
    沉默的前哨 发表于 2011-10-20 10:32 # f6 g! k4 S1 Q
    do hello 后变成' B3 x! N/ L: J9 z0 E6 g" {9 _: T
    ......
    4 W% `5 \. e" A+ Y  H# G8 _2 N

    该用户从未签到

    16#
     楼主| 发表于 2011-10-20 13:32:47 | 只看该作者
    沉默的前哨 发表于 2011-10-19 20:45 3 n$ ]1 y' S5 X+ P7 I& d
    为什么老是提示:type mismatch
    0 u  ?! U1 n, Z4 }% O4 A
    注意 日期格式要选成  yyyy/mm/dd,要不然时间变量格式不对

    该用户从未签到

    17#
    发表于 2011-10-20 14:16:44 | 只看该作者
    "此值没有去掉一级市场发行和国家的0成本" 是指已包括一级市场发行和国家的0成本吗?
    1 E' i7 F% |. ^* f5 E6 O  u1 h谢谢
    4 ]7 i2 q; ~/ _" w( i8 N

    点评

    不包括  发表于 2011-10-20 15:16

    该用户从未签到

    18#
    发表于 2011-10-20 17:35:17 | 只看该作者
    下方的棕色曲线是代表什么的

    该用户从未签到

    19#
    发表于 2011-10-20 17:35:55 | 只看该作者
    下方的棕色曲线是代表什么的

    点评

    油墨: 5.0
    油墨: 5
      发表于 2016-2-26 09:38
    请教下awer,你把棕色曲线加上去,看“价格的变化率”,是怎么想的,为什么要看这个指标呢?我认为是没有必要地。它的低高与蓝曲线变化是无异的  发表于 2011-10-28 07:49
    kdensity的微分,也就是随价格的变化率  发表于 2011-10-20 18:34
  • TA的每日心情
    开心
    2019-10-21 09:15
  • 签到天数: 7 天

    [LV.3]辟谷

    20#
    发表于 2011-10-20 19:13:20 | 只看该作者
    明月回春 发表于 2011-8-13 20:17 6 @) N4 f5 ^) v
    程序写的不错.5 Z. p' p  F5 I
    不过有一点要注意.通达信导出的数据,只对价格复权,并没有对成交量复权.所以数据需要手工处理 ...
    2 K4 C7 |% M/ p# S
    你好,这个链接好像不对,能确认一下吗?

    点评

    油菜: 5.0
    油菜: 5
      发表于 2016-2-26 09:38

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

    GMT+8, 2026-4-6 08:41 , Processed in 0.070603 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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