Original query:

WITH s AS (SELECT symbol from symbols)
  SELECT s.symbol AS symbol,
   CAST(extract(epoch FROM l.time) AS INTEGER) AS time,
   (SELECT closing_price FROM tickers t WHERE t.symbol = s.symbol AND time > now()-interval '1 day' ORDER BY time ASC LIMIT 1) AS opening_price,
   l.closing_price AS closing_price,
   m.max AS highest_price,
   m.min AS lowest_price,
   l.volume_left AS volume_left,
   l.volume_right AS volume_right,
   l.market_cap AS market_cap,
   coalesce(l.change_1h, 0) AS change_1h,
   coalesce(l.change_7d, 0) AS change_7d,
   coalesce(l.change_1m, 0) AS change_1m,
   coalesce(l.change_1y, 0) AS change_1y
  FROM s,
  LATERAL (SELECT time, symbol, closing_price, volume_left, volume_right, market_cap, change_1h, change_7d, change_1m, change_1y FROM tickers t WHERE t.symbol = s.symbol AND time > now()-interval '1 day' ORDER BY time DESC LIMIT 1) AS l,
  LATERAL (SELECT max(closing_price), min(closing_price) FROM tickers t WHERE t.symbol = s.symbol AND time > now()-interval '1 day') AS m;

Prettified:

WITH s AS (
  SELECT
    "symbol"
  FROM
    "symbols"
)
SELECT
  "s"."symbol" AS symbol,
  date_part('epoch', "l"."time")::int AS time,
  (SELECT "closing_price" FROM "tickers" t WHERE "t"."symbol" = "s"."symbol" AND "time" > (now() - '1 day'::interval) ORDER BY "time" ASC LIMIT 1) AS opening_price,
  "l"."closing_price" AS closing_price,
  "m"."max" AS highest_price,
  "m"."min" AS lowest_price,
  "l"."volume_left" AS volume_left,
  "l"."volume_right" AS volume_right,
  "l"."market_cap" AS market_cap,
  COALESCE("l"."change_1h", 0) AS change_1h,
  COALESCE("l"."change_7d", 0) AS change_7d,
  COALESCE("l"."change_1m", 0) AS change_1m,
  COALESCE("l"."change_1y", 0) AS change_1y
FROM
  "s",
  (
    SELECT
      "time",
      "symbol",
      "closing_price",
      "volume_left",
      "volume_right",
      "market_cap",
      "change_1h",
      "change_7d",
      "change_1m",
      "change_1y"
    FROM
      "tickers" t
    WHERE
      "t"."symbol" = "s"."symbol" AND
      "time" > (now() - '1 day'::interval)
    ORDER BY
      "time" DESC
    LIMIT
      1
  ) l,
  (
    SELECT
      max("closing_price"),
      min("closing_price")
    FROM
      "tickers" t
    WHERE
      "t"."symbol" = "s"."symbol" AND
      "time" > (now() - '1 day'::interval)
  ) m