1 頁 (共 1 頁)

[討論]好期待股票的MOD

發表於 : 2004-02-10 04:17
jikey
非常期待股票的MOD :cry:
不知道誰有呢?

發表於 : 2004-02-10 04:39
依夢兒

發表於 : 2004-02-10 05:27
jikey
看過了但是官方停止支持.
而且我安裝的時候有問題他不能更改acp理的information.
可以說完全部能操作.
必須要有shop mod
把admin_stockmarket.php放進admin 就行了.

admin_stockmarket.php

代碼: 選擇全部

<?php 
/*************************************************************************** 
 *                             admin_stockmarket.php 
 *                            ------------------- 
 *   Version              : 0.1.0 
 *   began                : Thursday, May 15th, 2003 
 *   released             : Friday, May 16th, 2003 
 *   email                : moogie@shiningforcecentral.com 
 * 
 ***************************************************************************/ 

/*************************************************************************** 
 * 
 *   copyright (C) 2003  Moogie 
 * 
 *   This program is free software; you can redistribute it and/or 
 *   modify it under the terms of the GNU General Public License 
 *   as published by the Free Software Foundation; either version 2 
 *   of the License, or (at your option) any later version. 
 * 
 *   This program is distributed in the hope that it will be useful, 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 *   GNU General Public License for more details. 
 * 
 *   http://www.gnu.org/copyleft/gpl.html 
 * 
 ***************************************************************************/ 

define('IN_PHPBB', 1); 

if(   !empty($setmodules) ) 
{ 
   $file = basename(__FILE__); 
   $module['General']['Stockmarket Updater'] = $file; 
   return; 
} 

// 
// Let's set the root dir for phpBB 
// 
$phpbb_root_path = '../'; 
require($phpbb_root_path . 'extension.inc'); 
require('pagestart.' . $phpEx); 
// 
//check for userlevel 
// 
if( !$userdata['session_logged_in'] ) 
{ 
   header('Location: ' . append_sid("login.$phpEx?redirect=tableupdate.$phpEx", true)); 
} 

if( $userdata['user_level'] != ADMIN ) 
{ 
   message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); 
} 
//end check 

