Loading…
Public trading strategy

July's spending data showed households concentrating their purchases in essentia

Created

Thesis

July's spending data showed households concentrating their purchases in essentials, with discretionary outlays clearly decelerating. JM Smucker just raised its full-year sales and profit outlook on growth in Uncrustables and coffee — exactly the kind of cheap, habitual purchases people keep making even when budgets tighten. Meanwhile department-store peers like Kohl's and Ross are only holding steady, confirming the shift toward the pantry and away from the mall. When a staples company raises guidance into a soft-consumer backdrop, its stock tends to keep working as investors rotate toward safety.

Strategy approach

July's spending data showed households concentrating their purchases in essentials, with discretionary outlays clearly decelerating. JM Smucker just raised its full-year sales and profit outlook on growth in Uncrustables and coffee — exactly the kind of cheap, habitual purchases people keep making even when budgets tighten. Meanwhile department-store peers like Kohl's and Ross are only holding steady, confirming the shift toward the pantry and away from the mall. When a staples company raises guidance into a soft-consumer backdrop, its stock tends to keep working as investors rotate toward safety. Decision analysis profile: value. Required dimensions: valuation_method, valuation_sensitivity, business_economics, cash_quality, balance_sheet_leverage, dilution_capital_allocation, moat,…

Markets and timeframes

Latest published rule evaluation

Evaluated . This is a dated rule snapshot, not a live price or trade execution confirmation.

GIS · 1d

2 of 4 published entry conditions marked met.

  • Price crossed above EMA (50) — far
  • RSI (14) crossed above 45 — far
  • Price above Bollinger (20) — met
  • ADX (14) above 20 — met
  • RSI (14) above 70 — met

HSY · 1d

2 of 4 published entry conditions marked met.

  • Price crossed above EMA (50) — near
  • RSI (14) crossed above 45 — far
  • Price above Bollinger (20) — met
  • ADX (14) above 20 — met
  • RSI (14) above 70 — near

SJM · 1d

2 of 4 published entry conditions marked met.

  • Price crossed above EMA (50) — far
  • RSI (14) crossed above 45 — far
  • Price above Bollinger (20) — met
  • ADX (14) above 20 — met
  • RSI (14) above 70 — met

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: Confirmed Pullback Recovery Long (SJM@1d) (4 conditions)
  • Entry: Confirmed Pullback Recovery Long (HSY@1d) (4 conditions)
  • Entry: Confirmed Pullback Recovery Long (GIS@1d) (4 conditions)
  • Exit: Overbought Momentum Exit (SJM@1d) (1 condition)
  • Exit: Overbought Momentum Exit (HSY@1d) (1 condition)
  • Exit: Overbought Momentum Exit (GIS@1d) (1 condition)
  • Exit: Time Stop at 60 Days (1 condition)
  • Exit: TP: Near Resistance[2] (SJM@1d) (1 condition)
  • Exit: TP: Near Resistance[2] (HSY@1d) (1 condition)
  • Exit: TP: Near Resistance[2] (GIS@1d) (1 condition)
  • Exit: SL: Close Below Support[2] (SJM@1d) (1 condition)
  • Exit: SL: Close Below Support[2] (HSY@1d) (1 condition)
  • Exit: SL: Close Below Support[2] (GIS@1d) (1 condition)
  • Exit: SL: Fib Retracement 78.6% (SJM@1d) (1 condition)
  • Exit: SL: Fib Retracement 78.6% (HSY@1d) (1 condition)
  • Exit: SL: Fib Retracement 78.6% (GIS@1d) (1 condition)

Shared strategy rules

Rule configuration

{
  "data_dependencies": [
    {
      "symbol": "STOCK:SJM",
      "timeframe": "1d"
    },
    {
      "symbol": "STOCK:HSY",
      "timeframe": "1d"
    },
    {
      "symbol": "STOCK:GIS",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "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_1_sjm",
      "name": "Confirmed Pullback Recovery Long (SJM@1d)",
      "priority": 1,
      "trade_symbol": "STOCK:SJM"
    },
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "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_1_hsy",
      "name": "Confirmed Pullback Recovery Long (HSY@1d)",
      "priority": 2,
      "trade_symbol": "STOCK:HSY"
    },
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "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_1_gis",
      "name": "Confirmed Pullback Recovery Long (GIS@1d)",
      "priority": 3,
      "trade_symbol": "STOCK:GIS"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_sjm",
      "name": "Overbought Momentum Exit (SJM@1d)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_hsy",
      "name": "Overbought Momentum Exit (HSY@1d)",
      "priority": 2,
      "purpose": "signal",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_gis",
      "name": "Overbought Momentum Exit (GIS@1d)",
      "priority": 3,
      "purpose": "signal",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "holding_period_bars",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 60
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_time",
      "name": "Time Stop at 60 Days",
      "priority": 50,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_sjm",
      "name": "TP: Near Resistance[2] (SJM@1d)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_hsy",
      "name": "TP: Near Resistance[2] (HSY@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_gis",
      "name": "TP: Near Resistance[2] (GIS@1d)",
      "priority": 98,
      "purpose": "take_profit",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_sjm",
      "name": "SL: Close Below Support[2] (SJM@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_hsy",
      "name": "SL: Close Below Support[2] (HSY@1d)",
      "priority": 101,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_gis",
      "name": "SL: Close Below Support[2] (GIS@1d)",
      "priority": 102,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_sjm",
      "name": "SL: Fib Retracement 78.6% (SJM@1d)",
      "priority": 103,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_hsy",
      "name": "SL: Fib Retracement 78.6% (HSY@1d)",
      "priority": 104,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_gis",
      "name": "SL: Fib Retracement 78.6% (GIS@1d)",
      "priority": 105,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:GIS"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "fib_stop_ratio": 786,
      "risk_percent": 2.2925,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 2
}

