Back to Blog
Rebalancing
Notifications
Strategy

Rebalance Opportunity Notifications Keep You Taking Profit and Buying the Dip with Discipline

Set up MyHold notifications with wallet-aware thresholds, multi-channel delivery, and a dedicated USDT reserve wallet so you can rebalance winners and dips with less noise.

Pedro Arantes
Pedro Arantes@arantespp
May 12, 2026

Why these notifications exist

A good rebalance alert turns market movement into a repeatable decision. When a coin grows past its target allocation, the portfolio has already paid you for being right. The alert should make you review a partial take profit before that winner becomes an accidental concentration risk.

The opposite signal matters just as much. When a coin falls below its target allocation, the portfolio is telling you that the asset has become cheaper relative to the strategy you already chose. A buy alert should make you review whether to deploy stablecoin reserves, not chase every red candle.

This manual shows a practical notification setup for MyHold users who want to catch both sides: trim coins that have increased enough to become overweight, and buy coins that have decreased enough to become underweight. The system works best when you keep a dedicated stablecoin reserve wallet holding USDT so buy alerts have a ready source of capital.

The portfolio setup

Start with target weights. Notifications only become useful when MyHold knows what each wallet and coin is supposed to represent.

WalletPurposeExample target
Core walletLong-term holdings70-80%
Growth walletHigher-volatility growth positions10-25%
Speculative walletSmaller high-risk positions3-8%
Reserve walletUSDT or another stablecoin reserved for buys2-5%

The reserve wallet is intentionally boring. It exists to keep dry powder separate from long-term holdings. When buy notifications fire, you can decide whether to deploy part of that USDT into the underweight coin. When take-profit notifications fire, you can send some proceeds back into the reserve wallet so the buy buffer refills naturally.

The four-notification system

Use four alerts rather than one giant rule. Separate alerts make the action obvious when a notification fires.

NotificationLevelSignalAction
Rebalance Take ProfitWallet CoinA coin is overweight beyond the threshold for its walletSell enough to move toward target, often into USDT
Rebalance Buy OpportunityWallet CoinA coin is underweight beyond the threshold for its walletBuy from the reserve wallet if the thesis still holds
Reserve Cash LowWalletThe reserve wallet falls below its tighter floorRefill the reserve before the next dip
Market Low WindowGlobalBTC is oversold (RSI < 35) and down significantly over 7 daysDeploy accumulated reserve capital in tranches

Set the first three to In-App, Email, and Push delivery with a 6-hour interval execution policy. That means the alert can repeat every six hours while the condition remains true, which is a better fit for rebalancing than one-shot notifications because drift can persist until you act. Set the Market Low Window notification to on-reset so it fires once when the market enters fear territory and re-arms when conditions improve.

A tuned strategy template

Use percentage-point drift as the primary signal, but tune it by wallet instead of forcing one threshold across the whole portfolio. A 3-point drift in a core wallet is worth faster attention than the same move inside a small low-cap basket.

WalletTake-profit thresholdBuy thresholdWhy it works
Core wallet> 3 points and > $100 above target< -3 points and < -$100 below targetCore positions are large enough that only larger dollar gaps deserve action
Growth wallet> 3 points and > $50 above target< -3 points and < -$50 below targetKeeps the standard rebalance threshold on higher-volatility growth names
Speculative wallet> 5 points and > $20 above target< -5 points and < -$20 below targetSmaller, noisier positions need wider drift filters
Reserve walletReserve alert below -0.5 points or below -$25Not applicableThe reserve wallet is small, so the floor must be tighter to stay useful

The momentum and dip filters remain important. Take-profit alerts still require medium-term strength, and buy alerts still require real weakness. That keeps the system grounded in both allocation drift and market context.

Shared market filters

