完善『股市插件修正版』2003年11月9日

楼主
完善『股市插件修正版』2003年11月9日
以下供讨论,不一定正确


这个插件是这样设定的:
1、在股票涨停的情况下,仍然可以由触发随机事件来影响涨跌,就是说,仍然可以涨,反过来也一样,在跌停的情况下,仍然可以跌,所以你的跌到负就不奇怪
2、在涨停跌停下,股市老油条(机器人)仍然可以操作,所以,也就仍然可以在涨停下上涨,反过来也一样
关键是应该定义随即事件,在张停跌停下不影响股价

此外
在涨停下仍然可以买,在跌停下仍然可以卖,是不合理的,因为显然可以滋生通过多个帐号来牟利的现象,反过来也一样


---------------------------------------------------

sub AI()
     Randomize
     Rnum=rnd
     if Rnum>=1-AI_Setting(1) then
           dim RndID,StockNum,StockName,StockPrice
           dim BuyNum
           RndID=conn.execute("select top 1 cid from 股票 order by cid desc")(0)            '现有股票的数目  
           Randomize Rnd
           RndID=int(RndID*rnd)+1            '被AI操作的股票ID
           set rs=conn.execute("select 交易量,企业,当前价格,开盘价格 from 股票 where Cid="&RndID)
           StockNum=rs(0):      StockName=rs(1) : StockPrice=rs(2) : kaipanPrice=rs(3)
           rs.close
           if (StockPrice-kaipanPrice)/kaipanPrice>=Trade_Setting(9)+0 or (StockPrice-kaipanPrice)/kaipanPrice<=-Trade_Setting(10)+0 then exit sub

---------------------------------------------------------

以上代码是解决股市老油条在张跌停下仍然操作的问题,用以上代码替换“sub AI()”和“if StockNum+0<100 then exit sub'当股票的交易量小于100是不进行操作”之间的部分

随机事件可以不作修改,因为它是定义了在跌停下如果被随机选中就打开跌停
 
 

上面的代码在chufa.asp中,你可以在这个文件编辑的时候查找"sub AI()"就能找到相应代码
 




以下文件是修改exchange.asp,解决在张跌停下不允许买卖的问题

---------------------------------------------------------------


'-------------------买入股票--------------------------
sub Buy()
     if cint(Trade_Setting(0))=0 then
           errmess="<li>股市交易已经暂停,不能进行股票买卖操作"
           call endinfo(1)
           exit sub     
     end if
     if FallLimit or RaisingLimit then
           errmess="<li>对于跌停或者涨停的股票是不能进行买入卖出操作的哦"
           call endinfo(1)
           exit sub
     end if

----------------------------------------------------------------------

以上代码是修改后的
     if FallLimit or RaisingLimit then
后的部分与原先不同,大家可以对照原先的这段代码看看,原先只定义if falllimit then
不允许买入,现在是改成不论张跌停都不允许

下面是另一段

修改后的

-------------------------------------------------------

'-------------------卖出股票--------------------
sub Sale()
     if cint(Trade_Setting(0))=0 then
           errmess="<li>股市交易已经暂停,不能进行股票买卖操作"
           call endinfo(1)
           exit sub     
     end if
     if FallLimit or RaisingLimit then
           errmess="<li>对于跌停或者涨停的股票是不能进行买入卖出操作的哦"
           call endinfo(1)
           exit sub
     end if


-------------------------------------------------------------------------

以上的代码大家可以把exchange.asp用记事本打开,编辑---查找,分别找“买入股票”和“卖出股票”,相应对比修改

下面是修改的文件,大家在备份原先的exchange.asp和chufa.asp后,可以用下面的覆盖测试


[img]../images/fileType/rar.gif[/img]此主题相关文件 [url=../images/upload_mm/2003/11/09/225408.rar]225408.rar[/url]
1楼
提升!
精华!
2楼
我更新了,谢谢了
还有个问题,为什么我卖出股票,造成股价上涨了百分之一千多,影响会这么大?

有时卖出股票,造成股价下跌了百分之一千多,这样股价就一下子变成负数了。
3楼
sub AI()
     Randomize
     Rnum=rnd
     if Rnum>=1-AI_Setting(1) then
           dim RndID,StockNum,StockName,StockPrice,kaipanPrice


HIOO,我在访问你的股市的时候发现这个问题,很奇怪,在我用的时候从来没有这个错误,说是变量kaipanPrice未定义
请确定,你是不是完全按照我的代码改的,具体查一下
set rs=conn.execute("select 交易量,企业,当前价格,开盘价格 from 股票 where Cid="&RndID)
           StockNum=rs(0) :StockName=rs(1) : StockPrice=rs(2) : kaipanPrice=rs(3)
上面的代码是不是改后是这个样子,如果是的话,你将这段代码改成这个样子看看

sub AI()
     Randomize
     Rnum=rnd
     if Rnum>=1-AI_Setting(1) then
           dim RndID,StockNum,StockName,StockPrice,kaipanPrice

主要是在最后加了个kaipanPrice的定义,但我怀疑问题还是在上面


你试着用上面代码替换chufa.asp中相应代码看看

那个股票上涨1000%,我看过了,是因为你的总股数定的太低了,举个例子:
一个股票,你定价基本在10元左右,总股数是1000股(你定的),则你买入股票新的股价的定价为:

新的股价=买入价格*买入数量*随机数*30/总股数

上面的随机数程序定义如果小于0.4,则加上0.5,则至少随机数为0.5

新的股价=买入价格*买入数量*0.5*30/总股数

假如你买800股,买入价格为11块

新的股价=11*800*0.5*30/1000=132块

于是你的股票价格上涨1100%

原因在于你的总股数太小,用股市话说,盘子太小,而你每股允许交易的上限又相对太大,一下子就说不定可以买完全盘,即使你自己定义每次买1股,机器人照样可以买很多(除非修改程序),所以,最好还是把盘子弄到大点,10元的价格,10000000股的盘子总归要的
4楼
谢谢,原来如些。

但是有些个股是论坛的会员申请上市的,他没那么多积分,所以发行的股数有限呀

有没什么办法来控制让它跌涨到停牌价以后就止住呢?
5楼
没有有效办法,你只能提高上市门槛,或者降低每次交易亮上限,1000股,你每次估计只能控制几股的上限交易量,就没意思了

还有,你哪个访问gupiao.asp报错的问题解决了没?

电脑版 Page created in 0.1016 seconds with 4 queries.