Node Reference

Complete reference for all 104 nodes available in the Flow Builder. Nodes are organized by category. Each entry shows the node description, inputs, outputs, and configurable parameters.

Triggers(4)

Time Trigger

Triggers flow at specified time intervals

Starts your flow automatically at regular intervals. Use this to run strategies that check market conditions every minute, hour, or day.

Outputs

NameTypeDescription
timestampnumberUnix timestamp (ms) when the trigger fired

Parameters

NameTypeDefaultRangeDescription
intervalselect1m1m | 5m | 15m | 1h | 4h | 1dHow often the trigger fires

Candle Close

Triggers when a candle closes

Fires once each time a candlestick completes. Use this instead of Time Trigger when your strategy should react to confirmed candle data rather than arbitrary intervals.

Outputs

NameTypeDescription
candlecandleThe completed candle data (OHLCV)
timestampnumberUnix timestamp (ms) of the candle close

Parameters

NameTypeDefaultRangeDescription
timeframeselect1m1m | 5m | 15m | 1h | 4h | 1dCandle timeframe to watch for close events

Manual Trigger

Triggered manually by user

Lets you run a flow on demand with a button click. Useful for testing your strategy or executing one-off trades without waiting for a scheduled trigger.

Outputs

NameTypeDescription
timestampnumberUnix timestamp (ms) when clicked

Webhook

Triggers from external webhook call

Starts your flow when an external service sends an HTTP request to your webhook URL. Use this to connect TradingView alerts, bots, or custom scripts to your flows.

Outputs

NameTypeDescription
payloadanyJSON payload received from the webhook
timestampnumberUnix timestamp (ms) when received

Exchange(3)

Exchange Connect

stateful

Connect to cryptocurrency exchange

Establishes a connection to your exchange account. This is the starting point for any flow that needs market data or trade execution. Choose paper mode to practice without risking real funds.

Outputs

NameTypeDescription
exchangeexchangeActive exchange connection instance
account_idstringUnique identifier for the connected account

Parameters

NameTypeDefaultRangeDescription
exchangeselectbinancebinance | coinbase | kraken | okx | mexc | bybit | kucoin | bitget | bitfinex | htx | bithumb | bitstamp | gemini | gate | cex | bitmart | coinex | wooWhich exchange to connect to
modeselectpaperpaper | livePaper uses simulated funds; live uses real funds

Account Info

Get account balance and positions

Fetches your current account balance and open positions from the exchange. Connect this to Position Size or Balance Check nodes to make sizing decisions based on your available funds.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection to query

Outputs

NameTypeDescription
balancenumberTotal account balance in quote currency
margin_availablenumberAvailable margin for new positions
positionsanyArray of currently open positions

Balance Check

Check if sufficient balance for trade

Verifies you have enough funds before placing an order. Use this as a safety check — connect it to an AND Gate before your Place Order node to prevent failed trades.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection to check
required_amountnumberYesMinimum balance needed for the trade

Outputs

NameTypeDescription
sufficientbooleanTrue if available balance >= required amount
availablenumberCurrent available balance in quote currency

Market Data(6)

Price Data

stateful

Real-time price feed

Streams live price data (open, high, low, close, volume) for a trading pair. This is the main data source for most strategies — connect it to indicators, comparators, or order nodes.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for market data

Outputs

NameTypeDescription
pricenumberCurrent last-traded price
opennumberCurrent candle open price
highnumberCurrent candle high price
lownumberCurrent candle low price
closenumberCurrent candle close price
volumenumberCurrent candle volume
ohlcvohlcvFull OHLCV candle object
timestampnumberUnix timestamp (ms) of the data point

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Trading pair symbol (e.g. BTC/USDT)
timeframeselect1m1m | 5m | 15m | 1h | 4h | 1dCandle timeframe for price aggregation

Order Book

stateful

Order book depth data

Shows the current buy and sell orders waiting on the exchange. Use bid/ask spread and order imbalance to gauge short-term supply/demand and improve your entry timing.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for order book data

Outputs

NameTypeDescription
best_bidnumberHighest buy order price
best_asknumberLowest sell order price
spreadnumberDifference between best ask and best bid
depthanyFull order book depth (bids and asks arrays)
imbalancenumberBid/ask volume imbalance ratio (-1 to +1)

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Trading pair symbol (e.g. BTC/USDT)
depth_levelsnumber20-Number of price levels to fetch per side

Trade Tape

stateful

Recent trades stream

Tracks buy/sell volume from recent trades and identifies large trades. Use the large_trade_ratio to detect whale activity and the buy/sell split to gauge market pressure.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for trade stream

Outputs

NameTypeDescription
buy_volumenumberTotal buy volume in the observation window
sell_volumenumberTotal sell volume in the observation window
large_trade_rationumberFraction of volume from large (whale) trades

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Trading pair symbol (e.g. BTC/USDT)
window_secondsnumber60-Sliding window duration in seconds

Funding Rate

stateful

Perpetual futures funding rate

Fetches the current funding rate for perpetual futures. Positive funding means longs pay shorts; negative means shorts pay longs. Use this for carry trades or to detect crowded positioning. The is_extreme output flags when the absolute rate exceeds the threshold — a contrarian signal.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for funding data

Outputs

NameTypeDescription
fundingnumberCurrent funding rate (positive = longs pay shorts)
rate_pctnumberFunding rate as a percentage
next_funding_timenumberUnix timestamp (ms) of next settlement
predicted_fundingnumberEstimated next funding rate
is_positivebooleanTrue when funding rate is positive (longs pay shorts)
is_extremebooleanTrue when abs(rate) exceeds extreme_threshold

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Perpetual futures pair symbol
extreme_thresholdnumber0.050.01 – 1Threshold (%) to flag as extreme funding

Open Interest

stateful

Futures open interest data

Tracks total open positions in futures markets. Rising OI with price = trend confirmation. Falling OI with price = unwinding. Sudden drops often signal liquidation events.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for derivatives data

Outputs

NameTypeDescription
open_interestnumberTotal open positions value
oi_changenumberAbsolute change in open interest
oi_change_percentnumberPercentage change in open interest
is_risingbooleanTrue when OI increased since last tick
is_fallingbooleanTrue when OI decreased since last tick

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Perpetual futures pair symbol

Multi-TF Indicator

stateful

Run an indicator on a different timeframe

Fetches candles at a different timeframe than your main flow and runs an indicator on them. For example, use this to check the 4h RSI while your flow runs on 1m candles. The indicator value updates only when a new candle on the target timeframe closes.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesExchange connection

Outputs

NameTypeDescription
valuenumberCurrent indicator value on the target timeframe
prev_valuenumberPrevious indicator value (one candle ago)
is_risingbooleanTrue when value > prev_value
is_fallingbooleanTrue when value < prev_value

Parameters

NameTypeDefaultRangeDescription
symbolstring-Trading pair
timeframeselect4h5m | 15m | 1h | 4h | 1d | 1wTimeframe for the indicator
indicatorselectrsirsi | sma | ema | atrWhich indicator to compute
periodnumber142 – 200Indicator period

Indicators(18)

SMA

stateful

Simple Moving Average

Smooths out price data by averaging the last N candles. Use it to identify the overall trend direction — price above SMA suggests an uptrend, below suggests a downtrend.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to average (usually close price)

Outputs

NameTypeDescription
smanumberComputed simple moving average value
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber201 – 500Number of data points to average

EMA

stateful

Exponential Moving Average with slope

Like SMA but reacts faster to recent price changes. Also outputs slope direction so you can detect when a trend is strengthening or weakening. Great for trend-following strategies.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to smooth (usually close price)

Outputs

NameTypeDescription
emanumberComputed exponential moving average value
slopenumberRate of change of the EMA per period
slope_percentnumberSlope expressed as a percentage
slope_directionstringTrend direction: 'up', 'down', or 'flat'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber201 – 500EMA lookback period
slope_lookbacknumber52 – 50Periods for slope calculation

RSI

stateful

Relative Strength Index

Measures if a coin is overbought (above 70) or oversold (below 30) on a 0-100 scale. Use it to find potential reversal points — buy when oversold, sell when overbought.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to evaluate (usually close price)

