Iran strikes and oil blockade send crude surging — go long oil ETFs
Created
Thesis
The combination of the US militarily striking 80 sites in Iran and simultaneously revoking Iran's oil sales waiver creates a direct supply shock in the global oil market. When a major oil producer is suddenly blocked from selling and physical conflict breaks out, oil prices typically surge fast. With stock futures diving simultaneously, capital is rotating out of risk assets and into commodities. We are connecting reports of the strikes, the oil blockade, and the subsequent 5% oil price spike to justify a momentum trade on oil ETFs while the geopolitical risk premium is expanding.
Strategy approach
Build a momentum strategy for USO on H1 or D1 timeframe. Enter long when front-month oil futures print a 10-day high on rising volume. Exit if price drops below the 10-day exponential moving average or after a 15-trading-day maximum hold. Add a 6% hard 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: DONCHIAN/OBV/EMA Crossover Long (USO@1d) (4 conditions)
- Exit: TP: Near Resistance[2] (USO@1d) (1 condition)
- Exit: SL: Below Support[2] (USO@1d) (1 condition)
- Exit: Stop Loss at 2.6% (1 condition)
- Exit: Take Profit at 5.2% (1 condition)
- Exit: SL: Below Support[1] (USO@1d) (1 condition)
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "USO",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 1,
"type": "resistance_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 1
}
},
{
"left": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"indicator": {
"name": "obv"
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 21
},
"type": "indicator"
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1",
"name": "DONCHIAN/OBV/EMA Crossover Long (USO@1d)",
"priority": 2,
"trade_symbol": "USO"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 2,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_1",
"name": "TP: Near Resistance[2] (USO@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_2",
"name": "SL: Below Support[2] (USO@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.6025666666666667
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 2.6%",
"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": 5.205133333333333
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 5.2%",
"priority": 100,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 1,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_5",
"name": "SL: Below Support[1] (USO@1d)",
"priority": 100,
"purpose": "stop_loss"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2.6025666666666667,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"name": "donchian",
"period": 20
},
{
"name": "obv"
},
{
"name": "ema",
"period": 21
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "USO",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 1,
"type": "resistance_level"
}
},
{
"left": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 1
}
},
{
"left": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"indicator": {
"name": "obv"
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "USO",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 21
},
"type": "indicator"
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1",
"name": "DONCHIAN/OBV/EMA Crossover Long (USO@1d)",
"priority": 2,
"trade_symbol": "USO"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 2,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_1",
"name": "TP: Near Resistance[2] (USO@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_2",
"name": "SL: Below Support[2] (USO@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "USO"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.6025666666666667
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 2.6%",
"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": 5.205133333333333
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 5.2%",
"priority": 100,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 1,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_5",
"name": "SL: Below Support[1] (USO@1d)",
"priority": 100,
"purpose": "stop_loss"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2.6025666666666667,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Iran strikes and oil blockade send crude surging — go long oil ETFs'. Thesis: The combination of the US militarily striking 80 sites in Iran and simultaneously revoking Iran's oil sales waiver creates a direct supply shock in the global oil market. When a major oil producer is suddenly blocked from selling and physical conflict breaks out, oil prices typically surge fast. With stock futures diving simultaneously, capital is rotating out of risk assets and into commodities. We are connecting reports of the strikes, the oil blockade, and the subsequent 5% oil price spike to justify a momentum trade on oil ETFs while the geopolitical risk premium is expanding.
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