//main page 
if (!isset($action)) 
{ 
   $shopname = stripslashes($shopname); 
   $template->set_filenames(array( 
      'body' => 'admin/shop_config_body.tpl') 
   ); 


// Name of the shop containing shares 
$field_stockmarketname = 'Stockmarket'; 

//Defaults for caculating share prices 
$field_maxcost = '30'; // Maximum cost for shares 
$field_maxsold = '250'; // Maximum amount of each share available 
$field_maxchange = '30'; // Percentage (of current share cost) by which to increase or decrease share cost 

//Defaults for randomising share prices 
$field_randommin = '1'; // Minimum cost for shares 
$field_randommax = '30'; // Maximum cost for shares 

//Default universal cost 
$field_universalcost = '15'; // Cost to set all shares to 


   $shopinfo = '<tr><td colspan="2" align="center" class="row2"><span class="gen"><b>Update Share Prices</b></span></td></tr><tr><td class="row2"><span class="gensmall">Stockmarket Shop Name</span></td><td class="row2"><input name="stockmarketname" type="text" size="20" value="'.$field_stockmarketname.'"></td></tr><tr><td class="row2"><span class="gensmall">Maximum Share Cost</span></td><td class="row2"><input name="maxcost" type="text" size="4" maxlength="3" value="'.$field_maxcost.'"></td></tr><tr><td class="row2"><span class="gensmall">Quantity of Shares</span></td><td class="row2"><input name="maxsold" type="text" size="4" maxlength="3" value="'.$field_maxsold.'"></td></tr><tr><td class="row2"><span class="gensmall">Maximum Random Cost Change</span></td><td class="row2"><input name="maxchange" type="text" size="4" maxlength="3" value="'.$field_maxchange.'"> % of current share cost</td></tr><tr><td class="row2" colspan="2" align="center"><span class="gensmall"><input type="hidden" name="action" value="updateshares"><input type="submit" value="Update Share Prices "></span></d></tr></form> 
<tr><td class="row2" colspan="2"><br></td></tr><tr><td colspan="2" align="center" class="row2"><span class="gen"><b>Randomise Share Prices</b></span></td></tr><form method="post" action="'.append_sid("admin_stockmarket.$phpEx").'"><tr><td class="row2"><span class="gensmall">Stockmarket Shop Name</span></td><td class="row2"><input name="stockmarketname" type="text" size="20" value="'.$field_stockmarketname.'"></td></tr><tr><td class="row2"><span class="gensmall">Minimum Cost</span></td><td class="row2"><input name="randommin" type="text" size="4" maxlength="3" value="'.$field_randommin.'"></td></tr><tr><td class="row2"><span class="gensmall">Maximum Cost</span></td><td class="row2"><input name="randommax" type="text" size="4" maxlength="3" value="'.$field_randommax.'"></td></tr><tr><td class="row2" colspan="2" align="center"><span class="gensmall"><input type="hidden" name="action" value="randomiseshares"><input type="submit" value="RaNdOmIsE Share Prices!"></span></d></tr></form> 
<tr><td class="row2" colspan="2"><br></td></tr><tr><td colspan="2" align="center" class="row2"><span class="gen"><b>Set Universal Share Price</b></span></td></tr><form method="post" action="'.append_sid("admin_stockmarket.$phpEx").'"><tr><td class="row2"><span class="gensmall">Stockmarket Shop Name</span></td><td class="row2"><input name="stockmarketname" type="text" size="20" value="'.$field_stockmarketname.'"></td></tr><tr><td class="row2"><span class="gensmall">Share Cost</span></td><td class="row2"><input name="universalcost" type="text" size="4" maxlength="3" value="'.$field_universalcost.'"></td></tr><tr><td class="row2" colspan="2" align="center"><span class="gensmall"><input type="hidden" name="action" value="universalshares"><input type="submit" value="Set Universal Share Price"></span></d></tr></form>'; 
   $template->assign_vars(array( 
      'SHOPCONFIGINFO' => "$shopinfo", 
      'SHOPTABLETITLE' => "Update Stockmarket", 
      'S_CONFIG_ACTION' => append_sid('admin_stockmarket.' . $phpEx), 
      'SHOPTITLE' => "Stockmarket Updater", 
      'SHOPEXPLAIN' => "This section allows you to update the stock prices based on current sales and prices, or totally randomise the prices.") 
   ); 
} 

