Public trading strategy

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

FXCUSDCADH4D1

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.

Explore

Discover public strategies · Latest market news