Language / ภาษา

fm-portal — operator guide

fm-portal is the control surface for your Trade Beam bots. This guide walks through it screen by screen, in the order a new operator meets them: sign in, read the dashboard, find a bot, check whether it is actually trading, read its config, see its orders and positions, and finally use the controls — including what each control really does to a live bot.

1. Before you start

This portal controls bots that trade real money

Buttons in fm-portal act on live trading bots connected to a real Deribit account. A control you press is not undone by pressing it again — stopping a bot does not restore the orders it had, and starting it again rebuilds the grid from scratch at the current market price. Read section 8 before you press anything.

There are two environments. Staging is safe to explore and is where the screenshots in this guide come from. Production controls real bots.

staging     https://stg-fm-portal.trade-beam.com
production  https://fm-portal.trade-beam.com
Check the address bar before you act. The two environments look identical.

You need an account created for you in advance. There is no self-service sign-up for operator accounts; if you cannot sign in, ask the team rather than creating a new account.

2. Sign in

Open the portal address. If you are not already signed in you are redirected to /sign-in automatically.

Screenshot not captured yet

01-sign-in
The sign-in page. Type your email in the Email field and your password in the Password field, then press the blue Sign In button. Google sign-in is available under “or continue with”, and staff with an admin account use the Admin Login link at the bottom.On screen: Trade Beam System, Email, Password, Forgot password, Sign In, Google, Admin Login

Forgotten password

Use the Forgot password link directly under the password field. It sends a reset link to the account email. Do not share a password with a colleague — ask for a second account instead, so the audit trail shows who pressed what.

3. The dashboard

After signing in you land on the dashboard: a summary across every bot your account can see. Treat it as an overview only — the numbers here are aggregates and a single unhealthy bot can be hidden inside a healthy-looking total.

Screenshot not captured yet

02-dashboard
The dashboard after sign-in. Read the summary tiles at the top, then use the left navigation to open the bot list. Do not act on a dashboard number alone — open the individual bot first.

An aggregate P&L number is not a health check

A total that looks normal tells you nothing about whether each bot is still connected and still placing orders. A bot that stopped placing orders an hour ago still shows its last known position and still contributes to the total. Confirm liveness per bot in section 5, not from the dashboard.

4. Finding a bot

The bot list shows every bot instance you have access to, one row each. Each row carries the bot's name or ID, its instrument, and a status indicator.

Screenshot not captured yet

03-bot-list
The bot list. Identify a bot by its bot ID, not by its position in the list — the ordering can change. Click the row to open the bot detail view.

Confirm the bot ID before every action

Bots are often named in near-identical pairs that differ by one character, and they do not hold the same position. Acting on the wrong one has happened here before: a snapshot was read from one account while the position being discussed lived on another, and the conclusion was true of the screen but wrong about reality. Read the ID character by character, and confirm it again on the detail page.

5. Is this bot actually trading?

This is the most important screen in the portal, and the easiest to misread. A bot has two separate states and you must check both.

  1. Is the process running? — the deployment is up and the health check is green.
  2. Is trading engaged? — the bot is connected to Deribit and placing orders. This is a separate flag, and it is off by default.

A green health check does NOT mean the bot is trading

When trading is disabled the bot deliberately reports itself healthy — it is running correctly, it is simply idle and not connected to the exchange. It even logs “Grid bot is running” in that state. Health answers “is the process alive”, not “is it trading”. The only field that answers the second question is the engaged / trade-enabled indicator.

Screenshot not captured yet

04-bot-detail
The bot detail / status view. Check the trading-enabled indicator, not just the health badge. If the bot is idle, the portal should also show a reason — for example that trading is disabled, or that exchange authentication failed.

The strongest confirmation that a bot is genuinely working is not a status badge at all — it is fresh activity. A bot that is trading re-places its grid after each fill. If the orders shown in section 7 have not changed while the market has moved, treat the bot as suspect no matter what the status says.

6. Reading the bot's configuration

The config view shows the settings the bot is currently running with. For a fix-cash grid bot the fields that decide its behaviour are these.

trade_enabledDefault: falseThe master switch. While false the bot runs but does not connect to the exchange and places no orders. Everything else is irrelevant until this is true.
grid.upper_boundaryTop of the grid, in USD. Above this price the bot stops placing new grid orders and pauses — it holds the existing position rather than closing it.
grid.lower_boundaryBottom of the grid, in USD. Falling below this is not a pause — the bot closes the whole position at market and then pauses. Set this deliberately.
grid.base_spacing_usdDistance between grid levels in USD, used in arithmetic mode. Tighter spacing means more orders and more fills.
position.leverageDefault: 10Account leverage, valid from 1 to 50. This directly sets how far the liquidation price sits from the market — see the safety note in the grid bot guide before changing it.
execution.post_onlyDefault: falseWhen on, orders are rejected rather than filled as taker. This keeps fees at the maker rate but means an order can fail to be placed instead of filling.
execution.max_open_ordersDefault: 0Caps how many orders rest on the exchange at once. 0 means unlimited; a positive value turns on a sliding window that cancels the farthest orders as price moves.