//update stockmarket prices based on amount sold and current cost 
if ($action == 'updateshares') 
{ 

   if (($maxcost <= 0) || (strlen($maxcost) < 1) || (!is_numeric($maxcost))) { message_die(GENERAL_MESSAGE, '<BR>Maximum Share Cost Not Valid!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0.<P>'); } 
   if (($maxsold <= 0) || ($maxsold > 255) || (strlen($maxsold) < 1) || (!is_numeric($maxsold))) { message_die(GENERAL_MESSAGE, '<BR>Quantity of Shares  Not Valid!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0, but less than 255.<P>'); } 
   if (($maxchange <= 0) || ($maxchange > 100) || (strlen($maxchange) < 1) || (!is_numeric($maxchange))) { message_die(GENERAL_MESSAGE, '<BR>Maximum Random Cost Change<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0, but less than 100.<P>'); } 
   if (strlen($stockmarketname) < 2) {message_die(GENERAL_MESSAGE, '<BR>Invalid Stockmarket Shop Name!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a valid shop name.<P>');} 

$mincost = round($maxcost/3); 
$avgcost = $mincost + round($maxcost/3); 

$minsold = round($maxsold/3); 
$avgsold = $minsold + round($maxsold/3); 


//price could go either way if price & sold high OR if price & sold avg OR if price & sold low 
   $sql = "UPDATE phpbb_shopitems SET cost = IF(((RAND(NOW())*2)+1)>1,cost + (RAND(NOW())*ROUND((cost/100)*$maxchange)),cost - (RAND(NOW())*ROUND((cost/100)*$maxchange))), cost = IF(cost > $maxcost,$maxcost,cost), cost = IF(cost <= 0,1,cost) WHERE (shop='$stockmarketname') && (((cost > $avgcost) && (sold > $avgsold)) || ((cost > $mincost) && (cost <= $avgcost) && (sold > $minsold) && (sold <= $avgsold)) || ((cost <= $mincost) && (sold <= $minsold)))"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Updating Stockmarket Costs!'); } 

//price more likely to go up if avg price & high sold OR if low price & avg sold 
$sql = "UPDATE phpbb_shopitems SET cost = IF(((RAND(NOW())*3)+1)<3,cost + (RAND(NOW())*ROUND((cost/100)*$maxchange)),cost - (RAND(NOW())*ROUND((cost/100)*$maxchange))), cost = IF(cost > $maxcost,$maxcost,cost), cost = IF(cost <= 0,1,cost) WHERE (shop='$stockmarketname') && (((cost > $mincost) && (cost <= $avgcost) && (sold > $avgsold)) || ((cost <= $mincost) && (sold > $minsold)  && (sold <= $avgsold)))"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Updating Stockmarket Costs!'); } 

//price more likely to go down if high price & avg sold OR if avg price & low sold 
$sql = "UPDATE phpbb_shopitems SET cost = IF(((RAND(NOW())*3)+1)<3,cost - (RAND(NOW())*ROUND((cost/100)*$maxchange)),cost + (RAND(NOW())*ROUND((cost/100)*$maxchange))), cost = IF(cost > $maxcost,$maxcost,cost), cost = IF(cost <= 0,1,cost) WHERE (shop='$stockmarketname') && (((cost > $avgcost) && (sold > $minsold) && (sold <= $avgsold)) || ((cost > $mincost) && (cost <= $avgcost) && (sold <= $minsold)))"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Updating Stockmarket Costs!'); } 


//price goes up if low price & high sold 
   $sql = "UPDATE phpbb_shopitems SET cost = cost + (RAND(NOW())*ROUND((cost/100)*$maxchange)), cost = IF(cost > $maxcost,$maxcost,cost), cost = IF(cost <= 0,1,cost) WHERE (shop='$stockmarketname') && ((cost <= $mincost) && (sold > $avgsold))"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Updating Stockmarket Costs!'); } 

//price goes down if high price & low sold 
   $sql = "UPDATE phpbb_shopitems SET cost = cost - (RAND(NOW())*ROUND((cost/100)*$maxchange)), cost = IF(cost > $maxcost,$maxcost,cost), cost = IF(cost <= 0,1,cost) WHERE (shop='$stockmarketname') && ((cost > $avgcost) && (sold <= $minsold))"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error 2 Updating Stockmarket Costs!'); } 


   $message = "<BR>Stockmarket Costs Updated!<p>Click <a href="".append_sid("admin_stockmarket.".$phpEx)."">Here</a> to return to the Stockmarket Updater.<p>Click <a href="".append_sid("index.".$phpEx."?pane=right")."">Here</a> to return to Admin Index.<p>"; 
message_die(GENERAL_MESSAGE, $message); 

} 



