Loading…
Public trading strategy

Peace deal sinks oil prices — short the crude glut

Created

Thesis

The de-escalation of geopolitical tensions removes the 'fear premium' that was keeping oil prices high. With the threat of closed shipping lanes off the table for now, traders are betting heavily on an oversupplied market. This creates a clear downward pressure on oil prices. We can take advantage of this slide by betting against oil.

Strategy approach

Build a rule-based strategy that enters short USOIL on D1 when the 9-day EMA crosses below the 21-day EMA and RSI(14) < 45. Exit if USOIL closes above the 21-day EMA. Max hold 15 days.

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: EMA/RSI/ADX/BB Crossover Long (USO@1d) (5 conditions)
  • Exit: Position Exit Rule (USO@1d) (1 condition)
  • Exit: SL: Below Support[2] (USO@1d) (1 condition)
  • Exit: TP: Near Resistance[1] (USO@1d) (1 condition)

Shared strategy rules

Rule configuration

{
  "data_dependencies": [
    {
      "symbol": "USO",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 9
            },
            "type": "indicator"
          },
          "operator": "crossed_below",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 21
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "field": "adx",
            "indicator": {
              "name": "adx",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 20
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_below",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1",
      "name": "EMA/RSI/ADX/BB Crossover Long (USO@1d)",
      "priority": 1,
      "trade_symbol": "USO"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 9
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1",
      "name": "Position Exit Rule (USO@1d)",
      "priority": 1,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2",
      "name": "SL: Below Support[2] (USO@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_below",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "TP: Near Resistance[1] (USO@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "resistance_stop_rank": 1,
      "risk_percent": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 1
}

Indicator configuration

{
  "indicators": [
    {
      "name": "ema",
      "period": 9
    },
    {
      "name": "ema",
      "period": 21
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "name": "bollinger_bands",
      "period": 20,
      "std_dev": 2
    },
    {
      "name": "adx",
      "period": 14
    }
  ]
}

Parsed strategy

{
  "data_dependencies": [
    {
      "symbol": "USO",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 9
            },
            "type": "indicator"
          },
          "operator": "crossed_below",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 21
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "field": "adx",
            "indicator": {
              "name": "adx",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 20
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_below",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1",
      "name": "EMA/RSI/ADX/BB Crossover Long (USO@1d)",
      "priority": 1,
      "trade_symbol": "USO"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 9
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1",
      "name": "Position Exit Rule (USO@1d)",
      "priority": 1,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2",
      "name": "SL: Below Support[2] (USO@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_below",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "TP: Near Resistance[1] (USO@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "resistance_stop_rank": 1,
      "risk_percent": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 1
}

Strategy instructions

Trading agent generated from recommendation idea 'Peace deal sinks oil prices — short the crude glut'. Thesis: The de-escalation of geopolitical tensions removes the 'fear premium' that was keeping oil prices high. With the threat of closed shipping lanes off the table for now, traders are betting heavily on an oversupplied market. This creates a clear downward pressure on oil prices. We can take advantage of this slide by betting against oil.

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