Barmenteros Fx

Barmenteros Fx We firmly believe that striving for perfection is the road to excellence. We also program for TradingView, NinjaTrader and TradeStation.

With this as our keystone, we provide tailored MT4 programming service (also MT5) for Forex traders worldwide. With this as our keystone, Barmenteros FX is devoted to providing tailored MT4 programming service (also MT5) for Forex traders worldwide. In addition to MetaTrader, we also program for other popular trading platforms as TradingView, NinjaTrader and TradeStation. With years of experience,

we have improved the methods and processes that enable us to create high-quality, robust and stable programs for Forex market. We aim to create long term partnerships with our customers by exceeding expectations with a top level of professionalism, honesty, and transparency.

28/05/2026

Before writing a line of code, a professional MT4 programmer spends 12–16 hours on requirements: broker constraint mapping, edge-case elicitation, and building the logic document that makes the code production-ready.

Two comparable projects, same complexity tier: with upfront requirements analysis, 1 revision round and on time. Without — 3 revision rounds, 34 extra hours billed, and 3 weeks late. Same code quality. Different specification quality.

22/05/2026

Today the MT4 developer market is full of programmers generating code with AI tools — code that compiles and backtests but fails live. This video covers the three things to verify before hiring, the red flags that are hard to spot, and a low-cost test project filter that works every time.

20/05/2026

Before writing a single line of MQL5 order management code, there is one technical decision your broker's account determines — and most developers skip asking. Netting vs. hedging mode. Here's why it matters, what the Standard Library fixes, and what MQL5 can actually build.

Two EAs on the same account were closing each other's positions. No error. No warning in the MetaTrader logs.The cause i...
19/05/2026

Two EAs on the same account were closing each other's positions. No error. No warning in the MetaTrader logs.

The cause is `OrderSelect()`. Every loop in MQL4 that iterates open positions — trailing stops, breakeven checks, basket-close sweeps — sees every order on the account. Not just the EA's own. Every order placed by every strategy running in the same terminal.

Without an `OrderMagicNumber()` ownership check in the modification loop, one EA's housekeeping routine becomes an account-wide override.

We traced three patterns across client accounts this year. A trailing-stop EA updating stop-losses on positions placed by a mean-reversion EA it never knew existed. A breakeven EA closing scalper trades at the wrong moment because it counted total positions, not its own. A basket-close EA flattening end-of-day orders on EURUSD from every strategy on the account — by symbol, not by magic number.

In each case, the EAs were technically correct in isolation. The failure was structural: no ownership filter in the loops that act across positions.

The fix is one condition — `OrderMagicNumber() == MAGIC` — added to every loop that modifies, closes, or counts orders. It must appear in three places: before any `OrderModify()` or `OrderClose()` call, inside position-count functions used for risk budgeting, and in any basket operation that iterates the full order pool.

If your portfolio account has been generating unexplained behavior — positions closed at wrong prices, SLs moved overnight — verify this before re-evaluating any strategy.

16/05/2026

Most MT5 EA projects fail before a line of code is written — because no one asked whether the broker runs netting or hedging mode. This video covers the one question that determines your entire MT5 ex*****on architecture, what a proper MT4-to-MT5 migration actually involves, and when MT5 is worth the development cost.

programmer

15/05/2026

Most traders default to the wrong choice when their EA underperforms — patching a broken architecture or rebuilding what could have been fixed cheaply. Three structural factors determine the right call.

Whether you fix or rebuild, the evaluation itself is cheap relative to either path. A code review takes hours and prevents the expensive mistake.

13/05/2026

AccountBalance() is wrong the moment your EA opens a second trade.

Most EA lot-size formulas use AccountBalance() — the sum of closed trade results. It does not include any floating P&L from open positions. When the second position opens against an existing losing trade, the formula calculates from a balance figure that hasn't moved. The account's real value has.

I documented this pattern across three client rescue projects this year. Same brief each time: excellent backtest, inconsistent live performance whenever multiple positions ran against a trending move. Same root cause each time: one function on one line.

