Nado Dual-Currency Rate Grid
Dual-currency (e.g. ETH/BTC) rate grid trading on Nado with Notion record sync
NadoTradingGridRateNotionLongShort
Nado Dual-Currency Rate Grid
Who is this for?
This workflow is for traders who want to run a rate-based grid strategy on Nado using two assets (e.g. ETH and BTC). It suits users who want to trade the exchange rate between the two (e.g. ETH/BTC) in a grid style, with positions and take-profits tracked in a Notion database.
What problem is this workflow solving? / Use case
- Automate grid trading on the rate between two assets (e.g. ETH/BTC), not a single spot pair.
- Keep a clear record of every open and closed position in Notion.
- Support both long (buy asset A, sell asset B) and short (sell asset A, buy asset B) with automatic take-profit and grid spacing.
What this workflow does
After you submit the configuration, the workflow runs automatically every 2 minutes and keeps running until you stop it.
Startup
- It loads existing records from a Notion database (one database per pair, e.g. ETH-BTC). All open and closed grid positions for that pair are stored there and synced to local state.
Each run
-
Prices and rate
It fetches the current prices for both assets (e.g. ETH/USDT and BTC/USDT) and computes the current rate (e.g. ETH/BTC = price of ETH ÷ price of BTC).
-
Take-profit
For every open position in the same pair (any direction) that has reached its target rate:
- Long: closes when the current rate is at or above the position’s target take-profit rate.
- Short: closes when the current rate is at or below the position’s target take-profit rate.
It closes by placing two market orders (one per leg). After closing, it updates the record to “closed” in memory and in Notion.
If it closed at least one position that matches the current config direction and pair in this run, it will not open a new position in the same run (waits for the next run).
-
Grid: should we open a new position?
It only considers opening a new position for the current config direction and pair:
- If there are no open positions for that direction and pair, it will open one (subject to the minimum order interval below).
- If there are open positions, it picks a “reference” position (by entry rate: highest for long, lowest for short). It opens a new position only if:
- The current rate has moved by at least grid spacing plus take-profit spacing from that reference position's target take-profit rate (not from its entry rate). Long: current rate must be at or below the threshold (rate fell enough from the reference's TP target). Short: current rate must be at or above the threshold (rate rose enough from the reference's TP target).
- The time since that reference position was opened is at least the minimum order interval (minutes) you configured.
If the reference position was opened too recently, it skips opening and tries again next run.
-
Opening a new position
It places two market orders (one for each asset) with sizes from your Amount A and Amount B (quantities in each asset). It then waits for both orders to fill, reads the fill prices and amounts, computes the entry rate and the take-profit rate (using your take-profit spacing), creates a new record, saves it in memory, and creates the corresponding row in Notion.
Notion
- Each position is stored as a row with: time (UTC), pair, direction (long/short), entry rate, target take-profit rate, amounts for both assets, status (open/closed), and order id(s). The workflow uses this both as a log and as the source of truth for “what is open” and “when was the last order.”
When it runs / stops
- Runs: Every 2 minutes after you submit the config, then repeatedly.
- Stops: Only when the workflow engine is restarted or the workflow is disabled, removed, or redeployed.
Setup
-
Nado credentials
In the config node, connect your Nado account (account address, sub-account name, signer key).
-
Notion
Add your Notion API key in the config node. The workflow uses a separate Notion database per pair, with a name like Nado-Rate-Grid-Records-ETH-BTC. Create a database in Notion with that name (or the one matching your Asset A and Asset B), and add properties that match what the workflow writes (e.g. time_utc, pair, direction, entry_rate, target_take_profit_rate, amount_A, amount_B, status, order_id). You can create the first record manually or let the workflow create it when it places the first order.
-
Trading parameters
- Asset A / Asset B: The two assets for the rate (e.g. ETH and BTC). The rate is Asset A price ÷ Asset B price.
- Direction: Long = buy Asset A, sell Asset B (profit when rate goes up). Short = sell Asset A, buy Asset B (profit when rate goes down).
- Grid spacing (%): Used together with take-profit spacing to decide when to open the next grid level. The next order is allowed when the current rate has moved by at least grid spacing plus take-profit spacing from the reference position’s target take-profit rate (e.g. 0.5 means 0.5%).
- Take profit spacing (%): How far the rate must move from entry before the position is closed (e.g. 0.3 for 0.3%).
- Amount A / Amount B: Quantity of Asset A and Asset B per new grid order (e.g. 0.01 ETH and 0.0005 BTC). Both must be greater than zero.
- Min order interval (minutes): Minimum minutes between opening new positions for the same direction and pair (compared to the reference position’s time). Helps avoid opening too frequently.
Key features
- Grid on rate (e.g. ETH/BTC), not a single symbol.
- Long and short with correct take-profit conditions and closing orders.
- All positions stored and synced in Notion (open and closed).
- After closing a position for the current config (same direction and pair), the workflow skips opening in that same run and waits for the next run.
- Grid distance for the next order is measured from the reference position's target take-profit rate (not entry rate), so the next level opens only after the rate has moved enough from where the previous position would take profit.
- Minimum order interval so new orders are not placed too close in time to the reference position.
Nodes in Use
- User configuration: Collects asset pair, direction, grid and take-profit settings, interval, amount, Nado credentials, and Notion API key.
- Nado:
- Read the current order book and prices
- Place market orders to open or adjust grid positions
- Notion:
- Load and sync grid records (open and closed positions) for the pair from a Notion database
- Update records when positions change
Reference
- Nado exchange and API.
- Notion databases and API for storing grid records.