A cross-order strategy lets you trigger signals from one market while placing orders on another. On dogabot, the strategy’s main exchange and symbol define where orders execute; each rule can optionally read candles from a different data symbol, data timeframe, or data source / exchange.
Signal market vs execution market
| Setting | Scope | Purpose |
|---|---|---|
| Strategy exchange, symbol, timeframe | Whole automation / backtest | Where orders are sent and where current price comes from |
| Rule Data symbol, Data timeframe, Data source / exchange | That rule only | Candle data for indicator evaluation |
When a rule’s data fields are left at Strategy default, it uses the same candles as the execution pair. Override them when you want that rule to watch a different symbol or exchange.
Orders always use the strategy symbol and exchange — even if entry rules read BTC candles to decide when to buy ETH.
When to use it
- Lead/lag pairs — e.g. signal on BTC, trade an alt that follows BTC
- Macro + local — e.g. GOLD or index token as filter, trade a perp on your main exchange
- Cross-exchange context — read spot or another venue for context; execute on USDM futures
- Same rule, two feeds — add two instances of a rule (e.g. two Price Distance rules) with different data symbols and require all agree
How to set it up
Works in Backtest and Create automation (All-in-One strategy rules UI).
Step 1: Choose the execution pair
Set the top-level exchange, symbol, and timeframe to the market you want to trade. This is the pair dogabot monitors for fills, stop loss, take profit, and position size.
Step 2: Add and enable a rule
In Entry, Increase, Reversal, or Exit (directional rules only), enable a rule such as MA Crossover, RSI, or Price Distance.
Step 3: Override per-rule data
Below the rule toggles, open the optional data row:
| UI field | Maps to | Example |
|---|---|---|
| Data symbol (optional) | symbol | BTCUSDT while strategy trades ETHUSDT |
| Data timeframe (optional) | timeframe | 1h signals on a 15m execution chart |
| Data source / exchange (optional) | dataSource | binance_spot candles, binance_usdm execution |
Leave any field on Strategy default to inherit the strategy value.
Step 4: Backtest, then go live
Run a backtest to confirm timing and fills on the execution symbol. When results look right, create an automation with the same parameters.
What stays on the strategy pair
These always use the execution symbol and its candles — you cannot assign a separate data source per rule:
- Stop Loss, Take Profit, Day Trade Close
- Order price and quantity at execution time
- Volume filters and other strategy filters that gate signals (they use the primary market’s context)
Plan exits and filters around the symbol you actually trade.
Example
Goal: Buy ETH/USDT on Binance USDM when BTC/USDT has a bullish MA crossover on the 1h chart.
| Level | Exchange | Symbol | Timeframe |
|---|---|---|---|
| Strategy (execution) | binance_usdm | ETHUSDT | 15m |
| Entry rule — crossover (data) | Strategy default | BTCUSDT | 1h |
- Set strategy to
binance_usdm/ETHUSDT/15m. - Enable crossover in Entry (e.g. short MA 5, long MA 20).
- Set Data symbol to
BTCUSDTand Data timeframe to1h. - Add Exit rules: Stop loss 5%, Take profit 10% — these apply to the ETH position.
When BTC’s 1h crossover fires buy, dogabot opens long ETH at the current ETH price.
Tips
- Align data timeframe with the horizon you care about; execution timeframe controls how often the engine checks rules.
- Correlation between signal and execution pairs can break — backtest across regimes before sizing up.
- Live runs fetch extra candle series per distinct
(dataSource, symbol, timeframe); keep overrides minimal for clarity. - For two signal feeds on one execution pair, duplicate a rule (add another instance) with different data settings and use all agree in that section.
Related reading
- Strategy rules overview — sections, combination modes, per-rule options
- Strategy filters — gates applied after rules agree
- How to read backtest results