楼主: BraveMadMan
2776 10

[原创博文] 根据信号发生时间来比较两个数据库 [推广有奖]

  • 1关注
  • 6粉丝

已卖:97份资源

讲师

16%

还不是VIP/贵宾

-

威望
0
论坛币
966 个
通用积分
6.3763
学术水平
26 点
热心指数
42 点
信用等级
10 点
经验
7812 点
帖子
300
精华
0
在线时间
552 小时
注册时间
2005-8-11
最后登录
2021-5-20

楼主
BraveMadMan 发表于 2011-1-25 09:19:47 |AI写论文
100论坛币
两个问题(数据见附件):

1、现有“have”数据库,内有根据某交易规则产生的交易信号。现在要根据以下规则修改这些信号:“high”变量中两个“1”之间的时间不能低于20个星期。如果发生低于20个星期的情况,就跟前边的“1”合并。合并规则是,让两者中变量"p"的那个的high变量为“1”,另一个为“.”;同理,两个“-1”之间的时间不能低于20个星期。如果发生低于20个星期的情况,就跟前边的“-1”合并。合并规则是,让两者中变量"p"的那个的high变量为“-1”,另一个为“.”;

比如,“have”数据库中“2007-12-03”那个“high”变量的观测值为“1”,但是它跟前一个“1”(发生在“2007-07-23”)间隔时间只有19周,所以“2007-12-03”对应的“p”变量要“2007-07-23”对应的“p”变量比较。因为“2007-07-23”对应的“p”变量要大,所以“2007-12-03”对应的“high”变量的观测值要改为“.”, 而“2007-07-23”对应的“high”变量的观测值不变。

2、另外一个数据库“check”内有根据另一个交易规则分别产生的信号(这个信号变量是“high_sm”,取值为1和-1)。现在要把其中的信号和“have”中的信号合并(这个信号变量是“high”,取值为1和-1)。规则为,如果“have”中的信号在其发生时间的前后5个星期内(前边5个星期,加上后边5个星期),“check”里也有对应的信号,则保留“have”中的信号;否则,“have”中的“high”变量为“.”。

多谢各位帮忙了。

havecheck.rar
下载链接: https://bbs.pinggu.org/a-840612.html

2.28 KB

本附件包括:

  • have.sas7bdat
  • check.sas7bdat

关键词:数据库 check High Have 交易规则 数据库

回帖推荐

baoaibaobao 发表于5楼  查看完整内容

第1个问题

本帖被以下文库推荐

沙发
baoaibaobao 发表于 2011-1-25 13:25:52
有一个疑问,high是1和-1交叉的,也就是说obs3要与obs1比较,剩下的应该是obs5与obs3比较,7与5,9与7,...依次类推....?

藤椅
BraveMadMan 发表于 2011-1-25 14:15:26
baoaibaobao 发表于 2011-1-25 13:25
有一个疑问,high是1和-1交叉的,也就是说obs3要与obs1比较,剩下的应该是obs5与obs3比较,7与5,9与7,...依次类推....?
是滴,他们是交叉滴。high是1的跟high是1的obs相比较,high是-1的跟high是-1的obs相比较。所以跟你说的完全相符。
Don't get lost in technical details. What is the big picture?

板凳
elek.me 发表于 2011-1-25 14:46:06
现在在忙,等会有时间来写。   意思大概懂了。
我的博客: http://elek.me/sas
联系我: http://about.me/elek

报纸
baoaibaobao 发表于 2011-1-25 17:10:11
第1个问题
  1. data have;
  2. set have;
  3.         pp=lag2(p);
  4.         week=intck('week',date,lag2(date));
  5.         max=max(p,pp);
  6.         min=min(p,pp);
  7.         if high=-1 and week>-20 and p=max then high=.;
  8.         if high=1 and week>-20 and p=min then high=.;
  9.         drop max min pp week;
  10. run;
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
BraveMadMan + 1 + 1 + 1 很有启发
peijiamei + 1 + 2 观点有启发

总评分: 学术水平 + 2  热心指数 + 3  信用等级 + 1   查看全部评分

地板
BraveMadMan 发表于 2011-1-27 01:09:50
第二个问题还没解决。大家继续帮忙
Don't get lost in technical details. What is the big picture?

7
baoaibaobao 发表于 2011-1-27 07:47:38
第二个没明白意思,而且check好像就比have多了两条记录,其他都一样啊

8
BraveMadMan 发表于 2011-1-29 04:00:24
baoaibaobao 发表于 2011-1-27 07:47
第二个没明白意思,而且check好像就比have多了两条记录,其他都一样啊
这只是一个大数据中的一部分。这个have和check可能一样,也可能不一样。这就是为什么我要做这个第二步里的验证。

第二个问题是:如果have中的High=1,而且这个信号也在check中得到确认,那么就保留have中的high=1;否则,就将have中的high设为"."。

确认的规则是在“have”中的High=1发生时间的前后5个星期内(前边5个星期,加上后边5个星期),“check”里也有一个对应的“high=1”。

对have中的High=-1的情况也按以上规则确认。
Don't get lost in technical details. What is the big picture?

9
sber 发表于 2011-1-31 19:12:19
貌似楼主前几天问了差不多的问题 ELEK兄给了一个很好的CODE   坐等ELEK兄的神笔。

10
hongxx 发表于 2011-2-12 21:12:22
楼主对股票技术指标做分析?
第一个有我有个疑问。
只考虑High的情况:假如有high取值为1的3个连续点,顺序两点之间都小于20个星期,若 1点和2点 之间P大,那么1点high为1,2点的high为missing,但如果2点和3点比较,2点的p较大,则此时按照《让两者中变量"p"大的那个的high变量为“1”,另一个为“.”》,2点的high 要重设为1还是保持missing?
上述坛友给出的代码,没有考虑这个情况。
按照你的原文的意思,一个obs的high是否为1,不仅受前一个high取值1的obs的影响,还受下一个high取值1的obs影响。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 02:16