Я бьюсь над этим уже более 100 часов и не знаю, что делать. Мне нужно создать систему торговли акциями на PHP. Пользователи размещают заказы на покупку/продажу акций на рынке, и мне нужен механизм, который будет осуществлять расчеты по сделкам с акциями и обменивать деньги. Я говорю о такой системе, как фондовая биржа или Binance. При размещении заказа количество акций или денег списывается немедленно. Например, если пользователь хочет купить все акции по цене 1, 2, 3, 4, 5 долларов и размещает заказ на покупку по цене 6 долларов за X акций, он должен получить возмещение за акции, которые были дешевле 6 долларов, а также за все оставшиеся невыполненные акции. акции должны оставаться на рынке. И наоборот, в ситуации продажи, если предложения о покупке составляют 9, 8, 7, 6 долларов и пользователь размещает ордер на продажу на 5 долларов, чтобы покрыть все эти предложения о покупке, он должен заработать более 5 долларов за некоторые заказы, поскольку цены покупки были выше.
Алгоритм должен работать следующим образом:
А: продает 10 акций по 10 долларов в 16:00
Б: покупает 5 акций по 12 долларов в 17:00Таким образом, цена должна быть рассчитана как 10 долларов США, поскольку покупатель разместил ордер позже.
В обратной ситуации:
А: покупает 10 акций по 12 долларов США в 16:00.
B: продает 5 акций по 10 долларов в 17:00
Он должен рассчитать цену как 12 долларов и передать эту сумму B.
Моя главная проблема заключается в том, что через некоторое время симуляции, пользователи получают баланс в размере 0 долларов США.
Мои таблицы:
Пользователи: баланс таблицы
user_stock: таблица Company_1
заказ:
transactions_history:

Большое спасибо за ваш help
Я хочу, чтобы это работало, и я хочу, чтобы сопоставление ордеров и обмен акциями и деньгами были правильными.
Подробнее здесь:
https://stackoverflow.com/questions/789 ... -algorithm