https://mybinder.org/badge_logo.svg

PancakeSwap momentum trading, version 1

This is an example strategy backtesting how to momentum trading on PancakeSwap.

The algorithm presented in this playbook does not consider liquidity, price impact or scam tokens. Its performance is totally unrealistic. The purpose of this playbook is to demonstrate that naive backtesting will yield to unlikely results.

Strategy and backtesting parameters

Here we define all parameters that affect the backtest outcome.

[1]:
import seaborn
import pandas as pd
from tradingstrategy.timebucket import TimeBucket

# The starting date of the backtest
# Note: PancakeSwap v2 deployed Apr 2021
start = pd.Timestamp('2021-05-01 00:00')

# The ending date of the backtest
end = pd.Timestamp('2021-06-30 00:00')

# Start backtesting with $10k in hand
initial_cash = 10_000

# Prefiltering to limit the pair set to speed up computations
# How many USD all time buy volume the pair must have had
# to be included in the backtesting
prefilter_min_buy_volume = 5_000_000

# When this USD threshold of bonding curve liquidity provided is reached,
# we ape in to the token on a daily close.
min_liquidity = 250_000

# How many tokens we can hold in our portfolio
# If there are more new tokens coming to market per day,
# we just ignore those with less liquidity
max_assets_per_portfolio = 4

# How many % of all value we hold in cash all the time,
# so that we can sustain hits
cash_buffer = 0.33

# Use daily candles to run the algorithm
candle_time_frame = TimeBucket.d1

# Print algorithm internal state while it is running to debug issues
debug = False

Creating trading universe

First let’s import libraries and initialise our dataset client.

[2]:
try:
    import tradingstrategy
except ImportError:
    %pip install trading-strategy
    import site
    site.main()

from tradingstrategy.client import Client

client = Client.create_jupyter_client()
Started Trading Strategy in Jupyter notebook environment, configuration is stored in /Users/moo/.tradingstrategy
[3]:
# If you need to enable loger for QTrader debugging
import sys
import logging

logger = logging.getLogger("Notebook")
#logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.info("Logging has been set up")

Let’s create a pair universe for PancakeSwap. We will create a dataset of 2d candles that trade on PancakeSwap on Binance Smart Chain.

[4]:
import pandas as pd
from tradingstrategy.chain import ChainId
from tradingstrategy.pair import PandasPairUniverse

columnar_pair_table = client.fetch_pair_universe()

exchange_universe = client.fetch_exchange_universe()

all_pairs_dataframe = columnar_pair_table.to_pandas()

our_exchange = exchange_universe.get_by_chain_and_slug(ChainId.bsc, "pancakeswap-v2")
our_pairs: pd.DataFrame = all_pairs_dataframe.loc[
    (all_pairs_dataframe['exchange_id'] == our_exchange.exchange_id) &  # Trades on Sushi
    (all_pairs_dataframe['buy_volume_all_time'] > 500_000)  # 500k min buys
]

# Create a Python set of pair ids
wanted_pair_ids = our_pairs["pair_id"]

# Make the trading pair data easily accessible
pair_universe = PandasPairUniverse(our_pairs)
pair_universe.build_index()

print(f"Our trading universe has {len(pair_universe.get_all_pair_ids())} pairs that meet the prefiltering criteria")
Our trading universe has 5398 pairs that meet the prefiltering criteria

Construct backtesting universe

Get daily candles and filter them against our wanted pair set.

We take all trading pairs registered on (as the writing of this all Uniswap v2 compatible exchanges). As the number of trading pairs is very high (50k+). Most of these trading pairs are random noise and crap. We reduce the number of trading pairs to speed up the backtest simulation, but this also introduce some survivorship bias.

[5]:
from tradingstrategy.frameworks.qstrader import prepare_candles_for_qstrader
from tradingstrategy.liquidity import GroupedLiquidityUniverse
from tradingstrategy.pair import PandasPairUniverse
from tradingstrategy.timebucket import TimeBucket
from tradingstrategy.candle import GroupedCandleUniverse
from tradingstrategy.exchange import ExchangeUniverse, Exchange


def prefilter_pairs(all_pairs_dataframe: pd.DataFrame, exchange: Exchange) -> pd.DataFrame:
    """Get rid of pairs that we definitely are not interested in.

    This will greatly speed up the later backtesting computations, as we do not need to
    calculate the opening volumes for thousands of pairs.

    Note that may induce survivorship bias - we use this mainly
    to ensure the backtetst completes in a reasonable time.
    """
    pairs: pd.DataFrame = all_pairs_dataframe.loc[
        (all_pairs_dataframe['exchange_id'] == exchange.exchange_id) &
        (all_pairs_dataframe['buy_volume_all_time'] > prefilter_min_buy_volume)  # 500k min buys
    ]
    return pairs

exchange_universe = client.fetch_exchange_universe()

# Do some test calculations for a single pair
# Note that PancakeSwap has two different deployments:
# you most likely want v2
our_exchange = exchange_universe.get_by_chain_and_slug(ChainId.bsc, "pancakeswap-v2")
assert our_exchange, "Could not find the DEX"

# Decompress the pair dataset to Python map
columnar_pair_table = client.fetch_pair_universe()

# Make our universe 40x smaller and faster to compute
filtered_pairs = prefilter_pairs(columnar_pair_table.to_pandas(), our_exchange)

# Make the trading pair data easily accessible
pair_universe = PandasPairUniverse(filtered_pairs)
pair_universe.build_index()
wanted_pair_ids = pair_universe.get_all_pair_ids()

# Get daily candles as Pandas DataFrame
all_candles = client.fetch_all_candles(candle_time_frame).to_pandas()
filtered_candles = all_candles.loc[all_candles["pair_id"].isin(wanted_pair_ids)]
candle_universe = GroupedCandleUniverse(prepare_candles_for_qstrader(filtered_candles), timestamp_column="Date")

all_liquidity = client.fetch_all_liquidity_samples(TimeBucket.d1).to_pandas()
filtered_liquidity = all_liquidity.loc[all_liquidity["pair_id"].isin(wanted_pair_ids)]
filtered_liquidity = filtered_liquidity.set_index(filtered_liquidity["timestamp"])
liquidity_universe = GroupedLiquidityUniverse(filtered_liquidity)

data_start, data_end = candle_universe.get_timestamp_range()

print(f"""
Datafeeds set up.

Time periods
- Backtesting: {start} - {end}
- Candle data: {data_start} - {data_end}

Our trading universe for {candle_time_frame.value} candles is
- {len(wanted_pair_ids)} pairs
- {len(filtered_candles)} candles
- {len(filtered_liquidity)} liquidity samples

The source data for {candle_time_frame.value} has
- {len(columnar_pair_table)} pairs
- {len(all_candles)} candles
""")

# Check that our backtesting time range and timestamp iterator matches
# with the data we have
assert len(candle_universe.get_all_samples_by_timestamp(start)) > 0, f"No candles at start: {start}"
assert len(candle_universe.get_all_samples_by_timestamp(end)) > 0, f"No candles at end: {end}"
Datafeeds set up.

Time periods
- Backtesting: 2021-05-01 00:00:00 - 2021-06-30 00:00:00
- Candle data: 2021-04-23 00:00:00 - 2021-12-09 00:00:00

Our trading universe for 1d candles is
- 1498 pairs
- 177719 candles
- 142096 liquidity samples

The source data for 1d has
- 77581 pairs
- 3759703 candles

Creating the alpha model

[6]:
from typing import Dict
from collections import Counter
from collections import defaultdict

from qstrader.alpha_model.alpha_model import AlphaModel


