【发布时间】:2023-03-13 20:20:01
【问题描述】:
关注这个问题Generate a fictitious stock option price variation
我希望模拟价格变化,同时用户下达买入或卖出订单,就像真实的证券交易所一样。 (我做一个用户案例来帮助大家理解。)
初始状态“股票期权示例”:
X 公司,股票期权价格为 20,000 美元
使用这个 PHP 脚本,CRON 任务每秒都会产生价格变化:
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
图片中的结果(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
}
也许我有点疯狂地认为它可以自动化,但我相信它,任何帮助将不胜感激。
【问题讨论】:
-
我不想写我的代码,我只是想对数学函数有所帮助!非常感谢您的否决票,我的问题形式明确且清晰。你的评论真的不有趣!
-
然后你删除了它... ^^
-
只是一些想法:您似乎打算让
buyOrder()和sellOrder()函数都接受价格,这意味着它们实际上是限价订单。考虑到这一点,逻辑应该是这样的:在收到给定价格的订单时,在数据库中搜索相应的“匹配”订单并以“正确”价格履行订单,即价格限制在每个订单。然后执行订单,从数据库中删除条目并更新最后卖出的价格。 -
使用无限制(市场价格)订单,您会立即看到未结订单数据库中可用的内容并执行/履行。当您有多个未完成的市价订单时,就会出现问题。在这种情况下如何确定价格?这几乎就像模拟缺乏流动性一样,这可能会导致巨大的价格波动。
-
你的cmets很有趣,我没有看到这样的东西。用户之间直接通过订单买卖价格,更加连贯!但是我应该与最终价格有什么关系?...就像你说的那样,它应该会导致巨大的价格波动。用户之间交换的平均价格和行动价格?
标签: php math stocks stockquotes