Настройки торговли и автопереоценка лотов Steam
Это вкладка «Стратегия торговли» в рабочем пространстве аккаунта. Здесь вы задаёте, по какой цене раннер покупает и продаёт, какую прибыль закладывает, как выполняет автопереоценку лотов Steam, как защищается от падающего рынка и насколько агрессивно действует. Если вы ищете «бот Steam Market», полезнее думать об этой странице как о настройках осторожной автоматизации: лимиты, задержки и малые live-объёмы важнее максимальной скорости.
Документ разобран ровно по тем же секциям, что вы видите на экране, и каждый параметр назван его точной русской подписью из интерфейса «в кавычках». Где это полезно, рядом в коде приведён внутренний ключ — но ориентируйтесь на подпись.
Каждый новый Steam-аккаунт получает консервативную стратегию по умолчанию (значения — ниже). Не настраивайте 30 полей вручную: меняйте только то, что понимаете и что вам действительно нужно.
Вкладка показывает эффективные значения, с которыми работает движок. Очистка поля не выключает правило — она убирает ваше переопределение, и поле возвращается к значению стратегии. Чтобы выключить порог, введите «выключающее» значение из таблиц ниже (обычно 0 или -1).
Вкладка «Стратегия торговли» целиком. Подписать: (1) выпадающий список области применения («По умолчанию» / «Группа · …»), (2) карточки «Покупка» и «Продажа», (3) раскрывающийся блок «Расширенные настройки», (4) кнопки «Сбросить» и «Сохранить».
Область применения: аккаунт или группа
Справа вверху — выпадающий список:
- «По умолчанию» — настройки действуют на весь аккаунт.
- «Группа · имя» — переопределения только для предметов этой группы. Под переключателем показывается «затронуто предметов: N». Настройки группы накладываются поверх аккаунтных, так что один аккаунт может вести разные стратегии для разных наборов предметов.
После правок жмите «Сохранить», либо «Сбросить», чтобы откатить несохранённое.
Как считается цена
Цена формируется в два этапа: алгоритм даёт базовую цену из рыночных данных, затем поверх неё накручиваются комиссия Steam, ваш процент прибыли и клэмпы (минимумы прибыли).
Цена, которую вы задаёте/получаете при продаже, — это сумма, которую получает продавец (за вычетом комиссий Steam). Покупатель платит больше (gross). Система считает обе величины и отправляет в Steam именно net — иначе листинг был бы завышен примерно на 15 % и не продавался. Подробнее — Глоссарий.
«График продаж» для алгоритмов строится из снапшотов, которые сервис накапливает каждые ~6–8 часов, а не из разовых обращений к Steam. Чем дольше работает накопление, тем устойчивее цена. Стакан ордеров (для алгоритма «Стакан» и для live-проверок) подтягивается в момент решения.
Полная таблица настроек
Ниже — все поля, сгруппированные по секциям экрана. На основной карточке — «Покупка» и «Продажа», остальные секции — под «Расширенные настройки». Колонка «выкл = …» — самый важный столбец: у многих настроек 0/-1 означает «выключено», а не «лимит 1». Пустое поле — это «наследовать стратегию», а не «выключено».
Большинство денежных полей задаются в мажорной валюте (доллары/рубли, например 2 = 2 $), а не в центах. Это касается, в частности, «Мин. прибыль» и «Не продавать, если стикеры $ >». Проценты и количества — как обычно.
Игра
| Метка в UI | Что делает | Единицы | По умолчанию |
|---|---|---|---|
«Игра» (appid) | Каталог предметов, по которому идёт анализ (CS2 = 730, Rust = 252490). Управляет тем, какие гарды показываются (стикеры/float — только для CS2). | выбор | игра аккаунта |
Цели по прибыли
| Метка в UI | Что делает | Единицы | 0 = … |
|---|---|---|---|
«Целевая маржа» (profitPercent) | Целевая маржа поверх цены покупки. | % | без наценки |
«Мин. маржа» (profitPercentMin) | Нижняя граница маржи — предметы ниже неё отклоняются. | % | без нижней границы |
«Мин. прибыль» (minProfit) | Минимальная абсолютная прибыль на сделку. Мажорные единицы (не центы!). | валюта | без абсолютного минимума |
Финансовая защита
| Метка в UI | Что делает | Единицы | 0 / пусто = … |
|---|---|---|---|
«Макс. сумма в ордерах на покупку» (maxOrderExposure) | Жёсткий потолок суммы всех открытых ордеров на покупку. | валюта | авто: только 10× баланса кошелька |
«Лимит позиции по предмету» (maxInventory) | Потолок по предмету: инвентарь (включая копии в холде) + ваши активные листинги + количество в открытых ордерах. Достигнут — покупка по предмету пропускается. | шт | без лимита |
Если «Макс. сумма в ордерах на покупку» не задана, единственный ограничитель — баланс × 10 (уже открытые ордера учитываются). На реальном балансе это разрешит крупную суммарную экспозицию. Перед боевым запуском задайте конкретный потолок. При неизвестном балансе (аккаунт ещё не синкнут) система считает баланс равным 0 и ордера не ставит — это защита, а не ошибка.
Продажа
| Метка в UI | Что делает | Выкл / нейтрально = … |
|---|---|---|
«Алгоритм» (sellAlgorithm) | Алгоритм цены продажи (см. таблицу алгоритмов). | — |
«Множитель цены» (sellAlgorithmCoefficient) | Коэффициент к базовой цене алгоритма. | 1 |
«Отклонение для переоценки %» (repriceDeviationPercent) | Если цена листинга «уехала» от свежей рыночной больше чем на этот %, листинг снимается; следующий цикл продажи перевыставит его по новой цене. | 0 = переоценка выключена (не «нулевая толерантность») |
«Авто-перебивание» (removeFromSaleIfCompetitor) | Снимать листинг, если конкурент встал ниже (перебил), чтобы следующий цикл продажи перевыставил его. | выкл |
«Проверять листинги на продажу» (checkHistogramBeforeSell) | Сейчас не влияет на цену: листинги выставляются ровно по цене стратегии, без подрезки по стакану. | — |
Покупка
| Метка в UI | Что делает | Выкл / нейтрально = … |
|---|---|---|
«Алгоритм» (buyAlgorithm) | Алгоритм цены покупки. | — |
«Множитель цены» (buyAlgorithmCoefficient) | Коэффициент к базовой цене алгоритма. | 1 |
«Смещение цены (стакан)» (orderBidOffset) | Только для алгоритма OG: на сколько процентов ниже верхнего ордера на покупку встать. Может быть отрицательным (встать выше топ-ордера). | 0 = ровно на уровне верхнего ордера |
«Размер ордера на покупку (% от продаж)» (orderQuantityPercent, режим %) | Количество = round(месячные_продажи × % / 100), ограничено «Макс. штук в ордере». | 1 штука |
«Штук в ордере на покупку» (orderFixedQuantity, режим «Фикс») | Ровно столько штук в ордере, игнорируя ликвидность и потолок. | 1 |
«Проверять ордера на покупку» (checkHistogramBeforeBuy) | Перед ордером читает живой стакан: снижает цену до верхний ордер + 1 цент, если это возможно; пропускает, если даже так выходит дороже вашей цены; пропускает, если стакан прочитать не удалось. Нужна для live-гейтов глубины ниже. | вкл у новых аккаунтов |
Если Steam отвечает «инвентарь полон» или «недостаточно средств», система временно ставит покупку на паузу, при этом продажа продолжается (освобождает инвентарь и средства). Покупка возобновляется автоматически. Ваши per-item флаги при этом не трогаются.
Фильтры рынка
| Метка в UI | Что делает | Выкл = … |
|---|---|---|
«Мин. продаж в месяц» (cntSalesMonth) | Не торговать предметы, у которых меньше N продаж в месяц (фильтр неликвида). При отсутствии данных о продажах — fail-closed (режется). | 0 / -1 |
«Глубина покупки относительно продаж» (ordersPlace) | Depth-гейт покупки — множитель месячных продаж: лимит = max(1, round(месячные_продажи × ordersPlace)). 1 ≈ месячные продажи, 0.5 — половина. Это не количество штук. | 0 / -1 |
«Максимум штук в очереди перед нашим ордером» (maxBuyQueueAhead) | Абсолютный потолок штук в живом стакане выше нашей цены. | пусто / 0 |
«Не покупать сильно ниже лучшего ордера» (maxBuyBehindTopPct) | Пропустить предмет, если наша цена ниже лучшего ордера на покупку больше чем на этот %. Цену не поднимает. | пусто / 0 |
«Глубина продажи относительно продаж» (listingPlace) | Depth-гейт продажи — процент от месячных продаж: 100 = до объёма месячных продаж, а не 100 листингов. | 0 / -1 (не «лимит 1») |
«Макс. штук в ордере» (maxItemsForOrders) | Потолок штук на один ордер в режиме %. | 0/не задано = 1 штука (у новых аккаунтов — 5) |
«Максимум штук в очереди…» и «Не покупать сильно ниже…» проверяются только по живому стакану, то есть работают лишь при включённой «Проверять ордера на покупку». «Глубина покупки относительно продаж» проверяется и при анализе (по сохранённым данным стакана), и — при включённой проверке — по живому стакану.
Глубина анализа
| Метка в UI | Что делает | По умолчанию |
|---|---|---|
«Дней истории цен» (countDayHistoryGraph) | Сколько дней истории продаж берётся в расчёт алгоритма, от 1 до 90. | 7 (и для пустого, 0 или некорректного значения) |
«Фильтр выбросов % (коридор)» (percentLimit) | Отсекает аномальные точки цены вне коридора ±%. | 0 = без отсечки |
Защита по тренду
Таблица «период × направление». Значение — порог в процентах: если цена за период упала (или выросла) сильнее порога, предмет не покупается. Продажа уже имеющегося инвентаря при этом продолжается. Если истории за период ещё недостаточно, гейт для предмета пропускается.
| Метка в UI | Что делает | Выкл = … |
|---|---|---|
«Месяц» → «Падение %» / «Рост %» (monthTrend / monthTrendUp) | Порог месячного тренда вниз / вверх. | 0 / -1 |
«Неделя» → «Падение %» / «Рост %» (weekTrend / weekTrendUp) | Порог недельного тренда. | 0 / -1 |
«День» → «Падение %» / «Рост %» (dayTrend / dayTrendUp) | Порог дневного тренда. | 0 / -1 |
Обслуживание и защита
Запускается автоматически примерно раз в час, пока торговля по аккаунту запущена.
| Метка в UI | Что делает | Выкл = … |
|---|---|---|
«Отменять, если прибыль превышает %» (cancelOrderIfProfitMoreThen) | Отменяет зависший ордер на покупку, если потенциальная прибыль по нему стала слишком велика (рынок ушёл). Ставьте высоко (≥50 %) — низкие значения отменяют здоровые ордера. | пусто / 0 |
«Снимать с продажи через (дней)» (removeFromSaleDays) | Снимать листинги старше N дней. Работает по живым листингам Steam, включая созданные вне SteamMarketRunner. | пусто / 0 |
«Отменять ордера на покупку через (дней)» (cancelBuyOrderDays) | Авто-отмена ордеров на покупку старше N дней. | пусто / 0 |
«Перепроверять открытые ордера на покупку» (autoCancelUnprofitableBuyOrders) | Отменять ордер, только если свежий снапшот каталога подтверждает, что он больше не даёт минимальную прибыль. Лишних запросов в Steam не делает. | выкл |
«Снимать даже при активном ордере» (removeFromSaleDaysIgnoreOrders) | Снимать старый листинг, даже если по предмету есть активный ордер на покупку. | выкл |
«Не снимать предметы со стикерами» (removeFromSaleDaysSkipWithStickers) | Не снимать автоматически старые листинги, несущие стикеры. | выкл |
«Отменять ордера при переизбытке» (cancelOrderIfLow) | Отменять ордер на покупку, когда ваши листинги + инвентарь по предмету достигли половины количества в ордере. | выкл |
Гарды по стикерам и float (только CS2)
Эти поля видны только если «Игра» = CS2 (appid 730). Для Rust секции нет.
| Метка в UI | Что делает | Единицы | Выкл = … |
|---|---|---|---|
«Не продавать, если стикеры $ >» (dontSellIfStickersPrice) | Не продавать предмет, если суммарная цена стикеров выше порога. Мажорные единицы. | валюта | без порога |
«Не продавать, если серия стикеров >» (dontSellIfStickersStreak) | Не продавать при N одинаковых стикеров подряд. | шт | без проверки |
«Проверка float» (checkFloat) | Включает фильтр по float; открывает поля «Float от» / «Float до». | вкл/выкл | выкл |
«Float от» / «Float до» (floatMin / floatMax) | Не продавать предметы вне диапазона float. Достаточно одной границы (min→0, max→1). | 0…1 | — |
Гарды активируются только при наличии данных. Резолв float требует включённого внешнего inspect-сервиса (по умолчанию выключен). Без данных гард — безопасный no-op: он не блокирует продажу «на пустом месте».
Скорость торговли
| Метка в UI | Что делает | Единицы | По умолчанию |
|---|---|---|---|
«Предметов за цикл» (maxCandidates) | Сколько предметов обрабатывается за один цикл продажи/покупки. Клампится потолком платформы. | шт | 25, если пусто |
«Задержка между действиями» (requestDelayMs) | Пауза между действиями Steam внутри цикла. Главный анти-микробан-рычаг: больше = безопаснее (меньше риск микробана), но медленнее. | мс | 0 = максимально быстро (в пределах минимума платформы) |
«Задержка между действиями» — ваш главный инструмент против микробанов. Если Steam начинает «капризничать» (отказы, временные блоки), увеличьте задержку (например, 500–1500 мс). Риск от агрессии изолирован на вашем аккаунте, но Steam не любит спам по одной сессии.
Какой алгоритм выбрать
Семь алгоритмов. Шесть редуцируют график продаж (накопленные снапшоты), седьмой — «Стакан» — работает по живому order-book. Алгоритм покупки и продажи выбираются раздельно.
| Код / подпись в UI | Что берёт за основу | Для | Когда брать |
|---|---|---|---|
| MS · «Самая частая цена» | мода (самая частая цена) графика продаж | прод./покуп. | стабильные ходовые предметы |
| HG · «Максимум» | медиана дневных максимумов | продажа | продавать ближе к верхней границе |
| HSG · «Максимум (безопасно)» | минимум дневных максимумов | продажа | осторожнее, чем HG |
| AVG · «Среднее» | взвешенная медиана | прод./покуп. | сбалансированно |
| LG · «Минимум» | медиана дневных минимумов | прод./покуп. | продавать быстро / закупать дёшево |
| BG · «Покупка по минимумам» | медиана дневных минимумов как цена покупки | покупка | агрессивная закупка по низу |
| OG · «От стакана» | верхний ордер на покупку минус «Смещение цены (стакан)» | покупка | вставать в очередь относительно топ-ордера |
Куда «приземляется» каждый алгоритм относительно дневного коридора цены:
высоко ┌─────────────── HG (медиана дневных максимумов)
│ HSG (мин. дневной максимум)
цена │ MS / AVG (центр массы продаж)
│ LG / BG (медиана дневных минимумов)
низко └───────────────
OG: не из графика продаж, а от верхнего buy-ордера в стакане
── смещение «Смещение цены (стакан)» (±%, может быть отрицательным)
OG не использует график продаж. Он берёт верхний buy-ордер из стакана и сдвигает на «Смещение цены (стакан)» (orderBidOffset) процентов ниже. Положительное смещение → встаём ниже топ-ордера (дешевле, дольше ждать исполнения); отрицательное → встаём выше (быстрее, но дороже).
Стратегия по умолчанию для новых аккаунтов
Пресетов стратегии в интерфейсе нет. Новый Steam-аккаунт получает стратегию по умолчанию; вкладка показывает эти значения как эффективные, пока вы их не переопределите:
| Поле | По умолчанию |
|---|---|
| «Алгоритм» продажи / покупки | AVG / AVG |
| «Целевая маржа» / «Мин. маржа» | 8 % / 4 % |
| «Мин. прибыль» | 0.03 (мажорные единицы) |
| «Мин. продаж в месяц» | 5 |
«Глубина покупки относительно продаж» (ordersPlace) | 10 |
«Глубина продажи относительно продаж» (listingPlace) | 10 |
| «Защита по тренду», «Падение %» | месяц 30 · неделя 25 · день 20 («Рост %»: выкл) |
| «Дней истории цен» | 7 |
| «Макс. штук в ордере» | 5 |
| «Проверять ордера на покупку» / «Проверять листинги на продажу» | вкл / вкл |
Обслуживание (что происходит автоматически)
Раз в ~час, пока торговля запущена, без вашего участия:
- Отмена невыгодных/зависших ордеров — по «Отменять, если прибыль превышает %» и по логике переизбытка.
- Переоценка / автопереоценка лотов Steam — снимает «уехавшие» листинги (порог «Отклонение для переоценки %»); следующий цикл продажи перевыставит их по свежей цене. Это не мгновенное «перебивание» каждого конкурента, а контролируемый maintenance-цикл с учётом комиссий и профит-флора.
- Снятие старых листингов — по «Снимать с продажи через (дней)» и сопутствующим флагам.
- Отмена старых ордеров на покупку — по «Отменять ордера на покупку через (дней)».
Подробный разбор цикла — в Как работает торговля.
Дальше
- Как работает торговля — что система делает в каждом цикле.
- Подключение Steam-аккаунта — прежде чем настраивать стратегию.
- Инвентарь и холды — почему предмет может не продаваться.
- Глоссарий — net/gross, eligibility, microban, депт-гейт и др.