INTRADAY — support/resistance bot
INTRADAY trades around a price level you define — a support to buy from, or a resistance to short from. One entry logic, a ladder of partial take-profits, and stop rules anchored to the same level. Unlike the grid bots (FIBO/CHANNEL) it is built around a single directional idea: level holds → laddered profit; level breaks → stop.
Prerequisites: the bot lifecycle and the
shared config blocks. Required fields: type,
symbol, exchange, deposit, strategy, trend, takes, signals.
📌 INTRADAY has no
timeFrameand nofilters— of the common base fields it uses onlysymbol(object),ticker,name,exchange,onetime,timeout,noticeLevel(shapes table).
The building blocks
trend ✳ — the level itself, in Fn.Format: two
{timestamp: price} points define a line (same price twice = horizontal level, different
prices = sloped trendline):
"trend": { "1779393600000": 50.944, "1785211200000": 50.944 }
signals ✳ — when to enter, relative to the trend:
type |
Meaning |
|---|---|
trend_percent_price |
Price crosses a %-distance from the trend line; value: "0.00000000" = exactly at the line |
bsv |
Buy/sell-volume signal on a given timeFrame (ms) |
price / trend_price / price_percent |
Raw price-level variants |
takes ✳ — the exit ladder. Each rung closes percent % of the position at price
distance (for type: "price_percent" — a % distance from entry; negative values for
shorts). The percent values should sum to 100:
"takes": [
{ "type": "price_percent", "percent": "25.0", "price": "26.05000000" },
{ "type": "price_percent", "percent": "25.0", "price": "43.42000000" }
]
orders — INTRADAY extends the shared shape with extra buy-side controls:
correction (price-correction strategy, e.g. trend_percent_price), stopPrice,
autoTriggerred (sic — double «r»), workingType (CONTRACT_PRICE/MARK_PRICE), price.
Buy type may be LIMIT, MARKET, TAKE_PROFIT_LIMIT or STOP_MARKET; sell type —
LIMIT/MARKET.
range — optional trading-range constraints, an array of
{type: "trend_percent_price" | "price", min?, max?} (may be empty []).
Long from support — verified config
Support at 50.94, four take-profit rungs of 25% each, entry exactly at the line, a
price_percent_buy protective stop on the exchange side, plus the usual disabled breakeven
blank:
{
"type": "INTRADAY",
"settings": {
"type": "INTRADAY",
"symbol": { "base": "SOL", "quote": "USDT" },
"ticker": "SOLUSDT",
"name": "Support, lvl: 50.94",
"exchange": "binance-futures",
"deposit": { "value": "115.16314779", "asset": "USDT", "allocate": "auto", "attemptsLowBalance": 0 },
"noticeLevel": 1,
"timeout": { "type": "ttl", "value": 604800000 },
"positionSide": "LONG",
"strategy": "support",
"trend": { "1779393600000": 50.944502438963376, "1785211200000": 50.944502438963376 },
"takes": [
{ "type": "price_percent", "percent": "25.0", "price": "26.05000000" },
{ "type": "price_percent", "percent": "25.0", "price": "43.42000000" },
{ "type": "price_percent", "percent": "25.0", "price": "60.78000000" },
{ "type": "price_percent", "percent": "25.0", "price": "78.15000000" }
],
"signals": [ { "type": "trend_percent_price", "value": "0.00000000" } ],
"range": [],
"orders": {
"buy": {
"type": "TAKE_PROFIT_LIMIT",
"correction": "trend_percent_price",
"stopPrice": "13.02000000",
"autoTriggerred": true,
"workingType": "CONTRACT_PRICE"
},
"sell": { "type": "LIMIT" }
},
"stop": [
{ "strategy": "breakeven", "complete": true, "disabled": true,
"trigger": { "type": "kline" }, "order": { "type": "MARKET" } },
{ "strategy": "price_percent_buy", "complete": false, "disabled": false,
"trigger": { "type": "exchange" },
"order": { "type": "STOP_MARKET", "stopPrice": "-26.05000000",
"autoTriggerred": true, "workingType": "CONTRACT_PRICE",
"price": "0.00000000" } }
]
}
}
Short from resistance — verified config
🔑 There is no
strategy: "resistance". A resistance short is expressed asstrategy: "support"plusshort: trueandpositionSide: "SHORT"— with negative take distances. This is exactly how the platform encodes it.
Resistance at 94.08, two 50% take rungs below, a stop above the level, and a range guard one percent past the line:
{
"type": "INTRADAY",
"settings": {
"type": "INTRADAY",
"symbol": { "base": "SOL", "quote": "USDT" },
"ticker": "SOLUSDT",
"short": true,
"name": "Resistance, lvl: 94.08, RR: 5.36",
"exchange": "binance-futures",
"deposit": { "value": "480.76923077", "asset": "USDT", "allocate": "auto", "attemptsLowBalance": 0 },
"noticeLevel": 1,
"timeout": { "type": "ttl", "value": 604800000 },
"positionSide": "SHORT",
"strategy": "support",
"trend": { "1783497600000": 94.08, "1783497601000": 94.08 },
"takes": [
{ "type": "price_percent", "percent": "50.0", "price": "-33.43000000" },
{ "type": "price_percent", "percent": "50.0", "price": "-6.24000000" }
],
"signals": [ { "type": "trend_percent_price", "value": "0.00000000" } ],
"range": [ { "type": "trend_percent_price", "min": "-1.00000000" } ],
"orders": {
"buy": { "type": "LIMIT", "correction": "trend_percent_price" },
"sell": { "type": "LIMIT" }
},
"stop": [
{ "strategy": "breakeven", "complete": true, "disabled": true,
"trigger": { "type": "kline" }, "order": { "type": "MARKET" } },
{ "strategy": "trend_percent_price", "complete": false, "disabled": false,
"trigger": { "type": "exchange" },
"order": { "type": "STOP_MARKET", "stopPrice": "6.24000000",
"autoTriggerred": true, "workingType": "CONTRACT_PRICE",
"price": "6.67000000", "correction": "trend_percent_price" } }
]
}
}
Field reference
| Field | Type | Meaning |
|---|---|---|
strategy ✳ |
support | breakout |
support — trade bounces off the level (long; or short with short: true + positionSide: "SHORT") · breakout — trade breaks through key levels |
trend ✳ |
Fn.Format object | The level/trendline the bot trades around |
takes ✳ |
array | Take-profit ladder — {type: price_percent | percent, price (string; % distance from entry for price_percent, negative for shorts), percent (string; share to close, sum = 100)} |
signals ✳ |
array | Entry conditions — {type, value (string threshold), timeFrame? (ms, for bsv)} |
orders |
object | Extended order config — buy: type, correction, stopPrice, autoTriggerred, workingType, price; sell: type |
range |
array | Trading-range constraints {type, min?, max?}; [] allowed |
stop |
object | array | Commonly breakeven + price_percent_buy / trend_percent_price with trigger: {type: "exchange"} and a STOP_MARKET exit — stop orders live on the exchange, not only in the bot |
Shared trader fields (deposit, profitAsset, short, positionSide, marginType) apply
as usual.
Pitfalls
- Percent-flavored strings everywhere:
takes[].price,takes[].percent,signals[].value, stopstopPrice/priceundertrend_percent_price/price_percent_buysemantics are percent distances encoded as strings —"26.05000000"means 26.05%, not a price of $26.05. Thecorrection/strategy names tell you which space a number lives in. takes[].percentmust sum to 100, or part of the position stays unmanaged.- For shorts, take
pricedistances are negative — copy the resistance example. autoTriggerredis spelled with a double «r» — the platform’s internal name, faithfully exposed.- The
trendtimestamps are string keys in milliseconds; a seconds-value key silently defines a line in 1970 (Fn.Format). - Remember deep validation happens at start — a malformed
ladder shows up as a start failure, not a
400on create. - A breakout lives for one hour. Per the knowledge base, a
breakoutplay stops one hour after activation if no buy (even partial) happened — the terminal shows the error “Timeout. Failed to buy in time”; that stop counts as the breakout having played out, and the setup is no longer valid. - Minimum size — the equivalent of 25 USDT (for the two-take scenario). Below that the stop-loss may fail to execute: the exchange rejects orders under its minimal notional.
Verified against API spec v2.0.0 · 2026-07-12