Skip to main content

Scalp Strategy In-Depth Analysis

Strategy ID: #374 (374th of 465 strategies) Strategy Type: Ultra-Short-Term Quick In-Out Strategy Timeframe: 1 Minute (1m)


I. Strategy Overview

Scalp is an ultra-short-term (Scalping) strategy focused on capturing small profits, with a design philosophy of "many small wins covering small losses." The strategy uses a 1-minute timeframe with a target take-profit of only 1% and stop-loss of 4%, accumulating returns through high-frequency trading. It is recommended to run at least 60 trading pairs simultaneously to diversify risk and improve overall profit probability.

Core Characteristics

FeatureDescription
Buy Conditions1 buy signal, oversold bounce logic
Sell Conditions2 types of sell signals (EMA take-profit + overbought exit)
Protection MechanismsNo built-in protection mechanisms (relies on external configuration)
Timeframe1 minute (ultra-short-term)
Dependenciestalib, qtpylib, pandas
Recommended Simultaneous Positions≥ 60 trading pairs

II. Strategy Configuration Analysis

2.1 Basic Risk Parameters

# ROI Exit Table
minimal_roi = {
"0": 0.01, # Take profit at 1% profit
}

# Stop Loss Setting
stoploss = -0.04 # 4% hard stop loss

Design Rationale:

  • Micro take-profit target: 1% ROI, pursuing high-frequency small profits
  • Relatively loose stop loss: 4% stop loss is 4 times the take-profit, single trade risk is relatively high
  • Risk-Reward Ratio: 1:4, requires high win rate to cover
  • Design Philosophy: Diversify risk through many trades, use win rate advantage to accumulate returns

2.2 Timeframe Selection

timeframe = '1m'  # 1-minute candle

Design Philosophy:

  • Ultra-short-term operations, pursuing quick in and out
  • Check for trading opportunities every minute
  • High requirements for network latency and exchange response speed

2.3 Order Type Configuration

The strategy does not explicitly define order_types and will use Freqtrade's default configuration.


III. Buy Conditions Explained

3.1 Single Buy Signal

The Scalp strategy uses a single buy signal with simple and clear logic:

# Buy Condition
(
(dataframe['open'] < dataframe['ema_low']) & # Open price below EMA low
(dataframe['adx'] > 30) & # ADX > 30 (trend strength)
(
(dataframe['fastk'] < 30) & # Fast K < 30 (oversold)
(dataframe['fastd'] < 30) & # Fast D < 30 (oversold)
(qtpylib.crossed_above(dataframe['fastk'], dataframe['fastd'])) # K line crosses above D line
)
)

3.2 Buy Logic Breakdown

ConditionIndicatorThresholdMeaning
Condition 1Open price < EMA(5) low-Price opens below EMA low
Condition 2ADX> 30Sufficient trend strength, not directionless oscillation
Condition 3Fast K< 30Stochastic indicator in oversold zone
Condition 4Fast D< 30Stochastic indicator confirms oversold
Condition 5Fast K crosses above Fast D-Stochastic golden cross, reversal signal

3.3 Buy Signal Characteristics

Signal Type: Oversold bounce type

Applicable Scenarios:

  • Short-term bounces in downtrend
  • Oversold positions in sideways oscillation
  • Pullback entries in trending markets

Not Applicable Scenarios:

  • One-sided surge (no oversold opportunities)
  • Trendless oscillation (ADX < 30)

IV. Sell Logic Explained

4.1 ROI Take Profit

Profit Threshold    Take Profit Ratio
─────────────────────────────────────────
≥ 1% Immediate take profit

Design Philosophy: Pursue small but stable profits, accumulate returns through high-frequency trading.

4.2 Sell Signals

The strategy uses two types of sell signals:

# Sell Condition
(
(dataframe['open'] >= dataframe['ema_high']) # Condition 1: Open price >= EMA high
) |
(
(qtpylib.crossed_above(dataframe['fastk'], 70)) | # Condition 2: Fast K crosses above 70
(qtpylib.crossed_above(dataframe['fastd'], 70)) # Condition 3: Fast D crosses above 70
)