Outputs

NameTypeDescription
rsinumberRSI value on a 0-100 scale
is_overboughtbooleanTrue when RSI exceeds overbought level
is_oversoldbooleanTrue when RSI falls below oversold level
is_neutralbooleanTrue when RSI is between oversold and overbought levels
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber142 – 100RSI lookback period
overboughtnumber7050 – 100Level above which RSI is overbought
oversoldnumber300 – 50Level below which RSI is oversold

MACD

stateful

Moving Average Convergence Divergence

Tracks momentum by comparing fast and slow moving averages. When MACD crosses above the signal line it's a bullish signal; crossing below is bearish. The histogram shows momentum strength.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to evaluate (usually close price)

Outputs

NameTypeDescription
macd_linenumberDifference between fast and slow EMAs
signal_linenumberEMA of the MACD line
histogramnumberMACD minus signal (momentum gauge)
is_bullishbooleanTrue when MACD is above signal line
crossoverstringCrossover state: 'bullish', 'bearish', or 'none'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
fast_periodnumber122 – 100Fast EMA period (shorter = more responsive)
slow_periodnumber265 – 200Slow EMA period (longer = smoother)
signal_periodnumber92 – 50Signal line EMA period

Bollinger Bands

stateful

Volatility bands around moving average

Creates upper and lower bands based on price volatility. Price touching the upper band suggests overbought; lower band suggests oversold. A squeeze (narrow bands) often precedes a big move.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to evaluate (usually close price)

Outputs

NameTypeDescription
uppernumberUpper band (middle + multiplier * std dev)
middlenumberMiddle band (SMA of the input)
lowernumberLower band (middle - multiplier * std dev)
bandwidthnumberWidth between upper and lower bands
percent_bnumberPrice position within bands (0=lower, 1=upper)
is_squeezebooleanTrue when bandwidth is historically narrow
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber205 – 100SMA lookback period for middle band
multipliernumber20.5 – 5Standard deviation multiplier for band width

ATR

stateful

Average True Range

Measures how much a price typically moves per candle. Use ATR to set dynamic stop losses that adapt to current volatility — wider stops in volatile markets, tighter in calm ones.

Inputs

NameTypeRequiredDescription
highnumberYesCandle high price
lownumberYesCandle low price
closenumberYesCandle close price

Outputs

NameTypeDescription
atrnumberCurrent Average True Range value
atr_avgnumberLonger-term average of ATR
atr_rationumberATR / ATR avg (>1 = above-normal volatility)
is_expandingbooleanTrue when ATR is rising
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber141 – 100ATR lookback period
avg_periodnumber5010 – 200Lookback for longer-term ATR average

WMA

stateful

Weighted Moving Average

Gives more weight to recent prices than SMA. The most recent candle has the highest weight. Use it when you want a moving average that's more responsive to recent price action.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric series to average (usually close price)

Outputs

NameTypeDescription
wmanumberComputed weighted moving average value
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber201 – 500Number of data points in the weighted window

ROC

stateful

Rate of Change (Momentum)

Measures price change speed as a percentage over N periods. Positive = upward momentum, negative = downward. Trend exhaustion is detected when momentum decelerates against the price direction.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice series to measure rate of change

Outputs

NameTypeDescription
rocnumberRate of change as a percentage
delta_momentumnumberChange in momentum vs previous period
is_trend_exhaustionbooleanTrue when momentum decelerates against price
momentum_directionstringDirection: 'up', 'down', or 'flat'
momentum_strengthstringStrength: 'strong', 'moderate', or 'weak'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber101 – 100Lookback period for rate of change

Autocorrelation

stateful

Trend continuation detection via autocorrelation

Measures whether returns are correlated with their past values. Positive autocorrelation = trend likely to continue. Negative = mean-reverting. Useful for choosing between trend-following and mean-reversion strategies.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice series to analyze for autocorrelation

Outputs

NameTypeDescription
autocorr_sumnumberSum of autocorrelation coefficients across lags
is_trend_continuationbooleanTrue when positive autocorrelation detected
is_mean_revertingbooleanTrue when negative autocorrelation detected
trend_persistencestring'trending', 'mean_reverting', or 'random'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber2010 – 100Window size for return calculation
max_lagnumber51 – 20Maximum lag to compute autocorrelation for

Realized Volatility

stateful

Volatility from log returns with z-score

Calculates actual market volatility from price changes. The z-score shows if current volatility is abnormally high or low vs history. Use it to adjust position sizes and identify volatility regime changes.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice series to measure volatility

Outputs

NameTypeDescription
volatilitynumberRealized volatility from log returns
volatility_percentnumberVolatility expressed as a percentage
zscorenumberZ-score of current vol vs historical mean
volatility_regimestringRegime label: 'low', 'normal', or 'high'
is_low_volatilitybooleanTrue when z-score indicates below-normal vol
is_high_volatilitybooleanTrue when z-score indicates above-normal vol
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber205 – 100Lookback for volatility calculation
zscore_periodnumber10020 – 500Lookback for z-score normalization
annualizebooleantrue-Whether to annualize the volatility figure
bar_interval_minutesnumber1-Minutes per bar (for annualization scaling)

VWAP

stateful

Volume Weighted Average Price

The average price weighted by volume — the 'fair price' for the day. Institutional traders use VWAP as a benchmark. Price above VWAP = bullish bias, below = bearish. Resets daily by default.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice per unit (typically last or close)
volumenumberYesVolume for the current bar

Outputs

NameTypeDescription
vwapnumberVolume-weighted average price
price_distancenumberAbsolute distance of price from VWAP
price_distance_percentnumberDistance from VWAP as a percentage
price_positionstringPosition: 'above', 'below', or 'at'
upper_bandnumberUpper std dev band around VWAP
lower_bandnumberLower std dev band around VWAP
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
reset_dailybooleantrue-Whether to reset VWAP calculation each day
reset_hour_utcnumber0-UTC hour at which to reset VWAP

OBV

stateful

On-Balance Volume

Cumulative volume that adds on up-candles and subtracts on down-candles. Rising OBV confirms an uptrend; falling OBV confirms a downtrend. Divergence between OBV and price warns of potential reversal.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice series to determine up/down candles
volumenumberYesVolume for the current bar

Outputs

NameTypeDescription
obvnumberCumulative on-balance volume value
slopenumberOBV slope over the lookback period

Parameters

NameTypeDefaultRangeDescription
slope_periodsnumber10-Periods for OBV slope calculation

Stochastic

stateful

Stochastic Oscillator (%K, %D)

Shows where price closed relative to its high-low range over N periods (0-100). Above 80 = overbought, below 20 = oversold. %K crossing %D gives entry signals similar to MACD crossovers.

Inputs

NameTypeRequiredDescription
highnumberYesCandle high price
lownumberYesCandle low price
closenumberYesCandle close price

Outputs

NameTypeDescription
knumberFast stochastic line (%K, 0-100)
dnumberSlow stochastic line (%D, smoothed %K)
is_overboughtbooleanTrue when %K exceeds overbought level
is_oversoldbooleanTrue when %K falls below oversold level
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
k_periodnumber142 – 100Lookback period for %K line
d_periodnumber31 – 20Smoothing period for %D line
overboughtnumber8050 – 100Level above which is overbought
oversoldnumber200 – 50Level below which is oversold

ADX

stateful

Average Directional Index

Measures trend strength on a 0-100 scale (not direction). Above 25 = trending, below 20 = ranging. Use it to decide whether to use trend-following or mean-reversion strategies.

Inputs

NameTypeRequiredDescription
highnumberYesCandle high price
lownumberYesCandle low price
closenumberYesCandle close price

Outputs

NameTypeDescription
adxnumberAverage Directional Index value (0-100)
plus_dinumberPositive directional indicator (+DI)
minus_dinumberNegative directional indicator (-DI)
trend_strengthstring'strong', 'moderate', 'weak', or 'absent'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber142 – 100ADX lookback period

MA Slope

stateful

Moving Average Slope calculator

