楼主: mosuchen
20273 38

关于PIN(知情交易概率)计算程序中的问题 [推广有奖]

  • 1关注
  • 8粉丝

讲师

92%

还不是VIP/贵宾

-

TA的文库  其他...

mosuchen

威望
0
论坛币
1853 个
通用积分
13.0100
学术水平
11 点
热心指数
11 点
信用等级
6 点
经验
29400 点
帖子
137
精华
0
在线时间
1136 小时
注册时间
2007-3-9
最后登录
2024-4-25

50论坛币
我找到用SAS编了一个传统的计算PIN的方法,有两个问题。
一是我可以下到的高频数据无法区分买方发起还是卖方发起,下面是数据的一个小样本,不知您是否也遇到类似问题。似乎有数据直接标示了买卖标记。附上我的数据格式,请您给予建议。

序号

最佳答案

FlyUFalcon 查看完整内容

这样的话也能做。 主要看每次价格变动。 如果价格上涨,即为B。 反之则是S。价格每边则是和上一次一样。 只有统计出单位时间内的B和S之后,才能带入到PIN的公式当中算出PIN。
关键词:计算程序 PIN 高频数据 数据格式 小样本 程序 标示 高频 买卖 样本
沙发
FlyUFalcon 在职认证  发表于 2014-3-28 11:02:56 |只看作者 |坛友微信交流群
mosuchen 发表于 2014-3-30 10:35
你好,这是我下载的浦发银行三年,五分钟高频数据。没有BID ,ASK。来自天相证券市场数据库。
这样的话也能做。 主要看每次价格变动。 如果价格上涨,即为B。 反之则是S。价格每边则是和上一次一样。

只有统计出单位时间内的B和S之后,才能带入到PIN的公式当中算出PIN。

使用道具

藤椅
mosuchen 在职认证  发表于 2014-3-28 11:08:28 |只看作者 |坛友微信交流群
我的高频数据格式
序号        名称        代码        日期        时间        开盘        前收        最高        最低        收盘        成交量[股]        成交金额[元]        均价        成交笔数       
1        平安银行        000001        2013-01-04        09:30        16.32        16.02        16.32        16.10        16.20        1622906        26419510.00        16.28        14       
2        平安银行        000001        2013-01-04        09:35        16.25        16.20        16.41        16.22        16.41        2443059        39876426.00        16.32        77       
3        平安银行        000001        2013-01-04        09:40        16.41        16.41        16.45        16.30        16.30        5141597        84109616.00        16.36        70       

使用道具

板凳
mosuchen 在职认证  发表于 2014-3-28 11:09:12 |只看作者 |坛友微信交流群
二是NEWTON-RAPHSON逼近法在使用中,有个初始值得设定问题,似乎越来越多的PAPER开始质疑初始值得设定,而主张在最初使用乱码(随机数码)设定初始值。我编的SAS程序参考了国外一个博士,他似乎没有设定初始值。不知您如何处理。附上的我SAS程序,如果您熟悉的话也请您指点一下。




SAS程序如下:
/*-------------------------------------------------------------------*/
/* Create the dataset containing the observations... */
/* The observations for PERMCO 99999 are consistent with the */
/* Easley, Hvidjkaer, and O'Hara example on p. 2198 of the */
/* Journal of Finance. */
/*-------------------------------------------------------------------*/

data buysell;
input permco buys sells;
cards;
99999 90 40
99999 40 90
99999 40 40
99999 40 40
99999 40 40
88888 70 40
88888 40 70
88888 40 40
88888 40 40
88888 40 40
;
run;
/*-------------------------------------------------------------------*/
/* Get the data ready for the NLP procedure. */
/*-------------------------------------------------------------------*/
proc sort data=buysell;
by permco;
run;

/*-------------------------------------------------------------------*/
/* This is the procedure used to maximize the log likelihood */
/* function specified below. */
/* */
/* This particular factorization of the log-likelihood function */
/* appears in the paper "Time-Varying Arrival Rates of Informed */
/* and Uninformed Trades" by David Easley, Robert F. Engle, */
/* Maureen O’ara, and Liuren Wu (paper presented at the 2002 */
/* AFA meetings). */
/* */
/* The parameters emerging from this estimation, for PERMCO 99999, */
/* are consistent with what's mentioned in the Easley, Hvidjkaer, */
/* O'Hara paper. */
/*-------------------------------------------------------------------*/

proc nlp data=buysell noprint out=pinest(keep=permco alpha eta mu);
by permco;

max loglik;
decvar alpha ,delta,eta,mu;
M = min(buys,sells) + max(buys,sells) / 2.0 ;
x = eta / (mu + eta);

bounds 0.0 < eta mu, 0.0 <= alpha delta <= 1.0 ;

loglik = -2.0 * eta + M * log(x) + (buys + sells) * log(mu + eta) +
log( alpha * (1.0 - delta) * exp(-1.0 * mu) * (x ** (sells - M )) +
alpha * delta * exp(-1.0 * mu) * (x ** (buys - M)) +
(1.0 - alpha) * (x ** (buys + sells - M)) ) ;

run;

/*-------------------------------------------------------------------*/
/* Clean the output and print it nicely. */
/*-------------------------------------------------------------------*/
proc sort data = pinest nodupkey;
by permco;
run;

data pinest;set pinest;
pin=alpha*mu/(alpha*mu+2.0*eta);
label pin='probability of informed trading';
format pin 5.3;
run;

proc print data=pinest;
var permco pin alpha eta mu;
run;

使用道具

报纸
mosuchen 在职认证  发表于 2014-3-28 11:14:59 |只看作者 |坛友微信交流群

mx348.png (180.78 KB)

mx348.png

mx347.png (216.76 KB)

mx347.png

mx342.png (67.33 KB)

mx342.png

使用道具

地板
FlyUFalcon 在职认证  发表于 2014-3-28 18:48:23 来自手机 |只看作者 |坛友微信交流群
用lee ready 的tick rule test

使用道具

7
FlyUFalcon 在职认证  发表于 2014-3-28 18:55:08 来自手机 |只看作者 |坛友微信交流群
Mid = 1/2 * (bid + ask)
If transaction price > mid then sign =B
If transaction price < mid then sign = S


如果 transaction price = mid. 这笔交易和上一笔交易的富豪一样。 用retain代码。
已有 1 人评分经验 收起 理由
eijuhz + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

使用道具

8
FlyUFalcon 在职认证  发表于 2014-3-28 18:55:53 来自手机 |只看作者 |坛友微信交流群
有问题随便问。 刚做完一个PIN的project

使用道具

9
mosuchen 在职认证  发表于 2014-3-29 20:08:28 |只看作者 |坛友微信交流群
FlyUFalcon 发表于 2014-3-28 18:55
有问题随便问。 刚做完一个PIN的project
非常感谢。但您给的程序中,bid和ask,如果我们理解错应该是买方报价和卖方询价的意思,我的高频数据中只有开盘,最高,最低,收盘,即便是transaction price我将之等同于成交均价,我也没有办法确定使用哪个价格作为BID和ASK。此外,初始值确定问题您如何处理的?
还请不吝赐教。

使用道具

10
FlyUFalcon 在职认证  发表于 2014-3-29 22:50:51 |只看作者 |坛友微信交流群
我不知道你的数据频率是什么样子的?
一般高频数据中都有bid 和ask 的数据阿....作微观结构的话bid-ask spread 是一个很重要的指标。

我当时是收集了每一笔数据的bid 和ask , 然后又把ask <  bid的情况删除了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:30