Final M1440 DAATS Lecture: Breakeven & Trailing Stops with Extreme Spread Handling
- June 2, 2025
- Posted by: Drglenbrown1
- Category: GATS Methodology

Overview
This lecture details our finalized stop‐loss and breakeven framework for 28 major forex pairs based on their M1440 (daily) DAATS values. We incorporate:
- Breakeven Trigger: 1.54 % of each pair’s DAATS
- post‐Breakeven Trailing: 469 points (GNASD 239 + MaxSpread 80 + MinStop 150)
- Extreme Spread Handling: Skip new entries if live spread > 1 400 points
Every trade remains governed by the Daily MACD (8, 17, 5) bias. We link all rules back to Dr. Glen Brown’s Seven Laws of Volatility Stop‐Loss.
1. M1440 DAATS Values (Points)
EURUSD: 12 196 GBPUSD: 14 105 USDJPY: 25 086 USDCHF: 10 562
USDCAD: 12 338 AUDUSD: 9 583 NZDUSD: 8 996 EURJPY: 25 845
GBPJPY: 32 259 AUDNZD: 8 499 CADCHF: 8 026 CADJPY: 19 012
EURAUD: 20 095 EURCAD: 15 666 EURNZD: 21 442 EURCHF: 9 344
EURGBP: 6 442 GBPAUD: 22 497 GBPCAD: 17 963 GBPCHF: 13 125
GBPNZD: 24 395 CHFJPY: 22 913 AUDJPY: 19 565 AUDCAD: 10 350
NZDCAD: 10 375 AUDCHF: 8 998 NZDJPY: 16 803 NZDCHF: 8 440
2. Compute Mean DAATS (Points)
Formula:
mean_DAATS = (1 / N) × Σ<sub>i=1..N</sub> DAATS<sub>i</sub>
N = 28.
Calculation:
Sum of all DAATS = 434 900 points
⇒ mean_DAATS = 434 900 ÷ 28 ≈ 15 532.86 points
3. Compute σpop (Population Standard Deviation)
Formula:
σ<sub>pop</sub>
= √[ (1 / N) × Σ<sub>i=1..N</sub> ( DAATS<sub>i</sub> – mean_DAATS )² ]
Substitute: mean_DAATS ≈ 15 532.86 points, N = 28.
Calculation:
1. Compute each deviation: DAATS<sub>i</sub> – 15 532.86.
2. Square each deviation.
3. Sum all 28 squared deviations ≈ 1 052 000 000.
4. Divide by 28 → ≈ 37 571 428.6.
5. Take square root → σ<sub>pop</sub> ≈ 6 696.94 points.
Thus, σpop ≈ 6 696.94 points.
4. Compute GNASD (Points)
By Law 7: Universe Volatility Law:
GNASD = σ<sub>pop</sub> ÷ N
= 6 696.94 ÷ 28
≈ 239.18 points
Rounded: GNASD ≈ 239 points
.
This “239‐point” buffer is our portfolio’s one‐sigma noise unit per pair.
5. Compute Breakeven % (BE %)
By Laws 4 & 7:
BE % = (GNASD ÷ mean_DAATS) × 100 %
= (239.18 ÷ 15 532.86) × 100 %
≈ 1.5398 %
Rounded: BE % ≈ 1.54 %
.
Each currency pair must move in your favor by 1.54 % of its own DAATS (in points) to shift its stop to breakeven.
6. Per‐Pair Breakeven Distance (Points)
For each pair i:
BE_dist<sub>i</sub> = (BE % / 100) × DAATS<sub>i</sub>
= 0.015398 × DAATS<sub>i</sub> (in points)
Pair | DAATS (pts) | BE_dist = 1.54 % × DAATS (pts) | Rounded (pts) |
---|---|---|---|
EURUSD | 12 196 | 0.015398 × 12 196 ≈ 187.48 | 187 |
GBPUSD | 14 105 | 0.015398 × 14 105 ≈ 217.38 | 217 |
USDJPY | 25 086 | 0.015398 × 25 086 ≈ 386.02 | 386 |
USDCHF | 10 562 | 0.015398 × 10 562 ≈ 162.72 | 163 |
USDCAD | 12 338 | 0.015398 × 12 338 ≈ 189.48 | 189 |
AUDUSD | 9 583 | 0.015398 × 9 583 ≈ 147.48 | 147 |
NZDUSD | 8 996 | 0.015398 × 8 996 ≈ 138.47 | 138 |
EURJPY | 25 845 | 0.015398 × 25 845 ≈ 397.15 | 397 |
GBPJPY | 32 259 | 0.015398 × 32 259 ≈ 496.41 | 496 |
AUDNZD | 8 499 | 0.015398 × 8 499 ≈ 130.80 | 131 |
CADCHF | 8 026 | 0.015398 × 8 026 ≈ 123.43 | 123 |
CADJPY | 19 012 | 0.015398 × 19 012 ≈ 292.78 | 293 |
EURAUD | 20 095 | 0.015398 × 20 095 ≈ 309.46 | 309 |
EURCAD | 15 666 | 0.015398 × 15 666 ≈ 240.10 | 240 |
EURNZD | 21 442 | 0.015398 × 21 442 ≈ 330.04 | 330 |
EURCHF | 9 344 | 0.015398 × 9 344 ≈ 143.90 | 144 |
EURGBP | 6 442 | 0.015398 × 6 442 ≈ 99.08 | 99 |
GBPAUD | 22 497 | 0.015398 × 22 497 ≈ 346.85 | 347 |
GBPCAD | 17 963 | 0.015398 × 17 963 ≈ 276.65 | 277 |
GBPCHF | 13 125 | 0.015398 × 13 125 ≈ 201.84 | 202 |
GBPNZD | 24 395 | 0.015398 × 24 395 ≈ 375.33 | 375 |
CHFJPY | 22 913 | 0.015398 × 22 913 ≈ 353.06 | 353 |
AUDJPY | 19 565 | 0.015398 × 19 565 ≈ 301.20 | 301 |
AUDCAD | 10 350 | 0.015398 × 10 350 ≈ 159.21 | 159 |
NZDCAD | 10 375 | 0.015398 × 10 375 ≈ 159.78 | 160 |
AUDCHF | 8 998 | 0.015398 × 8 998 ≈ 138.44 | 138 |
NZDJPY | 16 803 | 0.015398 × 16 803 ≈ 257.04 | 257 |
NZDCHF | 8 440 | 0.015398 × 8 440 ≈ 129.26 | 129 |
Example (EURUSD):
If EURUSD entry = 1.10000 (110 000 points), once price ≥ 110 187 points (+187 points), shift stop to 110 000. Then trail by 469 points behind each new high.
7. Extreme Spread & Minimum Stop Rules
Before entry:
- Maximum Spread: If
CurrentSpread > 1 400 points
, skip entry (avoid trading during rollover‐spike). - Otherwise: Ensure
InitialBuffer = max(DAATSi, 150)
(no stop < 150 points).
8. Revised “Law 5: Trailing‐Exposure”
Original Law 5:After breakeven, trail by GNASD (239) points behind price.
Updated:After breakeven, trail by (GNASD + MaxSpread + MinStop) = 239 + 80 + 150 = 469 points behind price.
9. Linking All Steps to Dr. Brown’s Seven Laws
- Law 1: Volatility Unit Law
– ATR200(M1440) = one volatility exposure (in points).
– DAATSi = 15 × ATRi (points). - Law 2: Exposure‐Scaling Law
– Initial stop buffer = 15 exposures (DAATS points).
– We derive BE% = 1.54 % (≈ 0.023 exposures) for breakeven. - Law 3: Initial‐Stop Law
– On entry:Stop₀ = EntryPrice ± max(DAATSi, 150)
(points), ensuring ≥ 150 points.
– Skip entry ifCurrentSpread > 1 400 points
. - Law 4: Breakeven‐Fraction Law
– Shift to breakeven when price moves ≥BE_disti = (BE %/100) × DAATSi
(points). - Law 5: Trailing‐Exposure Law
– Updated: After BE, trail byGNASD + MaxSpread + MinStop
= 239 + 80 + 150 = 469 points. - Law 6: Tiered‐Risk Allocation Law
– Position size = (Equity × Risk %) ÷ [ max(DAATSi, 150) × \$ per point ]. - Law 7: Universe Volatility Law
1. Collect DAATSi for all 28 pairs (points).
2. Computeσpop ≈ 6 696.94 points
.
3.GNASD = σpop ÷ 28 ≈ 239 points
.
4.BE % = (σpop) / (28 × mean_DAATS) × 100 ≈ 1.54 %
.
5. EnforceMaxSpread ≤ 1 400 points
andMinStop = 150 points
.
10. Implementation Pseudocode (M1440 in Points)
Inputs:
Universe = {pair₁, …, pair₂₈}
DAATS_pts[i] // in points
N = 28
Equity // e.g. $100 000
RiskPct // e.g. 0.005 (0.5%)
MinStop_pts = 150 // broker minimum
MaxSpread_pts = 1 400 // skip if spread > 1 400
PointValue_per_lot[i] // e.g. $0.0001 per point per micro lot
DailyBiasFilter(i) // returns true if Daily MACD(8,17,5) bias aligns
M1440RegimeFilter(i) // returns true if daily EMA50/EMA89 regime aligns
// 1. Compute mean & σpop:
mean_DAATS_pts = Σ DAATS_pts[i] / 28 // ≈ 15 532.86 points
sigma_pop_pts = sqrt((1/28) × Σ (DAATS_pts[i] – mean_DAATS_pts)²) // ≈ 6 696.94
GNASD_pts = sigma_pop_pts / 28 // ≈ 239 points
BE_percent = (sigma_pop_pts) / (28 × mean_DAATS_pts) × 100 // ≈ 1.54%
// 2. For each pair i:
for i in 1..28:
// 2a. Spread check:
current_spread = GetCurrentSpread(i) // in points
if current_spread > MaxSpread_pts:
continue // skip entry if spread > 1 400
// 2b. Compute required buffers:
DAATS_i = DAATS_pts[i] // in points
initial_buffer = max(DAATS_i, MinStop_pts) // ensure ≥ 150 points
// 2c. Higher‐TF filters:
if not DailyBiasFilter(i): continue
if not M1440RegimeFilter(i): continue
entry_price_pts = GetEntryPrice(i) // in points
if direction == LONG:
stop_pts = entry_price_pts − initial_buffer
else:
stop_pts = entry_price_pts + initial_buffer
// 2d. Position sizing:
risk$_ = Equity × RiskPct // e.g. $500 if $100k × 0.005
$per_pt = PointValue_per_lot[i] // e.g. $0.0001 per point
lots = floor(risk$_ / (initial_buffer × $per_pt))
if lots < 0.01: continue // skip if below minimum lot
// 2e. Breakeven trigger:
BE_dist_i = (BE_percent / 100) × DAATS_i // in points
is_breakeven = false
high_BE = –∞
low_BE = +∞
// 3. On each new tick/bar:
current_pts = GetCurrentPrice(i) // in points
if not is_breakeven:
profit_pts = (current_pts – entry_price_pts) if LONG
else (entry_price_pts – current_pts)
if profit_pts ≥ BE_dist_i:
is_breakeven = true
stop_pts = entry_price_pts // shift to breakeven
high_BE = current_pts
low_BE = current_pts
else:
// 3a. Revised trailing distance:
trail_distance = GNASD_pts + 80 + MinStop_pts // 239 + 80 + 150 = 469
if direction == LONG:
high_BE = max(high_BE, current_pts)
trail_stop = high_BE – trail_distance
stop_pts = max(stop_pts, trail_stop)
else:
low_BE = min(low_BE, current_pts)
trail_stop = low_BE + trail_distance
stop_pts = min(stop_pts, trail_stop)
// 4. Enforce floor at DAATS if DAATS_i > MinStop_pts:
if direction == LONG:
floor_stop = entry_price_pts – DAATS_i
stop_pts = max(stop_pts, floor_stop)
else:
floor_stop = entry_price_pts + DAATS_i
stop_pts = min(stop_pts, floor_stop)
// 5. Exit condition:
if (direction == LONG and current_pts ≤ stop_pts) or
(direction == SHORT and current_pts ≥ stop_pts):
CloseTrade(i)
break
11. About the Author
Dr. Glen Brown
Founder, President & CEO of Global Accountancy Institute, Inc. and Global Financial Engineering, Inc. With over 25 years of proprietary trading and quantitative research, Dr. Brown created the Seven‐Law Volatility Stop‐Loss framework and the GATS platform. All research remains in‐house; revenue is generated solely from trading performance—no external capital or software licensing.
12. Business Model
Global Accountancy Institute, Inc. and Global Financial Engineering, Inc. operate a closed, research‐and‐trade model. All intellectual property—GATS algorithms, volatility rules, automation scripts—is proprietary. Profits come exclusively from trading, ensuring full alignment between research and results.
13. Risk Disclaimer
This material is educational only and does not constitute financial or investment advice. Trading foreign exchange carries a high risk of loss. Past performance is not indicative of future results. Consult a qualified advisor before making trading decisions, and only trade with capital you can afford to lose.