Build Complex Trading Strategies.
Create - Test - Backtest - Optimize

A desktop app with a purpose-built DSL for price action and orderflow pattern detection, backtesting, and optimization.

  • Create setups using Price Action & Orderflow concepts
  • Backtest thousands of limit/SL/TP combinations
  • Optimize setup parameters
  • Create alerts

What You Can Build

Combine any of these concepts in your setups

Traditional Indicators

  • EMAs - crosses, direction, price above/below
  • RSI - levels, crosses up/down
  • VWAP - with standard deviation bands
  • Hull MA - direction detection
  • Fibonacci - retracements, extensions

Price Action Concepts

  • Market Structure - highs/lows, ITH/ITL, LTH/LTL
  • Structure Breaks - MSB up/down detection
  • FVGs - detection, fill tracking, open count
  • Order Blocks - auto-labeled from MSB
  • Trendlines - support, resistance, channels
  • Patterns - wedges, triangles, ranges
  • Sweeps - liquidity sweep detection
  • Breakouts - level breaks with volume

Volume Profile / Orderflow

  • Delta Analysis - buy/sell delta ratios
  • Delta Divergence - candle direction vs delta
  • Footprint - POC position, taker side
  • TPO Sessions - VAH, VAL, POC
  • TPO Patterns - poor highs/lows, single prints
  • Naked POCs - unfilled POC detection
  • Unusual Volume - spikes, volume vs avg

How It Works

A few lines of code express complex multi-phase setups

Market Structure Break + FVG Retest
msb-fvg-retest.edge
1pattern(
2 block(
3 start(low(), structDirection("down")),
4 any(msBreakUp(obLabel("ob"))),
5 end(
6 high(),
7 structDirection("up"),
8 containsFvgs(minOpenFvgUpCount(2), fvgLabel("up"))
9 )
10 ),
11 block(
12 end(fvgFill(targetLevel("fvg:up:0")))
13 )
14)

Block 1: Find a move from a low in downtrend, with a market structure break up, ending at a high with at least 2 open FVGs

Block 2: Wait for price to fill the first FVG

Labels like ob and fvg:up:0 let you reference levels across blocks

TPO Session VAL Reclaim with Delta
tpo-val-reclaim.edge
1pattern(
2 block(
3 start(
4 candleDirection("down"),
5 belowTarget(target("session/val"), reference("l")),
6 candleFootprint(maxBuySellDeltaRatio(0.1)),
7 candleFootprint(pocInBottomWick()),
8 candleFootprint(closeAbovePoc())
9 ),
10 end(
11 aboveTarget(target("session/val"), reference("c")),
12 candleDirection("up"),
13 candleFootprint(pocInBottomWick())
14 )
15 )
16)

Start: Down candle below session VAL, seller absorption (low delta ratio), POC in bottom wick, close above POC

End: Reclaim VAL with bullish candle, POC still in bottom wick

Combines TPO levels with footprint analysis in a single pattern

Range Breakout with Volume Confirmation
range-breakout.edge
1pattern(
2 blocks(
3 block(
4 minCount(20), maxCount(100),
5 range(
6 minSupportCount(3), supportThreshold(0.0005),
7 minResistanceCount(3), resistanceThreshold(0.0005))
8 ),
9 block(
10 minCount(1), maxCount(25), endLabel("break/close"),
11 end(
12 candleDirection("up"),
13 aboveTarget(target("range/resistance/high"), reference("c")),
14 belowTarget(target("range/resistance/high"), reference("o")),
15 or(
16 unusualSize(minSizeStd(2)),
17 unusualVolume(minVolumeDeltaRatio(2)),
18 unusualVolume(minVolumeStd(2)),
19 unusualVolume(minVolumeAvgRatio(2), volumeAvgPeriod(20)))
20 )
21 )
22 )
23)

Block 1: Detect a range with at least 3 support and 3 resistance touches over 20-100 candles

Block 2: Breakout candle that opens below and closes above resistance, with volume confirmation

Uses or() operator to accept any of several conditions: large candle, large volume delta compared to prior candle, large volume compared to average or standard deviation of the volume

Backtesting & Optimization

Test thousands of parameter combinations at once

  • Stop Loss Options
  • Take Profit Options
  • Dynamic Targets
  • Multiple TPs

Stop Loss / Take Profit

  • Backtest thousands of limit/sl/tp combinations
  • Fixed percentage SL/TP
  • Risk/reward ratio based SL/TP
  • Dynamic targets from pattern labels
  • Test different padding values
Trail Stop Options

Trail Stop Options

  • EMA trail stop
  • VWAP trail stop
  • Fixed percent trail
  • Grid-based trail
  • ATR-based trail
  • Parameter Optimization
  • Optimization Settings
  • Optimization Analysis
  • Optimization Output

Parameter Optimization

  • Add parameters to your setup to find the optimal values
  • Setup values to test for each parameter (range or list)
  • Define your optimization goals (win rate, ev, drawdown, sample size)
  • Backtest parameter combinations with GA like algorithm

Alerts

Create alerts from any pattern you build. EdgeFound scans the markets so you don't have to.

  • Get notified when your setups trigger
  • Works with any custom pattern
  • Multiple notification channels
Alerts

Why EdgeFound

vs. TradingView PineScript

PineScript is designed for indicators, not price action patterns. No native support for market structure, FVGs, order blocks, or multi-phase setups.

vs. StrategyQuant

Complex visual interface with a steep learning curve. EdgeFound's DSL is text-based, versionable, and composable.

vs. Manual Charting

Hours spent scanning charts for setups. EdgeFound scans all markets and timeframes automatically, finds matches you'd miss.

Join the Beta

EdgeFound is currently in beta testing. Request access to try the desktop app.