def fix_qstrader_date(ts: pd.Timestamp) -> pd.Timestamp:
    """Quick-fix for Qstrader to use its internal hour system.

    TODO: Fix QSTrader framework in long run
    """
    return ts.replace(hour=0, minute=0)


class MomentumAlphaModel(AlphaModel):
    """An alpha model that ranks pairs by the daily upwords momentum.

    A AlphaModel that provides a single scalar forecast
    value for each Asset in the Universe.

    Parameters
    ----------
    signal_weights : `dict{str: float}`
        The signal weights per asset symbol.
    universe : `Universe`, optional
        The Assets to make signal forecasts for.
    data_handler : `DataHandler`, optional
        An optional DataHandler used to preserve interface across AlphaModels.
    """

    def __init__(
            self,
            exchange_universe: ExchangeUniverse,
            pair_universe: PandasPairUniverse,
            candle_universe: GroupedCandleUniverse,
            liquidity_universe: GroupedLiquidityUniverse,
            min_liquidity,
            max_assets_per_portfolio,
            data_handler=None
    ):
        self.exchange_universe = exchange_universe
        self.pair_universe = pair_universe
        self.candle_universe = candle_universe
        self.liquidity_universe = liquidity_universe
        self.data_handler = data_handler
        self.min_liquidity = min_liquidity
        self.max_assets_per_portfolio = max_assets_per_portfolio
        self.liquidity_reached_state = {}

    def is_funny_price(self, usd_unit_price: float) -> bool:
        """Avoid taking positions in tokens with too funny prices.

        Might cause good old floating point to crap out.
        """
        return (usd_unit_price < 0.0000001) or (usd_unit_price > 100_000)

    def translate_pair(self, pair_id: int) -> str:
        """Make pari ids human readable for logging."""
        pair_info = self.pair_universe.get_pair_by_id(pair_id)
        return pair_info.get_friendly_name(self.exchange_universe)

    def __call__(self, ts: pd.Timestamp, debug_details: Dict) -> Dict[int, float]:
        """
        Produce the dictionary of scalar signals for
        each of the Asset instances within the Universe.

        :param ts: Candle timestamp iterator

        :return: Dict(pair_id, alpha signal)
        """

        ts = fix_qstrader_date(ts)

        # Calculate momentum based on the candles day before
        ts_yesterday = ts - pd.Timedelta(days=1)

        # For each pair, check the the diff between opening and closingn price
        timepoint_candles = self.candle_universe.get_all_samples_by_timestamp(ts_yesterday)
        alpha_signals = Counter()

        if len(timepoint_candles) == 0:
            print(f"No candles at {ts}")

        # Iterate over
        ts_: pd.Timestamp
        candle: pd.Series

        extra_debug_data = defaultdict(dict)

        for ts_, candle in timepoint_candles.iterrows():
            # QStrader data frames are using capitalised version of OHLCV core variables
            open = candle["Open"]
            close = candle["Close"]
            pair_id = candle["pair_id"]

            if self.is_funny_price(open) or self.is_funny_price(close):
                # This trading pair is too funny that we do not want to play with it
                continue

            momentum = (close - open) / open
            momentum = max(0, momentum)
            alpha_signals[pair_id] = momentum
            assert pair_universe.pair_map

            pair = pair_universe.get_pair_by_id(pair_id)
            extra_debug_data[pair_id] = {
                "pair": pair,
                "open": open,
                "close": close,
                "momentum": momentum
            }

        # Pick top 10 momentum asset
        top_signals = alpha_signals.most_common(max_assets_per_portfolio)

        # Debug dump status
        if debug:
            for pair_id, momentum in top_signals:
                debug_data = extra_debug_data[pair_id]
                pair = debug_data["pair"]
                print(f"{ts}: Signal for {pair.get_ticker()} (#{pair.pair_id}) is {momentum * 100:,.2f}%, open: {debug_data['open']:,.8f}, close: {debug_data['close']:,.8f}")

        debug_details["signals"]: top_signals.copy()

        return dict(top_signals)

print("Alpha model created")
Alpha model created

Setting up the strategy backtest

We have alpha model and trading universe set up, so next we will create a backtest simulation where we feed all the data we set up for the backtest session.

[7]:
from qstrader.asset.universe.static import StaticUniverse
from qstrader.data.backtest_data_handler import BacktestDataHandler
from qstrader.simulation.event import SimulationEvent
from qstrader.simulation.everyday import EverydaySimulationEngine
from qstrader.trading.backtest import BacktestTradingSession
from tradingstrategy.frameworks.qstrader import TradingStrategyDataSource

data_source = TradingStrategyDataSource(exchange_universe, pair_universe, candle_universe)

strategy_assets = list(data_source.asset_bar_frames.keys())
strategy_universe = StaticUniverse(strategy_assets)

data_handler = BacktestDataHandler(strategy_universe, data_sources=[data_source])

# Construct an Alpha Model that simply provides a fixed
# signal for the single GLD ETF at 100% allocation
# with a backtest that does not rebalance
strategy_alpha_model = MomentumAlphaModel(
    exchange_universe,
    pair_universe,
    candle_universe,
    liquidity_universe,
    min_liquidity,
    max_assets_per_portfolio)

strategy_backtest = BacktestTradingSession(
    start,
    end,
    strategy_universe,
    strategy_alpha_model,
    initial_cash=initial_cash,
    rebalance='daily',
    long_only=True,  # Spot markets do not support shorting
    cash_buffer_percentage=cash_buffer,
    data_handler=data_handler,
    simulation_engine=EverydaySimulationEngine(start, end)
)

print("Strategy set up complete")

Initialising simulated broker "Backtest Simulated Broker Account"...
(2021-05-01 00:00:00) - portfolio creation: Portfolio "000001" created at broker "Backtest Simulated Broker Account"
(2021-05-01 00:00:00) - subscription: 10000.00 subscribed to portfolio "000001"
Strategy set up complete

Running the strategy backtest

Next we run the strategy. This can take potentially many minutes, as it crunches through some data.

The notebook displays a HTML progress bar is displayed during the run, and the estimation when the simulation is complete.

[8]:
from tqdm.autonotebook import tqdm

max_events = len(strategy_backtest.prefetch_simulation_events())

# Run the test with a nice progress bar
with tqdm(total=max_events) as progress_bar:
    def progress_callback(idx: int, dt: pd.Timestamp, evt: SimulationEvent):
        progress_bar.set_description(f"Simulation at day {dt.date()}")
        progress_bar.update(1)

    event_stream = strategy_backtest.run(progress_callback=progress_callback, logging=True)

print("Backtest complete")
Backtest complete

Analyzing the strategy results

After the strategy is run, we will display charts and statistics on its performance.

[9]:
from tradingstrategy.frameworks.qstrader import analyse_trade_history
from tradingstrategy.frameworks.qstrader import analyse_portfolio_development

# "000001" is the default name given for the default portfolio by QSTrader
portfolio = strategy_backtest.broker.portfolios["000001"]
trade_analysis = analyse_trade_history(portfolio.history)
portfolio_analysis = analyse_portfolio_development(event_stream)

Summary of trades

This displays number of trades, how many we won and lost.

[10]:
from IPython.core.display import HTML
from IPython.display import display

from tradingstrategy.analysis.tradeanalyzer import TradeSummary

cash_left = strategy_backtest.broker.get_total_portfolio_cash_balances()
summary: TradeSummary = trade_analysis.calculate_summary_statistics(initial_cash, cash_left)

