Everyone's betting against the Canadian dollar — position for the squeeze
Thesis
The Canadian dollar is about as hated as it has been in two years, with professionals all betting it keeps falling. But when absolutely everyone expects something bad, the bar for a surprise is very low — any hint of a trade deal resolution or a pickup in commodity demand could catch the crowd off guard. Rather than piling into the same bet as the hedge funds, a contrarian player can position for a short squeeze where the Canadian dollar snaps back. Even a small piece of good news could force short-sellers to buy back in a hurry, pushing the currency higher.
Strategy approach
Build a contrarian long strategy on USDCAD. Enter a 1/3 position when USDCAD makes a new 10-day high (crowded short panic flush). Add 1/3 if USDCAD closes below its 5-day high within 3 sessions (reversal confirmation). Full exit if USDCAD makes a new 20-day high against the Canadian dollar (trend confirming, thesis wrong). Hard stop at 1% adverse movement from initial fill. Max hold 10 trading days. Target: a 1-2% decline in USDCAD indicating CAD strength recovery.
Markets and timeframes
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
{
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
{
"symbol": "STOCK:USO",
"timeframe": "1d"
},
{
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
{
"symbol": "STOCK:XLE",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_fxc",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (FXC@1d)",
"priority": 1,
"trade_symbol": "STOCK:FXC"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_uup",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (UUP@1d)",
"priority": 2,
"trade_symbol": "STOCK:UUP"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_uso",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (USO@1d)",
"priority": 3,
"trade_symbol": "STOCK:USO"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_gld",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (GLD@1d)",
"priority": 4,
"trade_symbol": "STOCK:GLD"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_xle",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (XLE@1d)",
"priority": 5,
"trade_symbol": "STOCK:XLE"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_fxc",
"name": "Position Exit Rule (FXC@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_uup",
"name": "Position Exit Rule (UUP@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_uso",
"name": "Position Exit Rule (USO@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_gld",
"name": "Position Exit Rule (GLD@1d)",
"priority": 4,
"purpose": "signal",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_xle",
"name": "Position Exit Rule (XLE@1d)",
"priority": 5,
"purpose": "signal",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_fxc",
"name": "TP: Near Resistance[1] (FXC@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_uup",
"name": "TP: Near Resistance[1] (UUP@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_uso",
"name": "TP: Near Resistance[1] (USO@1d)",
"priority": 99,
"purpose": "take_profit",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_gld",
"name": "TP: Near Resistance[1] (GLD@1d)",
"priority": 100,
"purpose": "take_profit",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_xle",
"name": "TP: Near Resistance[1] (XLE@1d)",
"priority": 101,
"purpose": "take_profit",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_fxc",
"name": "SL: Below Support[2] (FXC@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_uup",
"name": "SL: Below Support[2] (UUP@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_uso",
"name": "SL: Below Support[2] (USO@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_gld",
"name": "SL: Below Support[2] (GLD@1d)",
"priority": 103,
"purpose": "stop_loss",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_xle",
"name": "SL: Below Support[2] (XLE@1d)",
"priority": 104,
"purpose": "stop_loss",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Stop Loss at 2.0%",
"priority": 100,
"purpose": "stop_loss"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 4
}
}
],
"enabled": true,
"id": "exit_5",
"name": "Take Profit at 4.0%",
"priority": 100,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 20,
"method": {
"risk_percent": 2,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "rsi",
"period": 14
},
{
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "rsi",
"period": 14
},
{
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "rsi",
"period": 14
},
{
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "rsi",
"period": 14
},
{
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "rsi",
"period": 14
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
{
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
{
"symbol": "STOCK:USO",
"timeframe": "1d"
},
{
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
{
"symbol": "STOCK:XLE",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_fxc",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (FXC@1d)",
"priority": 1,
"trade_symbol": "STOCK:FXC"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_uup",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (UUP@1d)",
"priority": 2,
"trade_symbol": "STOCK:UUP"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_uso",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (USO@1d)",
"priority": 3,
"trade_symbol": "STOCK:USO"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_gld",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (GLD@1d)",
"priority": 4,
"trade_symbol": "STOCK:GLD"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 35
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "k",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "d",
"indicator": {
"d_period": 3,
"k_period": 14,
"name": "stochastic",
"slowing": 3
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_xle",
"name": "Oversold RSI/STOCHASTIC/ADX Crossover Long (XLE@1d)",
"priority": 5,
"trade_symbol": "STOCK:XLE"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_fxc",
"name": "Position Exit Rule (FXC@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_uup",
"name": "Position Exit Rule (UUP@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_uso",
"name": "Position Exit Rule (USO@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_gld",
"name": "Position Exit Rule (GLD@1d)",
"priority": 4,
"purpose": "signal",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 50
}
},
{
"left": {
"field": "holding_period_bars",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 10
}
}
],
"enabled": true,
"id": "exit_1_xle",
"name": "Position Exit Rule (XLE@1d)",
"priority": 5,
"purpose": "signal",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_fxc",
"name": "TP: Near Resistance[1] (FXC@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_uup",
"name": "TP: Near Resistance[1] (UUP@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_uso",
"name": "TP: Near Resistance[1] (USO@1d)",
"priority": 99,
"purpose": "take_profit",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_gld",
"name": "TP: Near Resistance[1] (GLD@1d)",
"priority": 100,
"purpose": "take_profit",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_2_xle",
"name": "TP: Near Resistance[1] (XLE@1d)",
"priority": 101,
"purpose": "take_profit",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:FXC",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_fxc",
"name": "SL: Below Support[2] (FXC@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "STOCK:FXC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:UUP",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_uup",
"name": "SL: Below Support[2] (UUP@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "STOCK:UUP"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:USO",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_uso",
"name": "SL: Below Support[2] (USO@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "STOCK:USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:GLD",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_gld",
"name": "SL: Below Support[2] (GLD@1d)",
"priority": 103,
"purpose": "stop_loss",
"target_symbol": "STOCK:GLD"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "STOCK:XLE",
"timeframe": "1d"
},
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_xle",
"name": "SL: Below Support[2] (XLE@1d)",
"priority": 104,
"purpose": "stop_loss",
"target_symbol": "STOCK:XLE"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Stop Loss at 2.0%",
"priority": 100,
"purpose": "stop_loss"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "greater_than_or_equal",
"right": {
"type": "constant",
"value": 4
}
}
],
"enabled": true,
"id": "exit_5",
"name": "Take Profit at 4.0%",
"priority": 100,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 20,
"method": {
"risk_percent": 2,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Everyone's betting against the Canadian dollar — position for the squeeze'. Thesis: The Canadian dollar is about as hated as it has been in two years, with professionals all betting it keeps falling. But when absolutely everyone expects something bad, the bar for a surprise is very low — any hint of a trade deal resolution or a pickup in commodity demand could catch the crowd off guard. Rather than piling into the same bet as the hedge funds, a contrarian player can position for a short squeeze where the Canadian dollar snaps back. Even a small piece of good news could force short-sellers to buy back in a hurry, pushing the currency higher.
How CommonQuant strategies work
- Each strategy is generated from a plain-English thesis with fresh, LLM-selected news headlines, grounded in SEC XBRL fundamentals and peer percentiles.
- The strategy is expressed in an auditable DSL checked by a real compiler, and passes an adversarial AI review before it can be published.
- Every AI-generated strategy is automatically backtested over 12-month and 5-year windows (walk-forward tuned) and stress-tested across drawdowns and best/worst windows — it stays gated until that evidence run completes.
- Once live, an AI news judge re-reads fresh headlines hourly and can conclude the campaign when they confirm the strategy’s thesis-invalidation conditions, notifying the owner and followers.