Skip to main content

Trading settings

The Trading strategy tab controls how the automation runner buys and sells, which profit target it uses, how it protects against bad market conditions, and how aggressively it acts.

Automation risk

These settings can place real Steam buy orders, create listings, accept confirmations, and remove or reprice 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.

Start from a preset

Do not configure every field manually on day one. Choose Safe, Balanced, or Aggressive, then tune only the settings you understand and need.

Scope: account or group

The selector in the top-right chooses where settings apply:

  • Default — account-wide settings.
  • Group · name — overrides for one item group only.

Group settings are layered on top of account settings, so one Steam account can run different strategies for different item sets.

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.

Sell price is NET

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.

Where price data comes from

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 guards is fetched at decision time.

Main settings

Game

UI labelMeaningUnitsDefault
Game (appid)Item catalog and game-specific guards. CS2 is 730, Rust is 252490.selectaccount game

Profit targets

UI labelMeaningUnitsEmpty / 0 means
Target profit (profitPercent)Desired margin on top of the base price.%no markup
Min. profitability (profitPercentMin)Lower margin bound.%no lower bound
Min. profit (minProfit)Absolute minimum profit per trade. Uses major currency units, not cents.currencyno absolute minimum

Financial protection

UI labelMeaningUnitsEmpty / 0 means
Max total exposure (maxOrderExposure)Hard cap for the value of all open buy orders.currencyautomatic balance-only guard

If this cap is not set, the main guard is wallet balance × platform multiplier. When wallet balance is unknown, the planner treats it as 0 and skips buying.

Selling

UI labelMeaningEmpty / 0 means
Algorithm (sellAlgorithm)Sell price algorithm.
Price coefficient (sellAlgorithmCoefficient)Multiplier applied to the algorithm result.1
Auto-undercut (removeFromSaleIfCompetitor)Remove a listing when a competitor undercuts it, so the next sell cycle can relist.off

Buying

UI labelMeaningEmpty / 0 means
Algorithm (buyAlgorithm)Buy price algorithm.
Price coefficient (buyAlgorithmCoefficient)Multiplier applied to the algorithm result.1
Order-book price offset (orderBidOffset)For OG: percentage below the top buy order. Negative values bid above the top.exactly at top buy order
Order size, % mode (orderQuantityPercent)Quantity = monthly sales × percent / 100, capped by max items per order.preset/default
Order size, fixed mode (orderFixedQuantity)Fixed item count, ignoring liquidity percentage and cap.1
Position limit (maxInventory)Max owned + open-order quantity per item.no limit

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 labelMeaningEmpty / 0 means
Min. monthly sales (cntSalesMonth)Liquidity filter. Missing sales data fails closed.no liquidity filter
Buy queue depth (ordersPlace)Buy depth gate: limit = monthly sales × ordersPlace / 100.off for 0, -1, or empty
Sell queue depth (listingPlace)Sell-side depth gate.0 = off
Max items per order (maxItemsForOrders)Cap for % order-size mode.defaults to 1

Analysis depth

UI labelMeaningEmpty / 0 means
Price history days (countDayHistoryGraph)Days of sale history used by algorithms.default
Outlier filter % (percentLimit)Drops abnormal points outside a corridor.no outlier filter
Check buy orders (checkHistogramBeforeBuy)Verify the live order book before buying.off
Check sell listings (checkHistogramBeforeSell)Verify live listings before selling and undercut when safe.off

Trend protection

Trend thresholds are percentages. A strong downward trend blocks buying; selling existing inventory can continue.

UI labelMeaningEmpty / 0 means
Month → Drop % / Growth %Monthly trend thresholds.off
Week → Drop % / Growth %Weekly trend thresholds.off
Day → Drop % / Growth %Daily trend thresholds.off

Maintenance and safety

Maintenance runs automatically about once per hour.

UI labelMeaningEmpty / 0 means
Cancel if profit exceeds % (cancelOrderIfProfitMoreThen)Cancels a stale buy order when potential profit becomes suspiciously high. Use high values such as 50%+.off
Reprice deviation % (repriceDeviationPercent)Removes a listing whose price drifted from fresh market price; next sell cycle relists it.0 = repricing off
Remove from sale after N days (removeFromSaleDays)Removes live Steam listings older than N days, including listings created outside SteamMarketRunner.off
Cancel buy orders after N days (cancelBuyOrderDays)Cancels old buy orders.off
Remove even with active orderAllows old-listing removal even when a buy order exists for the item.off
Keep sticker itemsDo not auto-remove old listings with stickers.off
Cancel orders on overstockCancel buy orders when your position is too large.off

CS2 sticker and float guards

These controls are shown for CS2 (appid 730) only.

UI labelMeaningEmpty / 0 means
Do not sell if stickers $ > (dontSellIfStickersPrice)Block selling when sticker value exceeds the threshold. Uses major currency units.no threshold
Do not sell if sticker streak >Block when N identical stickers appear in a row.off
Float guardEnable float range checks.off
Float min / Float maxAllowed float range; one boundary is enough.no bound

Sticker/float guards only fire when enrichment data exists. Without inspect data they are safe no-ops.

Trading intensity

UI labelMeaningEmpty / 0 means
Items per cycle (maxCandidates)How many items one buy/sell cycle processes. Platform caps apply.default 25
Delay between actions (requestDelayMs)Pause between Steam mutations inside a cycle. Higher is safer but slower.fastest allowed

Choosing an algorithm

Code / UI labelBasisBest for
MS — most frequent pricemode of sale graphstable liquid items
HG — high, median of daily highsmedian daily highselling near the upper range
HSG — safe highminimum daily highmore conservative selling than HG
AVG — weighted mediansales center of massbalanced buy/sell
LG — low, median of daily lowsmedian daily lowquick sell or cheap buy
BG — buy from daily lowsdaily lows as buy priceaggressive low buying
OG — order booktop buy order plus offsetqueueing relative to live top buy order

Buy and sell algorithms are chosen separately.

Strategy presets

FieldSafeBalancedAggressive
Target profit12%8%4%
Min. profitability8%4%2%
Sell algorithmHGHGAVG
Buy algorithmLGHGHG
Order-book offset0.50-0.5
Min. monthly sales2051
Week drop threshold101530
Day drop threshold3510

What maintenance does

About once per hour, SteamMarketRunner can:

  • cancel unprofitable or suspiciously stale buy orders;
  • remove drifted listings for repricing by the next sell cycle;
  • remove old listings after a configured age;
  • cancel old buy orders.

Next