Indicator configuration

{
  "indicators": [
    {
      "name": "ema",
      "period": 50
    },
    {
      "name": "ema",
      "period": 20
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "name": "bollinger_bands",
      "period": 20,
      "std_dev": 2
    },
    {
      "name": "adx",
      "period": 14
    },
    {
      "name": "ema",
      "period": 50
    },
    {
      "name": "ema",
      "period": 20
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "name": "bollinger_bands",
      "period": 20,
      "std_dev": 2
    },
    {
      "name": "adx",
      "period": 14
    },
    {
      "name": "ema",
      "period": 50
    },
    {
      "name": "ema",
      "period": 20
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "name": "bollinger_bands",
      "period": 20,
      "std_dev": 2
    },
    {
      "name": "adx",
      "period": 14
    }
  ]
}

Parsed strategy

{
  "data_dependencies": [
    {
      "symbol": "STOCK:SJM",
      "timeframe": "1d"
    },
    {
      "symbol": "STOCK:HSY",
      "timeframe": "1d"
    },
    {
      "symbol": "STOCK:GIS",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "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_1_sjm",
      "name": "Confirmed Pullback Recovery Long (SJM@1d)",
      "priority": 1,
      "trade_symbol": "STOCK:SJM"
    },
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "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_1_hsy",
      "name": "Confirmed Pullback Recovery Long (HSY@1d)",
      "priority": 2,
      "trade_symbol": "STOCK:HSY"
    },
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "crossed_above",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 50
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "crossed_above",
          "right": {
            "type": "constant",
            "value": 45
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "lower",
            "indicator": {
              "name": "bollinger_bands",
              "period": 20,
              "std_dev": 2
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "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_1_gis",
      "name": "Confirmed Pullback Recovery Long (GIS@1d)",
      "priority": 3,
      "trade_symbol": "STOCK:GIS"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_sjm",
      "name": "Overbought Momentum Exit (SJM@1d)",
      "priority": 1,
      "purpose": "signal",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_hsy",
      "name": "Overbought Momentum Exit (HSY@1d)",
      "priority": 2,
      "purpose": "signal",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 70
          }
        }
      ],
      "enabled": true,
      "id": "exit_1_gis",
      "name": "Overbought Momentum Exit (GIS@1d)",
      "priority": 3,
      "purpose": "signal",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "holding_period_bars",
            "type": "position"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "type": "constant",
            "value": 60
          }
        }
      ],
      "enabled": true,
      "id": "exit_2_time",
      "name": "Time Stop at 60 Days",
      "priority": 50,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_sjm",
      "name": "TP: Near Resistance[2] (SJM@1d)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_hsy",
      "name": "TP: Near Resistance[2] (HSY@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 2,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3_gis",
      "name": "TP: Near Resistance[2] (GIS@1d)",
      "priority": 98,
      "purpose": "take_profit",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_sjm",
      "name": "SL: Close Below Support[2] (SJM@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_hsy",
      "name": "SL: Close Below Support[2] (HSY@1d)",
      "priority": 101,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4_gis",
      "name": "SL: Close Below Support[2] (GIS@1d)",
      "priority": 102,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:GIS"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:SJM",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_sjm",
      "name": "SL: Fib Retracement 78.6% (SJM@1d)",
      "priority": 103,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:SJM"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:HSY",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_hsy",
      "name": "SL: Fib Retracement 78.6% (HSY@1d)",
      "priority": 104,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:HSY"
    },
    {
      "applies_to": "long",
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "STOCK:GIS",
              "timeframe": "1d"
            },
            "ratio": 786,
            "type": "fibonacci_retracement"
          }
        }
      ],
      "enabled": true,
      "id": "exit_5_gis",
      "name": "SL: Fib Retracement 78.6% (GIS@1d)",
      "priority": 105,
      "purpose": "stop_loss",
      "target_symbol": "STOCK:GIS"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "fib_stop_ratio": 786,
      "risk_percent": 2.2925,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 2
}

Strategy instructions

Trading agent generated from recommendation idea 'July's spending data showed households concentrating their purchases in essentials, with discretionary outlays clearly decelerating. JM Smucker just raised its full-year sales and profit outlook on growth in Uncrustables and coffee — exactly the kind of c'. Thesis: July's spending data showed households concentrating their purchases in essentials, with discretionary outlays clearly decelerating. JM Smucker just raised its full-year sales and profit outlook on growth in Uncrustables and coffee — exactly the kind of cheap, habitual purchases people keep making even when budgets tighten. Meanwhile department-store peers like Kohl's and Ross are only holding steady, confirming the shift toward the pantry and away from the mall. When a staples company raises guidance into a soft-consumer backdrop, its stock tends to keep working as investors rotate toward safety.

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 dated rule snapshot above shows the conditions evaluated at that time. It does not prove a current trigger or executed trade.
  • 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