Trading settings
Trading settings control how the automation runner buys and sells, which profit target it uses, how it protects against bad market conditions, and how aggressively it acts. They are edited in two places:
- In a shared strategy — prices, algorithms, profit targets, order size, market filters, trends and maintenance. Open Strategies → a strategy → Rules, save, then apply the strategy to its accounts. See Shared strategies.
- On the account — the few settings that belong to one Steam session and wallet: the game the runner trades, max exposure, trading speed, live checks and the CS2 guards. They are on the account's System tab → Account settings (see below).
The account page has no trading-settings tab of its own, and the runner starts only on an account that has a strategy applied.
These settings can place real Steam buy orders, create listings, accept confirmations, cancel orders, and remove listings. No automation can promise returns, account safety, or stable market conditions. Start with low exposure, small item scopes, and conservative delays before scaling live trading.
This guide follows the same sections you see in the UI. Where helpful, the internal setting key is shown in code, but the UI label is the primary reference.
A new strategy can start from the conservative Platform template (see below) or from a copy of an account you have already tuned. Do not configure every field manually on day one: tune only the settings you understand and need.
Clearing a field does not turn the rule off: a field left empty in the strategy falls back to the account's default value. To switch a threshold off, enter the "off" value from the tables below (usually 0 or -1).
One strategy, one set of rules
The strategy's Rules tab edits one set of rules for every item of the strategy; there are no per-group or Inbox values to switch between. When some items need other rules — for example conservative ones for expensive items and more aggressive ones for liquid items — make a separate strategy for them and assign it to the same accounts next to the first one (see Several strategies on one account). A strategy that still holds groups with rules of their own shows a Split this strategy card: see Split a strategy.
How price is calculated
Pricing has two stages: a market algorithm calculates the base price, then Steam fees, target profit, and minimum-profit clamps are applied.
The sell price shown and sent to Steam is the amount the seller receives after Steam fees. The buyer pays the higher gross amount. Sending gross as the listing price would overprice the listing by roughly the fee.
Sale history is built from price snapshots collected every 6–8 hours, not from one-off Steam calls per item. Order-book data for OG and live buy guards is fetched at decision time.
Main settings
Section names below match the strategy's Rules tab. The main card shows Buying and Selling; the remaining sections are under Advanced settings. The per-account settings are described in Account settings.
Profit targets
| UI label | Meaning | Units | 0 means |
|---|---|---|---|
Target margin (profitPercent) | Desired margin on top of the buy price. | % | no markup |
Min margin (profitPercentMin) | Lower margin bound; items below it are rejected. | % | no lower bound |
Min profit (minProfit) | Absolute minimum profit per trade. Uses major currency units, not cents. | currency | no absolute minimum |
Financial safety
| UI label | Meaning | Units | 0 / empty means |
|---|---|---|---|
Per-item position limit (maxInventory) | Max units per item: inventory (including held copies) + your active listings + open buy-order quantity. | pcs | no limit |
The cap on the total value of open buy orders, Max total exposure, is an account setting.
Selling
| UI label | Meaning | Off / neutral value |
|---|---|---|
Algorithm (sellAlgorithm) | Sell price algorithm. | — |
Price multiplier (sellAlgorithmCoefficient) | Multiplier applied to the algorithm result. | 1 |
Reprice deviation % (repriceDeviationPercent) | Saved, but currently has no effect: listings are not repriced automatically. To keep listings from sitting at an outdated price, use Remove from sale after (days) — removed listings are relisted by the next sell cycle at the fresh strategy price. | — |
Auto-undercut guard (removeFromSaleIfCompetitor) | Remove a listing when a competitor undercuts it, so the next sell cycle can relist. | off |
Sell listings are placed at exactly the strategy price, without order-book undercutting.
Buying
| UI label | Meaning | Off / neutral value |
|---|---|---|
Algorithm (buyAlgorithm) | Buy price algorithm. | — |
Price multiplier (buyAlgorithmCoefficient) | Multiplier applied to the algorithm result. | 1 |
Bid offset (Order book) (orderBidOffset) | For OG: percentage below the top buy order. Negative values bid above the top. | 0 = exactly at top buy order |
Buy order quantity (% sales) (orderQuantityPercent, % mode) | Quantity = monthly sales × percent / 100, capped by Max units per buy order. | quantity 1 |
Units per buy order (orderFixedQuantity, Fixed mode) | Fixed item count, ignoring liquidity percentage and cap. | 1 |
The live order-book check before buying, Validate buy orders, is an account setting.
When Steam reports a full inventory or insufficient funds, buying is paused temporarily while selling continues. Item-level flags are not changed.
Market filters
| UI label | Meaning | Off means |
|---|---|---|
Min monthly sales (cntSalesMonth) | Liquidity filter. Missing sales data fails closed. | 0 / -1 |
Buy depth relative to sales (ordersPlace) | Buy depth gate as a multiplier of monthly sales: limit = max(1, round(monthly sales × ordersPlace)). 1 ≈ monthly sales, 0.5 = half. Not an item count. | 0 / -1 |
Max units ahead of buy order (maxBuyQueueAhead) | Absolute cap on buy-order units ahead of our price in the live order book. | empty / 0 |
Skip buys far below top buy (maxBuyBehindTopPct) | Skip the item if our planned bid is more than this % below the current top buy order. Does not raise the price. | empty / 0 |
Sell depth relative to sales (listingPlace) | Sell-side depth gate as a percent of monthly sales: 100 = up to monthly sales volume, not 100 listings. | 0 / -1 |
Max units per buy order (maxItemsForOrders) | Cap for % order-size mode. | 0 / unset = 1 unit (the platform template sets 5) |
Max units ahead of buy order and Skip buys far below top buy are checked only against the live order book, so they run only when Validate buy orders (an account setting) is on. Buy depth relative to sales is checked both during analysis (stored order-book data) and, with validation on, against the live order book.
Analysis depth
| UI label | Meaning | Default |
|---|---|---|
Price-history days (countDayHistoryGraph) | Days of sale history used by algorithms, 1–90. | 7 (also used for empty, 0, or invalid values) |
Outlier filter % (corridor) (percentLimit) | Drops abnormal points outside a corridor. | 0 = no outlier filter |
Trend guard
Trend thresholds are percentages. An item is not bought if its price fell (or rose) more than the threshold over the period; selling existing inventory continues.
| UI label | Meaning | Off means |
|---|---|---|
Monthly → Down % / Up % (monthTrend / monthTrendUp) | Monthly trend thresholds. | 0 / -1 |
Weekly → Down % / Up % (weekTrend / weekTrendUp) | Weekly trend thresholds. | 0 / -1 |
Daily → Down % / Up % (dayTrend / dayTrendUp) | Daily trend thresholds. | 0 / -1 |
If there is not yet enough price history for a period, that trend gate is skipped for the item.
Maintenance & guards
Maintenance runs automatically about once per hour while trading is started for the account.
| UI label | Meaning | Off means |
|---|---|---|
Cancel if profit exceeds % (cancelOrderIfProfitMoreThen) | Cancels a stale buy order when potential profit becomes suspiciously high. Use high values such as 50%+. Works only together with Recheck open buy orders (an account setting). | empty / 0 |
Remove from sale after (days) (removeFromSaleDays) | Removes live Steam listings older than N days, including listings created outside SteamMarketRunner. | empty / 0 |
Cancel buy orders after (days) (cancelBuyOrderDays) | Cancels buy orders older than N days. | empty / 0 |
Remove even with an active order (removeFromSaleDaysIgnoreOrders) | Allows old-listing removal even when a buy order exists for the item. | off |
Keep sticker items (removeFromSaleDaysSkipWithStickers) | Do not auto-remove old listings with stickers. | off |
Cancel oversupplied orders (cancelOrderIfLow) | Would cancel a buy order once your listings + inventory of the item reach half of the order quantity. Saved, but currently not applied by the hourly maintenance. | off |
Account settings
The account's System tab has an Account settings card with the settings a strategy never sets, because they belong to one Steam session and wallet. They apply to the whole account, whichever strategies it runs, and applying a strategy does not change them. Saving sends only the fields you changed.
Game and exposure
| UI label | Meaning | Units | Default / empty means |
|---|---|---|---|
Game (appid) | The game the runner trades. CS2 is 730, Rust is 252490. Also decides whether the CS2 guards are shown. | select | account game |
Max total exposure ($) (maxOrderExposure) | Hard cap for the value of all open buy orders of the account, shared by all its strategies. In the wallet currency. | currency | off: automatic balance-only guard |
If the exposure cap is not set, the only guard is 10× wallet balance (already open buy orders count toward it). When wallet balance is unknown, the planner treats it as 0 and skips buying.
Trading speed
| UI label | Meaning | Default |
|---|---|---|
Items per cycle (maxCandidates) | How many items one buy/sell cycle processes. Capped by the platform. | 25 when empty |
Delay between actions (requestDelayMs) | Pause between Steam mutations inside a cycle. Higher is safer but slower. | 0 = fastest allowed |
Checks
| UI label | Meaning | Default |
|---|---|---|
Validate buy orders (checkHistogramBeforeBuy) | Before placing an order, read the live order book: lower the bid to top buy order + 1 cent when possible, skip if even that exceeds your price, and skip if the order book cannot be read. Required for the live depth guards in Market filters. | on for new accounts |
Recheck open buy orders (autoCancelUnprofitableBuyOrders) | Cancels an open buy order only when fresh prices show it no longer makes the minimum profit. No extra Steam requests. Also enables Cancel if profit exceeds % from the strategy. | off |
CS2 sticker / float guard
These controls are shown only when Game is CS2 (appid 730). A strategy does not carry them.
| UI label | Meaning | Off means |
|---|---|---|
Block sell if sticker $ > (dontSellIfStickersPrice) | Do not sell an item whose stickers together cost more than this amount. Major currency units of the wallet (5 = $5, not cents). | no threshold |
Block sell if sticker streak ≥ (dontSellIfStickersStreak) | Do not sell an item carrying N or more identical stickers. | off |
Float guard (checkFloat) | Turn on the float check. | off |
Float min / Float max (floatMin / floatMax) | The float range you protect: an item whose float is inside this range is not sold. One bound is enough (a missing min means 0, a missing max means 1). | no bound |
Sticker rules do not apply to Souvenir items.
The guards act only on real data. Float and applied stickers come from an external item-inspect service that may be turned off on the platform; without that data, or if a lookup fails, the item is sold as usual — the guard never blocks on missing data.
Choosing an algorithm
| Code · UI label | Basis | Best for |
|---|---|---|
| MS · Most frequent | mode of sale graph | stable liquid items |
| HG · Maximum | median of daily highs | selling near the upper range |
| HSG · Maximum (safe) | minimum daily high | more conservative selling than HG |
| AVG · Average | weighted median of sales | balanced buy/sell |
| LG · Lowest | median of daily lows | quick sell or cheap buy |
| BG · Buy at lows | daily lows as buy price | aggressive low buying |
| OG · From order book | top buy order minus Bid offset | queueing relative to live top buy order |
Buy and sell algorithms are chosen separately.
Platform template
There are no strategy presets in the UI. A strategy created from the Platform template starts with these conservative values:
| Field | Default |
|---|---|
| Sell / buy algorithm | AVG / AVG |
| Target margin / Min margin | 8% / 4% |
| Min profit | 0.03 (major units) |
| Min monthly sales | 5 |
Buy depth relative to sales (ordersPlace) | 1 |
Sell depth relative to sales (listingPlace) | 10 |
| Trend guard, Down % | month 30 · week 25 · day 20 (Up: off) |
| Price-history days | 7 |
| Max units per buy order | 5 |
A new Steam account starts with Validate buy orders on and Recheck open buy orders off (account settings).
What maintenance does
About once per hour, while trading is started, SteamMarketRunner can:
- cancel unprofitable or suspiciously stale buy orders (Recheck open buy orders in the account settings);
- remove old listings after a configured age, so the next sell cycle relists them at a fresh price;
- remove a listing a competitor undercut (Auto-undercut guard);
- cancel old buy orders.
Listings are not repriced automatically: Reprice deviation % currently has no effect.