Memory chip shortage is here to stay — buy the dip on AI hardware stocks after t
Created
Thesis
Micron's blowout earnings confirm a $100 billion wave of AI memory demand, yet a broader global tech sell-off is dragging Micron, Nvidia, and SanDisk down indiscriminately. This panic is spilling over into device makers like Apple, who are being forced to hike consumer prices just to cover rising memory costs. Because the underlying demand for AI infrastructure remains massive, this market-wide rout offers a classic dip-buying opportunity for the memory chip suppliers at the center of the boom.
Strategy approach
Build a rule-based strategy that enters long MU on D1 after three consecutive daily closes lower (reflecting the broad tech sell-off dragging the stock down), provided the 14-day RSI is below 40 and the stock is still trading above its 200-day moving average. Exit when the stock closes at a new 10-day high, with a 8% 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: RSI/SMA/ADX Signal Long (MU@1d) (5 conditions)
- Entry: RSI/SMA/ADX Signal Long (SNDK@1d) (5 conditions)
- Entry: RSI/SMA/ADX Signal Long (WDC@1d) (5 conditions)
- Exit: Position Exit Rule (MU@1d) (1 condition)
- Exit: Position Exit Rule (SNDK@1d) (1 condition)
- Exit: Position Exit Rule (WDC@1d) (1 condition)
- Exit: SL: Fib Retracement 61.8% (MU@1d) (1 condition)
- Exit: SL: Fib Retracement 61.8% (SNDK@1d) (1 condition)
- Exit: SL: Fib Retracement 61.8% (WDC@1d) (1 condition)
- Exit: Stop Loss at 2.5% (1 condition)
- Exit: Take Profit at 5.0% (1 condition)
- Exit: TP: Near Resistance[1] (MU@1d) (1 condition)
- Exit: TP: Near Resistance[1] (SNDK@1d) (1 condition)
- Exit: TP: Near Resistance[1] (WDC@1d) (1 condition)
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "MU",
"timeframe": "1d"
},
{
"symbol": "SNDK",
"timeframe": "1d"
},
{
"symbol": "WDC",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_mu",
"name": "RSI/SMA/ADX Signal Long (MU@1d)",
"priority": 1,
"trade_symbol": "MU"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_sndk",
"name": "RSI/SMA/ADX Signal Long (SNDK@1d)",
"priority": 2,
"trade_symbol": "SNDK"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_wdc",
"name": "RSI/SMA/ADX Signal Long (WDC@1d)",
"priority": 3,
"trade_symbol": "WDC"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_mu",
"name": "Position Exit Rule (MU@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "MU"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_sndk",
"name": "Position Exit Rule (SNDK@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "SNDK"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_wdc",
"name": "Position Exit Rule (WDC@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "WDC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_mu",
"name": "SL: Fib Retracement 61.8% (MU@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "MU"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_sndk",
"name": "SL: Fib Retracement 61.8% (SNDK@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "SNDK"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_wdc",
"name": "SL: Fib Retracement 61.8% (WDC@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "WDC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.4942
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 2.5%",
"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": 4.9884
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 5.0%",
"priority": 100,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_mu",
"name": "TP: Near Resistance[1] (MU@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "MU"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_sndk",
"name": "TP: Near Resistance[1] (SNDK@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "SNDK"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_wdc",
"name": "TP: Near Resistance[1] (WDC@1d)",
"priority": 99,
"purpose": "take_profit",
"target_symbol": "WDC"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"fib_stop_ratio": 618,
"risk_percent": 2.4942,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"name": "rsi",
"period": 14
},
{
"name": "sma",
"period": 200
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 10
},
{
"name": "rsi",
"period": 14
},
{
"name": "sma",
"period": 200
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 10
},
{
"name": "rsi",
"period": 14
},
{
"name": "sma",
"period": 200
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 10
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "MU",
"timeframe": "1d"
},
{
"symbol": "SNDK",
"timeframe": "1d"
},
{
"symbol": "WDC",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_mu",
"name": "RSI/SMA/ADX Signal Long (MU@1d)",
"priority": 1,
"trade_symbol": "MU"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_sndk",
"name": "RSI/SMA/ADX Signal Long (SNDK@1d)",
"priority": 2,
"trade_symbol": "SNDK"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"indicator": {
"name": "rsi",
"period": 14
},
"type": "indicator"
},
"operator": "less_than",
"right": {
"type": "constant",
"value": 40
}
},
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"indicator": {
"name": "sma",
"period": 200
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 25
}
},
{
"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_wdc",
"name": "RSI/SMA/ADX Signal Long (WDC@1d)",
"priority": 3,
"trade_symbol": "WDC"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_mu",
"name": "Position Exit Rule (MU@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "MU"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_sndk",
"name": "Position Exit Rule (SNDK@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "SNDK"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 10
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_wdc",
"name": "Position Exit Rule (WDC@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "WDC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "MU",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_mu",
"name": "SL: Fib Retracement 61.8% (MU@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "MU"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "SNDK",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_sndk",
"name": "SL: Fib Retracement 61.8% (SNDK@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "SNDK"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "less_than",
"right": {
"chart_ref": {
"symbol": "WDC",
"timeframe": "1d"
},
"ratio": 618,
"type": "fibonacci_retracement"
}
}
],
"enabled": true,
"id": "exit_2_wdc",
"name": "SL: Fib Retracement 61.8% (WDC@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "WDC"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.4942
}
}
],
"enabled": true,
"id": "exit_3",
"name": "Stop Loss at 2.5%",
"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": 4.9884
}
}
],
"enabled": true,
"id": "exit_4",
"name": "Take Profit at 5.0%",
"priority": 100,
"purpose": "take_profit"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_mu",
"name": "TP: Near Resistance[1] (MU@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "MU"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_sndk",
"name": "TP: Near Resistance[1] (SNDK@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "SNDK"
},
{
"applies_to": "long",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"rank": 1,
"type": "resistance_level"
}
}
],
"enabled": true,
"id": "exit_5_wdc",
"name": "TP: Near Resistance[1] (WDC@1d)",
"priority": 99,
"purpose": "take_profit",
"target_symbol": "WDC"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"fib_stop_ratio": 618,
"risk_percent": 2.4942,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Memory chip shortage is here to stay — buy the dip on AI hardware stocks after the tech sell-off'. Thesis: Micron's blowout earnings confirm a $100 billion wave of AI memory demand, yet a broader global tech sell-off is dragging Micron, Nvidia, and SanDisk down indiscriminately. This panic is spilling over into device makers like Apple, who are being forced to hike consumer prices just to cover rising memory costs. Because the underlying demand for AI infrastructure remains massive, this market-wide rout offers a classic dip-buying opportunity for the memory chip suppliers at the center of the boom.
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