Loading…
Public trading strategy

Oil prices crashing on Iran deal flood of supply — short oil producers and energ

Created

Thesis

The US-Iran agreement to reopen the Strait of Hormuz is expected to flood the market with new oil supply, and Wall Street banks are already slashing their price forecasts. Oil has plunged 15% in just four days, and this kind of fundamental shift usually means lower prices are here to stay for a while. With Iran gaining the right to sell oil immediately and tap a massive development fund, the increased supply will likely keep pressure on oil-related investments. Betting against oil producers or the commodity itself is a way to profit as prices adjust to this new reality.

Strategy approach

Build a short-side mean reversion strategy on OIL (or USOIL CFD) using the H4 timeframe. Enter short when price breaks and closes below the lower Bollinger Band (20, 2) with expanding volume, and RSI(14) < 45. Set a 2 ATR stop loss above the entry swing high. Exit entirely if price closes back above the 20-period midline Bollinger Band.

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: BB/OBV/RSI/ATR Signal Short (USO@4h) (4 conditions)
  • Entry: BB/OBV/RSI/ATR Signal Short (XLE@4h) (4 conditions)
  • Exit: Position Exit Rule (USO@4h) (1 condition)
  • Exit: Position Exit Rule (XLE@4h) (1 condition)
  • Exit: SL: Below Support[1] (USO@4h) (1 condition)
  • Exit: SL: Below Support[1] (XLE@4h) (1 condition)
  • Exit: TP: Near Resistance[2] (USO@4h) (1 condition)
  • Exit: TP: Near Resistance[2] (XLE@4h) (1 condition)
  • Exit: SL: Position Exit Rule (USO@4h) (1 condition)
  • Exit: SL: Position Exit Rule (XLE@4h) (1 condition)
  • Exit: Take Profit at 10.0% (1 condition)

Shared strategy rules

Rule configuration

{
  "data_dependencies": [
    {
      "symbol": "USO",
      "timeframe": "4h"
    },
    {
      "symbol": "XLE",
      "timeframe": "4h"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "obv"
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "bars_ago": 1,
            "indicator": {
              "name": "obv"
            },
            "type": "indicator_previous"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "atr",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0.5
          }
        }
      ],
      "direction": "short",
      "enabled": true,
      "id": "entry_1_uso",
      "name": "BB/OBV/RSI/ATR Signal Short (USO@4h)",
      "priority": 1,
      "trade_symbol": "USO"
    },
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "obv"
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "bars_ago": 1,
            "indicator": {
              "name": "obv"
            },
            "type": "indicator_previous"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "atr",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0.5
          }
        }
      ],
      "direction": "short",
      "enabled": true,
      "id": "entry_1_xle",
      "name": "BB/OBV/RSI/ATR Signal Short (XLE@4h)",
      "priority": 2,
      "trade_symbol": "XLE"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_uso",
      "name": "Position Exit Rule (USO@4h)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_xle",
      "name": "Position Exit Rule (XLE@4h)",
      "priority": 2,
      "purpose": "signal",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_uso",
      "name": "SL: Below Support[1] (USO@4h)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_xle",
      "name": "SL: Below Support[1] (XLE@4h)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_uso",
      "name": "TP: Near Resistance[2] (USO@4h)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_xle",
      "name": "TP: Near Resistance[2] (XLE@4h)",
      "priority": 101,
      "purpose": "stop_loss",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "left": {
              "field": "entry_price",
              "type": "position"
            },
            "op": "Add",
            "right": {
              "left": {
                "type": "constant",
                "value": 2
              },
              "op": "Multiply",
              "right": {
                "chart_ref": {
                  "symbol": "USO",
                  "timeframe": "4h"
                },
                "indicator": {
                  "name": "atr",
                  "period": 14
                },
                "type": "indicator"
              },
              "type": "arithmetic"
            },
            "type": "arithmetic"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4",
      "name": "SL: Position Exit Rule (USO@4h)",
      "priority": 10,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "left": {
              "field": "entry_price",
              "type": "position"
            },
            "op": "Add",
            "right": {
              "left": {
                "type": "constant",
                "value": 2
              },
              "op": "Multiply",
              "right": {
                "chart_ref": {
                  "symbol": "XLE",
                  "timeframe": "4h"
                },
                "indicator": {
                  "name": "atr",
                  "period": 14
                },
                "type": "indicator"
              },
              "type": "arithmetic"
            },
            "type": "arithmetic"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5",
      "name": "SL: Position Exit Rule (XLE@4h)",
      "priority": 10,
      "purpose": "stop_loss",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "unrealized_pnl_percent",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 10
          }
        }
      ],
      "enabled": true,
      "id": "exit_6",
      "name": "Take Profit at 10.0%",
      "priority": 11,
      "purpose": "take_profit"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "atr_multiplier": 2,
      "atr_period": 14,
      "risk_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": "obv"
    },
    {
      "name": "atr",
      "period": 14
    },
    {
      "name": "bollinger_bands",
      "period": 20,
      "std_dev": 2
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "name": "obv"
    },
    {
      "name": "atr",
      "period": 14
    }
  ]
}

