php – 用户订单的股票期权价格变化(买入/卖出)
关注这个问题
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< max_down随机时间.之间,$max_up = $max_down. 图片结果(1小时分钟) >用户发送订单以18,000美元购买1000个此选项 >用户发送订单以22,000美元的价格出售1000个此选项 我的问题 它工作正常,但它不是证券交易市场的真正变化. 我的问题 如何根据订单的价格和数量进行价格变动? 像“供求法则”. 例如(编辑彼得回答): 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 } 也许我有点疯狂,认为可以自动化,但我相信,任何帮助将不胜感激. 解决方法
只是想扩展我的评论.这是一个基本情景;假设我们从数据库/系统中的未完成订单开始.
>用户A提交20单位股票X @ 10美元的限价卖单. 在步骤1之后,您将在系统中有一个未完成的订单,因为没有要打开的订单. 在步骤2之后,用户B提交的订单可以通过系统中的未结订单来履行. (为简单起见,我们假设用户A的订单可以被分解,即不是全有或无订单) 用户B的购买订单可以履行的原因有以下两个原因: >对于大于或等于买单数量的数量,存在未平仓卖出卖单. 用户A不想以低于10美元的价格出售,而用户B不想以超过12美元的价格购买.因此,在这种情况下,存在一系列合适的交易价格,即10-12美元之间的任何价格都是合适的. 问题是找到合适的交易价格.怎么判断出来?选择范围的中间?这只是一种解决方案. (在流动性很大的市场中,你可能没有同样的问题,因为会有很多不同价格的开放订单,有些是市场价格.) 为了举例,我们假设您选择了11美元的交易价格,即合适范围的中间值.用户B的订单现在已经完成,并且由于用户A的订单仅部分履行,系统中将剩下一个未结订单:用户A以10美元的价格出售剩余的10个单位.最后的交易价格将更新为11美元. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |