🔄 Automating Infinity Algo Alerts via 3Commas
Guide for non-backtest version
Connect Infinity Algo signals directly to 3Commas for automated trading execution.
🎯 Three Integration Methods
Automatic Position Flipping
What it does:
Switches Long ↔ Short automatically
One bot handles both directions
Closes opposite position before opening new
Best for:
✅ Trending markets
✅ Active trading
✅ Maximum efficiency
✅ Less alert management
Direction: Reversal (both)
Pairs: Single or Multi-pair (up to 200)
Alerts: 2 total
- Buy Signal → enter_long
- Sell Signal → enter_shortFor simplicity, we recommend one pair per bot for reversal workflows.
Exit Without Disabling Bot
What it does:
Closes position cleanly
Bot stays active for next signal
No manual re-enabling needed
Best for:
✅ Continuous trading
✅ Quick re-entry
✅ Automated workflow
✅ Active strategies
Direction: Long or Short
Alerts: 3 total
- Entry: enter_long/enter_short
- Exit: exit_long/exit_short
- Re-entry: enter_long/enter_shortPro Tip: Exit signals use market execution only - limit orders on exits will be rejected
Disable Bot & Close All
What it does:
Closes all positions at market
Disables bot completely
Requires manual re-enable
Best for:
✅ Emergency stops
✅ End of session
✅ Risk events
✅ Manual intervention
Action: disable
Sub-action: market_close
Note: Bot must be manually re-enabledWarning: Bot will NOT auto-restart on next signal - you must manually enable it again
⚙️ Step 1: Configure Signal Bot
Navigate to 3Commas:
Log in → 3Commas.io
Bots → Signal Bot → Create Bot
Configure with these settings:
Name
e.g. Infinity Algo BTC
Exchange
Select your exchange
Pairs
Single or Multi (up to 200)
Alert Type
Custom Signal
Direction
Long / Short / Reversal (both)
TP/SL
Set here or via webhook
Risk Caps
Max Investment, Leverage
For multi-pair bots, also set Max active SmartTrades.
📩 Step 2: Get Webhook Credentials
After saving your bot, find "Message for deal start signal" and copy:
{
"secret": "ab12cd34.ef56gh78…", // Keep this private!
"bot_uuid": "f1a2b3c4-…-9d0e1f2a", // Your bot's ID
"action": "enter_long",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}"
}Security: Never share your secret token - it controls your bot! Signal Bots no longer accept old bot_id/email_token pairs.
📊 Step 3: Create TradingView Alerts
Alert Configuration
Condition
Match your Infinity Algo signal exactly
Options
✅ Once Per Bar Close (not "Once Per Bar")
Webhook URL
https://api.3commas.io/signal_bots/webhooks
Message
JSON template with YOUR-SECRET & YOUR-UUID
📝 JSON Templates
Required Fields: All signals must include secret, bot_uuid, action, tv_exchange, and tv_instrument
{
"secret": "YOUR-SECRET",
"bot_uuid": "YOUR-UUID",
"action": "enter_long",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"order": {
"amount": 150,
"currency_type": "quote",
"order_type": "market"
},
"take_profit": {
"enabled": true,
"steps": [
{ "order_type": "limit", "price_percent": 1, "volume_percent": 25 },
{ "order_type": "limit", "price_percent": 2, "volume_percent": 25 },
{ "order_type": "limit", "price_percent": 3, "volume_percent": 25 },
{ "order_type": "market", "price_percent": 4, "volume_percent": 25 }
]
},
"stop_loss": {
"enabled": true,
"order_type": "market",
"trigger_price_percent": 1
},
"max_lag": 300,
"timestamp": "{{timenow}}"
}Note: For limit entry, add "price" or "price_percent" with optional "price_percent_ref_type"
{
"secret": "YOUR-SECRET",
"bot_uuid": "YOUR-UUID",
"action": "enter_short",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"order": {
"amount": 150,
"currency_type": "quote",
"order_type": "market"
},
"take_profit": {
"enabled": true,
"steps": [
{ "order_type": "limit", "price_percent": 1, "volume_percent": 25 },
{ "order_type": "limit", "price_percent": 2, "volume_percent": 25 },
{ "order_type": "limit", "price_percent": 3, "volume_percent": 25 },
{ "order_type": "market", "price_percent": 4, "volume_percent": 25 }
]
},
"stop_loss": {
"enabled": true,
"order_type": "market",
"trigger_price_percent": 1
},
"max_lag": 300,
"timestamp": "{{timenow}}"
}{
"secret": "YOUR-SECRET",
"bot_uuid": "YOUR-UUID",
"action": "exit_long",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"order": {
"amount": 100,
"currency_type": "position_percent"
},
"max_lag": 300,
"timestamp": "{{timenow}}"
}Note: Exit orders are market-only - don't add "order_type": "limit"
{
"secret": "YOUR-SECRET",
"bot_uuid": "YOUR-UUID",
"action": "exit_short",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"order": {
"amount": 100,
"currency_type": "position_percent"
},
"max_lag": 300,
"timestamp": "{{timenow}}"
}{
"secret": "YOUR-SECRET",
"bot_uuid": "YOUR-UUID",
"action": "disable",
"tv_exchange": "{{exchange}}",
"tv_instrument": "{{ticker}}",
"positions_sub_action": "market_close",
"max_lag": 300,
"timestamp": "{{timenow}}"
}This disables the bot completely - manual re-enable required!
⚡ Quick Reference
price_percent
TP distance from entry
Integer: 1 = 1%, 2 = 2%
volume_percent
% of position to close
Must sum to 100%
trigger_price_percent
Stop loss distance
Integer: 1 = 1% loss
currency_type
Order size unit
quote, base, margin_percent, position_percent
amount
Position size
Number based on currency_type
max_lag
Reject stale signals
Seconds (300 = 5 min)
timestamp
Signal freshness
Always use {{timenow}}
price_percent_ref_type
Price reference for limit
current_price, base_entry_price, avg_entry_price
🎯 Which Method Should You Use?
Best For
Trending markets
Continuous trading
Emergency stops
Alerts Needed
2 (minimal)
3 (entry/exit/re-entry)
1 (stop all)
Position State
Always in
Flexible gaps
Fully closed
Bot Status
✅ Always active
✅ Always active
❌ Disabled
Re-entry
Automatic
Automatic
Manual required
Ideal Trader
Active/Confident
Flexible/Cautious
Risk-averse
Choose Reversal if you:
Trade trending pairs
Trust your signals
Want set-and-forget
Choose Clean Exit if you:
Need position control
Trade multiple pairs
Want gap periods
🚀 Advanced Features
Up to 8 Take Profit Levels
UI supports up to 4 levels
JSON supports up to 8 levels
Volumes must total 100%
Can mix limit & market orders
Trailing only on last step
"take_profit": {
"enabled": true,
"steps": [
{ "order_type": "limit", "price_percent": 1, "volume_percent": 20 },
{ "order_type": "limit", "price_percent": 2, "volume_percent": 20 },
{ "order_type": "limit", "price_percent": 3, "volume_percent": 15 },
{ "order_type": "limit", "price_percent": 4, "volume_percent": 15 },
{ "order_type": "limit", "price_percent": 5, "volume_percent": 10 },
{ "order_type": "limit", "price_percent": 6, "volume_percent": 10 },
{ "order_type": "limit", "price_percent": 7, "volume_percent": 5 },
{ "order_type": "market", "price_percent": 8, "volume_percent": 5,
"trailing": { "enabled": true, "percent": 0.2 }
}
]
}Dynamic Stop Loss
"stop_loss": {
"enabled": true,
"order_type": "market",
"trigger_price_percent": 2,
"trailing": {
"enabled": true,
"percent": 0.5
}
}Trails 0.5% behind highest profit
Price Deviation & Deal Close Conditions
In bot configuration (not JSON):
Price deviation filters: Prevent unfavorable entries
Minimum profit: May block exits until profit target met
If exits don't close, check your bot's Minimum profit/Deal close conditions
🛠️ Troubleshooting Checklist
Valid Credentials
JSON must include valid secret and bot_uuid
Required Fields
Always include tv_exchange and tv_instrument in ALL signals
Correct Webhook URL
Must be exactly https://api.3commas.io/signal_bots/webhooks
Alert Timing
Alerts fire Once Per Bar Close (not "Once Per Bar")
One Alert Per Action
Never combine entry & exit in one JSON
Field Names
Use price_percent not price_deviation
Volumes Sum to 100
All volume_percent must total exactly 100
Exit Orders
Exit signals use market execution only - no limit orders
Signal Freshness
Include max_lag and timestamp to prevent stale signals
Bot Re-enabling
If using disable, must manually re-enable bot
Exit Not Working
Check bot's Minimum profit/Deal close conditions
📖 JSON Field Glossary
secret
Private bot token
Required - Copy exactly from Step 2
bot_uuid
Unique Signal Bot ID
Required - Copy from Step 2
action
Bot command
Required - enter_long, enter_short, exit_long, exit_short, disable
tv_exchange
TradingView exchange
Required - Always {{exchange}}
tv_instrument
TradingView pair
Required - Always {{ticker}}
positions_sub_action
When action is disable
market_close → flatten & disable
cancel → cancel only
order.amount
Position size
Based on currency_type setting
order.order_type
Entry order type
market or limit (limit needs price or price_percent)
currency_type
Unit for amount
quote, base, margin_percent, position_percent
price
Exact limit price
For limit orders - exact price value
price_percent
TP/limit distance
Integer: 1 = 1%, 2 = 2%
price_percent_ref_type
Reference for percent
current_price, base_entry_price, avg_entry_price
volume_percent
% to close at each TP
1-100 (must sum to 100%)
trigger_price_percent
Stop loss trigger
Integer: 1 = 1% loss
max_lag
Signal age limit
Seconds (300 = 5 minutes)
timestamp
Current time
Always {{timenow}}
📚 Resources
Important Reminders:
3Commas is a third-party service with separate subscription costs
Signal Bots require a paid TradingView plan for webhooks
Exit orders are market-only (limit orders will be rejected)
Always test with small amounts or Demo account first
Manual trading via TradingView is always available as an alternative
Last updated
Was this helpful?

