Market just had its biggest drop in months — buy the dip on the S&P 500
Created
Thesis
The market just experienced its sharpest drop in months due to a strong jobs report making investors nervous about interest rates. However, Goldman Sachs points out that corporate profits are at record highs and there is a clear path for the market to recover. When the market drops this fast on broad macroeconomic fears rather than fundamental business failures, it historically tends to bounce back quickly.
Strategy approach
Build a mean-reversion strategy on SPY and QQQ using the daily timeframe. Enter a long position when the price closes below the lower Bollinger Band (20, 2) and the RSI(14) drops below 30. Exit the position when the price touches the upper Bollinger Band or after a maximum hold period of 10 trading days. Use a 3% 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: Oversold BB/RSI Long (SPY@1d) (4 conditions)
- Exit: Position Exit Rule (SPY@1d) (1 condition)
- Exit: SL: Fib Retracement 61.8% (SPY@1d) (1 condition)
- Exit: SL: Below Support[2] (SPY@1d) (1 condition)
- Exit: SL: Fib Retracement 50.0% (SPY@1d) (1 condition)
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "SPY",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"field": "lower",
"indicator": {
"name": "bollinger_bands",
"period": 20,
"std_dev": 2
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1",
"name": "Oversold BB/RSI Long (SPY@1d)",
"priority": 1,
"trade_symbol": "SPY"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "bollinger_bands",
"period": 20,
"std_dev": 2
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1",
"name": "Position Exit Rule (SPY@1d)",
"priority": 1,
"purpose": "signal"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2",
"name": "SL: Fib Retracement 61.8% (SPY@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "SPY"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3",
"name": "SL: Below Support[2] (SPY@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "SPY"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"ratio": 500,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_4",
"name": "SL: Fib Retracement 50.0% (SPY@1d)",
"priority": 97,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2,
"stop_loss_percent": 3,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"name": "bollinger_bands",
"period": 20,
"std_dev": 2
},
{
"name": "rsi",
"period": 14
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "SPY",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"field": "lower",
"indicator": {
"name": "bollinger_bands",
"period": 20,
"std_dev": 2
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 30
}
},
{
"left": {
"field": "low",
"type": "price"
},
"operator": "less_than_or_equal",
"right": {
"rank": 1,
"type": "support_level"
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"rank": 1,
"type": "support_level"
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1",
"name": "Oversold BB/RSI Long (SPY@1d)",
"priority": 1,
"trade_symbol": "SPY"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "bollinger_bands",
"period": 20,
"std_dev": 2
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1",
"name": "Position Exit Rule (SPY@1d)",
"priority": 1,
"purpose": "signal"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2",
"name": "SL: Fib Retracement 61.8% (SPY@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "SPY"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3",
"name": "SL: Below Support[2] (SPY@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "SPY"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "SPY",
"timeframe": "1d"
},
"ratio": 500,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_4",
"name": "SL: Fib Retracement 50.0% (SPY@1d)",
"priority": 97,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2,
"stop_loss_percent": 3,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Market just had its biggest drop in months — buy the dip on the S&P 500'. Thesis: The market just experienced its sharpest drop in months due to a strong jobs report making investors nervous about interest rates. However, Goldman Sachs points out that corporate profits are at record highs and there is a clear path for the market to recover. When the market drops this fast on broad macroeconomic fears rather than fundamental business failures, it historically tends to bounce back quickly.
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