Trading Bot
Placing Trades

Manual Entry

You type every price yourself; the bot only sizes the position.

Manual Entry is the panel for a trade you have already planned on a chart. You give it the entry, the target and the stop, and the only thing it works out for you is how large the position should be.

Where Sniper derives the stop from recent candles, here nothing is derived. Every price is yours.

Where to find it

Main menu โ†’ ๐Ÿ“ Manual Entry, or send /manual.

๐Ÿ“ Manual Entry
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Symbol: BTCUSDT.P
Side: Buy
Order Type: Limit
Entry Price: โ€”
Take Profit: โ€”
Stop Loss: โ€”
Initial Risk %: 0.5

A dash means unset. The panel is a draft โ€” nothing reaches the exchange until you tap ๐Ÿš€ Send.

The fields

FieldWhat it does
๐Ÿ”ค SymbolOpens your saved symbol list. Picked, never typed.
๐ŸŸข Buy / ๐Ÿ”ด SellDirection.
๐Ÿ“„ Limit / โšก MarketSee Limit vs Market below.
๐ŸŽฏ Entry PriceThe price you want filled at.
โœ… Take ProfitYour target.
๐Ÿ›‘ Stop LossWhere the trade is wrong. This is what the position is sized against.
โš ๏ธ Initial Risk %How much of your balance this trade may lose.

All four of Entry Price, Take Profit, Stop Loss and Initial Risk % are required. Send refuses without them and names what is missing:

Fill in Entry Price, Stop Loss first

Typing a value

Tap a field and reply to the prompt. Both your reply and the prompt are deleted as soon as they are read, so the chat does not fill up with numbers.

Pasted prices are tolerated โ€” $64,231.90 and 64231.90 are both accepted. Values must be positive; anything else comes back as:

'abc' isn't a valid price.

Initial Risk % is capped

Anything above your Max Risk Per Trade is rejected and the field keeps its previous value:

5% exceeds the max risk ceiling of 2.5%.

Limit vs Market

Limit places the order at your Entry Price and waits. It is posted maker-only, so it will never cross the spread and pay taker fees โ€” if the market would fill it immediately, the bot retries it a few times rather than taking liquidity.

Market fills now. Your typed Entry Price is still required, but it is used only as the reference the bot compares against: at send time it fetches the current price and recalculates everything โ€” position size, risk, and fees โ€” from that. Taker fees are assumed on both entry and stop, since a market entry and a stop-loss exit both take liquidity.

So on a Market order the Entry Price you typed is what you expected, not what you get. If price has moved, the position is sized against reality.

How the position is sized

The bot has no fixed position size. It derives one from the distance between your entry and your stop:

position size โ‰ˆ risk amount รท (distance to stop + fees per unit)

A tight stop produces a large position, a wide stop a small one, and the loss at the stop stays close to the same dollar figure either way. That figure is Initial Risk % of your total balance โ€” see Max Risk Per Trade for what "total balance" includes.

Preview before Send

๐Ÿ” Preview runs the entire pipeline โ€” balances, fees, sizing, leverage, every rejection check โ€” and shows you the result without placing anything. It is the same code path as Send, so what you see is what you would get.

๐Ÿš€ Send submits immediately, with no further confirmation. Preview is the confirmation step.

Why a trade gets rejected

Manual Entry goes through the same pipeline as a TradingView alert, so it faces every check a webhook trade does:

RejectionWhat it means
Risk-Reward Ratio after fees too lowNet RR after entry and exit fees came out below 1.0 โ€” the target does not pay for the risk plus the costs. Widen the target or tighten the stop.
Position already existsYou already hold this symbol. Use Add To Position from the Positions panel instead.
Pending orders existAn unfilled order for this symbol is already resting. Cancel it first.
Order quantity too smallThe sized position is below the exchange's minimum for this symbol. Raise Initial Risk % or choose a closer stop.
Leverage too highThe size this risk implies needs more leverage than your balance supports.
Insufficient marginNot enough free margin for the position.
Daily loss limit reachedThe daily loss guard has stopped trading for the day.

Every rejection is logged and explained in the notification you receive โ€” the trade never fails silently.

What the panel remembers

Symbol and Initial Risk % carry over from your last visit. The three prices never do: they describe one specific trade, and a stale entry price is worse than a blank one.

On this page