A strategy that works brilliantly in a bull market can destroy your account in a bear market. The best automated trading systems don't use one-size-fits-all rules—they adapt to market conditions. This guide shows you how to build automation that recognizes and responds to different market environments.
Understanding Market Conditions
Bull Market Characteristics
Defining Features: - Higher highs and higher lows - Price above major moving averages - Positive sentiment dominates - "Buy the dip" works consistently - News tends to be interpreted bullishly
What Works: - Aggressive long positions - Buying breakouts - Holding winners longer - Adding to winning positions
Bear Market Characteristics
Defining Features: - Lower highs and lower lows - Price below major moving averages - Fear and skepticism dominate - Rallies get sold into - News tends to be interpreted bearishly
What Works: - Defensive positioning - Smaller position sizes - Faster profit-taking - Shorting (if available) - Cash preservation
Sideways/Ranging Market
Defining Features: - Price oscillates in a range - No clear trend direction - Support and resistance hold - Breakouts tend to fail
What Works: - Range trading (buy support, sell resistance) - Mean reversion strategies - Reduced position sizes - Patience (wait for trend to emerge)
| Factor | Bull Market | Bear Market | Sideways |
|---|---|---|---|
| Position Size | Larger (1.5-2%) | Smaller (0.5-1%) | Standard (1%) |
| Hold Time | Longer | Shorter | Medium |
| Stop Loss | Wider (15%) | Tighter (8%) | Medium (10%) |
| Take Profit | Trail/Let run | Quick (15-20%) | At resistance |
| News Bias | Bullish lean | Cautious | Neutral |
Detecting Market Conditions
Method 1: Moving Average Position
Simple Detection:
Bull: BTC price above 50-day AND 200-day MA
Bear: BTC price below 50-day AND 200-day MA
Sideways: Mixed signals or price near MAs
Implementation:
Check daily:
- If BTC > 50 MA AND BTC > 200 MA → Bull mode
- If BTC < 50 MA AND BTC < 200 MA → Bear mode
- Otherwise → Sideways mode
Method 2: Trend Strength
Using Price Action:
Bull: Making higher highs AND higher lows (30-day)
Bear: Making lower highs AND lower lows (30-day)
Sideways: Neither pattern clear
Method 3: Sentiment Indicators
Fear & Greed Index:
Extreme Greed (>75): Late bull, caution
Greed (55-75): Bull market
Neutral (45-55): Sideways/transition
Fear (25-45): Bear market
Extreme Fear (<25): Late bear, potential reversal
Method 4: Volatility Regime
Using ATR or Bollinger Bands:
High volatility + uptrend: Bull
High volatility + downtrend: Bear
Low volatility: Sideways/consolidation
Don't rely on a single indicator. Combine 2-3 methods for more reliable market condition detection.
Bull Market Automation
Adjusted Rules for Bull Markets
Position Sizing:
Standard: 1% → Bull: 1.5-2%
Reasoning: Trends persist, winners can run
Stop Losses:
Standard: 10% → Bull: 12-15%
Reasoning: Allow for volatility, avoid shakeouts
Take Profits:
Standard: Fixed target → Bull: Trailing stop
Reasoning: Let winners run in trending markets
Bull Market Rule Examples
Aggressive Listing Trade:
Condition: Market = Bull
Trigger: Exchange listing announcement
Action: Buy
Size: 2% (vs 1% in normal)
Stop: 12% (vs 10%)
Target: Trailing 15% from high
News Momentum Trade:
Condition: Market = Bull
Trigger: Positive news + price breakout
Action: Buy
Size: 1.5%
Stop: Below breakout level
Target: Trail until momentum fades
Influencer Call (Bull Mode):
Condition: Market = Bull
Trigger: Bullish call from tracked influencer
Action: Buy (full confidence)
Size: 1.5%
Hold: Longer than normal (48h vs 24h)
Bear Market Automation
Adjusted Rules for Bear Markets
Position Sizing:
Standard: 1% → Bear: 0.5-0.75%
Reasoning: Higher risk of losses, preserve capital
Stop Losses:
Standard: 10% → Bear: 7-8%
Reasoning: Cut losses quicker, rallies often fail
Take Profits:
Standard: 25% → Bear: 15-20%
Reasoning: Take profits fast, don't get greedy
Bear Market Rule Examples
Defensive Listing Trade:
Condition: Market = Bear
Trigger: Exchange listing announcement
Action: Buy (but cautious)
Size: 0.75% (vs 1.5% in bull)
Stop: 8% (tighter)
Target: 15% (don't wait for more)
Time limit: 12 hours (faster exit)
Skip Certain Signals:
Condition: Market = Bear
Trigger: Medium-confidence bullish signal
Action: SKIP (don't trade)
Reasoning: In bear markets, only trade highest-confidence setups
Bearish News Trade:
Condition: Market = Bear
Trigger: Negative news on held asset
Action: Sell immediately (vs. waiting in bull)
Reasoning: Bad news hits harder in bear markets
Capital Preservation Mode
When in bear market, automation should prioritize safety:
Bear Market Global Settings:
- Maximum exposure: 30% (vs 50% in bull)
- Maximum single position: 1% (vs 2%)
- Daily loss limit: 2% (vs 4%)
- Require higher confidence for any trade
Sideways Market Automation
Adjusted Rules for Ranging Markets
Position Sizing:
Standard: 1% → Sideways: 0.75-1%
Reasoning: Lower conviction, wait for trend
Strategy Shift:
Trending strategy → Mean reversion
Buy breakouts → Buy support, sell resistance
Sideways Market Rule Examples
Range Trading:
Condition: Market = Sideways
Asset in defined range: Buy near support, sell near resistance
Size: 0.75%
Stop: Below support / Above resistance
Target: Opposite end of range
Reduced Activity:
Condition: Market = Sideways
Action: Reduce trading frequency
Reasoning: Breakouts fail, trends don't persist
Wait for: Clear trend emergence
Accumulation Mode:
Condition: Market = Sideways (post-bear)
Trigger: Quality asset at range support
Action: Small accumulation buys
Size: 0.5%
Hold: Long-term (waiting for bull)
Sideways markets often frustrate traders. The best approach is reduced activity and patience—big opportunities come when the range breaks.
Building an Adaptive System
Automatic Condition Detection
Daily Check (automated):
1. Get BTC price relative to 50 MA and 200 MA
2. Get Fear & Greed index
3. Assess recent highs/lows pattern
4. Determine market condition
5. Adjust active rule parameters
Result: Market = Bull | Bear | Sideways
Rule Parameter Tables
Create parameter sets for each condition:
LISTING_TRADE:
Bull:
size: 2%
stop: 12%
target: trailing 15%
hold: 48h
Bear:
size: 0.75%
stop: 8%
target: 15%
hold: 12h
Sideways:
size: 1%
stop: 10%
target: 20%
hold: 24h
Condition Change Handling
When market condition changes:
Transition: Bull → Bear
Actions:
1. Alert: "Market condition changed to Bear"
2. Reduce open position sizes
3. Tighten stops on existing positions
4. Switch to bear rule parameters
5. Consider taking some profits
Transition: Bear → Bull
Actions:
1. Alert: "Market condition changed to Bull"
2. Allow larger positions
3. Widen stops on winners
4. Switch to bull rule parameters
5. More aggressive on signals
Implementation in TradeFollow
Creating Condition-Aware Rules
Master Rule with Conditions:
Rule: Adaptive Listing Trade
Market Condition Check:
- If Bull: Use bull_params
- If Bear: Use bear_params
- If Sideways: Use sideways_params
Trigger: Exchange listing detected
Parameters by condition:
[Bull] size=2%, stop=12%, target=trail_15%
[Bear] size=0.75%, stop=8%, target=15%
[Sideways] size=1%, stop=10%, target=20%
Separate Rules by Condition
Alternatively, create separate rules:
Rule: Bull_Listing_Trade
Condition: Market = Bull
[Bull-optimized parameters]
Status: Active when Bull
Rule: Bear_Listing_Trade
Condition: Market = Bear
[Bear-optimized parameters]
Status: Active when Bear
Rule: Sideways_Listing_Trade
Condition: Market = Sideways
[Sideways-optimized parameters]
Status: Active when Sideways
Manual Override
Always allow manual control:
Global Settings:
- Auto-detect market condition: ON
- Manual override: Available
- Force condition: [Bull | Bear | Sideways | Auto]
Testing Your Adaptive System
Backtest Across Conditions
Test rules against different historical periods:
Bull period: Jan-Apr 2021
Bear period: May-Jul 2022
Sideways period: Aug-Oct 2023
For each period:
- Run bull rules → Record performance
- Run bear rules → Record performance
- Run sideways rules → Record performance
- Run adaptive rules → Record performance
Expected: Adaptive rules perform well across all periods
Paper Trade Transitions
Before live trading:
1. Paper trade for full market cycle if possible
2. At minimum, test each condition for 2+ weeks
3. Manually trigger condition changes to test transitions
4. Verify parameter changes apply correctly
Conclusion
Markets aren't static, and your automation shouldn't be either. Adaptive systems that recognize and respond to market conditions outperform rigid rule sets:
Bull Markets: Larger positions, wider stops, let winners run Bear Markets: Smaller positions, tighter stops, quick profits, capital preservation Sideways Markets: Reduced activity, range strategies, patience
Key Implementation Steps:
- Define detection method - How will you identify conditions?
- Create parameter sets - What changes in each condition?
- Build transition logic - How do rules adapt when conditions change?
- Test thoroughly - Backtest and paper trade across all conditions
- Monitor and adjust - Conditions can change rapidly
TradeFollow allows you to create condition-aware rules that automatically adjust to market environment, helping you stay profitable whether the market is pumping, dumping, or going sideways.
The best traders adapt. The best automation adapts automatically.