Screenshot not captured yet

05-bot-config
The configuration view. Confirm the boundaries and the leverage match what you expect before enabling trading. Config changes are picked up by the bot without a restart.

Config changes apply while the bot is trading

The bot re-reads its configuration on a short interval, so an edit takes effect on a live bot within seconds — there is no separate “apply” step and no restart to give you a moment's pause. Change one field at a time and confirm the effect before changing another.

7. Grid orders and open positions

This screen shows two different things, and keeping them apart is the single most useful habit in this portal.

  • Open orders — resting limit orders sitting on the Deribit order book, waiting to be filled. These belong to the exchange, not to the bot process.
  • Position — the exposure you actually hold right now, with its size and average entry price. This is your risk.

Screenshot not captured yet

06-orders-positions
Grid orders and open positions. Compare the order prices against the configured grid boundaries — orders should sit on the grid levels between the lower and upper boundary.

Orders and position survive the bot

Both of these live on Deribit, not inside the bot. If the bot process stops, is restarted, or is scaled to zero, every resting order stays on the book and the position stays open. The portal may stop updating them, but they are still real and still exposed to the market. This is covered in full in the grid bot guide.

8. The controls — and what each one really does

Read this section before pressing any control

These controls act immediately on a live bot. None of them is undone by pressing it a second time.

Screenshot not captured yet

07-controls
The control panel. Screenshot the controls to learn where they are — but do not press them on a production bot to find out what they do. Their effects are described below.
Enable / Disable tradingFlips the trade_enabled flag. Disabling stops the bot placing NEW orders. It does not cancel the orders already resting on the exchange and it does not close your position. Enabling again makes the bot cancel all existing orders and rebuild the grid from the current market price.
PauseStops the bot managing the grid but leaves orders and position untouched. Use this when you want the current state frozen while you investigate.
Cancel ordersCancels every resting grid order and pauses. Your position is NOT closed — you keep the exposure with no grid around it. This is often what you actually want, but be clear that it removes the orders that would have reduced the position.
Close allCancels the orders and closes the position. This realises your profit or loss immediately and irreversibly. On a live account this is the most consequential button on the page.
Stop / scale downStops the bot process. It does NOT cancel orders and does NOT close the position — see the warning below. This is a deployment action, not a trading action.

Stopping a bot does not flatten your exposure

Stopping the bot from the portal sends the process a shutdown signal. The shutdown path does not cancel orders and does not close positions — this is confirmed in the bot's source, not assumed. If your intent is to end the exposure, use Cancel orders and Close all first, confirm on Deribit that nothing is left, and only then stop the process.

9. Safety rules

  • Check the URL. Staging and production look the same. Only production spends real money.
  • Check the bot ID character by character before every action. Similar names do not mean similar positions.
  • Never press a control to find out what it does. This guide exists so you do not have to.
  • Verify the effect, not the acknowledgement. A success toast means the request was accepted, not that the orders are gone. Confirm on the orders and positions screen, and on Deribit itself for anything that matters.
  • If a bot is behaving unexpectedly, pause and ask. A stopped bot that should be running costs opportunity; a wrongly closed position costs money.

Next: the grid bot itself

This guide covers the portal. To understand what the fix-cash grid bot does, what it does not do, and how it is deployed, read the Fix-Cash Grid Bot deploy and operate guide.

Screens still to be captured

These screens sit behind a login, so they must be captured by a person with an authenticated staging session. Until then the guide shows placeholders.

  • 01-sign-inThe sign-in page. Type your email in the Email field and your password in the Password field, then press the blue Sign In button. Google sign-in is available under “or continue with”, and staff with an admin account use the Admin Login link at the bottom.
  • 02-dashboardThe dashboard after sign-in. Read the summary tiles at the top, then use the left navigation to open the bot list. Do not act on a dashboard number alone — open the individual bot first.
  • 03-bot-listThe bot list. Identify a bot by its bot ID, not by its position in the list — the ordering can change. Click the row to open the bot detail view.
  • 04-bot-detailThe bot detail / status view. Check the trading-enabled indicator, not just the health badge. If the bot is idle, the portal should also show a reason — for example that trading is disabled, or that exchange authentication failed.
  • 05-bot-configThe configuration view. Confirm the boundaries and the leverage match what you expect before enabling trading. Config changes are picked up by the bot without a restart.
  • 06-orders-positionsGrid orders and open positions. Compare the order prices against the configured grid boundaries — orders should sit on the grid levels between the lower and upper boundary.
  • 07-controlsThe control panel. Screenshot the controls to learn where they are — but do not press them on a production bot to find out what they do. Their effects are described below.