mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-18 02:28:05 +00:00
114 lines
2.9 KiB
Markdown
114 lines
2.9 KiB
Markdown
# TTM_TREND: TTM Trend Indicator
|
||
|
||
> John Carter's TTM Trend - A fast EMA-based trend indicator with color-coded direction.
|
||
|
||
## Historical Context
|
||
|
||
John Carter developed the TTM (Trade the Markets) Trend indicator as a clean visual tool for identifying short-term trend direction. Popularized through his book *Mastering the Trade* and the thinkorswim platform, it provides a simple but effective way to see trend changes at a glance using color-coded lines.
|
||
|
||
## Algorithm
|
||
|
||
### Core Calculation
|
||
```
|
||
alpha = 2 / (period + 1)
|
||
EMA = alpha × source + (1 - alpha) × prevEMA
|
||
```
|
||
|
||
Or equivalently:
|
||
```
|
||
EMA = alpha × (source - EMA) + EMA
|
||
```
|
||
|
||
### Trend Detection
|
||
```
|
||
trend = sign(EMA - prevEMA)
|
||
+1 = bullish (EMA rising)
|
||
-1 = bearish (EMA falling)
|
||
0 = neutral (EMA unchanged)
|
||
```
|
||
|
||
### Strength Measurement
|
||
```
|
||
strength = |EMA - prevEMA| / prevEMA × 100%
|
||
```
|
||
|
||
## Default Parameters
|
||
|
||
| Parameter | Value | Description |
|
||
|:----------|:------|:------------|
|
||
| Period | 6 | EMA lookback period (very fast) |
|
||
| Source | HLC/3 | Typical price (High + Low + Close) / 3 |
|
||
|
||
## Outputs
|
||
|
||
| Output | Type | Description |
|
||
|:-------|:-----|:------------|
|
||
| Value | double | Current EMA value |
|
||
| Trend | int | Trend direction: +1, -1, or 0 |
|
||
| Strength | double | Percent change between EMA values |
|
||
| IsHot | bool | True after warming up (2 bars) |
|
||
|
||
## Color Coding
|
||
|
||
| Color | Condition | Meaning |
|
||
|:------|:----------|:--------|
|
||
| 🟢 Green | Trend > 0 | EMA rising (bullish) |
|
||
| 🔴 Red | Trend < 0 | EMA falling (bearish) |
|
||
| ⚫ Gray | Trend = 0 | EMA unchanged (neutral) |
|
||
|
||
## Performance
|
||
|
||
| Metric | Value |
|
||
|:-------|:------|
|
||
| Time complexity | O(1) per bar |
|
||
| Space complexity | O(1) |
|
||
| Warmup period | 2 bars |
|
||
| Allocations | Zero in hot path |
|
||
|
||
## Usage Examples
|
||
|
||
### Basic Usage
|
||
```csharp
|
||
var ttm = new TtmTrend(period: 6);
|
||
|
||
// Update with typical price
|
||
var result = ttm.Update(new TValue(time, typicalPrice));
|
||
|
||
// Or update with bar (uses HLC/3 automatically)
|
||
var result = ttm.Update(bar);
|
||
|
||
// Access trend direction
|
||
if (ttm.Trend > 0) { /* bullish */ }
|
||
else if (ttm.Trend < 0) { /* bearish */ }
|
||
```
|
||
|
||
### Batch Processing
|
||
```csharp
|
||
var results = TtmTrend.Batch(barSeries, period: 6);
|
||
```
|
||
|
||
### With Indicator Instance
|
||
```csharp
|
||
var (results, indicator) = TtmTrend.Calculate(barSeries, period: 6);
|
||
bool isBullish = indicator.Trend > 0;
|
||
double strength = indicator.Strength;
|
||
```
|
||
|
||
## Trading Applications
|
||
|
||
1. **Trend Following**: Trade in the direction of the EMA color
|
||
2. **Trend Confirmation**: Use with other TTM indicators (Squeeze, Wave)
|
||
3. **Entry Timing**: Enter on color change with confirmation
|
||
4. **Exit Signal**: Exit when color changes against position
|
||
|
||
## Category
|
||
|
||
**Dynamics** - Measures trend direction and momentum using fast EMA smoothing.
|
||
|
||
## See Also
|
||
|
||
- [TTM_SQUEEZE: TTM Squeeze](../ttm_squeeze/TtmSqueeze.md)
|
||
- [TTM_WAVE: TTM Wave](../../oscillators/ttm_wave/TtmWave.md)
|
||
- [TTM_LRC: TTM Linear Regression Channel](../../channels/ttm_lrc/TtmLrc.md)
|
||
- [SUPER: SuperTrend](../super/Super.md)
|