Parsed strategy

{
  "data_dependencies": [
    {
      "symbol": "USO",
      "timeframe": "4h"
    },
    {
      "symbol": "XLE",
      "timeframe": "4h"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "obv"
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "bars_ago": 1,
            "indicator": {
              "name": "obv"
            },
            "type": "indicator_previous"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "atr",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0.5
          }
        }
      ],
      "direction": "short",
      "enabled": true,
      "id": "entry_1_uso",
      "name": "BB/OBV/RSI/ATR Signal Short (USO@4h)",
      "priority": 1,
      "trade_symbol": "USO"
    },
    {
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "obv"
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "bars_ago": 1,
            "indicator": {
              "name": "obv"
            },
            "type": "indicator_previous"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "indicator": {
              "name": "atr",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0.5
          }
        }
      ],
      "direction": "short",
      "enabled": true,
      "id": "entry_1_xle",
      "name": "BB/OBV/RSI/ATR Signal Short (XLE@4h)",
      "priority": 2,
      "trade_symbol": "XLE"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_uso",
      "name": "Position Exit Rule (USO@4h)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "middle",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_xle",
      "name": "Position Exit Rule (XLE@4h)",
      "priority": 2,
      "purpose": "signal",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_uso",
      "name": "SL: Below Support[1] (USO@4h)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than_or_equal",
          "right": {
            "rank": 1,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_xle",
      "name": "SL: Below Support[1] (XLE@4h)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_uso",
      "name": "TP: Near Resistance[2] (USO@4h)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_xle",
      "name": "TP: Near Resistance[2] (XLE@4h)",
      "priority": 101,
      "purpose": "stop_loss",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "USO",
              "timeframe": "4h"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "left": {
              "field": "entry_price",
              "type": "position"
            },
            "op": "Add",
            "right": {
              "left": {
                "type": "constant",
                "value": 2
              },
              "op": "Multiply",
              "right": {
                "chart_ref": {
                  "symbol": "USO",
                  "timeframe": "4h"
                },
                "indicator": {
                  "name": "atr",
                  "period": 14
                },
                "type": "indicator"
              },
              "type": "arithmetic"
            },
            "type": "arithmetic"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4",
      "name": "SL: Position Exit Rule (USO@4h)",
      "priority": 10,
      "purpose": "stop_loss",
      "target_symbol": "USO"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "XLE",
              "timeframe": "4h"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "left": {
              "field": "entry_price",
              "type": "position"
            },
            "op": "Add",
            "right": {
              "left": {
                "type": "constant",
                "value": 2
              },
              "op": "Multiply",
              "right": {
                "chart_ref": {
                  "symbol": "XLE",
                  "timeframe": "4h"
                },
                "indicator": {
                  "name": "atr",
                  "period": 14
                },
                "type": "indicator"
              },
              "type": "arithmetic"
            },
            "type": "arithmetic"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5",
      "name": "SL: Position Exit Rule (XLE@4h)",
      "priority": 10,
      "purpose": "stop_loss",
      "target_symbol": "XLE"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "unrealized_pnl_percent",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 10
          }
        }
      ],
      "enabled": true,
      "id": "exit_6",
      "name": "Take Profit at 10.0%",
      "priority": 11,
      "purpose": "take_profit"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "atr_multiplier": 2,
      "atr_period": 14,
      "risk_percent": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "4h",
  "version": 1
}

Strategy instructions

Trading agent generated from recommendation idea 'Oil prices crashing on Iran deal flood of supply — short oil producers and energy funds'. Thesis: The US-Iran agreement to reopen the Strait of Hormuz is expected to flood the market with new oil supply, and Wall Street banks are already slashing their price forecasts. Oil has plunged 15% in just four days, and this kind of fundamental shift usually means lower prices are here to stay for a while. With Iran gaining the right to sell oil immediately and tap a massive development fund, the increased supply will likely keep pressure on oil-related investments. Betting against oil producers or the commodity itself is a way to profit as prices adjust to this new reality.

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