Joao Prata Silva Yglesias
Joao Prata Silva Yglesias
5 (1)
  • 정보
6+ 년도
경험
4
제품
2
데모 버전
0
작업
2
거래 신호
0
구독자
Trader and algorithmic developer focused on risk-managed automation for the Forex market. I build Expert Advisors that prioritize capital protection and survivability over hype — real strategies, transparent results, and live monitoring.

My flagship is SurfBot, a bidirectional mean-reversion grid with portfolio-level exposure control and an optional trend hedge. Everything I publish runs on real accounts with public signals, so you can verify performance before you buy.

I value clear documentation and responsive support. Questions are always welcome — reach out anytime.
Joao Prata Silva Yglesias 출시돈 제품

Grid Survival Ruler answers one question that decides whether a grid survives: how far can price move against you before the last layer is filled, and how often has THIS pair actually moved that far? Enter your spacing (% of price) and your maximum layers. The indicator draws the ladder on the chart, marks the last layer in red (book full), and shows the total adverse move in % and in price, plus how many average daily ATRs it represents. Then it tests that distance against the pair's own D1

Joao Prata Silva Yglesias 출시돈 제품

Spacing Audit measures the grid spacing your EA REALLY uses, from its own closed trades, not from its inputs and not from the gaps between open layers. Why: I spent a week believing my grid used ATR-based spacing because UseATR was true. It did not. Every pair sat on the minimum-spacing floor, 2.8x to 5.1x tighter than intended, and the book kept clogging. The inputs said one thing; 1,120 closed trades said another. The method: in a grid where each layer carries a take-profit one spacing away