Measures the slope (rate of change) of any value over N periods. Connect it to a moving average output to determine if the trend is accelerating, decelerating, or flat.

Inputs

NameTypeRequiredDescription
valuenumberYesAny numeric series (typically an MA output)

Outputs

NameTypeDescription
slopenumberAbsolute slope value per period
slope_percentnumberSlope expressed as a percentage
directionstringDirection: 'up', 'down', or 'flat'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber102 – 100Lookback period for slope calculation

Price Buffer

stateful

Stores N prices, outputs delta/log_return

Stores the last N price values and computes the total delta and log return over that window. Useful as a building block for custom indicators and regime detection inputs.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice value to store in the rolling buffer

Outputs

NameTypeDescription
pricesanyArray of the last N stored price values
deltanumberPrice difference over the full buffer window
log_returnnumberLog return over the full buffer window
is_readybooleanTrue once the buffer is full

Parameters

NameTypeDefaultRangeDescription
periodnumber202 – 500Number of prices to keep in the buffer

Momentum

stateful

Raw momentum (price - price_N_ago)

Simply subtracts the price N periods ago from the current price. Positive = price is higher, negative = lower. The simplest momentum indicator — useful for quick directional checks.

Inputs

NameTypeRequiredDescription
pricenumberYesPrice series to measure momentum

Outputs

NameTypeDescription
momentumnumberRaw momentum (current - N periods ago)
momentum_percentnumberMomentum as a percentage of earlier price
directionstringDirection: 'up', 'down', or 'flat'
is_readybooleanTrue once enough data points collected

Parameters

NameTypeDefaultRangeDescription
periodnumber101 – 200Lookback period for momentum

Ichimoku Cloud

stateful

Ichimoku Kinko Hyo with all five lines

Computes the five Ichimoku lines: Tenkan-sen (conversion), Kijun-sen (base), Senkou Span A & B (cloud), and Chikou Span (lagging). The cloud area between Span A and B defines support/resistance zones. Price above the cloud is bullish, below is bearish.

Inputs

NameTypeRequiredDescription
candlesohlcvYesOHLCV candle data

Outputs

NameTypeDescription
tenkannumberTenkan-sen (conversion line)
kijunnumberKijun-sen (base line)
senkou_anumberSenkou Span A (leading span A)
senkou_bnumberSenkou Span B (leading span B)
chikounumberChikou Span (lagging span)
above_cloudbooleanTrue when price is above the cloud
below_cloudbooleanTrue when price is below the cloud

Parameters

NameTypeDefaultRangeDescription
tenkan_periodnumber92 – 100Tenkan-sen period
kijun_periodnumber262 – 200Kijun-sen period
senkou_b_periodnumber522 – 400Senkou Span B period
displacementnumber261 – 200Cloud displacement (offset)

Regime Detection(12)

Regime Detector

stateful

Unified regime detection orchestrator

The main regime detection node that identifies which of 55 market regimes are active. Outputs probability distribution across all regimes, the dominant regime, and whether any critical regimes are detected.

Inputs

NameTypeRequiredDescription
pricenumberYesCurrent price for regime analysis
volumenumberNoCurrent volume (improves detection)
order_bookanyNoOrder book data for liquidity analysis
fundingnumberNoFunding rate for derivatives detection
open_interestnumberNoOpen interest for derivatives detection

Outputs

NameTypeDescription
probabilitiesprobabilitiesProbability distribution across all 55 regimes
dominant_regimenumberNumeric ID of the most probable regime
dominant_regime_namestringName of the dominant regime
confidencenumberProbability of the dominant regime (0-1)
critical_activebooleanTrue if any critical regime is active
critical_regime_idnumberID of active critical regime (0 if none)

Parameters

NameTypeDefaultRangeDescription
temperaturenumber10.1 – 5Softmax temperature (lower = more decisive)
smoothing_alphanumber0.40.1 – 0.9EMA alpha for probability smoothing
inclusion_thresholdnumber0.20.01 – 0.5Min probability to include in blending

Critical Regime Alert

Triggers when critical market regime detected

Monitors 11 critical regimes (flash crash, liquidation cascade, black swan, etc.) and fires when any exceeds its threshold. Connect to Kill Switch for automatic protection.

Inputs

NameTypeRequiredDescription
probabilitiesprobabilitiesYesRegime probability distribution to monitor

Outputs

NameTypeDescription
triggeredbooleanTrue when a critical regime is active
regime_idnumberID of the triggered critical regime
regime_namestringName of the triggered critical regime
severitystringSeverity: 'warning', 'critical', or 'emergency'

Regime Parameters

Resolves engine parameters based on active regimes

Blends trading parameters (position size, SL/TP multipliers, leverage) from all active regimes using probability-weighted averaging. Critical regimes override blending entirely.

Inputs

NameTypeRequiredDescription
probabilitiesprobabilitiesYesRegime probability distribution for blending

Outputs

NameTypeDescription
entry_enabledbooleanWhether new entries are allowed
direction_allowedstring'both', 'long_only', 'short_only', or 'none'
position_size_multipliernumberBlended position size scaling factor
sl_multipliernumberBlended stop loss distance multiplier
tp_multipliernumberBlended take profit distance multiplier
max_leveragenumberMax leverage under current regimes
urgencystringExecution urgency: 'low', 'normal', 'high'
order_typestringRecommended order type: 'limit' or 'market'
slippage_tolerancenumberMax acceptable slippage as a fraction
exit_open_positionsbooleanTrue if regimes recommend closing all
kill_switchbooleanTrue if conditions warrant halting trading

Parameters

NameTypeDefaultRangeDescription
inclusion_thresholdnumber0.20.01 – 0.5Min probability to include in blending

Regime Smoother

stateful

EMA smoothing with oscillation detection

Smooths regime probabilities to prevent rapid flipping between regimes. Detects oscillation patterns and enforces a 'sticky period' before confirming a regime change.

Inputs

NameTypeRequiredDescription
raw_probabilitiesprobabilitiesYesUnsmoothed regime probability distribution

Outputs

NameTypeDescription
smoothed_probabilitiesprobabilitiesEMA-smoothed probability distribution
is_warmed_upbooleanTrue once warmup period is complete
is_oscillatingbooleanTrue if rapid regime flipping detected
oscillation_ratenumberFrequency of regime changes in window
confirmed_regimenumberRegime ID held for min_regime_ticks

Parameters

NameTypeDefaultRangeDescription
alphanumber0.40.1 – 0.9EMA smoothing factor (higher = faster)
warmup_ticksnumber3-Ticks before outputting smoothed values
min_regime_ticksnumber2-Min ticks a regime must hold to confirm
oscillation_windownumber10-Window size for oscillation rate

Price Regime

stateful

Detects price/trend market regimes (IDs 1-10)

Scores 10 price/trend regimes: trend expansion, initiation, continuation, exhaustion, mean reversion, range compression, stable market making, toxic flow, vol expansion, and vol shock.

Inputs

NameTypeRequiredDescription
pricenumberYesCurrent price
ma_slopenumberNoMoving average slope for trend direction
atrnumberNoATR for volatility context
delta_pricenumberNoPrice change from previous period
volume_rationumberNoCurrent volume / average volume
autocorr_sumnumberNoAutocorrelation sum for trend persistence
delta_momentumnumberNoMomentum change for exhaustion detection
divergence_scorenumberNoPrice-volume divergence score
price_vwap_distancenumberNoDistance of price from VWAP
vol_zscorenumberNoVolatility z-score
spread_pctnumberNoBid-ask spread as a percentage
depth_rationumberNoOrder book depth ratio (bid / ask)
order_flow_imbalancenumberNoNet order flow imbalance
log_returnnumberNoLog return for current period
realized_volnumberNoRealized volatility value

Outputs

NameTypeDescription
regime_idnumberDetected price regime ID (1-10)
regime_namestringName of the detected price regime
probabilitynumberProbability score for the detected regime

Derivatives Regime

stateful

Detects derivatives-related conditions (9 regimes)

Scores 9 derivatives regimes including funding neutral/imbalance, liquidation cascade, short/long squeeze, basis blowout, and funding harvest. Key input: funding rate and open interest.

