Files
EA/EMA Indi/README.md
Kunthawat Greethong 04aa2eb2e6 New EA and Indi
2026-01-25 10:34:54 +07:00

4.9 KiB

Base-EMA Multi-Stage Reversal Signal Indicator

Overview

The Base-EMA Reversal Indicator is a sophisticated trading tool that identifies potential reversal opportunities using a multi-stage state machine approach with EMA confluence. The indicator tracks both buy and sell opportunities through a systematic process of base formation, EMA confirmation, and pullback detection.

Features

8 Indicator Buffers

  1. BUY_SIGNAL (Buffer 0): Price level for buy entry (up arrow)
  2. SELL_SIGNAL (Buffer 1): Price level for sell entry (down arrow)
  3. BUY_SL (Buffer 2): Stop Loss level for buy positions (from base low)
  4. SELL_SL (Buffer 3): Stop Loss level for sell positions (from base high)
  5. BUY_TP (Buffer 4): Take Profit level for buy positions (EMA 600)
  6. SELL_TP (Buffer 5): Take Profit level for sell positions (EMA 600)
  7. BUY_STATE (Buffer 6): Current buy state (0-3) for EA consumption
  8. SELL_STATE (Buffer 7): Current sell state (0-3) for EA consumption

Input Parameters

EMA Settings

  • EMA 50 Period: Fast EMA period (default: 50)
  • EMA 100 Period: Medium-fast EMA period (default: 100)
  • EMA 200 Period: Medium EMA period (default: 200)
  • EMA 300 Period: Medium-slow EMA period (default: 300)
  • EMA 400 Period: Slow EMA period (default: 400)
  • EMA 500 Period: Very slow EMA period (default: 500)
  • EMA 600 Period: Target EMA for TP (default: 600)

Setup Settings

  • Lookback Period: Bars to look back for base detection (default: 20)
  • Base Threshold: Points tolerance for pullback to base (default: 50)
  • State Reset Period: Bars before resetting state if no signal (default: 50)

Display Settings

  • Show Dashboard: Toggle dashboard display (default: true)
  • Show Stage Labels: Toggle stage label display (default: true)
  • Show EMA Lines: Toggle EMA lines display (default: true)

Logic Workflow

Buy Side State Machine (Looking for reversal up to EMA 600)

State 0: Idle/Reset

  • Waiting for new low formation

State 1: Find Base

  • Price makes new low in InpLookback bars (at frist install then use last signal as a start of lookback)
  • Store BaseLow = Low[i]
  • Transition to State 2

State 2: Confirm Test

  • Price touches or crosses EMA 50, 100, or 200 from below
  • Wait for pullback opportunity
  • Transition to State 3

State 3: Wait Pullback

  • Price pulls back to BaseLow within InpBaseThreshold points
  • Generate buy signal at current close
  • Set SL at BaseLow
  • Set TP at EMA 600
  • Reset to State 0

Sell Side State Machine (Looking for reversal down to EMA 600)

State 0: Idle/Reset

  • Waiting for new high formation

State 1: Find Base

  • Price makes new high in InpLookback bars (at frist install then use last signal as a start of lookback)
  • Store BaseHigh = High[i]
  • Transition to State 2

State 2: Confirm Test

  • Price touches or crosses EMA 50, 100, or 200 from above
  • Wait for bounce back opportunity
  • Transition to State 3

State 3: Wait Pullback

  • Price bounces back to BaseHigh within InpBaseThreshold points
  • Generate sell signal at current close
  • Set SL at BaseHigh
  • Set TP at EMA 600
  • Reset to State 0

Visual Elements

Color Scheme

  • EMA 50: Red
  • EMA 100: Orange
  • EMA 200: Yellow
  • EMA 300: Green
  • EMA 400: Blue
  • EMA 500: Purple
  • EMA 600: Magenta
  • Buy Signals: Lime green arrows (↑)
  • Sell Signals: Red arrows (↓)
  • SL Lines: Gray dashed lines
  • TP Lines: Blue dotted lines
  • Stage Labels: Color-coded by state

Stage Labels

Located in top-right corner, shows:

  • Current buy stage with colored background
  • Current sell stage with colored background
  • State descriptions for active states

State Descriptions

State Value Description Color
Idle/Reset 0 Waiting for setup Gray
Finding Base 1 Looking for new high/low Blue
Confirm Test 2 EMA touch/cross detected Orange
Wait Pullback 3 Waiting for pullback to base Green

For EA Developers

The indicator provides two key buffers for automated trading systems:

  • BUY_STATE_BUFFER (6): Current buy state (0-3)
  • SELL_STATE_BUFFER (7): Current sell state (0-3)

These buffers can be accessed programmatically to:

  • Monitor setup progression
  • Trigger automated entries at State 3
  • Implement custom risk management
  • Build multi-timeframe strategies

Technical Details

Buffer Configuration

#property indicator_buffers 8
#property indicator_plots   6

Performance Considerations

  • Uses iMA() handles for efficient EMA calculation
  • Implements series arrays for optimal memory usage
  • Minimal repainting - signals generated on bar close
  • Efficient object management for dashboard and labels

Error Handling

  • Validates EMA handle creation
  • Checks array bounds before access
  • Graceful cleanup on deinitialization
  • Proper series array management