pmm_mister Config Playbook
Three vetted pmm_mister profiles, one per risk posture. Each profile lives in a
companion file — fetch only the one you need so the others never load into
context:
manage_skill(action="read_file", name="pmm_config_playbook", file="config_aggressive.md")
Pick a profile by regime
| Regime | Profile | File |
|-----------------------------------------|------------------|-----------------------------|\n| Quiet / low-vol ranging (ADX < 18) | Aggressive | config_aggressive.md |
| Ranging / normal (ADX < 25) | Balanced | config_balanced.md |
| Volatile / trending / uncertain | Conservative | config_conservative.md |
- Aggressive — tight spreads, fast refresh, short effectivization (60s),
wide inventory bands, high allocation. Maximizes fill rate in calm markets.
Most inventory/PnL risk.
- Balanced — the default. Moderate spreads, 120s effectivization, standard
tolerances. Good steady-state when regime is unclear.
- Conservative — wide spreads, slow refresh, long effectivization (300s),
tight inventory bands, strong skew enforcement (min_skew=2.0), low
allocation/leverage, both global TP and SL active. Capital preservation in
chop/vol.
How to use a template
- Read the chosen companion file. It contains a full
config_data block for
manage_controllers(action="upsert", target="config").
- Always adapt these to the actual operation before deploying:
connector_name, trading_pair
total_amount_quote (respect the strategy's risk limit)
leverage (never above the strategy's cap; templates default low)
- Deploy via the normal flow (
manage_controllers upsert → manage_bots deploy).
Live retunes go through manage_bots(action="update_config", confirm_override=true).
Key parameter reference
Parameters most commonly tuned in real operations:
Inventory & allocation
portfolio_allocation — fraction of total_amount_quote actively deployed per iteration
target_base_pct / min_base_pct / max_base_pct — inventory band; skew
kicks in when base drifts outside min/max
min_skew — minimum spread multiplier applied to the heavy side when inventory
drifts; 1.0 = no minimum, 2.0 = at least 2× wider on the accumulating side
max_active_executors_by_level — max concurrent open executors per level;
controls total directional exposure (fills × allocation per level)
Order timing
executor_refresh_time — how often (seconds) the controller checks and potentially
replaces open orders; lower = tighter to mid price but more rate limit usage
buy/sell_cooldown_time — after a fill, how long to wait before placing a new order
on that side; lower = faster re-entry, more risk of accumulating at similar prices
buy/sell_position_effectivization_time — how long (seconds) the per-fill
LIMIT_MAKER TP order stays on the book after a fill; when this expires, the TP
order is removed and the position transitions to "hold" mode managed only by
the global SL/TP layer. Lower = TP has less time to fill → positions accumulate
into hold faster. Higher = TP order stays on book longer → more chances of hitting TP.
Spread & refresh tolerance
price_distance_tolerance — minimum price gap required between open orders at
the same level; prevents stacking orders too close together
refresh_tolerance — minimum mid-price move required to trigger a quote
refresh/replacement; lower = more responsive, higher cancel/replace churn
tolerance_scaling — multiplier applied to tolerance values as the number of
active executors grows; prevents cancel-loops when multiple orders are open at
the same level
Order types (3 = LIMIT_MAKER / post-only, 2 = LIMIT, 1 = MARKET)
open_order_type — order type for entry orders (always use 3 unless exchange rejects)
take_profit_order_type — order type for TP orders (always 3)
Per-fill risk
take_profit — offset from fill price where the LIMIT_MAKER TP order is placed;
must be > round-trip fees to be profitable
Global portfolio guardrails (position hold phase)
global_tp_enabled / global_take_profit — when total held position gains this %, close and restart MM
global_sl_enabled / global_stop_loss — when total held position loses this %, close and restart MM
global_sl_activation_from — inventory threshold from which global SL activates
("min_base" = when base is light, "target_base" = from neutral)
global_tp_activation_from — inventory threshold from which global TP activates
global_pnl_reference — PnL basis: "position" (unrealized open PnL) or
"portfolio" (total portfolio value)
position_profit_protection — blocks inventory reduction at unfavorable prices
Other
tick_mode — if true, controller runs only on candle ticks; false = continuous (default)
The full regime→param decision logic lives in the pmm_mister_operator strategy.
These templates are starting points — every deploy still goes through normal
risk/confirmation controls.
1---2name: pmm-config-playbook3description: Ready-to-deploy pmm_mister config profiles (aggressive / balanced / conservative) — full parameter coverage including spreads, effectivization times, tolerance, order types, skew, and global TP/SL.4---56# pmm_mister Config Playbook78Three vetted `pmm_mister` profiles, one per risk posture. Each profile lives in a9**companion file** — fetch only the one you need so the others never load into10context:1112```13manage_skill(action="read_file", name="pmm_config_playbook", file="config_aggressive.md")14```1516## Pick a profile by regime1718| Regime | Profile | File |19|-----------------------------------------|------------------|-----------------------------|\n| Quiet / low-vol ranging (ADX < 18) | **Aggressive** | `config_aggressive.md` |20| Ranging / normal (ADX < 25) | **Balanced** | `config_balanced.md` |21| Volatile / trending / uncertain | **Conservative** | `config_conservative.md` |2223- **Aggressive** — tight spreads, fast refresh, short effectivization (60s),24 wide inventory bands, high allocation. Maximizes fill rate in calm markets.25 Most inventory/PnL risk.26- **Balanced** — the default. Moderate spreads, 120s effectivization, standard27 tolerances. Good steady-state when regime is unclear.28- **Conservative** — wide spreads, slow refresh, long effectivization (300s),29 tight inventory bands, strong skew enforcement (min_skew=2.0), low30 allocation/leverage, both global TP and SL active. Capital preservation in31 chop/vol.3233## How to use a template34351. Read the chosen companion file. It contains a full `config_data` block for36 `manage_controllers(action="upsert", target="config")`.372. **Always adapt** these to the actual operation before deploying:38 - `connector_name`, `trading_pair`39 - `total_amount_quote` (respect the strategy's risk limit)40 - `leverage` (never above the strategy's cap; templates default low)413. Deploy via the normal flow (`manage_controllers` upsert → `manage_bots` deploy).42 Live retunes go through `manage_bots(action="update_config", confirm_override=true)`.4344## Key parameter reference4546Parameters most commonly tuned in real operations:4748**Inventory & allocation**49- `portfolio_allocation` — fraction of `total_amount_quote` actively deployed per iteration50- `target_base_pct` / `min_base_pct` / `max_base_pct` — inventory band; skew51 kicks in when base drifts outside min/max52- `min_skew` — minimum spread multiplier applied to the heavy side when inventory53 drifts; 1.0 = no minimum, 2.0 = at least 2× wider on the accumulating side54- `max_active_executors_by_level` — max concurrent open executors per level;55 controls total directional exposure (fills × allocation per level)5657**Order timing**58- `executor_refresh_time` — how often (seconds) the controller checks and potentially59 replaces open orders; lower = tighter to mid price but more rate limit usage60- `buy/sell_cooldown_time` — after a fill, how long to wait before placing a new order61 on that side; lower = faster re-entry, more risk of accumulating at similar prices62- `buy/sell_position_effectivization_time` — how long (seconds) the per-fill63 LIMIT_MAKER TP order stays on the book after a fill; when this expires, the TP64 order is **removed** and the position transitions to "hold" mode managed only by65 the global SL/TP layer. Lower = TP has less time to fill → positions accumulate66 into hold faster. Higher = TP order stays on book longer → more chances of hitting TP.6768**Spread & refresh tolerance**69- `price_distance_tolerance` — minimum price gap required between open orders at70 the same level; prevents stacking orders too close together71- `refresh_tolerance` — minimum mid-price move required to trigger a quote72 refresh/replacement; lower = more responsive, higher cancel/replace churn73- `tolerance_scaling` — multiplier applied to tolerance values as the number of74 active executors grows; prevents cancel-loops when multiple orders are open at75 the same level7677**Order types** (3 = LIMIT_MAKER / post-only, 2 = LIMIT, 1 = MARKET)78- `open_order_type` — order type for entry orders (always use 3 unless exchange rejects)79- `take_profit_order_type` — order type for TP orders (always 3)8081**Per-fill risk**82- `take_profit` — offset from fill price where the LIMIT_MAKER TP order is placed;83 must be > round-trip fees to be profitable8485**Global portfolio guardrails (position hold phase)**86- `global_tp_enabled` / `global_take_profit` — when total held position gains this %, close and restart MM87- `global_sl_enabled` / `global_stop_loss` — when total held position loses this %, close and restart MM88- `global_sl_activation_from` — inventory threshold from which global SL activates89 (`"min_base"` = when base is light, `"target_base"` = from neutral)90- `global_tp_activation_from` — inventory threshold from which global TP activates91- `global_pnl_reference` — PnL basis: `"position"` (unrealized open PnL) or92 `"portfolio"` (total portfolio value)93- `position_profit_protection` — blocks inventory reduction at unfavorable prices9495**Other**96- `tick_mode` — if true, controller runs only on candle ticks; false = continuous (default)9798The full regime→param decision logic lives in the `pmm_mister_operator` strategy.99These templates are starting points — every deploy still goes through normal100risk/confirmation controls.