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