Loading…
Public trading strategy

Fox-Roku merger creates a streaming giant — play the deal spread and the ad-tech

Created

Thesis

When a buyout is announced, the target company's stock usually jumps close to the offer price. But deals take months to close, and sometimes they fall through. If you believe regulators will approve this merger without issues, buying Roku now lets you collect the 'deal spread'—the gap between today's price and the final buyout price. Meanwhile, other ad-supported streaming platforms could also catch a bid as investors look for the next potential takeover targets.

Strategy approach

Build a merger arbitrage strategy that enters long ROKU on the daily timeframe. Hold position and capture the spread to the $22B buyout valuation. Exit if the stock drops more than 8% below entry (deal break risk) or if the stock reaches the announced buyout price.

Markets and timeframes

Latest published rule evaluation

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

ROKU · 1d

3 of 3 published entry conditions marked met.

  • RSI (14) below 65 — met
  • Price above EMA (21) — met
  • MACD (12,26,9) above 0 — 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: RSI/VWAP/EMA/MACD Signal Long (ROKU@1d) (6 conditions)
  • Exit: TP: Near Resistance[1] (ROKU@1d) (1 condition)
  • Exit: TP: Near Resistance[1] (ROKU@1d) (1 condition)
  • Exit: TP: Fib Extension 127.2% (ROKU@1d) (1 condition)
  • Exit: SL: Below Support[2] (ROKU@1d) (1 condition)

Shared strategy rules

Rule configuration

{
  "data_dependencies": [
    {
      "symbol": "ROKU",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 65
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "vwap"
            },
            "type": "indicator"
          }
        },
        {
          "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": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 21
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "field": "line",
            "indicator": {
              "fast": 12,
              "name": "macd",
              "signal": 9,
              "slow": 26
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1",
      "name": "RSI/VWAP/EMA/MACD Signal Long (ROKU@1d)",
      "priority": 1,
      "trade_symbol": "ROKU"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1",
      "name": "TP: Near Resistance[1] (ROKU@1d)",
      "priority": 1,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2",
      "name": "TP: Near Resistance[1] (ROKU@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "ROKU"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "ratio": 1272,
            "type": "fibonacci_extension"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "TP: Fib Extension 127.2% (ROKU@1d)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "ROKU"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4",
      "name": "SL: Below Support[2] (ROKU@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "ROKU"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "risk_percent": 2,
      "support_stop_rank": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 1
}

Indicator configuration

{
  "indicators": [
    {
      "name": "ema",
      "period": 21
    },
    {
      "name": "rsi",
      "period": 14
    },
    {
      "fast": 12,
      "name": "macd",
      "signal": 9,
      "slow": 26
    },
    {
      "name": "vwap"
    }
  ]
}

Parsed strategy

{
  "data_dependencies": [
    {
      "symbol": "ROKU",
      "timeframe": "1d"
    }
  ],
  "entry_rules": [
    {
      "conditions": [
        {
          "left": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "rsi",
              "period": 14
            },
            "type": "indicator"
          },
          "operator": "less_than",
          "right": {
            "type": "constant",
            "value": 65
          }
        },
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "vwap"
            },
            "type": "indicator"
          }
        },
        {
          "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": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "indicator": {
              "name": "ema",
              "period": 21
            },
            "type": "indicator"
          }
        },
        {
          "left": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "field": "line",
            "indicator": {
              "fast": 12,
              "name": "macd",
              "signal": 9,
              "slow": 26
            },
            "type": "indicator"
          },
          "operator": "greater_than",
          "right": {
            "type": "constant",
            "value": 0
          }
        }
      ],
      "direction": "long",
      "enabled": true,
      "id": "entry_1",
      "name": "RSI/VWAP/EMA/MACD Signal Long (ROKU@1d)",
      "priority": 1,
      "trade_symbol": "ROKU"
    }
  ],
  "exit_rules": [
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_1",
      "name": "TP: Near Resistance[1] (ROKU@1d)",
      "priority": 1,
      "purpose": "signal"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than_or_equal",
          "right": {
            "rank": 1,
            "type": "resistance_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_2",
      "name": "TP: Near Resistance[1] (ROKU@1d)",
      "priority": 97,
      "purpose": "take_profit",
      "target_symbol": "ROKU"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "greater_than",
          "right": {
            "chart_ref": {
              "symbol": "ROKU",
              "timeframe": "1d"
            },
            "ratio": 1272,
            "type": "fibonacci_extension"
          }
        }
      ],
      "enabled": true,
      "id": "exit_3",
      "name": "TP: Fib Extension 127.2% (ROKU@1d)",
      "priority": 96,
      "purpose": "take_profit",
      "target_symbol": "ROKU"
    },
    {
      "applies_to": "both",
      "conditions": [
        {
          "left": {
            "field": "close",
            "type": "price"
          },
          "operator": "less_than",
          "right": {
            "rank": 2,
            "type": "support_level"
          }
        }
      ],
      "enabled": true,
      "id": "exit_4",
      "name": "SL: Below Support[2] (ROKU@1d)",
      "priority": 100,
      "purpose": "stop_loss",
      "target_symbol": "ROKU"
    }
  ],
  "position_sizing": {
    "max_position_percent": 25,
    "method": {
      "risk_percent": 2,
      "support_stop_rank": 2,
      "type": "fixed_risk"
    },
    "min_position_value": 100
  },
  "trigger_timeframe": "1d",
  "version": 1
}

Strategy instructions

Trading agent generated from recommendation idea 'Fox-Roku merger creates a streaming giant — play the deal spread and the ad-tech ripple effect'. Thesis: When a buyout is announced, the target company's stock usually jumps close to the offer price. But deals take months to close, and sometimes they fall through. If you believe regulators will approve this merger without issues, buying Roku now lets you collect the 'deal spread'—the gap between today's price and the final buyout price. Meanwhile, other ad-supported streaming platforms could also catch a bid as investors look for the next potential takeover targets.

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