Loading…
Public trading strategy

Iran peace deal crashes oil prices — short oil on the momentum

Created

Thesis

The biggest risk to oil prices—war in the Middle East and blocked shipping lanes—just vanished. When a major geopolitical premium disappears, oil prices tend to fall quickly to reflect normal supply and demand. Now that Iran is reopening the Strait of Hormuz, the market is flooded with available supply, driving prices to a three-month low. This sudden drop in price has strong momentum behind it, making it a good opportunity to bet against oil companies and crude prices until they find a new, lower bottom.

Strategy approach

Build a trend-following short strategy on USOIL (WTI Crude) on the H4 timeframe. Enter short when price breaks below the lower Bollinger Band (20, 2) and the 14-period RSI is below 45. Exit if price closes above the 20-period Simple Moving Average. Use a 2% fixed stop loss.

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: Contrarian Trend Reversal Long (USO@4h) (3 conditions)
  • Entry: Contrarian Trend Reversal Long (XLE@4h) (3 conditions)
  • Exit: Trend Exit (USO@4h) (1 condition)
  • Exit: Trend Exit (XLE@4h) (1 condition)
  • Exit: Stop Loss at 2.0% (1 condition)
  • Exit: Take Profit at 6.0% (1 condition)

Shared strategy rules

Rule configuration

{
  "data_dependencies": [
    {
      "symbol": "STOCK:USO",
      "timeframe": "4h"
    },
    {
      "symbol": "STOCK:XLE",
      "timeframe": "4h"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "upper",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 55
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1_uso",
      "name": "Contrarian Trend Reversal Long (USO@4h)",
      "priority": 1,
      "trade_symbol": "STOCK:USO"
    },
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "upper",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 55
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1_xle",
      "name": "Contrarian Trend Reversal Long (XLE@4h)",
      "priority": 2,
      "trade_symbol": "STOCK:XLE"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_uso",
      "name": "Trend Exit (USO@4h)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "STOCK:USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_xle",
      "name": "Trend Exit (XLE@4h)",
      "priority": 2,
      "purpose": "signal",
      "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_2",
      "name": "Stop Loss at 2.0%",
      "priority": 10,
      "purpose": "stop_loss"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "unrealized_pnl_percent",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 6
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "Take Profit at 6.0%",
      "priority": 11,
      "purpose": "take_profit"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "risk_percent": 2,
      "stop_loss_percent": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "4h",
  "version": 1
}

Indicator configuration

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

Parsed strategy

{
  "data_dependencies": [
    {
      "symbol": "STOCK:USO",
      "timeframe": "4h"
    },
    {
      "symbol": "STOCK:XLE",
      "timeframe": "4h"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "upper",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 55
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1_uso",
      "name": "Contrarian Trend Reversal Long (USO@4h)",
      "priority": 1,
      "trade_symbol": "STOCK:USO"
    },
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "upper",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 55
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1_xle",
      "name": "Contrarian Trend Reversal Long (XLE@4h)",
      "priority": 2,
      "trade_symbol": "STOCK:XLE"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_uso",
      "name": "Trend Exit (USO@4h)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "STOCK:USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_xle",
      "name": "Trend Exit (XLE@4h)",
      "priority": 2,
      "purpose": "signal",
      "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_2",
      "name": "Stop Loss at 2.0%",
      "priority": 10,
      "purpose": "stop_loss"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "unrealized_pnl_percent",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 6
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "Take Profit at 6.0%",
      "priority": 11,
      "purpose": "take_profit"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "risk_percent": 2,
      "stop_loss_percent": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "4h",
  "version": 1
}

Strategy instructions

Trading agent generated from recommendation idea 'Iran peace deal crashes oil prices — short oil on the momentum'. Thesis: The biggest risk to oil prices—war in the Middle East and blocked shipping lanes—just vanished. When a major geopolitical premium disappears, oil prices tend to fall quickly to reflect normal supply and demand. Now that Iran is reopening the Strait of Hormuz, the market is flooded with available supply, driving prices to a three-month low. This sudden drop in price has strong momentum behind it, making it a good opportunity to bet against oil companies and crude prices until they find a new, lower bottom.

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