Inputs

NameTypeRequiredDescription
funding_ratenumberYesCurrent perpetual futures funding rate
funding_stdnumberNoStd dev of funding rate history
delta_open_interestnumberNoChange in open interest
liquidation_volumenumberNoVolume from liquidation events
total_volumenumberNoTotal market volume for normalization
delta_pricenumberNoPrice change from previous period
perp_pricenumberNoPerpetual futures price
spot_pricenumberNoSpot market price
realized_volnumberNoRealized volatility for context

Outputs

NameTypeDescription
regime_idnumberDetected derivatives regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime
is_squeezebooleanTrue if a squeeze condition detected

Parameters

NameTypeDefaultRangeDescription
funding_thresholdnumber0.01-Funding rate level considered significant

Participation Regime

stateful

Detects market participant behavior (8 regimes)

Scores 8 participation regimes: whale accumulation/distribution, order flow imbalance, retail/institutional dominance, inventory rebalancing, adverse selection, and index rebalance.

Inputs

NameTypeRequiredDescription
large_trade_rationumberNoFraction of volume from large trades
buy_volumenumberNoTotal buy-side volume
sell_volumenumberNoTotal sell-side volume
total_volumenumberNoTotal market volume
small_trade_rationumberNoFraction of volume from small trades
block_trade_rationumberNoFraction of volume from block trades

Outputs

NameTypeDescription
regime_idnumberDetected participation regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime

Liquidity Regime

stateful

Detects market liquidity conditions (5 regimes)

Scores 5 liquidity regimes: cross-exchange arbitrage, liquidity drought, liquidity migration, liquidity vacuum (critical), and venue fragmentation. Monitors order book depth and spread.

Inputs

NameTypeRequiredDescription
bid_depthnumberYesTotal bid-side order book depth
ask_depthnumberYesTotal ask-side order book depth
spreadnumberYesCurrent bid-ask spread
volumenumberNoCurrent trading volume
depth_rationumberNoBid depth / ask depth ratio

Outputs

NameTypeDescription
regime_idnumberDetected liquidity regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime
is_criticalbooleanTrue if critical liquidity condition

Parameters

NameTypeDefaultRangeDescription
depth_thresholdnumber0.3-Min depth ratio for normal liquidity

Volatility Regime

stateful

Detects volatility and options conditions (3 regimes)

Scores 3 volatility regimes: dealer gamma positioning, volatility suppression, and gamma flip. Useful for understanding whether options market dynamics are suppressing or amplifying price moves.

Inputs

NameTypeRequiredDescription
realized_volnumberYesCurrent realized volatility
historical_volnumberNoLonger-term historical volatility
dealer_gammanumberNoNet dealer gamma exposure

Outputs

NameTypeDescription
regime_idnumberDetected volatility regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime

Correlation Regime

stateful

Detects cross-asset correlation conditions (6 regimes)

Scores 6 correlation/meta regimes: correlation shift, dominance rotation, narrative regime, macro override, reflexive feedback, and forced de-risking (critical). Monitors cross-asset dynamics.

Inputs

NameTypeRequiredDescription
delta_correlationnumberNoChange in cross-asset correlation
delta_btc_dominancenumberNoChange in BTC market dominance
macro_betanumberNoSensitivity to macro/traditional markets
cross_asset_drawdownnumberNoDrawdown across correlated assets
correlation_to_1numberNoHow close correlation is to 1 (risk-off)

Outputs

NameTypeDescription
regime_idnumberDetected correlation regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime

Temporal Regime

stateful

Detects time-based market behavior (3 regimes)

Scores 3 temporal regimes: session regime (volume vs session average), weekend regime (binary), and holiday regime (binary). Weekend and holiday use clip normalization instead of softmax.

Inputs

NameTypeRequiredDescription
current_volumenumberNoVolume in the current time window
avg_session_volumenumberNoAverage volume for this session
is_weekendbooleanNoTrue if current time is a weekend
is_holidaybooleanNoTrue if current time is a holiday

Outputs

NameTypeDescription
regime_idnumberDetected temporal regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime

Failure Regime

stateful

Detects infrastructure/market failure (11 regimes)

Mandatory safety node that monitors 11 failure regimes: exchange stress, flash crash, oracle failure, regulatory shock, black swan, cross-margin contagion, stablecoin stress, chain congestion, settlement risk, capital control, and market halt.

Inputs

NameTypeRequiredDescription
latency_zscorenumberNoExchange API latency z-score
atrnumberNoATR for flash crash detection
highnumberNoCandle high price
lownumberNoCandle low price
opennumberNoCandle open price
closenumberNoCandle close price
oracle_pricesanyNoOracle price feeds for divergence check
stablecoin_pricesanyNoStablecoin prices (should be near 1.0)
withdrawal_blockedbooleanNoTrue if withdrawals are disabled
trading_haltedbooleanNoTrue if exchange trading is halted

Outputs

NameTypeDescription
regime_idnumberDetected failure regime ID
regime_namestringName of the detected regime
probabilitynumberProbability score for the regime
is_criticalbooleanTrue if condition requires immediate action
recommended_actionstring'monitor', 'reduce', 'exit', or 'halt'

Parameters

NameTypeDefaultRangeDescription
flash_crash_thresholdnumber3-ATR z-score that qualifies as flash crash

Logic(10)

Comparator

Compare two values

Compares two numbers using an operator (>, <, ==, etc.) and outputs true or false. Use this to create conditions like 'price > SMA' or 'RSI < 30'.

Inputs

NameTypeRequiredDescription
anumberYesLeft-hand value for comparison
bnumberYesRight-hand value for comparison

Outputs

NameTypeDescription
resultbooleanTrue if the comparison holds

Parameters

NameTypeDefaultRangeDescription
operatorselect>> | < | >= | <= | == | !=Comparison operator to apply

Threshold

stateful

Check if value crosses threshold

Detects when a value crosses above or below a set level. Unlike Comparator, this tracks crossing events — useful for triggering trades only at the moment RSI crosses 30 or price crosses a support level.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric value to check against the threshold

Outputs

NameTypeDescription
abovebooleanTrue while value is above the threshold
belowbooleanTrue while value is below the threshold
crossed_upbooleanTrue only on the tick value crosses above
crossed_downbooleanTrue only on the tick value crosses below

Parameters

NameTypeDefaultRangeDescription
thresholdnumber0-The level to compare against

AND Gate

All inputs must be true

Combines multiple conditions — all must be true for the output to be true. Use it to require multiple confirmations before entering a trade, like 'RSI oversold AND price above SMA AND volume rising'.

Inputs

NameTypeRequiredDescription
abooleanYesFirst boolean condition (required)
bbooleanYesSecond boolean condition (required)
cbooleanNoThird boolean condition (optional)
dbooleanNoFourth boolean condition (optional)

Outputs

NameTypeDescription
resultbooleanTrue only when ALL inputs are true

OR Gate

Any input must be true

Outputs true if any connected condition is true. Use it when you want to trigger on multiple possible signals — like 'RSI oversold OR MACD bullish crossover'.

Inputs

NameTypeRequiredDescription
abooleanYesFirst boolean condition (required)
bbooleanYesSecond boolean condition (required)
cbooleanNoThird boolean condition (optional)
dbooleanNoFourth boolean condition (optional)

Outputs

NameTypeDescription
resultbooleanTrue when ANY input is true

NOT Gate

Invert boolean

Flips true to false and false to true. Use it to negate a condition — for example, invert a Kill Switch signal to create an 'all clear' output for normal trading.

Inputs

NameTypeRequiredDescription
valuebooleanYesBoolean value to invert

Outputs

NameTypeDescription
resultbooleanNegated boolean (true becomes false)

Signal Gate

Pass signal only if conditions met

Acts like a valve — passes the signal through only when the condition is true, otherwise blocks it. Use it to gate trade signals through regime or risk checks.

Inputs

NameTypeRequiredDescription
signalanyYesThe signal/data to pass through or block
conditionbooleanYesGate control: true passes, false blocks

