Tech is tanking but big banks just passed their stress tests with flying colors
Created
Thesis
The S&P 500 and Nasdaq have fallen for three straight days as investors dump expensive tech stocks, creating a need for capital to rotate into safer, fundamentally sound sectors. In a stroke of good timing, the Fed's annual stress test showed all 32 large banks can weather a severe recession, prompting JPMorgan to announce a massive $50 billion buyback and Goldman Sachs to raise their dividend. Wall Street analysts are also pointing out that small-cap stocks, which are heavily weighted toward financials and domestic growth, are having their best first half of the year since 1991. Combining the tech weakness with the green light from the Fed creates a compelling argument to rotate out of volatile tech and into fortress bank stocks that are actively returning cash to shareholders.
Strategy approach
Build a rotation strategy that enters long JPM and GS on the D1 timeframe when the Nasdaq (QQQ) has fallen for 3 consecutive days, signaling tech weakness, and a major fundamental catalyst for financials (like a successful Fed stress test and announced buyback) has just occurred. Exit if the stock makes a 20-day high or after a 30-day hold.
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: EMA/ADX/ROC Signal Long (JPM@1d) (5 conditions)
- Entry: EMA/ADX/ROC Signal Long (GS@1d) (5 conditions)
- Entry: EMA/ADX/ROC Signal Long (XLF@1d) (5 conditions)
- Entry: EMA/ADX Signal Long (JPM@1d) (2 conditions)
- Entry: EMA/ADX Signal Long (GS@1d) (2 conditions)
- Entry: EMA/ADX Signal Long (XLF@1d) (2 conditions)
- Entry: Long Entry Signal (JPM@1d) (2 conditions)
- Entry: Long Entry Signal (GS@1d) (2 conditions)
- Entry: Long Entry Signal (XLF@1d) (2 conditions)
- Exit: Position Exit Rule (JPM@1d) (1 condition)
- Exit: Position Exit Rule (GS@1d) (1 condition)
- Exit: Position Exit Rule (XLF@1d) (1 condition)
- Exit: TP: Fib Extension 127.2% (JPM@1d) (1 condition)
- Exit: TP: Fib Extension 127.2% (GS@1d) (1 condition)
- Exit: TP: Fib Extension 127.2% (XLF@1d) (1 condition)
- Exit: SL: Below Support[2] (JPM@1d) (1 condition)
- Exit: SL: Below Support[2] (GS@1d) (1 condition)
- Exit: SL: Below Support[2] (XLF@1d) (1 condition)
- Exit: Stop Loss at 2.6% (1 condition)
- Exit: Take Profit at 5.2% (1 condition)
Shared strategy rules
Rule configuration
{
"data_dependencies": [
{
"symbol": "JPM",
"timeframe": "1d"
},
{
"symbol": "GS",
"timeframe": "1d"
},
{
"symbol": "XLF",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_jpm",
"name": "EMA/ADX/ROC Signal Long (JPM@1d)",
"priority": 1,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_gs",
"name": "EMA/ADX/ROC Signal Long (GS@1d)",
"priority": 2,
"trade_symbol": "GS"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_xlf",
"name": "EMA/ADX/ROC Signal Long (XLF@1d)",
"priority": 3,
"trade_symbol": "XLF"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_jpm",
"name": "EMA/ADX Signal Long (JPM@1d)",
"priority": 2,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_gs",
"name": "EMA/ADX Signal Long (GS@1d)",
"priority": 3,
"trade_symbol": "GS"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_xlf",
"name": "EMA/ADX Signal Long (XLF@1d)",
"priority": 4,
"trade_symbol": "XLF"
},
{
"conditions": [
{
"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_3_jpm",
"name": "Long Entry Signal (JPM@1d)",
"priority": 2,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"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_3_gs",
"name": "Long Entry Signal (GS@1d)",
"priority": 3,
"trade_symbol": "GS"
},
{
"conditions": [
{
"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_3_xlf",
"name": "Long Entry Signal (XLF@1d)",
"priority": 4,
"trade_symbol": "XLF"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_jpm",
"name": "Position Exit Rule (JPM@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_gs",
"name": "Position Exit Rule (GS@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_xlf",
"name": "Position Exit Rule (XLF@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_jpm",
"name": "TP: Fib Extension 127.2% (JPM@1d)",
"priority": 96,
"purpose": "take_profit",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_gs",
"name": "TP: Fib Extension 127.2% (GS@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_xlf",
"name": "TP: Fib Extension 127.2% (XLF@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_jpm",
"name": "SL: Below Support[2] (JPM@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_gs",
"name": "SL: Below Support[2] (GS@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_xlf",
"name": "SL: Below Support[2] (XLF@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.6013333333333337
}
}
],
"enabled": true,
"id": "exit_4",
"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.202666666666667
}
}
],
"enabled": true,
"id": "exit_5",
"name": "Take Profit at 5.2%",
"priority": 100,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2.6013333333333337,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Indicator configuration
{
"indicators": [
{
"name": "roc",
"period": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 20
},
{
"name": "ema",
"period": 20
},
{
"name": "ema",
"period": 50
},
{
"name": "roc",
"period": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 20
},
{
"name": "ema",
"period": 20
},
{
"name": "ema",
"period": 50
},
{
"name": "roc",
"period": 3
},
{
"name": "adx",
"period": 14
},
{
"name": "donchian",
"period": 20
},
{
"name": "ema",
"period": 20
},
{
"name": "ema",
"period": 50
}
]
}Parsed strategy
{
"data_dependencies": [
{
"symbol": "JPM",
"timeframe": "1d"
},
{
"symbol": "GS",
"timeframe": "1d"
},
{
"symbol": "XLF",
"timeframe": "1d"
}
],
"entry_rules": [
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_jpm",
"name": "EMA/ADX/ROC Signal Long (JPM@1d)",
"priority": 1,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_gs",
"name": "EMA/ADX/ROC Signal Long (GS@1d)",
"priority": 2,
"trade_symbol": "GS"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
},
{
"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"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "roc",
"period": 3
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 0.5
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_1_xlf",
"name": "EMA/ADX/ROC Signal Long (XLF@1d)",
"priority": 3,
"trade_symbol": "XLF"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_jpm",
"name": "EMA/ADX Signal Long (JPM@1d)",
"priority": 2,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_gs",
"name": "EMA/ADX Signal Long (GS@1d)",
"priority": 3,
"trade_symbol": "GS"
},
{
"conditions": [
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 20
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"indicator": {
"name": "ema",
"period": 50
},
"type": "indicator"
}
},
{
"left": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "adx",
"indicator": {
"name": "adx",
"period": 14
},
"type": "indicator"
},
"operator": "greater_than",
"right": {
"type": "constant",
"value": 20
}
}
],
"direction": "long",
"enabled": true,
"id": "entry_2_xlf",
"name": "EMA/ADX Signal Long (XLF@1d)",
"priority": 4,
"trade_symbol": "XLF"
},
{
"conditions": [
{
"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_3_jpm",
"name": "Long Entry Signal (JPM@1d)",
"priority": 2,
"trade_symbol": "JPM"
},
{
"conditions": [
{
"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_3_gs",
"name": "Long Entry Signal (GS@1d)",
"priority": 3,
"trade_symbol": "GS"
},
{
"conditions": [
{
"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_3_xlf",
"name": "Long Entry Signal (XLF@1d)",
"priority": 4,
"trade_symbol": "XLF"
}
],
"exit_rules": [
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_jpm",
"name": "Position Exit Rule (JPM@1d)",
"priority": 1,
"purpose": "signal",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_gs",
"name": "Position Exit Rule (GS@1d)",
"priority": 2,
"purpose": "signal",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"field": "upper",
"indicator": {
"name": "donchian",
"period": 20
},
"type": "indicator"
}
}
],
"enabled": true,
"id": "exit_1_xlf",
"name": "Position Exit Rule (XLF@1d)",
"priority": 3,
"purpose": "signal",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "JPM",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_jpm",
"name": "TP: Fib Extension 127.2% (JPM@1d)",
"priority": 96,
"purpose": "take_profit",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "GS",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_gs",
"name": "TP: Fib Extension 127.2% (GS@1d)",
"priority": 97,
"purpose": "take_profit",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "greater_than_or_equal",
"right": {
"chart_ref": {
"symbol": "XLF",
"timeframe": "1d"
},
"ratio": 1272,
"type": "fibonacci_extension"
}
}
],
"enabled": true,
"id": "exit_2_xlf",
"name": "TP: Fib Extension 127.2% (XLF@1d)",
"priority": 98,
"purpose": "take_profit",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_jpm",
"name": "SL: Below Support[2] (JPM@1d)",
"priority": 100,
"purpose": "stop_loss",
"target_symbol": "JPM"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_gs",
"name": "SL: Below Support[2] (GS@1d)",
"priority": 101,
"purpose": "stop_loss",
"target_symbol": "GS"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "close",
"type": "price"
},
"operator": "crossed_above",
"right": {
"rank": 2,
"type": "support_level"
}
}
],
"enabled": true,
"id": "exit_3_xlf",
"name": "SL: Below Support[2] (XLF@1d)",
"priority": 102,
"purpose": "stop_loss",
"target_symbol": "XLF"
},
{
"applies_to": "both",
"conditions": [
{
"left": {
"field": "unrealized_pnl_percent",
"type": "position"
},
"operator": "less_than_or_equal",
"right": {
"type": "constant",
"value": -2.6013333333333337
}
}
],
"enabled": true,
"id": "exit_4",
"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.202666666666667
}
}
],
"enabled": true,
"id": "exit_5",
"name": "Take Profit at 5.2%",
"priority": 100,
"purpose": "take_profit"
}
],
"position_sizing": {
"max_position_percent": 25,
"method": {
"risk_percent": 2.6013333333333337,
"support_stop_rank": 2,
"type": "fixed_risk"
},
"min_position_value": 100
},
"trigger_timeframe": "1d",
"version": 1
}Strategy instructions
Trading agent generated from recommendation idea 'Tech is tanking but big banks just passed their stress tests with flying colors — safety rotation into JPMorgan and Goldman'. Thesis: The S&P 500 and Nasdaq have fallen for three straight days as investors dump expensive tech stocks, creating a need for capital to rotate into safer, fundamentally sound sectors. In a stroke of good timing, the Fed's annual stress test showed all 32 large banks can weather a severe recession, prompting JPMorgan to announce a massive $50 billion buyback and Goldman Sachs to raise their dividend. Wall Street analysts are also pointing out that small-cap stocks, which are heavily weighted toward financials and domestic growth, are having their best first half of the year since 1991. Combining the tech weakness with the green light from the Fed creates a compelling argument to rotate out of volatile tech and into fortress bank stocks that are actively returning cash to shareholders.
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