Stock market rallies on peace talks but Bitcoin is left behind — play the catch-
Created
Thesis
CoinDesk notes that Bitcoin is stuck below $60k, and separately reports that crypto is being ignored even as Iran de-escalation lifts stocks. Bloomberg confirms that tech and broader stock futures are rising as dip buyers step in. This creates a divergence: stocks are rallying on reduced geopolitical risk, but crypto is lagging due to its own internal ETF outflows. Because crypto stocks like Coinbase usually move with tech stocks, this gap creates a catch-up opportunity where buying crypto-related equities captures the relief rally that crypto itself is missing.
Strategy approach
Build a rule-based strategy that enters long COIN on D1 when the Nasdaq (QQQ) makes a 5-day high while Bitcoin (BTCUSD) remains suppressed more than 5% below its 10-day high. Exit when Bitcoin closes >2% higher for 2 consecutive days, or if QQQ drops below its 10-day moving average.
Markets and timeframes
Entry and exit at a glance
These are the named rules in the shared configuration. Review the full conditions below before using a strategy.
- Entry: SMA/ROC/ADX Signal Long (QQQ@1d) (5 conditions)
- Entry: SMA/ROC/ADX Signal Long (BTC@1d) (5 conditions)
- Exit: Position Exit Rule (QQQ@1d) (1 condition)
- Exit: Position Exit Rule (BTC@1d) (1 condition)
- Exit: ROC Threshold Exit (QQQ@1d) (1 condition)
- Exit: ROC Threshold Exit (BTC@1d) (1 condition)
- Exit: Stop Loss at 7.0% (1 condition)
- Exit: Take Profit at 12.0% (1 condition)
- Exit: TP: Near Resistance[1] (QQQ@1d) (1 condition)
- Exit: TP: Near Resistance[1] (BTC@1d) (1 condition)
- Exit: SL: Fib Retracement 78.6% (QQQ@1d) (1 condition)
- Exit: SL: Fib Retracement 78.6% (BTC@1d) (1 condition)
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "QQQ",
"timeframe": "1d"
},
{
"symbol": "BTC",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 10
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": -5
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_qqq",
"name": "SMA/ROC/ADX Signal Long (QQQ@1d)",
"priority": 1,
"trade_symbol": "QQQ"
},
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 10
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": -5
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_btc",
"name": "SMA/ROC/ADX Signal Long (BTC@1d)",
"priority": 2,
"trade_symbol": "BTC"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_qqq",
"name": "Position Exit Rule (QQQ@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "QQQ"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_btc",
"name": "Position Exit Rule (BTC@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "BTC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 1
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 2
}
}
],
"enabled": true,
"id": "exit_2_qqq",
"name": "ROC Threshold Exit (QQQ@1d)",
"priority": 2,
"target_symbol": "QQQ"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 1
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 2
}
}
],
"enabled": true,
"id": "exit_2_btc",
"name": "ROC Threshold Exit (BTC@1d)",
"priority": 3,
"target_symbol": "BTC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -7
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 7.0%",
"priority": 10,
"purpose": "stop_loss"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 12
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 12.0%",
"priority": 11,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_qqq",
"name": "TP: Near Resistance[1] (QQQ@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "QQQ"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_btc",
"name": "TP: Near Resistance[1] (BTC@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "BTC"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"ratio": 786,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_6_qqq",
"name": "SL: Fib Retracement 78.6% (QQQ@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "QQQ"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"ratio": 786,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_6_btc",
"name": "SL: Fib Retracement 78.6% (BTC@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "BTC"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"fib_stop_ratio": 786,
"risk_percent": 2.379655172413793,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"name": "roc",
"period": 10
},
{
"name": "roc",
"period": 1
},
{
"name": "sma",
"period": 10
},
{
"name": "adx",
"period": 14
},
{
"name": "roc",
"period": 10
},
{
"name": "roc",
"period": 1
},
{
"name": "sma",
"period": 10
},
{
"name": "adx",
"period": 14
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "QQQ",
"timeframe": "1d"
},
{
"symbol": "BTC",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 10
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": -5
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_qqq",
"name": "SMA/ROC/ADX Signal Long (QQQ@1d)",
"priority": 1,
"trade_symbol": "QQQ"
},
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 10
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": -5
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_btc",
"name": "SMA/ROC/ADX Signal Long (BTC@1d)",
"priority": 2,
"trade_symbol": "BTC"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_qqq",
"name": "Position Exit Rule (QQQ@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "QQQ"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_btc",
"name": "Position Exit Rule (BTC@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "BTC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 1
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 2
}
}
],
"enabled": true,
"id": "exit_2_qqq",
"name": "ROC Threshold Exit (QQQ@1d)",
"priority": 2,
"target_symbol": "QQQ"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 1
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 2
}
}
],
"enabled": true,
"id": "exit_2_btc",
"name": "ROC Threshold Exit (BTC@1d)",
"priority": 3,
"target_symbol": "BTC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -7
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 7.0%",
"priority": 10,
"purpose": "stop_loss"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 12
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 12.0%",
"priority": 11,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_qqq",
"name": "TP: Near Resistance[1] (QQQ@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "QQQ"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_btc",
"name": "TP: Near Resistance[1] (BTC@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "BTC"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "QQQ",
"timeframe": "1d"
},
"ratio": 786,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_6_qqq",
"name": "SL: Fib Retracement 78.6% (QQQ@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "QQQ"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "BTC",
"timeframe": "1d"
},
"ratio": 786,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_6_btc",
"name": "SL: Fib Retracement 78.6% (BTC@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "BTC"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"fib_stop_ratio": 786,
"risk_percent": 2.379655172413793,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Stock market rallies on peace talks but Bitcoin is left behind — play the catch-up'. Thesis: CoinDesk notes that Bitcoin is stuck below $60k, and separately reports that crypto is being ignored even as Iran de-escalation lifts stocks. Bloomberg confirms that tech and broader stock futures are rising as dip buyers step in. This creates a divergence: stocks are rallying on reduced geopolitical risk, but crypto is lagging due to its own internal ETF outflows. Because crypto stocks like Coinbase usually move with tech stocks, this gap creates a catch-up opportunity where buying crypto-related equities captures the relief rally that crypto itself is missing.
Performance
No trade count, win rate, or realized P&L figures are provided in this public preview. The thesis and shared rules do not establish a performance record.
What this public preview can establish
- The thesis and strategy approach describe a market view. They do not show whether an entry or exit condition is currently met.
- Technical strategy fields are shared above. Inspect the actual conditions and check when they were evaluated before relying on them.
- No trade count, win rate, or P&L figure is published in this preview. It cannot establish a performance record.
Explore
How CommonQuant researches and tests strategies · Public paper-trading record and its limits · Discover public strategies