Эта статья объяснит основы, чтобы вы могли решить, хотите ли использовать тренд для своих целей.
Сначала нам нужно понять, что подразумевается под "трендом". Для этого мы рассмотрим что-то, что называется линейной регрессией. В основе линейной регрессии лежит попытка найти линию, которая наилучшим образом соответствует точкам данных. Основываясь на этой линии, мы можем видеть, увеличивается или уменьшается цена наблюдаемого предмета за определённый период времени. Рассмотрим следующий пример:
Применительно к графику цен предметов на Steam можно сказать, что по оси x у нас время, а по оси y — цена. Одна точка на графике будет представлять цену предмета, по которой он был продан в определённое время (позже мы покажем, что на самом деле это может быть больше одного предмета). Синяя линия — это то, что мы ищем. Она представляет тренд цены предмета.
Теперь, когда мы понимаем основы и особенности Steam, мы можем рассчитать тренд. Для этого мы сначала берем историю цен предмета на Steam за определённый период времени (допустим, последние 24 часа) и преобразуем её в следующий формат:
1[
2{ date: 1708902000000, price: 48.724, amount: 1 },
3{ date: 1708905600000, price: 84.237, amount: 2 },
4{ date: 1708909200000, price: 47.906, amount: 1 },
5{ date: 1708930800000, price: 48.724, amount: 2 },
6{ date: 1708934400000, price: 21642.498, amount: 1 },
7{ date: 1708938000000, price: 83.425, amount: 1 },
8{ date: 1708945200000, price: 62.989, amount: 1 },
9{ date: 1708959600000, price: 84.907, amount: 3 },
10{ date: 1708970400000, price: 84.253, amount: 1 },
11{ date: 1708977600000, price: 61.371, amount: 1 },
12]
Сначала исключаем строку 6, так как она является выбросом. Затем мы рассчитываем тренд, используя взвешенную линейную регрессию (мы используем количество каждой транзакции как вес). На оси x мы отсчитываем от 0 до n-1, где n — количество транзакций. На оси y у нас цена транзакции. Это приводит к следующей линейной регрессии:
1{
2equation: [ 0.6264977099236582, 63.62731755725193 ],
3points: [
4[ 0, 63.62731755725193 ],
5[ 1, 64.25381526717558 ],
6[ 2, 64.88031297709924 ],
7[ 3, 65.5068106870229 ],
8[ 4, 66.13330839694656 ],
9[ 5, 66.75980610687022 ],
10[ 6, 67.38630381679388 ],
11[ 7, 68.01280152671754 ],
12[ 8, 68.6392992366412 ]
13],
14string: 'y = 0.63x + 63.63'
15}
Теперь у нас есть два варианта, какую информацию передать потребителю API.
Эта статья объяснила основы расчёта тренда для предметов на Steam. Здесь рассмотрены только основы и не учитываются все особые случаи. Не стесняйтесь комментировать и задавать вопросы, если у вас есть вопросы в нашем сервере Discord.