📂Trader P&L
Catalyst Profiteers
This SQL attempts to see who is profiting from any given events.
In this example, the token is CHZ, which pumped as the World Cup approaches.
Question:
Which addresses “profited” the most between 27 June - Nov 01?
SQL Code:
--------------------------------------------------------------
-- top profit (or roi) on CHZ at end of given time range
-- roi calculation based on USD spent within time range
-- but realised profit could originate from purchases before time range
--------------------------------------------------------------
SELECT
trader,
SUM(bought_usd) AS invested,
SUM(block_hour_profit - block_hour_fees_usd) AS abs_profit,
SAFE_DIVIDE(SUM(block_hour_profit - block_hour_fees_usd),SUM(bought_usd))*100 AS pct_roi
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
DATE(block_hour) BETWEEN DATE("2022-06-27") AND DATE("2022-11-01")
AND token = "0x3506424f91fd33084466f402d5d97f05f8e3b4af"--chz
GROUP BY trader
ORDER BY abs_profit DESC -- ORDER BY pct_roi DESC
--------------------------------------------------------------
--------------------------------------------------------------
-- Top ROI adjusted by amount spent
-- roi calculation based on USD spent within time range
-- but realised profit could originate from purchases before time range
--------------------------------------------------------------
SELECT
trader,
SUM(bought_usd) AS invested,
SUM(block_hour_profit - block_hour_fees_usd) AS abs_profit,
SAFE_DIVIDE(
SUM(block_hour_profit - block_hour_fees_usd),
SUM(bought_usd) * SAFE_DIVIDE(SUM(valid_sold_token),SUM(bought_token))
)*100 AS sale_adjusted_pct_roi
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
DATE(block_hour) BETWEEN DATE("2022-06-27") AND DATE("2022-11-01")
AND token = "0x3506424f91fd33084466f402d5d97f05f8e3b4af"--chz
GROUP BY trader
ORDER BY sale_adjusted_pct_roi DESC
--------------------------------------------------------------
--------------------------------------------------------------
-- max achieved profit on CHZ in given time range (but by nov 1 might be lower)
--------------------------------------------------------------
WITH profits AS (
SELECT
block_hour,
trader,
SUM(block_hour_profit - block_hour_fees_usd) OVER (
PARTITION BY trader
ORDER BY block_hour ASC
) AS cumulative_profit_at_block_hour
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
DATE(block_hour) BETWEEN DATE("2022-06-27") AND DATE("2022-11-01")
AND token = "0x3506424f91fd33084466f402d5d97f05f8e3b4af"--chz
)
SELECT *
FROM profits
WHERE cumulative_profit_at_block_hour = (
SELECT MAX(cumulative_profit_at_block_hour)
FROM profits
)
--------------------------------------------------------------
--------------------------------------------------------------
-- top volume on CHZ in given time range
--------------------------------------------------------------
SELECT
trader,
SUM(bought_usd) + SUM(sold_usd) AS volume
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
DATE(block_hour) BETWEEN DATE("2022-06-27") AND DATE("2022-11-01")
AND token = "0x3506424f91fd33084466f402d5d97f05f8e3b4af"--chz
GROUP BY trader
ORDER BY volume DESC
LIMIT 1
--------------------------------------------------------------
Token Leaders
Question
For all traders of $LDO - which addresses have profited the most?
SQL Code:
--------------------------------------------------------------
-- highest LDO pnl at current time
--------------------------------------------------------------
WITH latest_trade AS (
SELECT
trader,
MAX(block_hour) AS block_hour
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
token = "0x5a98fcbea516cf06857215779fd812ca3bef1b32"--LDO
GROUP BY trader
)
SELECT
trader,
total_profit
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
INNER JOIN latest_trade USING(trader, block_hour)
WHERE
token = "0x5a98fcbea516cf06857215779fd812ca3bef1b32"--LDO
ORDER BY total_profit DESC
LIMIT 1
--------------------------------------------------------------
--------------------------------------------------------------
-- max achieved LDO pnl (current could be lower if there's more recent trades)
--------------------------------------------------------------
SELECT
trader,
total_profit
FROM
`nansen-query.aggregates_ethereum.dex_trader_stats_by_hour_token`
WHERE
token = "0x5a98fcbea516cf06857215779fd812ca3bef1b32"--LDO
ORDER BY total_profit DESC
LIMIT 1
--------------------------------------------------------------
Last updated