FilterExample valueWhy it stays
Take-profit momentum filter30d change above 10% or 90d change above 15%Confirms the overweight condition came from appreciation, not a manual balance change
Core and growth wallet buy dip filter7d change below -5% or 30d change below -10%Captures meaningful weakness without waiting for a full breakdown
Speculative wallet buy dip filter7d change below -10% or 30d change below -15%Demands deeper weakness before acting on noisier coins

If you track multiple portfolios, add a portfolio scope condition to each rule so the alert only fires for the intended portfolio:

{ "==": [{ "var": "portfolio.publicId" }, "YOUR_PORTFOLIO_ID" ] }

Notification 1: Rebalance Take Profit

Create this at the Wallet Coin level.

Plain English rule:

Coin is above the take-profit threshold for its wallet
AND the excess value is greater than the wallet-specific dollar floor
AND the coin has appreciated over the medium term

JSON Logic:

{
  "and": [
    { "==": [{ "var": "portfolio.publicId" }, "YOUR_PORTFOLIO_ID"] },
    { "!=": [{ "var": "walletCoin.symbol" }, "USDT"] },
    {
      "or": [
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "CORE_WALLET_ID"] },
            { ">": [{ "var": "walletCoin.portfolioWeightDifference" }, 3] },
            { ">": [{ "var": "walletCoin.portfolioValueDifference" }, 100] }
          ]
        },
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "GROWTH_WALLET_ID"] },
            { ">": [{ "var": "walletCoin.portfolioWeightDifference" }, 3] },
            { ">": [{ "var": "walletCoin.portfolioValueDifference" }, 50] }
          ]
        },
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "SPECULATIVE_WALLET_ID"] },
            { ">": [{ "var": "walletCoin.portfolioWeightDifference" }, 5] },
            { ">": [{ "var": "walletCoin.portfolioValueDifference" }, 20] }
          ]
        }
      ]
    },
    {
      "or": [
        { ">": [{ "var": "walletCoin.percentChange30d" }, 10] },
        { ">": [{ "var": "walletCoin.percentChange90d" }, 15] }
      ]
    }
  ]
}

When this fires, open the relevant rebalance page and review the sell recommendation. The goal is to take enough profit that the position stops dominating more than your strategy intended. With interval delivery, you will be reminded every six hours until the drift clears or you disable the rule.

This works because allocation drift captures realized portfolio pressure. A coin can be up 30% and still not matter if it started tiny. The wallet-aware thresholds make the alert stricter where volatility is normal and tighter where the dollars are larger.

Notification 2: Rebalance Buy Opportunity

Create this at the Wallet Coin level.

Plain English rule:

Coin is below the buy threshold for its wallet
AND the missing allocation is greater than the wallet-specific dollar floor
AND the coin has pulled back recently

JSON Logic:

{
  "and": [
    { "==": [{ "var": "portfolio.publicId" }, "YOUR_PORTFOLIO_ID"] },
    { "!=": [{ "var": "walletCoin.symbol" }, "USDT"] },
    {
      "or": [
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "CORE_WALLET_ID"] },
            { "<": [{ "var": "walletCoin.portfolioWeightDifference" }, -3] },
            { "<": [{ "var": "walletCoin.portfolioValueDifference" }, -100] },
            {
              "or": [
                { "<": [{ "var": "walletCoin.percentChange7d" }, -5] },
                { "<": [{ "var": "walletCoin.percentChange30d" }, -10] }
              ]
            }
          ]
        },
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "GROWTH_WALLET_ID"] },
            { "<": [{ "var": "walletCoin.portfolioWeightDifference" }, -3] },
            { "<": [{ "var": "walletCoin.portfolioValueDifference" }, -50] },
            {
              "or": [
                { "<": [{ "var": "walletCoin.percentChange7d" }, -5] },
                { "<": [{ "var": "walletCoin.percentChange30d" }, -10] }
              ]
            }
          ]
        },
        {
          "and": [
            { "==": [{ "var": "wallet.publicId" }, "SPECULATIVE_WALLET_ID"] },
            { "<": [{ "var": "walletCoin.portfolioWeightDifference" }, -5] },
            { "<": [{ "var": "walletCoin.portfolioValueDifference" }, -20] },
            {
              "or": [
                { "<": [{ "var": "walletCoin.percentChange7d" }, -10] },
                { "<": [{ "var": "walletCoin.percentChange30d" }, -15] }
              ]
            }
          ]
        }
      ]
    }
  ]
}