display(summary.to_dataframe())
0
Return % 4886714404%
Cash at start $10,000.00
Value at end $488,671,450,357.56
Trade win percent 44%
Total trades done 150
Won trades 65
Lost trades 84
Stop losses triggered 0
Stop loss % of all 0%
Stop loss % of lost 0%
Zero profit trades 1
Positions open at the end 4
Realised profit and loss $488,671,440,357.56
Portfolio unrealised value $327,409,870,959.12
Extra returns on lending pool interest $0.00
Cash left at the end $161,261,579,398.44

Tearsheet chart

Tearsheet displays the portfolio profit and risk over the time.

[11]:
from qstrader.statistics.tearsheet import TearsheetStatistics

tearsheet = TearsheetStatistics(
    strategy_equity=strategy_backtest.get_equity_curve(),
    title=f'Our strategy'
)

# tearsheet.plot_results()

Trade success histogram

Show the distribution of won and lost trades as a histogram.

[12]:
from matplotlib.figure import Figure
from tradingstrategy.analysis.tradeanalyzer import expand_timeline
from tradingstrategy.analysis.profitdistribution import plot_trade_profit_distribution

timeline = trade_analysis.create_timeline()
expanded_timeline, _ = expand_timeline(exchange_universe, pair_universe, timeline)

fig: Figure = plot_trade_profit_distribution(expanded_timeline, bins=20)
../../_images/programming_algorithms_pancakeswap-momentum-naive_22_0.png

Trading timeline

The timeline displays individual trades the strategy made. - This is good for figuring out if the algorithm is doing bad trades and how those bad trades look like

[13]:
from tradingstrategy.analysis.tradeanalyzer import expand_timeline

# Generate raw timeline of position open and close events
timeline = trade_analysis.create_timeline()

# Expand timeline with human-readable exchange and pair symbols
expanded_timeline, apply_styles = expand_timeline(
    exchange_universe,
    pair_universe,
    timeline,
    hidden_columns=[])

# Do not truncate the row output
with pd.option_context("display.max_row", None):
    display(apply_styles(expanded_timeline))
