php - 用户订单的股票期权价格变化(买/卖)

标签 php math stocks stockquotes

跟随这个问题Generate a fictitious stock option price variation

我想模拟价格变化,同时用户发出买入或卖出指令,就像真实的证券交易所一样。 (我做了一个用户案例来帮助你理解。)

初始状态“股票期权示例”:

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 小时按分钟) Stock option price variation

用户案例“购买示例”:

  • 用户发送订单以 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       
}

也许我有点疯狂地认为可以将其自动化,但我相信它,我们将不胜感激任何帮助。

最佳答案

只是想进一步扩展我的评论。这是一个基本场景;假设我们从数据库/系统中的零个未完成订单开始。

  1. 用户 A 以 10 美元的价格提交了 20 单位股票 X 的限价卖单。
  2. 用户 B 以 12 美元的价格提交了 10 单位股票 X 的限价买单。

在第 1 步之后,您将在系统中有一个未完成的订单,因为没有可匹配的未结订单。

在第 2 步之后,用户 B 提交的订单可以由系统中的未结订单完成。 (为简单起见,我们假设用户 A 的订单可以拆分,即不是全有或无订单)

用户B的买单之所以能成交,原因有二:

  1. 存在数量大于或等于买入订单数量的未平仓卖出订单。
  2. 限价买入价大于等于限价卖出价,可以约定成交价。

用户 A 不想以低于 10 美元的价格出售,用户 B 也不想以超过 12 美元的价格购买。所以在这种情况下,有一个合适的交易价格范围,即10-12美元之间的任何价格都是合适的。

问题是找到合适的交易价格。如何确定呢?选择范围的中间?这只是一种解决方案。 (在流动性很大的市场中,您可能不会遇到此类问题,因为会有很多不同价格的未平仓订单,还有一些是市场价格。)

为了举例,假设您选择了 11 美元的交易价格,即合适范围的中间值。用户 B 的订单现在已完成,由于用户 A 的订单仅部分完成,系统中将剩下一个未结订单:用户 A 以 10 美元的价格出售剩余的 10 个单位。最后交易价格将更新为 11 美元。

关于php - 用户订单的股票期权价格变化(买/卖),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379261/

相关文章:

math - 以 R 为重点学习应用统计学

javascript - Google 财经的股票报价问题

php - SESSION 变量在需要 SIMPLESAMLPHP 后不起作用

php - Stripe - 使用表单中的电子邮件检索客户 ID

php - 如何在php中为循环创建数据库

python - 整数 NxN 矩阵的精确行列式

php - 使用 while 循环将 db 值存储到 php 数组中?

math - 找到第三点

python - Matplotlib - 填充问题

c++ - 我的股票市场计划可以使用什么数据源?