Outputs

NameTypeDescription
signalanyOriginal signal (only when condition is true)
passedbooleanTrue if the signal was allowed through

Softmax

Normalize scores to probabilities

Converts a set of raw scores into probabilities that sum to 1. Higher temperature = more uniform distribution; lower temperature = winner-take-all. Used internally by regime detection.

Inputs

NameTypeRequiredDescription
scoresanyYesArray of raw numeric scores to normalize

Outputs

NameTypeDescription
probabilitiesprobabilitiesNormalized probability distribution (sums to 1)

Parameters

NameTypeDefaultRangeDescription
temperaturenumber10.1 – 10Distribution sharpness (lower = more peaked)

Math

Basic math operation

Performs a math operation on two numbers (+, -, *, /, %, ^, min, max). Use it for custom calculations like computing spreads, ratios, or combining indicator values.

Inputs

NameTypeRequiredDescription
anumberYesFirst operand
bnumberYesSecond operand

Outputs

NameTypeDescription
resultnumberResult of the math operation

Parameters

NameTypeDefaultRangeDescription
operationselect++ | - | * | / | % | ^ | min | maxMath operation to perform

Custom Formula

User-defined math expression

Enter a math formula using variables a, b, c, d which map to the 4 inputs. Supports: +, -, *, /, %, ^, abs(), min(), max(), sqrt(), log(), round(). Example: (a - b) / c creates a z-score from three inputs.

Inputs

NameTypeRequiredDescription
anumberYesVariable a
bnumberNoVariable b
cnumberNoVariable c
dnumberNoVariable d

Outputs

NameTypeDescription
resultnumberFormula result
is_positivebooleanTrue when result > 0
is_negativebooleanTrue when result < 0

Parameters

NameTypeDefaultRangeDescription
formulastringa-Math formula using variables a, b, c, d. Example: (a - b) / c

Switch

Multi-way branching based on a numeric value

Routes execution based on a numeric input value. Define up to 4 threshold ranges — the input is compared against each threshold and the matching branch output becomes true. Similar to a switch/case statement. Use for routing to different strategies based on regime, volatility level, or any numeric classifier.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric value to evaluate

Outputs

NameTypeDescription
branch_1booleanTrue when value < threshold_1
branch_2booleanTrue when threshold_1 <= value < threshold_2
branch_3booleanTrue when threshold_2 <= value < threshold_3
branch_4booleanTrue when value >= threshold_3
active_branchnumberWhich branch is active (1-4)

Parameters

NameTypeDefaultRangeDescription
threshold_1number30-First threshold boundary
threshold_2number50-Second threshold boundary
threshold_3number70-Third threshold boundary

Risk Management(15)

Stop Loss (Fixed)

Fixed percentage stop loss

Sets a stop loss at a fixed percentage below (for longs) or above (for shorts) your entry price. Simple and predictable — good for beginners or when you want consistent risk per trade.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered

Outputs

NameTypeDescription
stop_pricenumberComputed stop loss price

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
stop_percentnumber0.020.001 – 0.5Stop distance as a fraction (0.02 = 2%)

Stop Loss (ATR)

ATR-based stop loss

Sets a stop loss based on current market volatility using ATR. The stop widens in volatile markets and tightens in calm ones, reducing the chance of getting stopped out by normal price noise.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered
atrnumberYesCurrent ATR value for stop distance

Outputs

NameTypeDescription
stop_pricenumberComputed ATR-based stop loss price

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
atr_multipliernumber20.5 – 10How many ATRs away to place the stop

Take Profit (R:R)

Take profit based on risk:reward ratio

Calculates your take-profit price based on your stop loss distance. A 2:1 ratio means your target profit is twice your risk. Connect it to a Stop Loss node to automatically compute the TP level.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered
stop_pricenumberYesStop loss price (used to calculate risk)

Outputs

NameTypeDescription
take_profit_pricenumberComputed take profit price

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
risk_rewardnumber20.5 – 10Reward-to-risk ratio (2.0 = 2x the risk)

Kill Switch

stateful

Emergency stop trading trigger

Emergency safety net that stops all trading when losses exceed your limits. Set max loss amount, percentage, or consecutive loss count to automatically shut down the strategy and protect your account.

Inputs

NameTypeRequiredDescription
pnlnumberNoCurrent session PnL in absolute terms
pnl_percentnumberNoCurrent session PnL as a percentage
consecutive_lossesnumberNoNumber of consecutive losing trades
critical_regimebooleanNoTrue if a critical market regime is active

Outputs

NameTypeDescription
triggeredbooleanTrue when any kill switch condition is met
reasonstringWhich condition triggered the kill switch

Parameters

NameTypeDefaultRangeDescription
max_loss_amountnumber0-Max allowed loss in absolute terms (0 = disabled)
max_loss_percentnumber0.1-Max allowed loss as a fraction (0.1 = 10%)
max_consecutive_lossesnumber5-Stop after this many losses in a row
stop_on_critical_regimebooleantrue-Trigger on critical regime detection

Trailing Stop

stateful

Trailing stop that follows price

A stop loss that moves with profitable price action. It activates after price moves a set % in your favor, then trails behind at a fixed distance. Locks in profits while letting winners run.

Inputs

NameTypeRequiredDescription
current_pricenumberYesLatest market price
entry_pricenumberYesPrice at which the position was entered

Outputs

NameTypeDescription
trail_pricenumberCurrent trailing stop price level
is_activebooleanTrue once past the activation threshold
is_triggeredbooleanTrue when price crosses the trail level

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
trail_percentnumber0.010.001 – 0.2Trail distance as a fraction (0.01 = 1%)
activation_percentnumber0.010 – 0.5Min profit before trailing begins (0 = immediate)

PnL Calculator

Calculate profit/loss for position

Computes your current unrealized PnL for an open position. Connect entry price, current price, size, and side to see your profit or loss in both absolute and percentage terms.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered
current_pricenumberYesLatest market price
sizenumberYesPosition size in base currency

Outputs

NameTypeDescription
pnlnumberUnrealized P&L in quote currency
pnl_percentnumberUnrealized P&L as a percentage of entry
is_profitablebooleanTrue if the position is in profit

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)

Max Drawdown

stateful

Track peak equity and drawdown

Tracks your highest equity point and measures the decline from it. Use max_drawdown_percent as a Kill Switch input to stop trading when losses from the peak exceed your tolerance.

Inputs

NameTypeRequiredDescription
equitynumberYesCurrent equity/portfolio value

Outputs

NameTypeDescription
drawdownnumberCurrent drawdown from peak in absolute terms
drawdown_percentnumberCurrent drawdown as a percentage
max_drawdownnumberLargest drawdown recorded (absolute)
max_drawdown_percentnumberLargest drawdown recorded (percentage)
peaknumberHighest equity value observed

Position Limit

stateful

Cap concurrent open positions

Limits the number of positions you can have open at once. Use this to prevent over-exposure — connect the 'allowed' output to a Signal Gate before your Place Order node.

Inputs

NameTypeRequiredDescription
want_openbooleanYesTrue when a new position is requested
position_closedbooleanNoPulse true when a position closes

Outputs

NameTypeDescription
allowedbooleanTrue if another position can be opened
current_countnumberNumber of currently open positions
remainingnumberHow many more positions can be opened

Parameters

NameTypeDefaultRangeDescription
max_positionsnumber31 – 50Maximum concurrent open positions

Daily Loss Limit

stateful

Track daily PnL, reset by UTC hour

Tracks cumulative PnL for the day and blocks trading when the daily loss limit is hit. Resets at a configurable UTC hour. Essential for preventing tilt-driven losses.

Inputs

NameTypeRequiredDescription
pnlnumberYesPnL value from a closed or current trade

Outputs

NameTypeDescription
exceededbooleanTrue when daily loss exceeds the limit
daily_pnlnumberCumulative PnL for the current day
remainingnumberHow much more can be lost before limit

Parameters

NameTypeDefaultRangeDescription
max_daily_lossnumber100-Max daily loss in quote currency
reset_hour_utcnumber0-UTC hour at which the daily counter resets