Id Remarks Opened at Duration Exchange Base asset Quote asset Position max size PnL USD PnL % PnL % raw Open price USD Close price USD Trade count
1 2021-05-03 21:00:00 1 days PancakeSwap v2 ALU WBNB $95.73 $-10.26 -19.37% -0.193665 $0.024134 $0.019460 2
2 2021-05-03 21:00:00 1 days PancakeSwap v2 ALLEY WBNB $41.84 $-2.88 -12.86% -0.128630 $3.726689 $3.247323 2
3 2021-05-03 21:00:00 1 days PancakeSwap v2 AQUA WBNB $15,009.33 $2,113.37 32.78% 0.327757 $3,223.989502 $4,280.674805 2
7 2021-05-04 21:00:00 1 days PancakeSwap v2 GNT BUSD $2,167.04 $-130.23 -11.34% -0.113374 $0.000113 $0.000100 2
8 2021-05-04 21:00:00 1 days PancakeSwap v2 SCZ BUSD $6,807.93 $350.70 10.86% 0.108623 $0.269321 $0.298575 2
9 2021-05-04 21:00:00 2 days PancakeSwap v2 CATZ WBNB $8,165.16 $5,436.25 398.42% 3.984194 $0.000001 $0.000004 3
10 2021-05-04 21:00:00 1 days PancakeSwap v2 GDOGE WBNB $4,276.88 $-453.89 -19.19% -0.191890 $0.000004 $0.000003 2
15 2021-05-05 21:00:00 1 days PancakeSwap v2 DOP WBNB $7,433.24 $3,572.68 185.09% 1.850861 $0.207825 $0.592481 2
16 2021-05-05 21:00:00 1 days PancakeSwap v2 UFARM WBNB $5,132.77 $-176.25 -6.64% -0.066398 $0.213334 $0.199169 2
17 2021-05-05 21:00:00 1 days PancakeSwap v2 TSX WBNB $3,716.03 $-440.21 -21.18% -0.211830 $0.327624 $0.258223 2
22 2021-05-06 21:00:00 1 days PancakeSwap v2 DOP BUSD $3,596.48 $1,074.43 85.20% 0.852030 $0.592587 $1.097489 2
23 2021-05-06 21:00:00 1 days PancakeSwap v2 STARSHIP WBNB $9,744.04 $-2,542.02 -41.38% -0.413806 $0.268571 $0.157435 2
24 2021-05-06 21:00:00 1 days PancakeSwap v2 DEXI WBNB $16,481.97 $7,857.53 182.22% 1.822153 $0.000001 $0.000002 2
25 2021-05-06 21:00:00 1 days PancakeSwap v2 SPERM WBNB $5,355.41 $1,641.42 88.39% 0.883914 $0.000002 $0.000005 2
30 2021-05-07 21:00:00 3 days PancakeSwap v2 WIN WBNB $9,448.07 $-9,448.06 -100.00% -0.999999 $2,362.017090 $0.001244 2
31 2021-05-07 21:00:00 3 days PancakeSwap v2 NSFW WBNB $262.84 $-255.83 -98.65% -0.986477 $0.000144 $0.000002 2
32 2021-05-07 21:00:00 3 days PancakeSwap v2 GARUDA BUSD $4,372.46 $-2,953.23 -80.63% -0.806267 $4.190900 $0.811916 2
33 2021-05-07 21:00:00 3 days PancakeSwap v2 GARUDA WBNB $4,297.54 $-2,927.36 -81.04% -0.810353 $4.264996 $0.808843 2
38 2021-05-10 21:00:00 1 days PancakeSwap v2 POC WBNB $18,536.86 $3,754.99 50.81% 0.508053 $0.000026 $0.000040 2
39 2021-05-10 21:00:00 1 days PancakeSwap v2 ShibaPup WBNB $850.30 $149.90 42.80% 0.428024 $17.510134 $25.004894 2
40 2021-05-10 21:00:00 1 days PancakeSwap v2 SAFEDOG WBNB $1,318.13 $275.14 52.76% 0.527604 $0.000059 $0.000090 2
41 2021-05-10 21:00:00 1 days PancakeSwap v2 HFS BUSD $393.64 $-68.59 -29.68% -0.296794 $21.010508 $14.774714 2
46 2021-05-11 21:00:00 1 days PancakeSwap v2 TUTU WBNB $1,944.82 $-41.16 -4.14% -0.041448 $0.004997 $0.004790 2
47 2021-05-11 21:00:00 1 days PancakeSwap v2 BNX BUSD $5,976.32 $2,405.27 134.71% 1.347095 $0.784157 $1.840491 2
48 2021-05-11 21:00:00 1 days PancakeSwap v2 MOONARCH WBNB $18,699.05 $2,155.24 26.05% 0.260550 $0.033904 $0.042738 2
49 2021-05-11 21:00:00 1 days PancakeSwap v2 SLF WBNB $590.90 $157.01 72.37% 0.723731 $0.011024 $0.019002 2
54 2021-05-12 21:00:00 1 days PancakeSwap v2 ROVER WBNB $9,863.24 $-6,194.61 -77.15% -0.771537 $0.000027 $0.000006 2
55 2021-05-12 21:00:00 1 days PancakeSwap v2 SHIBM WBNB $7,405.19 $-4,260.92 -73.05% -0.730478 $0.196359 $0.052923 2
56 2021-05-12 21:00:00 1 days PancakeSwap v2 BALLS WBNB $512.24 $-71.80 -24.59% -0.245869 $0.000008 $0.000006 2
57 2021-05-12 21:00:00 1 days PancakeSwap v2 ORT WBNB $656.33 $162.93 66.04% 0.660427 $0.202879 $0.336865 2
62 2021-05-13 21:00:00 1 days PancakeSwap v2 SBF BUSD $1,181.09 $-23.25 -3.86% -0.038614 $0.018537 $0.017822 2
63 2021-05-13 21:00:00 1 days PancakeSwap v2 ETCH WBNB $14,517.28 $5,785.34 132.51% 1.325098 $0.000013 $0.000030 2
64 2021-05-13 21:00:00 4 days PancakeSwap v2 SMEGM WBNB $94,575.54 $90,621.92 4584.26% 45.842572 $0.000015 $0.000942 3
65 2021-05-13 21:00:00 1 days PancakeSwap v2 DCH WBNB $729.80 $-293.59 -57.38% -0.573766 $0.168932 $0.072005 2
70 2021-05-14 21:00:00 3 days PancakeSwap v2 SUBX WBNB $11,380.91 $2,872.06 67.51% 0.675077 $0.016509 $0.027654 2
71 2021-05-14 21:00:00 3 days PancakeSwap v2 LAS WBNB $7,054.48 $168.05 4.88% 0.048807 $0.000000 $0.000000 2
72 2021-05-14 21:00:00 3 days PancakeSwap v2 CORGI WBNB $16,369.13 $11,727.20 505.27% 5.052722 $0.000002 $0.000014 2
77 2021-05-17 21:00:00 1 days PancakeSwap v2 KODA WBNB $1,983.02 $630.64 93.26% 0.932643 $0.000040 $0.000078 2
78 2021-05-17 21:00:00 1 days PancakeSwap v2 BURNC WBNB $6,670.03 $2,880.73 152.05% 1.520453 $0.000019 $0.000048 2
79 2021-05-17 21:00:00 1 days PancakeSwap v2 RACA WBNB $10,399.22 $-4,438.81 -59.83% -0.598302 $0.000084 $0.000034 2
80 2021-05-17 21:00:00 1 days PancakeSwap v2 Dogk WBNB $76,749.15 $-66,734.12 -93.02% -0.930201 $0.005417 $0.000378 2
85 2021-05-18 21:00:00 1 days PancakeSwap v2 FUCKELON WBNB $6,712.80 $-4,051.37 -75.28% -0.752751 $0.000022 $0.000005 2
86 2021-05-18 21:00:00 1 days PancakeSwap v2 FRANK WBNB $31,742.21 $3,284.41 23.08% 0.230827 $55.150780 $67.881042 2
87 2021-05-18 21:00:00 1 days PancakeSwap v2 FRANK BUSD $29,693.15 $3,215.23 24.29% 0.242861 $54.933430 $68.274643 2
88 2021-05-18 21:00:00 1 days PancakeSwap v2 LNCHX WBNB $5,228.88 $-1,752.11 -50.20% -0.501967 $3.362715 $1.674744 2
93 2021-05-19 21:00:00 1 days PancakeSwap v2 BURNC WBNB $2,936.31 $-1,352.47 -63.07% -0.630702 $0.000288 $0.000106 2
94 2021-05-19 21:00:00 1 days PancakeSwap v2 STOPELON WBNB $4,273.84 $439.41 22.92% 0.229191 $0.000030 $0.000037 2
95 2021-05-19 21:00:00 1 days PancakeSwap v2 BT WBNB $31,208.28 $-24,904.00 -88.76% -0.887649 $0.006639 $0.000746 2
96 2021-05-19 21:00:00 1 days PancakeSwap v2 FootballStars WBNB $8,173.95 $-1,319.90 -27.81% -0.278053 $0.000010 $0.000008 2
101 2021-05-20 21:00:00 1 days PancakeSwap v2 ETCH WBNB $57,116.79 $24,381.75 148.96% 1.489643 $0.000008 $0.000020 2
102 2021-05-20 21:00:00 1 days PancakeSwap v2 BAIT WBNB $4,045.92 $-407.68 -18.31% -0.183078 $0.000283 $0.000231 2
105 2021-05-21 21:00:00 3 days PancakeSwap v2 wDEFI BUSD $7,147.91 $-6,519.10 -95.40% -0.953991 $0.133993 $0.006165 2
106 2021-05-21 21:00:00 3 days PancakeSwap v2 wDEFI WBNB $8,515.25 $-7,758.71 -95.35% -0.953512 $0.136643 $0.006352 2
107 2021-05-21 21:00:00 4 days PancakeSwap v2 BARMY WBNB $49,983.39 $16,676.25 100.14% 1.001362 $0.000012 $0.000034 3
108 2021-05-21 21:00:00 3 days PancakeSwap v2 TENDIE WBNB $4,699.16 $-1,540.09 -49.37% -0.493679 $2.095116 $1.060802 2
113 2021-05-24 21:00:00 1 days PancakeSwap v2 upBNB WBNB $67,279.32 $6,577.07 21.67% 0.216699 $0.020154 $0.024522 2
114 2021-05-24 21:00:00 1 days PancakeSwap v2 MIL WBNB $1,895.68 $-50.61 -5.20% -0.052009 $0.000001 $0.000001 2
115 2021-05-24 21:00:00 1 days PancakeSwap v2 CTT WBNB $6,418.88 $2,613.99 137.40% 1.374014 $40.477596 $96.094376 2
120 2021-05-25 21:00:00 1 days PancakeSwap v2 POC WBNB $21,979.81 $-811.56 -7.12% -0.071216 $0.000018 $0.000016 2
121 2021-05-25 21:00:00 1 days PancakeSwap v2 Xpose WBNB $17,398.29 $-2,095.98 -21.50% -0.215035 $0.000184 $0.000145 2
122 2021-05-25 21:00:00 2 days PancakeSwap v2 GUH WBNB $89,639.02 $66,319.02 568.77% 5.687737 $0.012597 $0.136818 3
123 2021-05-25 21:00:00 1 days PancakeSwap v2 PARA WBNB $16,248.54 $-1,035.02 -11.98% -0.119769 $0.155933 $0.137257 2
128 2021-05-26 21:00:00 1 days PancakeSwap v2 wDEFI BUSD $32,453.66 $-4,457.89 -24.15% -0.241545 $0.028247 $0.021424 2
129 2021-05-26 21:00:00 1 days PancakeSwap v2 wDEFI WBNB $30,639.27 $-4,302.51 -24.63% -0.246267 $0.028213 $0.021265 2
130 2021-05-26 21:00:00 1 days PancakeSwap v2 MOOV WBNB $29,240.21 $-4,478.15 -26.56% -0.265621 $0.037157 $0.027287 2
135 2021-05-27 21:00:00 1 days PancakeSwap v2 TLOS WBNB $31,988.02 $-2,745.19 -15.81% -0.158073 $0.385180 $0.324293 2
136 2021-05-27 21:00:00 1 days PancakeSwap v2 LTN WBNB $24,731.30 $-2,521.00 -18.50% -0.185012 $0.000000 $0.000000 2
137 2021-05-27 21:00:00 1 days PancakeSwap v2 SAFEHAMSTERS WBNB $26,947.49 $-4,303.14 -27.54% -0.275396 $0.000008 $0.000006 2
138 2021-05-27 21:00:00 1 days PancakeSwap v2 MLTP BUSD $56,759.23 $1,261.29 4.55% 0.045454 $0.000447 $0.000468 2
143 2021-05-28 21:00:00 3 days PancakeSwap v2 MIL WBNB $59,914.24 $-19,442.17 -49.00% -0.489996 $0.000020 $0.000010 2
144 2021-05-28 21:00:00 3 days PancakeSwap v2 LAS WBNB $7,815.39 $-2,933.34 -54.58% -0.545803 $0.000000 $0.000000 2
145 2021-05-28 21:00:00 3 days PancakeSwap v2 ETCH WBNB $28,448.42 $-3,586.71 -22.39% -0.223924 $0.000020 $0.000015 2
146 2021-05-28 21:00:00 3 days PancakeSwap v2 MNG WBNB $10,819.45 $-4,641.74 -60.04% -0.600437 $0.005167 $0.002064 2
151 2021-05-31 21:00:00 1 days PancakeSwap v2 BOG WBNB $1,728.02 $-265.81 -26.66% -0.266630 $0.000233 $0.000171 2
152 2021-05-31 21:00:00 1 days PancakeSwap v2 VANITY WBNB $7,564.72 $1,357.06 43.72% 0.437221 $0.000964 $0.001385 2
153 2021-05-31 21:00:00 1 days PancakeSwap v2 PINK WBNB $19,038.86 $-2,007.43 -19.08% -0.190763 $0.000088 $0.000071 2
154 2021-05-31 21:00:00 3 days PancakeSwap v2 NOSTA BUSD $167,933.73 $100,589.95 298.74% 2.987357 $0.633275 $4.060474 4
159 2021-06-01 21:00:00 1 days PancakeSwap v2 ROSN WBNB $29,521.98 $-4,475.77 -26.33% -0.263298 $0.393156 $0.289639 2
160 2021-06-01 21:00:00 1 days PancakeSwap v2 KODA WBNB $34,997.40 $5,748.82 39.31% 0.393101 $0.000493 $0.000686 2
161 2021-06-01 21:00:00 1 days PancakeSwap v2 LNCHX WBNB $59,830.69 $7,832.37 30.13% 0.301255 $0.981286 $1.276902 2
166 2021-06-02 21:00:00 1 days PancakeSwap v2 GLX BUSD $99,479.57 $-56,954.57 -72.82% -0.728160 $1.404988 $0.381931 2
167 2021-06-02 21:00:00 1 days PancakeSwap v2 HUNNY WBNB $26,732.30 $-2,185.22 -15.11% -0.151135 $0.273255 $0.231957 2
168 2021-06-02 21:00:00 1 days PancakeSwap v2 BNU WBNB $36,582.21 $2,336.64 13.65% 0.136464 $0.338937 $0.385190 2
173 2021-06-03 21:00:00 1 days PancakeSwap v2 LTN WBNB $21,527.71 $-3,751.46 -29.68% -0.296803 $0.000002 $0.000001 2
174 2021-06-03 21:00:00 1 days PancakeSwap v2 DEXI WBNB $20,372.37 $-7,932.19 -56.05% -0.560488 $0.000025 $0.000011 2
175 2021-06-03 21:00:00 1 days PancakeSwap v2 mBTC WBNB $48,357.39 $8,194.02 40.80% 0.408034 $5.590670 $7.871855 2
176 2021-06-03 21:00:00 1 days PancakeSwap v2 QANX WBNB $61,665.94 $-10,819.83 -29.85% -0.298537 $0.080166 $0.056234 2
181 2021-06-04 21:00:00 3 days PancakeSwap v2 ORK WBNB $19,419.21 $126.49 1.31% 0.013113 $0.920542 $0.932613 2
182 2021-06-04 21:00:00 3 days PancakeSwap v2 GIFT WBNB $22,060.64 $9,279.90 145.22% 1.452169 $0.041932 $0.102825 2
183 2021-06-04 21:00:00 3 days PancakeSwap v2 TENDIE WBNB $13,010.67 $-4,278.37 -49.49% -0.494923 $7.382169 $3.728562 2
184 2021-06-04 21:00:00 3 days PancakeSwap v2 LEAF WBNB $84,311.15 $-13,388.32 -27.41% -0.274072 $0.719691 $0.522444 2
189 2021-06-07 21:00:00 1 days PancakeSwap v2 TRX BUSD $34.02 $-1.11 -6.34% -0.063387 $0.076706 $0.071844 2
190 2021-06-07 21:00:00 1 days PancakeSwap v2 DINA USDT $9.30 $1.22 30.13% 0.301265 $0.000136 $0.000177 2
191 2021-06-07 21:00:00 2 days PancakeSwap v2 DINO BUSD $135,873.50 $-0.00 0.00% 0.000000 $0.000074 $0.000074 3
192 2021-06-07 21:00:00 1 days PancakeSwap v2 WGC WBNB $89.88 $10.87 27.52% 0.275230 $0.877898 $1.119522 2
197 2021-06-08 21:00:00 1 days PancakeSwap v2 STEEL WBNB $2,692.45 $-238.84 -16.30% -0.162960 $0.762961 $0.638629 2
198 2021-06-08 21:00:00 1 days PancakeSwap v2 ROSN WBNB $3,011.65 $101.14 6.95% 0.069498 $0.303685 $0.324791 2
199 2021-06-08 21:00:00 2 days PancakeSwap v2 RBT WBNB $169,497.59 $51,767.93 87.94% 0.879437 $0.229518 $0.415761 3
204 2021-06-09 21:00:00 1 days PancakeSwap v2 TRX BUSD $113,206.31 $1,008.66 1.80% 0.017980 $0.072954 $0.074266 2
205 2021-06-09 21:00:00 1 days PancakeSwap v2 GUH WBNB $51,778.59 $-6,597.03 -22.60% -0.226020 $4.792744 $3.709487 2
206 2021-06-09 21:00:00 1 days PancakeSwap v2 HERO WBNB $16,272.76 $3,834.02 61.65% 0.616465 $0.150952 $0.244008 2
211 2021-06-10 21:00:00 1 days PancakeSwap v2 ZEFU WBNB $33,878.22 $-2,709.54 -14.81% -0.148112 $0.117655 $0.100229 2
212 2021-06-10 21:00:00 1 days PancakeSwap v2 ARV WBNB $64,128.03 $1,359.41 4.33% 0.043315 $0.000000 $0.000000 2
213 2021-06-10 21:00:00 1 days PancakeSwap v2 HUNNY WBNB $56,096.92 $-10,494.65 -31.52% -0.315195 $1.920283 $1.315020 2
214 2021-06-10 21:00:00 1 days PancakeSwap v2 HERO BUSD $29,836.31 $-7,058.22 -38.26% -0.382616 $0.243239 $0.150172 2
219 2021-06-11 21:00:00 3 days PancakeSwap v2 HARD WBNB $8.04 $-1.46 -30.66% -0.306619 $1.187088 $0.823104 2
220 2021-06-11 21:00:00 3 days PancakeSwap v2 FTM WBNB $10,652,544.31 $10,475,223.60 11815.00% 118.150032 $93.622337 $11,155.104492 2
221 2021-06-11 21:00:00 3 days PancakeSwap v2 Nora WBNB $12.39 $0.24 3.92% 0.039191 $0.006700 $0.006963 2
222 2021-06-11 21:00:00 4 days PancakeSwap v2 JAWS WBNB $5,812,660.00 $1,986,655.52 103.85% 1.038501 $1.640915 $0.284914 3
226 2021-06-14 21:00:00 1 days PancakeSwap v2 MTGY WBNB $1,610,103.12 $-8,412.11 -1.04% -0.010395 $0.006560 $0.006492 2
227 2021-06-14 21:00:00 1 days PancakeSwap v2 ARV WBNB $1,981,701.27 $-0.00 0.00% 0.000000 $0.000000 $0.000000 2
228 2021-06-14 21:00:00 2 days PancakeSwap v2 RBT WBNB $26,603,800.52 $19,815,686.39 583.83% 5.838348 $1.556272 $13.312151 3
234 2021-06-15 21:00:00 1 days PancakeSwap v2 XMS WBNB $1,002,151.67 $-169,216.93 -28.89% -0.288922 $0.175584 $0.124854 2
235 2021-06-15 21:00:00 1 days PancakeSwap v2 BSHIB WBNB $1,797,018.63 $69,579.08 8.06% 0.080557 $0.006912 $0.007469 2
236 2021-06-15 21:00:00 2 days PancakeSwap v2 DEC BUSD $25,142,761.72 $-0.00 -0.00% -0.000000 $0.001004 $0.001004 3
241 2021-06-16 21:00:00 1 days PancakeSwap v2 SAFEDOG WBNB $2,634,830.58 $-58,326.60 -4.33% -0.043315 $0.000002 $0.000002 2
242 2021-06-16 21:00:00 1 days PancakeSwap v2 GUH WBNB $19,062,512.37 $11,282,619.59 290.05% 2.900456 $28.150076 $109.798141 2
243 2021-06-16 21:00:00 1 days PancakeSwap v2 JAWS WBNB $4,821,909.98 $-4,484,089.67 -96.37% -0.963699 $0.119917 $0.004353 2
248 2021-06-17 21:00:00 1 days PancakeSwap v2 LIGHT WBNB $11.67 $-0.69 -11.14% -0.111366 $0.171697 $0.152576 2
249 2021-06-17 21:00:00 1 days PancakeSwap v2 FTM WBNB $121,037,763,136.71 $120,985,446,675.06 462513.87% 4625.138737 $4.903194 $22,682.855469 2
252 2021-06-18 21:00:00 3 days PancakeSwap v2 Nora WBNB $1,531,779,652.66 $-119,206,685.34 -14.44% -0.144407 $0.029128 $0.024922 2
253 2021-06-18 21:00:00 3 days PancakeSwap v2 RBT WBNB $1,730,060,658.51 $-661,061,870.61 -55.29% -0.552930 $96.079720 $42.954346 2
254 2021-06-18 21:00:00 3 days PancakeSwap v2 JAWS WBNB $251,753,435,867.80 $111,999,214,339.38 160.28% 1.602803 $0.103252 $0.268746 2
255 2021-06-18 21:00:00 4 days PancakeSwap v2 TIKI WBNB $37,132,836,819.96 $9,353,923,722.36 67.35% 0.673455 $0.014915 $0.030384 3
259 2021-06-21 21:00:00 1 days PancakeSwap v2 STEEL WBNB $62,150,826,216.07 $-22,804,580,656.23 -53.69% -0.536860 $0.128133 $0.059344 2
260 2021-06-21 21:00:00 1 days PancakeSwap v2 DND WBNB $94,189,224,066.13 $-52,499,960,309.63 -71.58% -0.715799 $0.000012 $0.000003 2
262 2021-06-21 21:00:00 1 days PancakeSwap v2 PING WBNB $38,803,167,127.32 $-6,210,602,549.05 -27.59% -0.275942 $0.000895 $0.000648 2
267 2021-06-22 21:00:00 1 days PancakeSwap v2 TABOO WBNB $5,804,256,823.77 $-1,222,594,384.09 -34.80% -0.347978 $0.000417 $0.000272 2
268 2021-06-22 21:00:00 1 days PancakeSwap v2 MINT WBNB $25,771,770,059.15 $1,025,468,306.26 8.29% 0.082879 $0.000013 $0.000014 2
269 2021-06-22 21:00:00 1 days PancakeSwap v2 CWT WBNB $129,802,481,900.24 $-21,505,719,001.73 -28.43% -0.284264 $0.048108 $0.034432 2
270 2021-06-22 21:00:00 1 days PancakeSwap v2 NFTB WBNB $30,988,979,359.29 $-439,834,685.95 -2.80% -0.027989 $0.036834 $0.035803 2
275 2021-06-23 21:00:00 1 days PancakeSwap v2 DVI WBNB $24,202,894,564.66 $-15,054,335,994.45 -76.70% -0.766959 $0.606297 $0.141292 2
276 2021-06-23 21:00:00 1 days PancakeSwap v2 THOREUM WBNB $3,461,940,316.02 $-73,077,067.60 -4.13% -0.041345 $0.010626 $0.010187 2
277 2021-06-23 21:00:00 1 days PancakeSwap v2 DBZ WBNB $131,568,318,281.74 $42,043,640,545.81 93.93% 0.939264 $0.001029 $0.001995 2
278 2021-06-23 21:00:00 1 days PancakeSwap v2 AK WBNB $45,112,686,536.66 $-7,409,364,805.69 -28.21% -0.282143 $0.005219 $0.003747 2
283 2021-06-24 21:00:00 1 days PancakeSwap v2 CORGI WBNB $15,216,789,968.12 $-761,971,268.29 -9.54% -0.095373 $0.000001 $0.000001 2
284 2021-06-24 21:00:00 1 days PancakeSwap v2 RABBIT WBNB $52,581,776,575.36 $5,996,946,530.96 25.75% 0.257463 $0.365855 $0.460049 2
285 2021-06-24 21:00:00 1 days PancakeSwap v2 XWG USDT $36,188,611,831.11 $3,975,262,237.72 24.68% 0.246808 $0.011711 $0.014602 2
286 2021-06-24 21:00:00 1 days PancakeSwap v2 GME WBNB $121,866,935,055.25 $5,665,702,918.65 9.75% 0.097515 $0.000007 $0.000007 2
291 2021-06-25 21:00:00 3 days PancakeSwap v2 MELODY WBNB $2,869,774,392.29 $5,879,031.47 0.41% 0.004106 $0.107067 $0.107507 2
292 2021-06-25 21:00:00 3 days PancakeSwap v2 CATE BUSD $5,649,239,950.85 $-209,494,688.42 -7.15% -0.071515 $0.000000 $0.000000 2
293 2021-06-25 21:00:00 3 days PancakeSwap v2 JAWS WBNB $4,350,247,226.83 $-153,095,593.05 -6.80% -0.067992 $0.263177 $0.245283 2
294 2021-06-25 21:00:00 3 days PancakeSwap v2 $Lordz WBNB $318,423,530,937.54 $100,737,570,585.89 92.55% 0.925531 $0.002544 $0.004899 2
299 2021-06-28 21:00:00 1 days PancakeSwap v2 BSCV WBNB $8,564,881,516.42 $-1,185,220,672.51 -24.31% -0.243120 $0.166210 $0.125801 2
300 2021-06-28 21:00:00 1 days PancakeSwap v2 DVI WBNB $110,817,384,112.95 $-110,211,048,930.43 -99.73% -0.997257 $15,791.803711 $43.320789 2
301 2021-06-28 21:00:00 1 days PancakeSwap v2 MONSTA WBNB $8,724,013,184.35 $-1,131,938,744.23 -22.97% -0.229696 $0.000632 $0.000487 2
302 2021-06-28 21:00:00 2 days PancakeSwap v2 XOM WBNB $443,816,707,436.60 $319,028,931,848.38 511.31% 5.113144 $0.000029 $0.000164 3
307 2021-06-29 21:00:00 1 days PancakeSwap v2 CATE BUSD $84,802,468,166.85 $533,938,494.57 1.27% 0.012672 $0.000000 $0.000000 2
308 2021-06-29 21:00:00 1 days PancakeSwap v2 ARENA WBNB $87,395,644,893.56 $3,918,340,646.48 9.39% 0.093878 $0.167080 $0.182765 2
309 2021-06-29 21:00:00 1 days PancakeSwap v2 ARENA BUSD $141,873,195,409.78 $5,015,250,191.08 7.33% 0.073291 $0.167543 $0.179823 2
314 2021-06-30 21:00:00 PancakeSwap v2 ALPA WBNB $66,300,173,497.70 0.000000 $0.390305 1
315 2021-06-30 21:00:00 PancakeSwap v2 LPOOL WBNB $87,662,384,410.85 0.000000 $2.109730 1
316 2021-06-30 21:00:00 PancakeSwap v2 GUH WBNB $88,875,550,309.22 0.000000 $1,178.938477 1
317 2021-06-30 21:00:00 PancakeSwap v2 AIRI WBNB $84,571,762,741.35 0.000000 $0.005258 1

