免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4188 | 回复: 5
打印 上一主题 下一主题

股票机代码修改了一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-17 23:00 |只看该作者 |倒序浏览
#!/user/bin/perl -w

#By xti9er www.xtiger.net

use LWP::Simple;
use Color::Output;
Color::Output::Init;

$|=1;
my $fst=0;
my $stimeout;
my $googleq="";
my $nowsc=0;
my (@scode,@sc,@spr);

START:
system("cls");
`title  --= M y  S t o c k  S c r e e n e r =--`;
cprin("\tM y  S t o c k  S c r e e n e r\n\n",7);
cprin("_"x60,13);
if($fst==0)
{
    cprin("\n程序开始初始化",13);
    my @gettime=localtime();
&nbsp;&nbsp;&nbsp;&nbsp;if($gettime[2]>15 or $gettime[2]<9){$stimeout=1}
&nbsp;&nbsp;&nbsp;&nbsp;else{$stimeout=0}

&nbsp;&nbsp;&nbsp;&nbsp;open(ST,"st.ini") or die $!;
&nbsp;&nbsp;&nbsp;&nbsp;while(my $info=<ST>)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chomp($info);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if $info=~/^#/;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my ($scode,$sc,$spr)=split(/=/,$info);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push(@scode,$scode);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push(@sc,$sc);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push(@spr,$spr);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;$allst=scalar(@scode);
&nbsp;&nbsp;&nbsp;&nbsp;$fst=1;

for(@scode)
{
&nbsp;&nbsp;&nbsp;&nbsp;if(my $nowcode=getcode($_))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$googleq=$googleq."id-$nowcode,";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print ".";
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else{next;}
}
&nbsp;&nbsp;&nbsp;&nbsp;#print "$googleq\n";

&nbsp;&nbsp;&nbsp;&nbsp;goto START;
}

sub getcode
{
&nbsp;&nbsp;&nbsp;&nbsp;my $newst=shift;
&nbsp;&nbsp;&nbsp;&nbsp;my $nowcode=get("http://www.google.cn/finance?q=$newst");
&nbsp;&nbsp;&nbsp;&nbsp;if($nowcode=~/<span\sclass=\"pr\"\sid=\"ref_(\d+)_l\"\>/)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $1;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;
}

print "
\n当前时间:".scalar(localtime())."\n";
cprin("
_"x60,13);

if(my $googled=get("
http://www.google.cn/finance/info?q=$googleq&infotype=infoquoteall&hl=zh-CN&gl=cn"))
{
&nbsp;&nbsp;&nbsp;&nbsp;my @info=split(/\,/,$googled);
&nbsp;&nbsp;&nbsp;&nbsp;print "
\n股票码\t开盘价\t成本价\t持有量\t",$stimeout=0?"当前价\t":"收盘价\t","涨跌\t盈亏\t名称\n";
&nbsp;&nbsp;&nbsp;&nbsp;for my $newinfo(@info)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#print "
$newinfo\n";&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nowsc=0 if $nowsc>$allst-1;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($newinfo=~/\"(.*)\"\s\:\s\"(.*)\"/)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $infot=$1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $infoc=$2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if $infot=~/avvo|ccol|l_cur|lt|fwpe|beta|lo52|hi52/;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#print "
$infot=$infoc\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($infot eq "
t"){$t=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($infot eq "
op"){$op=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#if($infot eq "
hi"){$hi=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#if($infot eq "
lo"){$lo=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($infot eq "
l"){$l=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($infot eq "
cp"){$cp=$infoc}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($infot eq "
lname"){$lname=$infoc}&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($infot eq "
type")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
$t\t";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
$op\t";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#cprin("
$hi\t",($hi-$op)>0?5:7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#cprin("
$lo\t",($lo-$op)>0?5:7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
$spr[$nowsc]\t";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
$sc[$nowsc]\t";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cprin("
$l\t",($l-$op)>0?5:7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cprin("
$cp\t",$cp>0?5:7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $gl=int($sc[$nowsc] * ($l-$spr[$nowsc]));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cprin("
$gl\t",$gl>0?5:7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
$lname\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "
-----------\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nowsc++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
else
{
&nbsp;&nbsp;&nbsp;&nbsp;cprin("
\n[!] GetInfo Fail\n",5);
}

sleep 10;
goto START;

sub cprin
{
&nbsp;&nbsp;&nbsp;&nbsp;($str,$i)=@_;
&nbsp;&nbsp;&nbsp;&nbsp;cprint("
\x03" . $i . " $str\x030
);}


##############################


新增加功能:
1、配置文件st.ini
内容格式如下:
##########################
#股票代码=成本价=持有量
600000=****=39.513
600022=****=4.169
600690=****=10.186
##########################

2、根据配置文件中的关注股票和持有信息,计算当前盈利状况


上次发的代码,很多朋友提了不少建议。有些呢实现起来不现实,比如K线图,那是需要长期的数据作为支持的。
还有些功能,也懒得写,因为我不需要。说实话,没多少时间搞这些没什么产出的东西。大家如果觉得合适用呢,可以拿去用。我不会再改了。

[ 本帖最后由 xti9er 于 2009-5-17 23:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-06-16 10:59 |只看该作者

回复 #1 xti9er 的帖子

程序有个小错误,修改了一下
第60行。
    if($nowcode=~/<span\sclass=\"pr\"><span\sid=\"ref_(\d+)_l\"\>/)

论坛徽章:
0
3 [报告]
发表于 2009-06-16 11:05 |只看该作者

回复 #1 xti9er 的帖子

顶!!!学习!!!


但你也用了goto,很多人不建议用goto,不知道为什么。

论坛徽章:
0
4 [报告]
发表于 2009-06-16 22:48 |只看该作者
原帖由 gaochong 于 2009-6-16 11:05 发表
顶!!!学习!!!


但你也用了goto,很多人不建议用goto,不知道为什么。



才懒得矫情那些呢,我不是程序员不在乎,不是商用以及企业用的代码不在乎。

论坛徽章:
0
5 [报告]
发表于 2009-06-17 00:06 |只看该作者
方便的话 能提供一下google股票api的说明或链接吗?

论坛徽章:
0
6 [报告]
发表于 2009-06-17 14:27 |只看该作者
没有文档和链接,估计google暂时也未必愿意提供,这个好像还是试验性质的。

我做的过程,都是自己抓包分析的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP