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