//randomise stockmarket 
if ($action == 'randomiseshares') 
{ 

   if (($randommin <= 0) || (strlen($randommin) < 1) || (!is_numeric($randommin))) { message_die(GENERAL_MESSAGE, '<BR>Minimum Cost Not Valid!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0.<P>'); } 
   if (($randommax <= 0) || (strlen($randommax) < 1) || (!is_numeric($randommax))) { message_die(GENERAL_MESSAGE, '<BR>Maximum Cost Not Valid!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0.<P>'); } 
   if (strlen($stockmarketname) < 2) {message_die(GENERAL_MESSAGE, '<BR>Invalid Stockmarket Shop Name!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a valid shop name.<P>');} 

   $sql = "UPDATE phpbb_shopitems SET cost = ROUND(RAND(NOW())*($randommax-$randommin))+$randommin WHERE shop='$stockmarketname'"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Randomising Stockmarket Costs!'); } 

   $message = "<BR>Stockmarket Costs Randomised!<p>Click <a href="".append_sid("admin_stockmarket.".$phpEx)."">Here</a> to return to the Stockmarket Updater.<p>Click <a href="".append_sid("index.".$phpEx."?pane=right")."">Here</a> to return to Admin Index.<p>"; 
 message_die(GENERAL_MESSAGE, $message); 

} 


//set universal share price 
if ($action == 'universalshares') 
{ 

   if (($universalcost <= 0) || (strlen($universalcost) < 1) || (!is_numeric($universalcost))) { message_die(GENERAL_MESSAGE, '<BR>Universal Share Cost Not Valid!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a number greater than 0.<P>'); } 
   if (strlen($stockmarketname) < 2) {message_die(GENERAL_MESSAGE, '<BR>Invalid Stockmarket Shop Name!<P>Please <a href="'.append_sid('admin_stockmarket.'.$phpEx).'">go back</a> and enter a valid shop name.<P>');} 

   $sql = "UPDATE phpbb_shopitems SET cost = $universalcost WHERE shop='$stockmarketname'"; 

if ( !($db->sql_query($sql)) ) { message_die(GENERAL_MESSAGE, 'Fatal Error Randomising Stockmarket Costs!'); } 

   $message = "<BR>Universal Share Price Set!<p>Click <a href="".append_sid("admin_stockmarket.".$phpEx)."">Here</a> to return to the Stockmarket Updater.<p>Click <a href="".append_sid("index.".$phpEx."?pane=right")."">Here</a> to return to Admin Index.<p>"; 
 message_die(GENERAL_MESSAGE, $message); 

} 

// 
// Generate the page 
// 
$template->pparse('body'); 

include('page_footer_admin.' . $phpEx); 


?> 

發表於 : 2004-02-11 00:22
新手上路
嗯!有的話一定會超好玩的!^_^可惜我不會........

發表於 : 2004-02-11 03:55
神僕
我所知Yahoo是可以給予股票搜尋連結,
另外有一種是股票市場虛擬交易
http://203.67.66.16/
希望有幫助

發表於 : 2004-02-11 16:03
大&#39532;竹&#2
炒股~家破人亡^^"

發表於 : 2004-02-11 16:54
jikey
神僕 寫:我所知Yahoo是可以給予股票搜尋連結,
另外有一種是股票市場虛擬交易
http://203.67.66.16/
希望有幫助
嗯!那网好麻烦。。。。
哈哈哈哈~~还有不是phpbb的。。。 :-(

發表於 : 2004-02-11 19:21
hk1989
可否給個網址下載....

發表於 : 2004-02-17 17:13
ETERNAL
我對這個mod蠻有興趣的
不過我想做的不是虛擬的股票
是真實的股票看盤\r

通常股市一開盤時,一些股票看盤的網站(如http://tw.stock.yahoo.com/)
常常因為人多過於忙碌連不太上不去,錯失下單的好時機
所以想做一個方便自己看盤的程式
但是苦於不知道如何獲得即時股票資料
(不是用抓網站頁面的方式,網站過於忙碌連不上去要怎麼抓)

我以前寫即時氣象的經驗是\r
中央氣象局有一個公開ftp server,裡面放有即時的氣象資料
只要寫隻程式,定時去抓取資料回來分析
就可以製作自己想要的氣象播報頁面\r

有人有寫過股票方面程式的經驗嗎?
可以交流一下嗎? :-)