When this fires, check the reserve wallet before buying. If there is enough USDT, deploy a partial tranche rather than the entire gap at once. A useful first action is to fill 25-50% of the missing allocation, then wait for either another alert or a stabilization signal before adding more. The 6-hour repeat cadence helps if the underweight condition persists through a larger drawdown.

This works because it forces you to buy weakness only when it lines up with your pre-existing target allocation. The target is the anchor. The price drop is the opportunity. The wallet-aware tuning keeps low-cap noise from overwhelming the rest of the system.

Notification 3: Reserve Cash Low

Create this at the Wallet level and apply it to the wallet that holds your buying reserve.

Plain English rule:

The reserve wallet is at least 0.5 percentage points below its portfolio target
OR it is more than $25 below its target value

JSON Logic:

{
  "and": [
    { "==": [{ "var": "portfolio.publicId" }, "YOUR_PORTFOLIO_ID"] },
    { "==": [{ "var": "wallet.publicId" }, "RESERVE_WALLET_ID"] },
    {
      "or": [
        { "<": [{ "var": "wallet.portfolioWeightDifference" }, -0.5] },
        { "<": [{ "var": "wallet.portfolioValueDifference" }, -25] }
      ]
    }
  ]
}

When this fires, refill the reserve from future deposits or from take-profit proceeds. This alert is what keeps the buy system alive. Without cash, a buy opportunity is just information. A smaller reserve wallet needs a tighter floor than the larger trading and core wallets.

Notification 4: Market Low Window

Create this as a global notification with no level set. It evaluates once per run against market-wide context rather than iterating over individual coins or wallets.

The idea behind this alert is different from the other three. The buy opportunity notification tells you a specific coin is underweight. This one tells you the whole market is cheap based on price action. It is the signal to deploy cash you have been accumulating, not just to rebalance an existing position. The recommended workflow: when you have spare capital to invest, add it to the reserve wallet instead of buying immediately. Wait for this notification to fire before deploying.

Using sentiment indicators like Fear & Greed alone is unreliable for timing entries — the market can remain fearful for days while prices keep falling. A better signal uses price-based data directly: BTC's RSI14 entering oversold territory combined with a confirmed short-term drop tells you that selling pressure is present in actual price, not just in crowd sentiment.

Plain English rule:

BTC RSI (14-period) is below 40 (approaching oversold)
OR BTC is down more than 7% over the last 7 days
AND the reserve wallet has enough cash to deploy

JSON Logic:

{
  "and": [
    { "==": [{ "var": "portfolio.publicId" }, "YOUR_PORTFOLIO_ID"] },
    {
      "or": [
        { "<": [{ "var": "coins.BTC_COIN_ID.rsi14" }, 40] },
        { "<": [{ "var": "coins.BTC_COIN_ID.percentChange7d" }, -7] }
      ]
    },
    { ">": [{ "var": "wallet.RESERVE_WALLET_ID.value" }, 50] }
  ]
}

Replace BTC_COIN_ID with BTC's public ID from your MyHold portfolio. You can find it in the coin detail page or via the search-coins MCP tool.

Using OR between the two price signals means either one alone is enough to fire. This is the key change from a stricter setup. A slow bleed — where BTC drops steadily over two weeks but no single 7-day window crosses -10% — will still trigger via RSI. A sharp single-week drop that hasn't yet moved RSI all the way down will trigger via the percentage change. Both patterns are genuine low windows worth reviewing.

The RSI14 threshold of 40 fires earlier than the classic oversold line of 30, catching weakness while there is still time to accumulate before a bounce. If you want fewer alerts and only act on stronger signals, tighten it to < 35. The 7-day change threshold of -7% captures meaningful pullbacks without requiring a crash. Tighten to -10% if you find the alert fires too often during normal weekly volatility.

BTC is used as the market proxy because its price movement correlates strongly with the rest of the market. You can add ETH as a second or branch for additional coverage, or replace BTC with a coin you actually hold if you prefer signals anchored to your own portfolio.

The reserve wallet condition checks that it currently holds more than $50. This prevents the alert from firing when the reserve is empty. Adjust the dollar floor to match the minimum tranche size that makes sense for your portfolio.

Set this notification to on-reset execution policy and enable In-App, Email, and Push channels. On-reset means:

  • It fires once when both conditions are met.
  • It re-arms automatically when BTC recovers (RSI rises back above 35 or the 7-day change improves).
  • It fires again the next time conditions align.

This captures each distinct low window without spamming you every hour while conditions persist.

When this fires, open the reserve wallet and decide how much to deploy. A useful starting discipline is to split deployment into two or three tranches: deploy the first 30–50% of the reserve on the alert, keep the rest available in case prices fall further. If BTC's RSI drops below 25 while you still have reserve remaining, that is a signal to deploy the next tranche. If the market recovers before you deploy the rest, leave the reserve in place for the next cycle.

This works because it anchors deployment decisions to observable price data rather than sentiment. RSI and percentage change measure what price has actually done, not how people feel about it. Combining this market-wide signal with the coin-level buy opportunity notification creates two independent reasons to buy: the specific coin is underweight relative to your target, and the broader market is at a confirmed local low.

How to act when alerts fire

Treat notifications as review prompts, not automatic trades. The best workflow is short and repeatable:

  1. Open the notification log and inspect the trigger context.
  2. Open the portfolio or wallet rebalance page.
  3. Confirm the trade amount MyHold recommends.
  4. For take-profit alerts, sell enough to reduce drift, then move proceeds into USDT if no better underweight target exists.
  5. For buy alerts, deploy from the reserve wallet in tranches.
  6. For the market low window alert, check BTC's current RSI and 7-day price change in the notification context. Deploy the first tranche of your reserve. Hold the remainder for a deeper drop or a second alert cycle.
  7. Record the decision as a rationale if the action changes your allocation materially.

If several alerts fire at once, prioritize the market low window alert over individual coin alerts — a confirmed broad market low makes all underweight positions more attractive simultaneously. Among coin alerts, start with the largest absolute dollar gap.

Calibration after the first month

The first month is for tuning. If alerts fire too often in the core wallet, raise the dollar floor before widening the drift threshold. If the speculative wallet is still noisy, widen the dip filter before widening it further on drift. If alerts almost never fire, lower the dollar floor first and keep the allocation logic intact.

Review false positives by wallet, not only at the portfolio level. A false take-profit alert in the core wallet usually means the dollar floor is too low. A false buy alert in the speculative wallet usually means the dip filter is too shallow for that basket. Do not solve every false positive by adding more conditions. Too many filters can make the alert elegant but useless.

Why this works over time

The system is deliberately simple: sell what has become too large, buy what has become too small, and keep stablecoin reserves available. It does not predict tops or bottoms. It turns your allocation targets into a discipline that responds to market movement without letting emotion write the rules.

This is especially useful in crypto because volatility constantly moves positions away from their intended role. Winners can become oversized faster than expected. Quality coins can become underweight after sharp drawdowns. Stablecoin reserves can quietly shrink until the next opportunity arrives and there is nothing left to deploy.

Rebalance notifications close that loop. They make the portfolio ask the same question every day: has price movement created an action worth reviewing?


Disclaimer

This post is for educational purposes only and does not constitute financial or tax advice. Cryptocurrency markets are volatile, and rebalancing can create taxable events depending on your jurisdiction. Always review your own risk tolerance, fees, and tax obligations before trading.