0bps

Strategy vault / Market making

Multi Indicator High Frequency Range Trading Strategy

This is a high-frequency range trading strategy based on multiple technical indicators. The strategy combines signals from Exponential Moving Average (EMA), Relative Strength Index (RSI), volume analysis, and…

Author
ChaoZhang
Complexity
Starter · 56 lines
Parameters
0
Backtest bar
1d · swing
Tested on
BTC/USDT · futures

IMG

Overview

This is a high-frequency range trading strategy based on multiple technical indicators. The strategy combines signals from Exponential Moving Average (EMA), Relative Strength Index (RSI), volume analysis, and N-period price pattern recognition to identify optimal entry points in short-term trading. It implements strict risk management through predefined take-profit and stop-loss levels.

Strategy Principle

The core logic relies on multi-dimensional signal confirmation:

  1. Uses 8-period and 21-period EMA crossovers to determine short-term trend direction
  2. Validates market momentum using 14-period RSI, with RSI>50 confirming bullish momentum and RSI<50 confirming bearish momentum
  3. Compares current volume with 20-period average volume to ensure market activity
  4. Identifies potential reversal patterns by comparing the last 5 candles with the previous 10 candles Trading signals are generated only when all conditions align. Long positions are opened at market price for bullish signals, and short positions for bearish signals. Risk is controlled through 1.5% take-profit and 0.7% stop-loss levels.

Strategy Advantages

  1. Multi-dimensional signal cross-validation significantly reduces false signals
  2. Combines benefits of trend-following and momentum trading for improved adaptability
  3. Volume confirmation prevents trading during illiquid periods
  4. N-period pattern recognition enables timely detection of market reversals
  5. Reasonable profit/loss ratios for effective risk control
  6. Clear logic facilitates continuous optimization and parameter adjustment

Strategy Risks

  1. Frequent stop-losses may occur in highly volatile markets
  2. Sensitive to market maker quote delays
  3. Relatively few opportunities when all indicators align
  4. Consecutive losses possible in ranging markets Mitigation measures:
  • Dynamically adjust profit/loss ratios based on market volatility
  • Trade during periods of high liquidity
  • Optimize parameters to balance signal quantity and quality
  • Implement trailing stops to improve profitability

Optimization Directions

  1. Introduce adaptive parameter adjustment mechanisms for automatic optimization based on market conditions
  2. Add volatility filters to pause trading in excessive volatility
  3. Develop more sophisticated N-period pattern recognition algorithms
  4. Implement position sizing based on account equity
  5. Add multiple timeframe confirmation for increased signal reliability

Summary

The strategy identifies quality trading opportunities in high-frequency trading through multi-dimensional technical indicator collaboration. It considers trend, momentum, and volume characteristics while ensuring stability through strict risk control. While there is room for optimization, it represents a logically sound and practical trading approach.

Source Pine Script

/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XRP/USD Scalping Strategy with Alerts", overlay=true)

// Input parameters
ema_short = input.int(8, title="Short EMA Period")
ema_long = input.int(21, title="Long EMA Period")
rsiperiod = input.int(14, title="RSI Period")
vol_lookback = input.int(20, title="Volume Lookback Period")
n_bars = input.int(5, title="N-Bars Detection")

take_profit_perc = input.float(1.5, title="Take Profit (%)") / 100
stop_loss_perc = input.float(0.7, title="Stop Loss (%)") / 100

// Indicators
ema_short_line = ta.ema(close, ema_short)
ema_long_line = ta.ema(close, ema_long)
rsi = ta.rsi(close, rsiperiod)
avg_volume = ta.sma(volume, vol_lookback)

// N-bar detection function
bullish_nbars = ta.lowest(low, n_bars) > ta.lowest(low, n_bars * 2)
bearish_nbars = ta.highest(high, n_bars) < ta.highest(high, n_bars * 2)

// Entry conditions
long_condition = ta.crossover(ema_short_line, ema_long_line) and rsi > 50 and volume > avg_volume and bullish_nbars
short_condition = ta.crossunder(ema_short_line, ema_long_line) and rsi < 50 and volume > avg_volume and bearish_nbars

// Plot signals
plotshape(long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strategy execution
if (long_condition)
    strategy.entry("Long", strategy.long)
    strategy.exit("TP/SL", from_entry="Long", limit=close * (1 + take_profit_perc), stop=close * (1 - stop_loss_perc))

if (short_condition)
    strategy.entry("Short", strategy.short)
    strategy.exit("TP/SL", from_entry="Short", limit=close * (1 - take_profit_perc), stop=close * (1 + stop_loss_perc))

// Plot EMA lines
plot(ema_short_line, color=color.blue, title="Short EMA")
plot(ema_long_line, color=color.orange, title="Long EMA")

// Create alerts
alertcondition(long_condition, title="Buy Alert", message="Buy Signal: EMA Crossover, RSI > 50, Volume > Avg, Bullish N-Bars")
alertcondition(short_condition, title="Sell Alert", message="Sell Signal: EMA Crossunder, RSI < 50, Volume > Avg, Bearish N-Bars")

Published by ChaoZhang on the FMZ strategy square · last modified 2024-12-27. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.

Build this with AgenKit

A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a market making bot with inventory skew limits and order deduplication from strategies/Multi-Indicator-High-Frequency-Range-Trading-Strategy.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. Get tests, backtest, risk controls and a paper-trading switch

Understand it first

Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.

Related specs

esc

Try , , or .

↑↓ move↵ open