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

149 lines
4.9 KiB
Markdown

# 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
```mql5
#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