archiveSymbolGridTrade = async (logger, symbol = null) => {
  // Retrieve symbol info
  const symbolInfo = await getSymbolInfo(logger, symbol);

  // Get current symbol grid trade
  const symbolGridTrade = await getSymbolGridTrade(logger, symbol);

  // If not exist, then return false
  if (_.isEmpty(symbolGridTrade)) {
    return {};
  }

  // If exist, calculate profit
  const {
    buy: buyGridTrade,
    sell: sellGridTrade,
    stopLoss,
    manualTrade
  } = symbolGridTrade;

  const gridProfit = calculateGridTradeProfit(
    buyGridTrade,
    sellGridTrade,
    stopLoss,
    manualTrade
  );

  // Save to archive
  const archivedGridTrade = {
    symbol,
    ..._.pick(symbolInfo, ['baseAsset', 'quoteAsset']),
    ...gridProfit,
    ..._.omit(symbolGridTrade, 'key', '_id'),
    archivedAt: moment().toISOString()
  };

  await saveSymbolGridTradeArchive(
    logger,
    `${symbol}-${moment().toISOString()}`,
    archivedGridTrade
  );

  // Refresh configuration
  await cache.hdel('trailing-trade-configurations', symbol);

  return archivedGridTrade;
}
Archive symbol grid trade

@param {*} logger
@param {*} symbol
@returns