For most multi-position strategies, the fix is one substitution: AccountBalance() → AccountEquity(). Equity-based sizing calculates each new position from the account's current real value, which naturally reduces lot sizes as drawdown accumulates. For fixed grid EAs, pre-allocated budgeting handles the aggregate exposure problem that equity-based sizing alone does not solve.

Full breakdown in the article linked in the first comment — three approaches, a grid-specific edge case, and a diagnostic checklist.

AccountBalance() is correct for single-position EAs. It is wrong for every EA that opens more than one trade.This year I...
12/05/2026

AccountBalance() is correct for single-position EAs. It is wrong for every EA that opens more than one trade.

This year I received the same EA rescue brief from three separate clients. Multi-position strategy. Excellent backtest results. Inconsistent live performance whenever the market moved against two or more open positions. Same root cause in all three: a single function on a single line of code.

AccountBalance() returns your account's balance — the sum of closed trade results. It does not include the profit or loss of any open positions. When no positions are open, balance equals equity. When you have open losing positions, equity falls while balance stays flat.

A lot-size formula based on AccountBalance() does not know those open positions exist. Position one opens correctly. That position moves into a loss. Position two opens as if the account is untouched. Each subsequent calculation uses a number that no longer reflects the account's actual value — and the failure is invisible in backtesting, because Strategy Tester calculates on closed trades only.

For most multi-position strategies, the fix is one substitution: replace AccountBalance() with AccountEquity(). Equity-based sizing calculates each new position from the account's current real value — balance minus all floating losses. As equity falls, each subsequent position opens smaller. It does not prevent drawdowns, but it prevents the lot-size formula from amplifying them.

For grid EAs, the situation requires more care. Equity-based sizing alone does not cap aggregate exposure — I documented that edge case and the correct approach in the article.

If your EA can open more than one position simultaneously, check your lot-size function. If it contains AccountBalance(), that line needs to change.

A client paid for three rounds of EA patches before discovering the total cost exceeded a clean rebuild. The opposite mi...
07/05/2026

A client paid for three rounds of EA patches before discovering the total cost exceeded a clean rebuild. The opposite mistake is just as common — traders ordering full rebuilds when targeted fixes would ship in days at a fraction of the price.

Whether your EA needs fixing or rebuilding is not intuitive. I evaluate this for clients regularly, and the answer comes down to three structural factors.

The first is code structure quality. Can the codebase absorb a change without breaking something else? An EA with a 450-line monolithic OnTick() function, magic numbers scattered everywhere, and copy-pasted logic blocks in five places is not fixable in any meaningful sense. Every patch introduces a new bug. Compare that with separated functions and consistent error handling — you can swap out one module in an afternoon.

The second is strategy logic validity. Code quality is irrelevant if the trading logic underneath is curve-fitted. I reviewed an EA with clean, professional code — but the entry signal was a moving average crossover optimized to a specific 18-month window. Beautiful backtest, consistent losses out of sample. No amount of code restructuring fixes a flawed strategy.

The third — and most decisive — is state management architecture. How does the EA handle terminal restarts? If it stores everything in runtime variables that vanish on reboot, adding persistence means touching every function. The "fix" and the "rebuild" converge to the same amount of work.

Before committing money either way, ask those three questions. A code review takes hours and prevents the expensive default.

What was the last thing that surprised you when you looked under the hood of your EA?

05/05/2026

Most MQL4 tutorials teach syntax. This video explains why that is not enough — the production problems that make Expert Advisors fail in live trading, and what professional development looks like after 14 years of building trading systems.

Dirección

Avenida Principe Salman, 6, 5th-JEW
Marbella
29603

Horario de Apertura

Lunes 09:00 - 17:00
Martes 09:00 - 17:00
Miércoles 09:00 - 17:00
Jueves 09:00 - 17:00
Viernes 09:00 - 17:00

Teléfono

+34951898160

Notificaciones

Sé el primero en enterarse y déjanos enviarle un correo electrónico cuando Barmenteros Fx publique noticias y promociones. Su dirección de correo electrónico no se utilizará para ningún otro fin, y puede darse de baja en cualquier momento.

Compartir