Portfolio timeline

The evolution of portfolio over the time * This table describes portfolio construction over different time periods and how the portfolio value evolves

  • We output the assets held at the start of the each trading day

  • Asset share (weight) may increase or decrease for each day

  • Assets are ordered from left to right by their weight

  • If asset is not held more than 1 day then it won’t appear on the following row and you cannot see the incurring profit/loss - for this use the trading timeline

  • If assets are held more than 1 day then the assets are colored based on if they are on profit/loss

[14]:
from tradingstrategy.analysis.portfolioanalyzer import expand_timeline

# Expand timeline with human-readable exchange and pair symbols
expanded_timeline, apply_styles = expand_timeline(
    exchange_universe,
    pair_universe,
    portfolio_analysis,
    create_html_styles=True)

# Do not truncate the row output
with pd.option_context("display.max_row", None):
    display(apply_styles(expanded_timeline))

Id Timestamp NAV USD Cash USD #1 asset #1 value #1 weight % #1 PnL #2 asset #2 value #2 weight % #2 PnL #3 asset #3 value #3 weight % #3 PnL #4 asset #4 value #4 weight % #4 PnL
1 2021-05-01 00:00:00 10,000.00 10,000
5 2021-05-02 00:00:00 10,000.00 10,000
9 2021-05-03 00:00:00 10,000.00 10,000
13 2021-05-04 00:00:00 10,000.00 3,477 AQUA 6,448 99 0.00 ALU 53 1 0.00 ALLEY 22 0 0.00
17 2021-05-05 00:00:00 12,100.23 3,993 SCZ 3,229 40 0.00 GDOGE 2,365 29 0.00 CATZ 1,364 17 0.00 GNT 1,149 14 0.00
21 2021-05-06 00:00:00 13,626.34 4,497 UFARM 2,655 29 0.00 CATZ 2,466 27 1,759.53 TSX 2,078 23 0.00 DOP 1,930 21 0.00
25 2021-05-07 00:00:00 20,259.28 6,686 STARSHIP 6,143 45 0.00 DEXI 4,312 32 -0.00 SPERM 1,857 14 0.00 DOP 1,261 9 0.00
29 2021-05-08 00:00:00 28,290.65 11,308 WIN 9,448 56 0.00 GARUDA 3,663 22 0.00 GARUDA 3,612 21 0.00 NSFW 259 2 0.00
33 2021-05-09 00:00:00 19,395.26 11,308 GARUDA 3,946 49 283.38 GARUDA 3,774 47 161.83 NSFW 367 5 107.47 WIN 0 0 -9,448.06
37 2021-05-10 00:00:00 13,056.89 11,308 GARUDA 763 44 -2,899.50 GARUDA 737 42 -2,875.60 NSFW 249 14 -10.59 WIN 0 0 -9,448.06
41 2021-05-11 00:00:00 12,706.16 4,212 POC 7,391 87 0.00 SAFEDOG 521 6 0.00 ShibaPup 350 4 0.00 HFS 231 3 0.00
45 2021-05-12 00:00:00 16,817.59 5,550 MOONARCH 8,272 73 0.00 BNX 1,786 16 0.00 TUTU 993 9 0.00 SLF 217 2 0.00
49 2021-05-13 00:00:00 21,493.96 7,093 ROVER 8,029 56 0.00 SHIBM 5,833 41 0.00 BALLS 292 2 0.00 ORT 247 2 0.00
53 2021-05-14 00:00:00 11,129.56 3,673 ETCH 4,366 59 0.00 SMEGM 1,977 27 0.00 SBF 602 8 0.00 DCH 512 7 0.00
57 2021-05-15 00:00:00 41,866.34 13,816 SMEGM 18,032 64 25,268.29 SUBX 4,254 15 0.00 LAS 3,443 12 0.00 CORGI 2,321 8 -0.00
61 2021-05-16 00:00:00 250,007.12 13,816 SMEGM 188,526 80 195,762.46 CORGI 24,246 10 21,925.29 SUBX 16,856 7 12,601.27 LAS 6,563 3 3,120.05
65 2021-05-17 00:00:00 177,678.48 13,816 SMEGM 135,425 83 142,661.71 CORGI 16,830 10 14,508.55 SUBX 7,841 5 3,586.22 LAS 3,767 2 323.95
69 2021-05-18 00:00:00 121,987.29 40,256 Dogk 71,742 88 0.00 RACA 7,419 9 0.00 BURNC 1,895 2 0.00 KODA 676 1 0.00
73 2021-05-19 00:00:00 54,325.74 17,985 FRANK 14,229 39 0.00 FRANK 13,239 36 0.00 FUCKELON 5,382 15 0.00 LNCHX 3,490 10 0.00
77 2021-05-20 00:00:00 55,021.89 18,157 BT 28,056 76 0.00 Football 4,747 13 0.00 BURNC 2,144 6 0.00 STOPELON 1,917 5 0.00
81 2021-05-21 00:00:00 27,884.93 9,291 ETCH 16,368 88 0.00 BAIT 2,227 12 0.00
85 2021-05-22 00:00:00 51,859.01 17,115 BARMY 16,654 48 0.00 wDEFI 8,137 23 0.00 wDEFI 6,834 20 0.00 TENDIE 3,120 9 0.00
89 2021-05-23 00:00:00 33,579.52 17,115 BARMY 12,516 76 -4,137.53 TENDIE 2,801 17 -318.54 wDEFI 590 4 -7,546.71 wDEFI 557 3 -6,276.71
93 2021-05-24 00:00:00 32,047.98 17,115 BARMY 11,823 79 -4,830.22 TENDIE 2,027 14 -1,092.56 wDEFI 589 4 -7,548.13 wDEFI 493 3 -6,340.12
97 2021-05-25 00:00:00 51,952.60 17,157 upBNB 30,351 87 0.00 CTT 1,902 5 0.00 BARMY 1,569 5 15,911.50 MIL 973 3 0.00
101 2021-05-26 00:00:00 61,857.80 20,413 GUH 11,660 28 0.00 POC 11,396 27 0.00 Xpose 9,747 24 0.00 PARA 8,642 21 0.00
105 2021-05-27 00:00:00 104,066.32 34,342 wDEFI 18,456 26 0.00 wDEFI 17,471 25 0.00 GUH 16,938 24 46,151.08 MOOV 16,859 24 0.00
109 2021-05-28 00:00:00 110,995.71 36,629 MLTP 27,749 37 0.00 TLOS 17,367 23 0.00 SAFEHAMS 15,625 21 0.00 LTN 13,626 18 0.00
113 2021-05-29 00:00:00 102,687.66 33,887 MIL 39,678 58 0.00 ETCH 16,018 23 0.00 MNG 7,731 11 0.00 LAS 5,374 8 0.00
117 2021-05-30 00:00:00 88,408.51 33,887 MIL 26,256 48 -13,422.17 ETCH 17,869 33 1,851.85 MNG 6,258 11 -1,472.88 LAS 4,138 8 -1,235.95
121 2021-05-31 00:00:00 75,804.93 33,887 MIL 21,532 51 -18,146.05 ETCH 13,477 32 -2,540.57 MNG 4,014 10 -3,716.34 LAS 2,895 7 -2,479.77
125 2021-06-01 00:00:00 72,083.70 23,788 NOSTA 33,672 70 0.00 PINK 10,523 22 0.00 VANITY 3,104 6 0.00 BOG 997 2 0.00
129 2021-06-02 00:00:00 125,402.32 41,384 NOSTA 26,396 31 54,234.80 LNCHX 25,999 31 0.00 ROSN 16,999 20 0.00 KODA 14,624 17 0.00
133 2021-06-03 00:00:00 182,455.15 60,215 GLX 78,217 64 0.00 BNU 17,123 14 0.00 HUNNY 14,459 12 0.00 NOSTA 12,442 10 102,182.21
137 2021-06-04 00:00:00 124,059.74 40,943 QANX 36,243 44 0.00 mBTC 20,082 24 0.00 DEXI 14,152 17 0.00 LTN 12,640 15 0.00
141 2021-06-05 00:00:00 109,750.27 36,219 LEAF 48,850 66 0.00 ORK 9,646 13 0.00 TENDIE 8,645 12 0.00 GIFT 6,390 9 0.00
145 2021-06-06 00:00:00 90,238.70 36,219 LEAF 28,922 54 -19,928.02 GIFT 10,127 19 3,736.65 ORK 9,409 17 -237.07 TENDIE 5,561 10 -3,083.13
149 2021-06-07 00:00:00 85,418.23 36,219 LEAF 25,427 52 -23,422.46 ORK 9,619 20 -27.76 GIFT 8,358 17 1,967.30 TENDIE 5,795 12 -2,849.12
153 2021-06-08 00:00:00 101,489.97 33,492 DINO 67,937 100 -0.00 WGC 40 0 0.00 TRX 18 0 0.00 DINA 4 0 0.00
157 2021-06-09 00:00:00 101,500.94 33,496 RBT 58,865 87 0.00 DINO 6,219 9 -0.00 STEEL 1,466 2 0.00 ROSN 1,455 2 0.00
161 2021-06-10 00:00:00 153,588.63 50,687 TRX 56,099 55 0.00 GUH 29,188 28 0.00 RBT 11,396 11 52,225.39 HERO 6,219 6 0.00
165 2021-06-11 00:00:00 151,376.82 49,956 HUNNY 33,296 33 0.00 ARV 31,384 31 0.00 HERO 18,447 18 0.00 ZEFU 18,294 18 0.00
169 2021-06-12 00:00:00 132,473.81 43,763 FTM 88,660 100 0.00 JAWS 39 0 0.00 Nora 6 0 0.00 HARD 5 0 0.00
173 2021-06-13 00:00:00 44,497.49 43,763 JAWS 486 66 446.47 FTM 239 32 -88,421.79 Nora 6 1 0.19 HARD 4 0 -1.20
177 2021-06-14 00:00:00 10,607,687.84 43,763 FTM 10,563,884 100 10,475,223.60 JAWS 33 0 -6.88 Nora 5 0 -1.18 HARD 3 0 -1.51
181 2021-06-15 00:00:00 10,607,660.17 3,500,529 RBT 3,394,057 48 0.00 JAWS 1,912,966 27 -36.03 ARV 990,851 14 0.00 MTGY 809,258 11 0.00
185 2021-06-16 00:00:00 29,998,687.86 9,899,576 DEC 12,571,381 63 0.00 RBT 6,078,326 30 17,412,748.25 BSHIB 863,720 4 0.00 XMS 585,684 3 0.00
189 2021-06-17 00:00:00 32,301,988.14 10,659,661 DEC 11,752,803 54 0.00 JAWS 4,653,000 21 0.00 GUH 3,889,946 18 0.00 SAFEDOG 1,346,579 6 0.00
193 2021-06-18 00:00:00 39,042,191.46 12,883,954 FTM 26,158,231 100 0.00 LIGHT 6 0 0.00
197 2021-06-19 00:00:00 121,024,488,865.83 39,938,081,412 JAWS 69,877,110,764 86 0.00 TIKI 9,188,242,256 11 0.00 RBT 1,195,561,265 1 0.00 Nora 825,493,169 1 0.00
201 2021-06-20 00:00:00 198,231,489,576.01 39,938,081,412 JAWS 147,015,370,013 93 77,138,259,248.36 TIKI 9,026,316,446 6 -161,925,810.49 Nora 1,397,414,996 1 571,921,827.46 RBT 854,306,709 1 -341,254,555.15
205 2021-06-21 00:00:00 221,706,446,646.32 39,938,081,412 JAWS 169,657,713,034 93 99,780,602,269.52 TIKI 10,657,967,139 6 1,469,724,883.18 Nora 834,829,772 0 9,336,602.70 RBT 617,855,290 0 -577,705,974.91
209 2021-06-22 00:00:00 242,499,386,782.47 80,024,797,638 DND 73,344,592,188 45 0.00 STEEL 42,477,703,436 26 0.00 TIKI 24,145,408,682 15 10,255,952,133.19 PING 22,506,884,838 14 0.00
213 2021-06-23 00:00:00 160,082,214,856.72 52,827,130,903 CWT 75,654,100,451 71 0.00 NFTB 15,714,407,023 15 0.00 MINT 12,373,150,876 12 0.00 TABOO 3,513,425,604 3 0.00
217 2021-06-24 00:00:00 137,939,535,091.21 45,520,046,581 DBZ 44,762,338,868 48 0.00 AK 26,261,025,671 28 0.00 DVI 19,628,615,280 21 0.00 THOREUM 1,767,508,692 2 0.00
221 2021-06-25 00:00:00 157,446,397,769.28 51,957,311,264 GME 58,100,616,068 55 0.00 RABBIT 23,292,415,022 22 0.00 XWG 16,106,674,797 15 0.00 CORGI 7,989,380,618 8 0.00
225 2021-06-26 00:00:00 172,322,338,188.32 56,866,371,603 $Lordz 108,842,980,176 94 0.00 CATE 2,929,367,320 3 0.00 JAWS 2,251,671,410 2 0.00 MELODY 1,431,947,680 1 0.00
229 2021-06-27 00:00:00 624,137,162,512.92 56,866,371,603 $Lordz 561,248,204,469 99 452,405,224,293.17 CATE 3,148,691,651 1 219,324,331.72 MELODY 1,565,105,516 0 133,157,835.68 JAWS 1,308,789,274 0 -942,882,135.97
233 2021-06-28 00:00:00 328,181,716,909.83 56,866,371,603 $Lordz 264,863,727,471 98 156,020,747,295.25 CATE 2,674,159,982 1 -255,207,337.66 JAWS 2,308,780,950 1 57,109,539.98 MELODY 1,468,676,904 1 36,729,223.94
237 2021-06-29 00:00:00 272,703,197,524.21 89,992,066,150 DVI 110,514,216,522 60 0.00 XOM 62,393,887,794 34 0.00 MONSTA 4,927,975,964 3 -0.00 BSCV 4,875,051,094 3 0.00
241 2021-06-30 00:00:00 506,611,070,423.70 167,181,653,240 XOM 187,127,527,615 55 346,436,081,246.65 ARENA 68,428,972,609 20 0.00 CATE 42,134,264,836 12 0.00 ARENA 41,738,652,124 12 0.00