Correlation Filter

Prevent correlated positions

Blocks new positions when correlation with existing positions exceeds a threshold. Prevents doubling up on correlated bets that would amplify losses during adverse moves.

Inputs

NameTypeRequiredDescription
correlationnumberYesCorrelation coefficient between positions

Outputs

NameTypeDescription
allowedbooleanTrue if correlation is below threshold
correlationnumberPass-through of input correlation value
is_correlatedbooleanTrue if positions are too correlated

Parameters

NameTypeDefaultRangeDescription
max_correlationnumber0.70 – 1Maximum allowed correlation (0-1)

Stop Loss (Multi)

Enhanced stop loss with 3 modes

A flexible stop loss supporting percentage, fixed distance, or ATR-based modes. Choose the mode that fits your strategy — percentage for simplicity, ATR for volatility-adaptive stops.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered
atrnumberNoCurrent ATR value (required for 'atr' mode)

Outputs

NameTypeDescription
stop_pricenumberComputed stop loss price
stop_distancenumberAbsolute distance from entry to stop
stop_percentnumberStop distance as a % of entry price

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
modeselectpercentpercent | fixed | atrStop loss calculation method
stop_percentnumber0.020.001 – 0.5Stop distance fraction (for 'percent' mode)
fixed_distancenumber0-Absolute price distance (for 'fixed' mode)
atr_multipliernumber20.5 – 10ATR multiplier (for 'atr' mode)

Take Profit (Multi)

Enhanced take profit with partial support

Sets take-profit levels based on risk:reward ratio with optional partial exit. Take partial profits at a closer level and let the rest run for maximum gain.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesPrice at which the position was entered
stop_pricenumberNoStop loss price for R:R calculation

Outputs

NameTypeDescription
tp_pricenumberPrimary take profit price
tp_distancenumberAbsolute distance from entry to TP
partial_tp_pricenumberPrice level for partial profit taking

Parameters

NameTypeDefaultRangeDescription
sideselectbuybuy | sellPosition side: buy (long) or sell (short)
risk_rewardnumber20.5 – 10Target risk:reward ratio for primary TP
partial_percentnumber0.50 – 1Fraction of position to close at partial TP
partial_rrnumber10.5 – 5Risk:reward ratio for partial TP level

Time Filter

Only allow signals during user-defined time windows

Filters signals based on time-of-day and day-of-week. Pass a signal through the input — it only passes through when the current time is within the allowed window. Use this to avoid low-liquidity hours or restrict to specific trading sessions.

Inputs

NameTypeRequiredDescription
signalbooleanYesIncoming signal to filter

Outputs

NameTypeDescription
signalbooleanSignal passed through (true only if within time window)
is_activebooleanTrue when current time is within the allowed window

Parameters

NameTypeDefaultRangeDescription
start_hournumber00 – 23Start hour (UTC, 0-23)
end_hournumber230 – 23End hour (UTC, 0-23)
daysstringmon,tue,wed,thu,fri-Comma-separated allowed days (mon,tue,wed,thu,fri,sat,sun)

Cooldown Timer

stateful

Enforce a waiting period between trades

Blocks signals for a configurable duration after each trade. Connect the trade trigger to 'trigger_in' — it passes through only if enough time has elapsed since the last trigger. Resets the cooldown timer each time a signal passes.

Inputs

NameTypeRequiredDescription
trigger_inbooleanYesIncoming trade signal to gate

Outputs

NameTypeDescription
trigger_outbooleanSignal passed through (true only if cooldown has elapsed)
is_coolingbooleanTrue when in cooldown period
remaining_msnumberMilliseconds remaining in cooldown (0 if not cooling)

Parameters

NameTypeDefaultRangeDescription
cooldown_minutesnumber151 – 1440Cooldown duration in minutes

Rate Limiter

stateful

Throttle exchange API calls to user-defined rate limits

Controls how many API calls your flow makes per second to an exchange. You set the maximum request rate and order rate to stay within your exchange's documented limits. Requests that exceed the limit are queued and delayed. This is your responsibility to configure — the platform does not enforce limits automatically.

Inputs

NameTypeRequiredDescription
signalanyYesPass-through signal (connects before exchange calls)

Outputs

NameTypeDescription
signalanyPass-through (delayed if rate limit reached)
queue_depthnumberCurrent number of queued requests
throttledbooleanTrue if the signal was delayed by rate limiting
available_tokensnumberRemaining request tokens in the bucket

Parameters

NameTypeDefaultRangeDescription
exchangeselectbinancebinance | okx | bybit | coinbase | kraken | mexcExchange to rate limit
max_requests_per_secnumber10-Maximum REST API requests per second
max_orders_per_secnumber5-Maximum order placements per second
queue_timeout_msnumber30000-Max time (ms) to wait in queue before failing
limiter_typeselectrestrest | ordersWhich limit bucket to use for this node

Position Sizing(9)

Position Size

Calculate position size: Risk$ / StopDist

Determines how much to buy or sell based on your account balance, risk percentage, and stop loss distance. Ensures you never risk more than your set percentage on any single trade.

Inputs

NameTypeRequiredDescription
balancenumberYesAvailable account balance in quote currency
entry_pricenumberYesIntended entry price
stop_pricenumberYesStop loss price (determines risk per unit)

Outputs

NameTypeDescription
sizenumberCalculated position size in base currency
notionalnumberTotal position value in quote currency
risk_amountnumberDollar amount at risk on this trade
leverage_usednumberEffective leverage (notional / balance)

Parameters

NameTypeDefaultRangeDescription
risk_percentnumber0.010.001 – 0.1Fraction of balance to risk per trade (0.01 = 1%)
max_leveragenumber11 – 125Maximum allowed leverage
max_position_percentnumber10.1 – 1Max fraction of balance for position notional
min_notionalnumber5-Minimum order value in quote currency (e.g. 5 USDT). Orders below this output size=0.

Risk Amount

Calculate risk amount: Risk$ = Balance x Risk%

Calculates the dollar amount you're willing to risk on a trade. Simply multiplies your balance by your risk percentage. Connect this to Position Size for complete sizing.

Inputs

NameTypeRequiredDescription
balancenumberYesAvailable account balance in quote currency

Outputs

NameTypeDescription
risk_amountnumberDollar amount to risk (balance x risk_percent)

Parameters

NameTypeDefaultRangeDescription
risk_percentnumber0.010.001 – 0.1Fraction of balance to risk (0.01 = 1%)

Stop Distance

Calculate stop distance: |Entry - Stop|

Calculates the absolute and percentage distance between entry and stop prices. A building block for position sizing — feed this into Position Size to compute your trade size.

Inputs

NameTypeRequiredDescription
entry_pricenumberYesIntended entry price
stop_pricenumberYesStop loss price

Outputs

NameTypeDescription
distancenumberAbsolute price distance between entry and stop
distance_percentnumberDistance as a percentage of entry price

Step Size Round

Round size DOWN to exchange step size

Rounds your position size down to the exchange's minimum step size. Without this, orders may be rejected for invalid quantity precision. Always place this before Place Order.

Inputs

NameTypeRequiredDescription
sizenumberYesRaw position size to round

Outputs

NameTypeDescription
rounded_sizenumberSize rounded down to nearest step

Parameters

NameTypeDefaultRangeDescription
step_sizenumber0.00001-Exchange minimum quantity increment

Tick Size Round

Round price to exchange tick size

Rounds your limit price to the exchange's tick size. Rounds in the 'safe' direction — stop losses round worse, take profits round better — to avoid premature triggers.

Inputs

NameTypeRequiredDescription
pricenumberYesRaw price to round

Outputs

NameTypeDescription
rounded_pricenumberPrice rounded to nearest valid tick

Parameters

NameTypeDefaultRangeDescription
tick_sizenumber0.01-Exchange minimum price increment
sideselectlonglong | shortPosition side (affects rounding direction)
order_typeselectstop_lossstop_loss | take_profitOrder type (stop rounds worse, TP rounds better)

Margin Calculator

Calculate required margin for futures

Computes how much margin you need to open a futures position. Shows both initial margin (to open) and maintenance margin (to keep open). Helps prevent liquidation by ensuring adequate margin.