Sell Signal Classification:

Signal TypeTrigger ConditionMeaning
EMA Take ProfitOpen price >= EMA(5) highPrice bounces to above EMA
Overbought ExitFast K crosses above 70Stochastic enters overbought zone
Overbought ExitFast D crosses above 70Stochastic confirms overbought

4.3 Sell Logic Characteristics

Multi-dimensional Exit:

  • EMA direction: Exit when price bounces to EMA level
  • Stochastic indicator: Exit when entering overbought, don't be greedy

Exit Characteristics:

  • Quick in and out, don't hold for too long
  • Exit at 1% profit or indicator overbought

V. Technical Indicator System

5.1 Core Indicators

Indicator CategorySpecific IndicatorsPurpose
EMA SeriesEMA(5) high/close/lowPrice channel determination
Trend StrengthADXConfirm trend existence
StochasticStochastic Fast (5,3,3)Oversold/overbought determination
Bollinger Bands20 period, 2 standard deviationsAuxiliary reference (plotting only)

5.2 EMA Three-Line System

# EMA Calculation
dataframe['ema_high'] = ta.EMA(dataframe, timeperiod=5, price='high')
dataframe['ema_close'] = ta.EMA(dataframe, timeperiod=5, price='close')
dataframe['ema_low'] = ta.EMA(dataframe, timeperiod=5, price='low')

Design Philosophy:

  • Use EMA instead of SMA for faster response
  • Calculate EMA for high, close, and low prices separately
  • Build dynamic price channel

5.3 Stochastic Fast Version

# Stochastic Fast Parameters
stoch_fast = ta.STOCHF(dataframe, 5, 3, 0, 3, 0)
# Parameter explanation: K period 5, K smoothing 3, D smoothing 3

Why Fast Instead of Slow:

  • Fast version responds more quickly, suitable for 1-minute ultra-short-term
  • Captures reversal signals earlier
  • Sacrifices some stability for speed

VI. Risk Management Features

6.1 No Built-in Protection Mechanisms

The strategy code does not define a protections attribute, meaning:

  • No cooldown period protection
  • No maximum drawdown protection
  • No stop loss frequency limit
  • Completely relies on external configuration

Recommended Configuration: Manually add protection mechanisms in config.json:

{
"protections": [
{
"method": "CooldownPeriod",
"stop_duration": 5
},
{
"method": "MaxDrawdown",
"trade_limit": 20,
"stop_duration": 60,
"max_allowed_drawdown": 0.15
},
{
"method": "StoplossGuard",
"lookback_period": 60,
"trade_limit": 3,
"stop_duration": 30
}
]
}

6.2 Risk-Reward Ratio Analysis

ItemValueAnalysis
Take Profit Target1%Micro profit
Stop Loss Level4%Stop loss is 4 times take profit
Risk-Reward Ratio1:4Requires approximately 80% win rate to break even

Risk Warning:

  • Single trade risk is relatively high (4% stop loss)
  • Requires high win rate support
  • Suitable for diversifying risk with many trades

6.3 Multi-Pair Strategy

The strategy author recommends running at least 60 trading pairs simultaneously:

"we recommend to have at least 60 parallel trades at any time to cover non avoidable losses."

Design Philosophy:

  • Diversify risk through many parallel trades
  • Use win rate advantage to cover individual losses
  • Law of large numbers comes into play

VII. Strategy Advantages and Limitations

✅ Advantages

  1. Simple Logic: Clear buy and sell conditions, easy to understand and maintain
  2. Fast Execution: 1-minute cycle, quick entry and exit
  3. Streamlined Indicators: Only uses EMA, ADX, Stochastic three core indicators
  4. Suitable for Quantification: Clear rules, suitable for automated execution
  5. Clear Take Profit: 1% target is clear, no greed