Joao Prata Silva Yglesias
게재된 코드 Contract Sizer: ladder, floor and a breaker that survives a deposit
각기 다른 기능을 하는 세 가지 포지션 규모 조정 보호 기능; 이들을 혼동하는 것이 수많은 계좌가 전액 손실을 입는 주된 이유입니다: - 래더(ladder): 잔고의 X당 1계약으로, 수동 로트 조정 시에도 항상 상한선(CAP)으로 적용됩니다; - 플로어(floor): 최소 자본금 미만이면 거래가 중단되며, 새로운 입금이 필요합니다; - 브레이커(breaker): 계좌 규모와 관계없이 최고점 대비 X% 아래로 떨어지면 거래가 중단되며, 자동으로 재설정되지 않습니다. 이 라이브러리가 해결하는 문제이자, 다른 라이브러리들은 거의 다루지 않는 점: 입금은 이익이 아니며, 출금은 손실이 아닙니다. 브레이커는 잔고 최고치를 기준으로 하락폭을 측정합니다. 이를 처리하지 않으면, 드로우다운 중에 이루어진 입금은 잔고와 최고치를 동시에 끌어올리게 되며, 보호 기능은 도움이 될 바로 그 시점에 하락을 감지하지 못하게 됩니다. 이 경우 입금과 출금은 최고치를 동일한 만큼 이동시킵니다. 최고점은 파일에 저장됩니다. 터미널 재시작 시 최고점을 잊어버리는 브레이커는 진정한 브레이커가 아닙니다. 이 데모는 드로우다운 최저점에서 입금이 이루어지는 상황을 시뮬레이션합니다. 입금 기능을 켜고 끈 상태로 실행하여 “하락” 열을 비교해 보십시오.
Joao Prata Silva Yglesias
게재된 코드 Safe Logger: why your log lines vanish while FileOpen keeps returning success
Four EAs writing to the same file, all with FILE_SHARE_READ|FILE_SHARE_WRITE, FileSeek(SEEK_END), FileWrite, FileClose. Looks correct. Every FileOpen returns success. No error in the log. And the lines vanish. Reason: FILE_SHARE_WRITE lets all four open at the same time. All four call FileSeek(SEEK_END) and get THE SAME offset, because none has written yet. All four write at the same position. Whoever closes last wins. Three lines vanish silently. In my case: 12 events expected, 8 in the file. The fix is to open EXCLUSIVELY (no FILE_SHARE_WRITE) and retry while another EA holds the file. And to shout in the log when the retries run out: a log that fails silently is worse than no log at all, because you trust it. The demo script reproduces both modes. To see the loss, drag it onto four charts at the same time with safe mode off and count the lines in the CSV. On a single chart the defect does not show up - which is why it passes in testing and breaks in production.
Joao Prata Silva Yglesias
게재된 코드 Clock Diagnostic: TimeCurrent() freezes and steps backwards
TimeCurrent() is not a clock. It is the stamp of the LAST TICK. Two consequences break robots in production: 1. It freezes. With no tick it does not move: illiquid instrument, end of session, unstable connection - and any rule based on it stops with it. 2. It steps backwards: on a symbol switch, a reconnection or a tick from another instrument, the value can go back. The case that cost me a whole protection: I compared the date of a daily decision with TimeCurrent() to reject an expired one. The server clock stepped back to the previous day, the comparison matched, and four EAs accepted YESTERDAY's decision as valid. The gate that should have failed closed failed open - without a single error in the log. Rule: TimeLocal() for timestamps, dates, day changes, expiry - all that must always move forward; TimeCurrent() for session hours and market data. The script measures the divergence in your environment and reports both symptoms live. Run it with the market closed.
Joao Prata Silva Yglesias
게재된 코드 Trade Excursion Report: MFE and MAE of every closed trade, to CSV
청산된 거래 건당 한 줄의 CSV 파일을 내보내며, 여기에는 거래 내역서에는 포함되지 않는 수치들이 포함됩니다: 해당 거래에서 나타난 최대 미실현 이익(MFE), 견뎌낸 최대 미실현 손실(MAE), MFE 중 실제로 실현된 금액, 거래가 진행된 바(bar) 수, 그리고 보유 기간입니다. ‘Trade Excursion’ 지표와 동일한 측정 기준이지만, 차트에 표시하는 대신 파일로 출력됩니다. 이 데이터에 대해 물어볼 가치가 있는 질문들은 차트만으로는 답할 수 없기 때문입니다. 예를 들어, 포착 비율은 진입 시각에 따라 달라지는가? 조기 청산한 거래가 가장 오래 보유한 거래인가? 월요일에 발생한 손실 거래의 MAE는 금요일과 다른가? CSV 파일이 생성되면 피벗 테이블 하나로 이러한 질문에 대한 답을 얻을 수 있습니다. 출력 결과는 헤더 행이 포함된 세미콜론으로 구분된 형식으로, MQL5\Files 폴더에 저장되며 어떤 스프레드시트 프로그램에서도 열 수 있습니다. 측정 한계: 편차는 선택한 시간대의 봉 고점과 저점에서 산출되며, 봉 내부의 가격 변동 경로는 알 수 없습니다. ‘봉’ 열은 각 거래의 해상도를 나타내며, 요약 값은 단일 봉 거래를 평균화하지 않고 별도로 집계합니다.
Joao Prata Silva Yglesias
게재된 코드 Trade Excursion: how much of each winner you actually kept (MFE/MAE from your own history)
Your statement tells you what you KEPT. It does not tell you what you HAD. This indicator reads your own closed trades from the account history and draws, for each one, the full range it travelled: the best unrealised profit it ever showed (MFE) and the worst unrealised loss it survived (MAE). The gap between what a trade showed and what it paid is where two common problems hide, and neither is visible in a balance curve: winners closing far below their best point (the exit leaves money behind), and losers whose worst excursion barely passed the stop (the stop sits inside the noise). The number to look at is the CAPTURE RATIO: of the profit a winner showed at its best, how much did you take home? 90% says the exits are well placed; 30% says the market kept offering and the exit kept refusing. Limit, stated up front: excursions come from the bars each trade spanned, on the chart timeframe; the path inside a bar is unknown. Predicts nothing; measures trades that already happened.
Joao Prata Silva Yglesias
게재된 코드 Decision Watchdog: refuse yesterday's decision, fail closed, log once
A daily process writes "today's decision" (which strategy runs, or FLAT) to a file the EAs read at the open. One day the writer did not run. The EAs read yesterday's file, compared its date with TimeCurrent() - the server clock, which had stepped back to the previous day overnight - saw a match, and traded all morning on a 24-hour-old decision. No error anywhere. Two rules, both in this class: 1) staleness is judged against TimeLocal(), which always moves forward; TimeCurrent() is the last tick's stamp - it freezes without ticks and can step back on reconnect. 2) When in doubt the answer is FLAT: missing file, bad date, wrong day, empty line - every failure path returns "do nothing", and each is logged ONCE per state change, not on every tick and not never. File format: line 1 = ISO date, line 2 = decision string. The demo writes a fresh, a stale, a malformed, an empty and a missing file, and shows that only the first is allowed to trade.
Joao Prata Silva Yglesias
게재된 코드 Exposure Cap: one position limit per symbol across all your EAs
Four EAs on the same symbol, each one honest on its own: each checks "do I have a position?" with its own magic number, sees none, and enters. On a demo account this reached 22 contracts on a symbol meant to carry 1, and a watchdog had to close 16 positions in one morning. The cap belongs at the door, not after the fact. ExposureCap::Allowed(symbol, lots, cap) sums the volume of every open position on the symbol - all magic numbers, manual trades included - and refuses the order BEFORE it is sent when it would breach the cap. One log line with the three numbers (held, requested, cap) says why. Deliberately simple: gross exposure, no netting of longs against shorts, no per-EA quota. It is a check, not a lock: two EAs deciding on the same tick can both pass; in practice EAs on different charts decide on different ticks. The demo script prints held / cap / room for the current symbol and shows the refusal line. Nothing is traded.
Joao Prata Silva Yglesias
게재된 코드 Server Time Offset: the three clocks in MQL5 and how timestamps shift on export
A datetime in MQL5 is seconds since 1970 - but server time (TimeCurrent, bar times, deal times) is the broker's wall clock stored AS IF it were UTC. Export it to CSV, read it in Python or a spreadsheet with a "seconds since 1970 UTC" parser, and every timestamp shifts by the server's UTC offset. On a UTC-3 broker that is three hours: the daily bar dated 00:00 reads as 21:00 of the previous day, and "yesterday's session" silently becomes "today's, half formed". That happened to a morning report of mine before this script existed. The script prints TimeTradeServer, TimeCurrent, TimeGMT and TimeLocal, the three offsets between them, the tick lag, and this chart's last bar time in server time and in real UTC - then states the rule: export server timestamps as wall-clock text, or export the epoch together with the offset, and never let the consumer apply its own timezone.
Joao Prata Silva Yglesias
게재된 코드 Elder Force Index (faithful to the book definition)
Índice de Força, conforme definido por Alexander Elder: Volume x (Fechamento de hoje - Fechamento de ontem), e a série resultante é então suavizada. Dois comprimentos, 2 e 13, ambos de seus livros.
25
Joao Prata Silva Yglesias MetaTrader 5 시그널 발표됨
SurfBot v2 Grid FXGlobe
가격: 30 USD, 성장: 9.49%
SurfBot 2.06 — one-direction Forex grid with hard capital caps, running on a real FXGlobe account. This is the live record of the exact engine sold on the MQL5 Market as SurfBot (product 179990, magic number 880001): https://www.mql5.com/en/market/product/179990 WHAT IT DOES: one grid per pair, on ONE side only (long or short), chosen by the better swap. Each layer has its own take-profit one spacing away. There is NO stop-loss per trade, by design. WHAT KEEPS IT ALIVE: max 12 layers per pair
Joao Prata Silva Yglesias 출시돈 제품
리뷰: 1
FREE

SurfBot Radar is a free breakout and trend indicator for MetaTrader 5. It plots a Donchian channel (the highest high and lowest low of the last N bars), marks the first bar that breaks the channel, and confirms each breakout with flow — the net of directional volume over a recent window. Breakout + matching flow shows a clear BUY or SELL signal; a breakout without flow is flagged as "no confirmation". A graphical on-chart panel (placeable in any corner) shows the current state, the flow, the

Joao Prata Silva Yglesias 출시돈 제품

SurfBot — one-direction Forex grid with hard capital caps. No stop-loss per trade, by design. 🔴 Live performance (verified, real account, this exact engine): https://www.mql5.com/en/signals/2383326 WHAT IT DOES Runs one grid per pair, on ONE side only (long or short). The side is chosen by the better swap (GridSide=AUTO) or forced by you. Each layer has its own take-profit one spacing away; there is no stop-loss per trade. Spacing comes from a built-in table per pair (percent of price), widened

Joao Prata Silva Yglesias MetaTrader 5 시그널 발표됨
"SurfBot Bidirectional Grid" 사용가능
Joao Prata Silva Yglesias
MQL5.커뮤니티에 등록됨