Inputs

NameTypeRequiredDescription
sizenumberYesPosition size in base currency
pricenumberYesEntry price per unit

Outputs

NameTypeDescription
initial_marginnumberMargin required to open the position
maintenance_marginnumberMinimum margin to keep position open

Parameters

NameTypeDefaultRangeDescription
initial_margin_ratenumber0.1-Initial margin rate (0.1 = 10x max leverage)
maintenance_margin_ratenumber0.05-Maintenance margin rate as a fraction

Regime Size Blender

Blend position size based on regime probabilities

Adjusts your position size based on active market regimes. Reduces size in dangerous regimes (liquidation cascade, flash crash) and increases in favorable ones (trend expansion). Connect regime probabilities from Regime Detector.

Inputs

NameTypeRequiredDescription
base_sizenumberYesPosition size before regime adjustment
probabilitiesprobabilitiesYesRegime probability distribution

Outputs

NameTypeDescription
adjusted_sizenumberPosition size after regime-based scaling
multipliernumberSize multiplier applied (e.g. 0.5 = halved)

Parameters

NameTypeDefaultRangeDescription
probability_thresholdnumber0.1-Min regime probability to include in blending

Kelly Criterion

Kelly criterion position sizing

Calculates the mathematically optimal bet size based on your win rate and average win/loss ratio. Half-Kelly (the recommended output) is commonly used to reduce variance while maintaining good growth.

Inputs

NameTypeRequiredDescription
win_ratenumberYesHistorical win rate as a fraction (0.55 = 55%)
avg_winnumberYesAverage profit on winning trades
avg_lossnumberYesAverage loss on losing trades (positive number)

Outputs

NameTypeDescription
kelly_fractionnumberFull Kelly optimal bet fraction
half_kellynumberHalf Kelly (recommended for lower variance)
recommended_risk_percentnumberSuggested risk percent (capped)

Parameters

NameTypeDefaultRangeDescription
max_fractionnumber0.250.01 – 1Upper cap to prevent over-betting

Volatility Sizing

Scale position size by current volatility (ATR)

Takes ATR and account balance as inputs, outputs a position size that keeps risk constant. When volatility is high, position size decreases. When volatility is low, position size increases. The target_risk_pct param controls how much of your balance to risk per trade.

Inputs

NameTypeRequiredDescription
atrnumberYesCurrent ATR value from the ATR node
pricenumberYesCurrent asset price
balancenumberYesAccount balance from Account Info

Outputs

NameTypeDescription
sizenumberCalculated position size (in base currency units)
risk_amountnumberDollar amount at risk
atr_multiplenumberHow many ATRs the stop distance represents

Parameters

NameTypeDefaultRangeDescription
target_risk_pctnumber10.1 – 10Percentage of balance to risk per trade
atr_multipliernumber20.5 – 10Stop distance as multiple of ATR

Order Execution(7)

Place Order

stateful

Submit order to exchange

Sends a buy or sell order to the exchange. Choose market orders for immediate execution or limit orders to set your price. Connect size from Position Size and conditions from your logic nodes.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for order submission
sizenumberYesOrder quantity in base currency
pricenumberNoLimit price (ignored for market orders)

Outputs

NameTypeDescription
order_idstringExchange-assigned order identifier
statusstringOrder status: filled, open, rejected
filled_sizenumberQuantity that has been filled
avg_pricenumberVolume-weighted average fill price

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Trading pair symbol (e.g. BTC/USDT)
sideselectbuybuy | sellOrder direction: buy or sell
order_typeselectmarketmarket | limitMarket (instant) or limit (at price)
one_at_a_timebooleantrue-Skip if already in a position (prevents stacking orders every tick)

Close Position

Close entire position

Closes your entire open position for a symbol at market price. Use this for exit signals, stop loss triggers, or as part of a Kill Switch to flatten all exposure immediately.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection for order submission
triggerbooleanNoWhen connected, only closes when true. When not connected, closes every tick.

Outputs

NameTypeDescription
closedbooleanTrue if position was successfully closed
order_idstringExchange-assigned order identifier
avg_pricenumberAverage close price

Parameters

NameTypeDefaultRangeDescription
symbolstringBTC/USDT-Trading pair to close position for

Cancel Order

Cancel pending order

Cancels an open limit order by its order ID. Use this to cancel unfilled orders when market conditions change or when your strategy decides to exit a pending position.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection
order_idstringYesID of the order to cancel

Outputs

NameTypeDescription
cancelledbooleanTrue if successfully cancelled
statusstringUpdated order status after attempt

Order Status

Check order status

Checks the current status of a placed order — whether it's open, filled, partially filled, or cancelled. Use this to track order execution and trigger follow-up actions.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesActive exchange connection
order_idstringYesID of the order to check

Outputs

NameTypeDescription
statusstringCurrent status: open, filled, partial, cancelled
filled_sizenumberQuantity filled so far
remaining_sizenumberQuantity still unfilled
avg_pricenumberVolume-weighted average fill price

TWAP Order

stateful

Split order into time-weighted chunks

Takes a total order size and splits it into equal slices executed at regular intervals over a time window. For example, buying 1 BTC over 10 minutes in 10 slices = 0.1 BTC every minute. Reduces market impact for larger orders.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesExchange connection
sizenumberYesTotal order size to execute
triggerbooleanNoSignal to start TWAP execution

Outputs

NameTypeDescription
is_activebooleanTrue while TWAP is executing slices
filled_sizenumberTotal size filled so far
avg_pricenumberVolume-weighted average fill price
slices_donenumberNumber of slices completed
is_completebooleanTrue when all slices are filled

Parameters

NameTypeDefaultRangeDescription
symbolstring-Trading pair (e.g., BTC/USDT)
sideselectbuybuy | sellOrder side
num_slicesnumber102 – 100Number of slices to split the order into
duration_minutesnumber101 – 1440Total duration over which to execute all slices

Slippage Estimator

Estimate fill price from order book depth

Simulates walking the order book for a given order size to estimate the actual fill price. Outputs expected slippage as both a dollar amount and a percentage. Use this to skip trades when slippage would be too high.

Inputs

NameTypeRequiredDescription
exchangeexchangeYesExchange connection
sizenumberYesOrder size to estimate slippage for

Outputs

NameTypeDescription
estimated_pricenumberExpected volume-weighted average fill price
slippage_pctnumberExpected slippage as percentage of mid-price
slippage_amountnumberAbsolute slippage in quote currency
is_acceptablebooleanTrue if slippage is within max_slippage_pct

Parameters

NameTypeDefaultRangeDescription
symbolstring-Trading pair (e.g., BTC/USDT)
sideselectbuybuy | sellWhich side to estimate (buy walks asks, sell walks bids)
max_slippage_pctnumber0.50.01 – 5Maximum acceptable slippage percentage

Smart Order Router

Route orders to exchange with best price

Fetches the current price from all connected exchanges and selects the one with the best price for your order side (lowest ask for buys, highest bid for sells). Only uses exchanges where the user has connected API keys.

Inputs

NameTypeRequiredDescription
sizenumberYesOrder size to route
triggerbooleanNoSignal to trigger routing

Outputs

NameTypeDescription
best_exchangestringName of the exchange with the best price
best_pricenumberBest available price found
price_diff_pctnumberPrice difference between best and worst venue (%)

Parameters

NameTypeDefaultRangeDescription
symbolstring-Trading pair to compare across exchanges
sideselectbuybuy | sellOrder side (determines best price logic)
exchangesstringbinance,okx,bybit-Comma-separated exchange IDs to compare

Flow Control(4)

Delay

Wait before continuing

Pauses the flow for a set duration before passing the signal along. Useful for rate-limiting API calls, waiting between order steps, or adding cooldown periods between trades.

Inputs

NameTypeRequiredDescription
triggeranyYesSignal to delay before forwarding

Outputs

NameTypeDescription
triggeranyThe same signal, emitted after the delay

Parameters

NameTypeDefaultRangeDescription
delay_msnumber1000100 – 60000Delay duration in milliseconds

