按照这个问题生成一个虚构的股票期权价格变化
我希望模拟价格变化,同时用户下达买入或卖出订单,就像真实的证券交易所一样。(我做了一个用户案例来帮助你理解。)
初始状态“股票期权示例”:
X 公司,股票期权价格 20,000 美元
CRON 任务每秒都会产生价格变化,使用这个 PHP 脚本:
function stockVariation($price,$max_up,$max_down)
{
// Variation calculate, with volatility max (10 to 100)
$ratio=(mt_rand(0,$max_up)-mt_rand(0,$max_down))/10000;
// New price
$price+=$ratio;
return round($price,5);
}
波动性是由随机消息造成的,这使得 $max_up > $max_down 或 $max_up < max_down 随机时间。之间,$max_up = $max_down。
图片中的结果(1小时/分钟)
用户案例“购买示例”:
- 用户发送订单以 18,000 美元购买 1000 份该期权
- 系统将订单存入数据库
- CRON 任务每分钟验证一次,如果价格 <= 购买订单,则在最后一分钟
- 当此期权的价格<=此订单时,用户获得此股票期权。
用户案例“销售示例”:
- 用户发送订单以 22,000 美元的价格出售 1000 份该期权
- 系统将订单存入数据库
- CRON 任务每分钟验证一次,如果价格 >= 卖单,最后一分钟
- 当该期权的价格>=该订单时,用户卖出该股票期权。
我的问题
它运行良好,但它不是证券交易所市场的真正变体。
我的问题
如何根据订单的价格和数量进行价格变动?
就像“供求规律”一样。
例如(关于彼得答案的编辑):
function stockOrder($orderPrice,$orderQuantity,$type)//$type= buy or sell
{
// Record the order in database (ok)
// Compare with other orders (ok)
// $orderPrice<=$dbSellPrice or $orderPrice>=$dbBuyPrice
if checks
// Buy and sell at the best prices
// for quantities available holded by users (ok)
// Record/update the holding of the stock (ok)
// Update the price of the stock
end if
}
也许我有点疯狂地认为它可以自动化,但我相信它,任何帮助将不胜感激。