⚠️ Limitations

  1. Poor Risk-Reward Ratio: 4% stop loss, 1% take profit, requires extremely high win rate
  2. No Protection Mechanisms: Needs manual configuration, easily overlooked
  3. Strong Network Dependency: 1-minute cycle is sensitive to latency
  4. High Trading Costs: High-frequency trading fees accumulate significantly
  5. Requires Many Trading Pairs: 60+ pairs have VPS performance requirements

VIII. Applicable Scenario Recommendations

Market EnvironmentRecommended ConfigurationExplanation
Trending MarketEnable ADX > 30 filterStrategy depends on trend strength
Oscillating MarketUse with cautionWon't enter when ADX < 30
High VolatilitySuitableMany oversold bounce opportunities
Low VolatilityNot suitableNo oversold opportunities

IX. Applicable Market Environment Details

Scalp is an ultra-short-term strategy with the core of capturing oversold bounce opportunities. Based on its code architecture, it is best suited for high-volatility trending markets, while performing poorly in low-volatility trendless markets.

9.1 Strategy Core Logic

  • Oversold Identification: Stochastic Fast K/D < 30
  • Trend Confirmation: ADX > 30 ensures directionality
  • Reversal Signal: K line crosses above D line
  • Quick Exit: 1% take profit or overbought exit

9.2 Performance in Different Market Environments

Market TypePerformance RatingReason Analysis
📈 Uptrend⭐⭐⭐⭐☆Many pullback oversold bounce opportunities, but might miss big rallies
🔄 Oscillating Trend⭐⭐⭐☆☆Won't enter when ADX < 30, misses oscillation opportunities
📉 Downtrend⭐⭐☆☆☆Bounces might be very weak, high stop loss risk
⚡️ High Volatility⭐⭐⭐⭐⭐Rich oversold bounce opportunities, suitable for high-frequency trading

9.3 Key Configuration Recommendations

Configuration ItemRecommended ValueExplanation
Simultaneous Positions≥ 60Diversify risk
Timeframe1mStrategy core, not recommended to modify
Stop Loss-0.03 ~ -0.04Can appropriately tighten
Trading Fee0.001Must consider fee impact

X. Important Reminder: The Cost of High-Frequency Trading

10.1 Fee Impact

Ultra-short-term strategies are extremely sensitive to fees:

Assuming 0.1% fee:
- Single trade cost: 0.2% (buy + sell)
- 1% take profit, fees take 20%!
- Actual net return: 1% - 0.2% = 0.8%

Recommendations:

  • Use low-fee exchanges
  • Consider fee rebates
  • Must include fees in backtesting

10.2 Hardware Requirements

Number of PairsMinimum MemoryRecommended Memory
60 pairs4GB8GB
100 pairs8GB16GB
150+ pairs16GB32GB

10.3 Network Latency Impact

1-minute cycle is sensitive to latency:

  • Ideal latency: < 100ms
  • Acceptable latency: 100-500ms
  • Dangerous latency: > 500ms

Recommendations:

  • Choose VPS close to exchange
  • Use stable network connection
  • Avoid trading during peak hours

10.4 Backtesting vs Live Trading Differences

High-frequency strategies have significant differences between backtesting and live trading:

FactorBacktestingLive Trading
SlippageNegligibleSignificant
Execution SpeedInstantaneousAffected by latency
FeesMay not be includedMust be included
Market ImpactNoneLarge orders have impact

XI. Summary

Scalp is a simply designed ultra-short-term strategy. Its core value lies in:

  1. Clear Logic: Single buy signal, easy to understand and maintain
  2. Fast Execution: 1-minute cycle, quick in and out
  3. Clear Target: 1% take profit, no greed

For quantitative traders, this is a strategy suitable for high-frequency trading, but note:

  • Poor Risk-Reward Ratio: Requires high win rate support
  • No Built-in Protection: Needs manual configuration
  • Fee Erosion: High-frequency trading fees accumulate significantly
  • Network Sensitivity: 1-minute cycle has high latency requirements

It is recommended to fully backtest and configure protection mechanisms before testing with small positions in live trading, and only scale up after confirming effectiveness.