If/Else

Conditional branch

Routes your flow into two paths based on a true/false condition. The value passes to the 'true' branch when the condition is met, or the 'false' branch otherwise — like an if/else in code.

Inputs

NameTypeRequiredDescription
conditionbooleanYesBoolean that determines which branch
valueanyYesData to route to one of the branches

Outputs

NameTypeDescription
true_branchanyReceives value when condition is true
false_branchanyReceives value when condition is false

Split

Split flow into multiple branches

Duplicates the input signal to three output branches. Use this to run the same data through multiple independent processing paths — like sending price data to different indicator chains simultaneously.

Inputs

NameTypeRequiredDescription
inputanyYesSignal or data to duplicate to all branches

Outputs

NameTypeDescription
branch_1anyFirst copy of the input
branch_2anySecond copy of the input
branch_3anyThird copy of the input

Merge

Merge multiple branches

Combines multiple flow branches back into one. In 'any' mode, the first available value passes through. In 'all' mode, all branches must have values. Use after a Split to recombine paths.

Inputs

NameTypeRequiredDescription
branch_1anyNoFirst branch input
branch_2anyNoSecond branch input
branch_3anyNoThird branch input

Outputs

NameTypeDescription
outputanyMerged result from the branches

Parameters

NameTypeDefaultRangeDescription
modeselectanyany | all'any' passes first available, 'all' waits for all

Alerts & Logging(8)

Logger

Log data for debugging

Writes values to the log so you can inspect what's happening inside your flow. Add it anywhere to debug — check indicator values, see what conditions are firing, or trace signal flow.

Inputs

NameTypeRequiredDescription
dataanyYesAny value to log for inspection

Parameters

NameTypeDefaultRangeDescription
levelselectinfodebug | info | warn | errorLog severity level
labelstring-Optional label prefix for the log entry

Alert

Send alert notification

Sends you a notification when a condition triggers. Choose from app notifications, email, Telegram, Slack, or webhooks. Use it to stay informed about trade entries, exits, or risk events.

Inputs

NameTypeRequiredDescription
triggerbooleanYesBoolean that triggers the alert when true
messagestringNoCustom message (overrides default)

Outputs

NameTypeDescription
sentbooleanTrue if the alert was dispatched

Parameters

NameTypeDefaultRangeDescription
channelselectappapp | email | telegram | slack | webhookNotification delivery channel
default_messagestringAlert triggered-Message when no custom message connected

Metrics

Emit metrics for monitoring

Records a numeric metric with optional tags for monitoring dashboards. Use it to track custom KPIs like win rate, average PnL, or regime transitions over time.

Inputs

NameTypeRequiredDescription
valuenumberYesNumeric metric value to record

Parameters

NameTypeDefaultRangeDescription
metric_namestringcustom_metric-Name/key for the metric in dashboards
tagsstring-Comma-separated key:value tags for grouping

Telegram Alert

Send notifications to user's Telegram bot

Sends a message to the user's own Telegram bot. First, create a bot via @BotFather, get the bot token, and find your chat ID by messaging @userinfobot. The message template supports variables: {symbol}, {side}, {price}, {size}, {pnl}.

Inputs

NameTypeRequiredDescription
triggerbooleanYesSend when true
pricenumberNoPrice to include in message
sizenumberNoSize to include in message
pnlnumberNoP&L to include in message

Outputs

NameTypeDescription
sentbooleanTrue if message was sent successfully

Parameters

NameTypeDefaultRangeDescription
bot_tokenstring-Telegram bot token from @BotFather
chat_idstring-Telegram chat ID to send to
message_templatestringTrade Alert: {side} {symbol} @ {price}-Message template with {symbol}, {side}, {price}, {size}, {pnl} variables

Discord Webhook

Post to user's Discord channel via webhook

Sends an embed message to a Discord channel via webhook URL. To get a webhook URL: Server Settings → Integrations → Webhooks → New Webhook. The embed includes trade details with color-coded P&L.

Inputs

NameTypeRequiredDescription
triggerbooleanYesSend when true
pricenumberNoPrice for embed
sizenumberNoSize for embed
pnlnumberNoP&L for embed

Outputs

NameTypeDescription
sentbooleanTrue if webhook post succeeded

Parameters

NameTypeDefaultRangeDescription
webhook_urlstring-Discord webhook URL
titlestringTrade Alert-Embed title
symbolstring-Symbol to display in embed

Email Alert

Send email via user's SMTP/API

Sends email notifications using the user's own email service. Supports SendGrid API keys. Useful for trade alerts, daily summaries, or error notifications.

Inputs

NameTypeRequiredDescription
triggerbooleanYesSend when true
pricenumberNoPrice for email body
sizenumberNoSize for email body
pnlnumberNoP&L for email body

Outputs

NameTypeDescription
sentbooleanTrue if email was sent

Parameters

NameTypeDefaultRangeDescription
api_keystring-SendGrid API key
from_emailstring-Sender email address
to_emailstring-Recipient email address
subjectstringTrade Alert-Email subject line

Trade Journal

stateful

Auto-log trades with full details

Automatically records every trade entry and exit with full details: timestamp, symbol, side, entry price, exit price, P&L, and duration. All entries are saved and can be exported as CSV.

Inputs

NameTypeRequiredDescription
triggerbooleanYesLog when true (connect to order fill events)
entry_pricenumberNoTrade entry price
exit_pricenumberNoTrade exit price (for closing trades)
sizenumberNoTrade size
pnlnumberNoRealized P&L

Outputs

NameTypeDescription
loggedbooleanTrue if entry was logged successfully
trade_countnumberTotal number of trades logged in this session

Parameters

NameTypeDefaultRangeDescription
symbolstring-Trading pair
sideselectbuybuy | sellTrade side
notestring-Optional note/tag for this trade (e.g., 'RSI reversal')

Performance Tracker

stateful

Track win rate, Sharpe ratio, and P&L in real time

Aggregates trade results to compute real-time performance metrics: total P&L, win rate, average win/loss, Sharpe ratio, and profit factor. Connect trade P&L values as they close to keep a running scorecard of your strategy.

Inputs

NameTypeRequiredDescription
trade_pnlnumberYesP&L of the latest closed trade
triggerbooleanYesTrue when a trade has just closed

Outputs

NameTypeDescription
total_pnlnumberCumulative P&L across all trades
win_ratenumberPercentage of winning trades (0-100)
sharpenumberAnnualised Sharpe ratio of trade returns
profit_factornumberGross profit / gross loss
avg_winnumberAverage winning trade amount
avg_lossnumberAverage losing trade amount
trade_countnumberTotal number of trades tracked

Parameters

NameTypeDefaultRangeDescription
risk_free_ratenumber00 – 20Annual risk-free rate (%) for Sharpe calculation

Time & Sessions(3)

Trading Session

Check current trading session

Identifies which major trading session is active (Asia, Europe, US) based on UTC time. Different sessions have different volatility and volume profiles — use this to adjust your strategy accordingly.

Outputs

NameTypeDescription
sessionstringName of the active trading session
is_asiabooleanTrue during Asia hours (00:00-08:00 UTC)
is_europebooleanTrue during Europe hours (07:00-16:00 UTC)
is_usbooleanTrue during US hours (13:00-21:00 UTC)

Time Window

Check if within time window

Outputs true only during specified hours and days. Use this to restrict trading to specific times — for example, only trade during the US session on weekdays when liquidity is highest.

Outputs

NameTypeDescription
in_windowbooleanTrue if current time is within the window

Parameters

NameTypeDefaultRangeDescription
start_hour_utcnumber90 – 23Window start hour in UTC
end_hour_utcnumber170 – 23Window end hour in UTC
daysstringmon,tue,wed,thu,fri-Active days (e.g. mon,tue,wed,thu,fri)

Is Weekend

Check if current time is weekend

Outputs true on Saturday and Sunday (UTC). Crypto markets trade 24/7 but weekends typically have lower liquidity and higher manipulation risk. Use this to reduce size or skip trades on weekends.

Outputs

NameTypeDescription
is_weekendbooleanTrue on Saturday and Sunday (UTC)