Solitaire User Manual

31 July 2026, 12:42
Simon Reeves
0
35

STARPOINT TRADING  ◆  METATRADER 5

SOLITAIRE

One position. One risk. One clear exit.

User manual  ·  version 1.00  ·  XAUUSD single-position Expert Advisor

A solitaire is a single stone, set alone. No cluster, no halo, no pavé — nothing beside it to share the load, and nowhere for a flaw to hide. The stone is either good or it is not, and you can tell which from across the room.

That is the entire design brief for this EA, and this manual is written the same way.

THE SOLITAIRE RULE

At most one Solitaire-managed XAUUSD position may be open at any time. While that position is active, Solitaire will not add another trade.

This manual is the complete reference for Solitaire v1.00. Nothing is held back for private message — every setting, every default and every published performance figure is here.

CONTENTS

1. What Solitaire is  ·  2. The trade-off to understand first  ·  3. Requirements  ·  4. Installation  ·  5. First-run checklist  ·  6. Entry quality  ·  7. The three exit methods  ·  8. Basis points explained  ·  9. Position sizing  ·  10. Entry filters  ·  11. News filter  ·  12. The control panel  ·  13. Full input reference  ·  14. Backtest disclosure  ·  15. Live signal  ·  16. Troubleshooting  ·  17. Risk

1. What Solitaire is

Solitaire is an Expert Advisor for MetaTrader 5 that trades gold against the US dollar. It holds at most one position at a time. Every entry carries a real stop loss placed with the order at the broker, and a profit exit that is either a fixed take profit or a trailing stop, depending on which mode you select.

There is no grid. There is no martingale. There is no averaging into a losing trade and no hedge opened against one. When a trade is stopped out, that trade is over and Solitaire waits for the next valid setup.

MAX OPEN POSITIONS 1
GRID No
MARTINGALE No
AVERAGING No
HEDGING No
STOP LOSS Broker-side, every trade

How the one-position rule is enforced, precisely

Solitaire counts open positions matching its own symbol and magic number . If that count is greater than zero, no new entry is opened. The check runs before every entry decision, on every bar.

Two consequences you should know:

  • Your own manual trades and other EAs are not counted, and Solitaire never touches them. The lock is over Solitaire's own exposure, not over your account.
  • If you run two Solitaire charts on the same symbol with different magic numbers, each will hold its own position and you will have two open at once. Keep the magic number identical across charts if you want one position total.

If Solitaire ever finds one of its own positions without a stop loss — after a terminal restart, or if the broker rejected the original stop — it writes the stop back on the next tick and logs that it did so.

2. Every stone has an inclusion

Here is Solitaire's, on page one, before any performance figure. Its default stop loss is wider than its profit target. It risks 100 basis points of price to arm a profit exit at 15. This is deliberate, and it is the single most important characteristic of the strategy.

Across the 18-month test in section 14, the realised figures were an average win of $63.79 against an average loss of $410.03. From those two numbers you can calculate the win rate the strategy needs simply to break even:

breakeven win rate = 410.03 ÷ (410.03 + 63.79) = 86.5%
realised win rate   = 728 wins ÷ 773 trades = 94.18%

That gap of nearly eight points is the entire edge. It is measurable, and it is what you should monitor. If the strike rate drifts into the mid-80s the equity curve flattens. Below that, the strategy loses money regardless of how good the individual entries look.

This is not a flaw hidden in the design — it is the design, stated openly so you can supervise it. A jeweller who turns the stone away from the light is not doing you a favour.

3. Requirements

Platform MetaTrader 5. Solitaire is not available for MT4.
Symbol XAUUSD. Broker suffixes such as XAUUSD.r or XAUUSD+ are handled automatically — attach to whichever gold chart your broker provides.
Chart timeframe Any. Solitaire runs its own internal M1 and M10 clocks and ignores the chart period. M1 is convenient because the panel and trail line are easiest to read there.
Account type Raw or ECN spread with commission. Gold spreads on standard accounts are frequently wide enough to block entries at the default 60-point ceiling.
Minimum deposit $1,000 at the shipped default of 0.01 fixed lots. See section 09 before deviating.
Hosting A VPS is strongly recommended, and effectively required if you use the virtual trailing stop — that mode enforces its exit from inside the terminal, so the terminal must stay running.
Internet access Only needed if you enable the news filter. See section 11.

4. Installation

  1. Purchase or download Solitaire from the MQL5 Market. It installs into your terminal automatically.
  2. In MetaTrader 5, open the Navigator panel and find Solitaire under Expert Advisors → Market.
  3. Open a XAUUSD chart on any timeframe.
  4. Drag Solitaire onto the chart. The inputs dialog opens.
  5. On the Common tab, tick Allow Algo Trading.
  6. On the Inputs tab, set ShowInfoPanel to true. It ships as false so that backtests run faster, which means a fresh install shows no dashboard until you turn it on.
  7. Click OK, then confirm the Algo Trading button in the main toolbar is green.

You should now see the Solitaire panel in the top-left of the chart with a status of Waiting. Check the Experts tab of the Toolbox: Solitaire prints one line at startup giving your broker's dealing terms for gold and what each configured distance is worth in points and dollars at the current price. Read it — it is the fastest way to confirm the EA and your broker agree on what the settings mean.

5. First-run checklist

  • Algo Trading enabled, both in the toolbar and on the EA's Common tab.
  • Panel visible and reporting your live balance and equity.
  • The startup log line read, and the SL and TP dollar values sensible for your account size.
  • LOT SIZE confirmed on the panel — not assumed.
  • If using the news filter, the ForexFactory URL whitelisted (section 11) and the panel not reporting a calendar error.
  • Run on demo for long enough to see at least 20 trades before committing real money. At roughly 43 trades a month that is about two weeks. Nobody buys a stone from the first photograph.

6. Entry quality

When you only hold one position at a time, that position has to carry the whole ring. There is no cluster to distract from it, no second entry to rescue it and no recovery logic to lean on. Everything rests on the quality of the entry.

Solitaire is not a busy EA and does not want to be. A fixed ensemble of multi-timeframe momentum models runs continuously and almost always concludes that nothing here is worth setting. Across the eighteen-month test in section 14, Solitaire examined more than half a million one-minute bars and opened 773 positions — roughly one entry for every 681 bars evaluated, and about 43 trades a month. Of those 773, 94.18% closed in profit. Everything else it looked at and put down.

Every decision is made on confirmed bar closes. There are no tick reactions and no partial candles: a setup has to still be there when the bar finishes. Solitaire does not buy a stone by candlelight.

The models are hardcoded in the shipped build. There is no strategy selector, no aggressive mode and no preset switch, so Solitaire cannot be run in a combination that was never validated — and you are trading the same configuration as the published test and the live signal.

Solitaire also stands aside entirely when the spread is too wide, a news window is open, the Friday cut-off has passed, the market is closed, or account margin level is below 200%. Whenever it is not trading, the panel status row names the reason.

There is no re-entry cooldown. If the very next bar earns a trade, Solitaire takes it. There is also no daily trade limit, no daily profit target and no recovery logic after a loss.

The order is submitted with the stop loss attached. In Fixed Take Profit mode the take profit is attached too, so the position is protected on both sides from the first tick rather than from the first management sweep.

7. The three exit methods

One dropdown, ExitType , selects how profits are taken. All three aim at the same net dollar target, adjusted for accrued swap and for round-turn commission measured from your own deal history — so on a commission account the real exit sits slightly beyond the nominal distance, identically in all three modes.

The protective stop loss is independent of all of this. It is written with the entry and is never moved by the host EA.

Trailing Stop — Virtual   Default

The trail level is held inside the EA and enforced by closing at market. Nothing is written to the broker, which is what makes a very tight trail possible at all — a stop that close would sit inside most brokers' minimum stop distance and be rejected outright.

Requires the terminal to stay running. If MetaTrader closes while a virtual trail is armed, the trail is not enforced until it restarts. The broker-side protective stop remains in place throughout, so the position is never unprotected, but it is the wide stop rather than the tight trail. Use a VPS.

Trailing Stop — Broker

The same trail, written as a real stop loss order on the position and advanced as price moves in your favour. It replaces the wide protective stop with progressively tighter ones.

Coarser than the virtual trail, because every level must respect your broker's stops and freeze levels — Solitaire clamps to whatever the broker will actually accept and only records the level that was accepted. In exchange, the exit survives a terminal disconnect.

Fixed Take Profit

No trail. A real broker take profit is placed at the target with the order and refreshed as swap accrues.

The most predictable of the three and the least dependent on your terminal. It also caps every winner at the target, where the trailing modes let a winner run past it.

How the trail actually behaves

  • It arms by money, not by distance. The trail does not exist until net profit plus swap reaches the dollar value of TakeProfitDistance on the traded lot, inflated by estimated commission. Until then the trade runs on its protective stop alone.
  • It never moves backwards. Once armed it tracks the best price reached and holds the stop TrailingDistance behind it, advancing only when the improvement is at least TrailingStep .
  • An armed trail can only close in profit. Solitaire refuses any trail level at or worse than the entry price.

8. Basis points explained

Stop loss, take profit, trailing distance and trailing step are all expressed in the unit chosen by ExitUnit . The default is basis points, where one basis point is 0.01% of the entry price.

price distance = entry price × bp ÷ 10000

Worked through at the defaults of SL 100 bp and TP 15 bp:

GOLD PRICE SL 100 BP TP 15 BP RISK @ 0.01 LOT
$2,600 $26.00 $3.90 $26.00
$3,400 $34.00 $5.10 $34.00
$4,100 $41.00 $6.15 $41.00

The reason for using a proportional unit is that gold reprices. A stop fixed in dollars gradually becomes a different fraction of the daily range as the metal moves from $2,000 to $4,000, and the strategy quietly changes character without anyone touching a setting. In basis points it keeps its shape.

The consequence to be aware of: your dollar risk per trade rises as gold rises, at a fixed lot size. Budget for that.

If you prefer absolute broker points, set ExitUnit to Points and every distance is read as points instead. Solitaire validates the unit at startup and refuses to start — with an explicit message naming the likely mistake — if a value entered in one unit is obviously meant for the other. A stop of 100 points on gold resolves to about 0.024% of price, far outside the workable band, and will be caught rather than silently traded.

9. Position sizing

Three methods, chosen with LotCalculationType .

Fixed Lot Size
Default
Always trades FixedLotSize . Ships at 0.01. Size never changes, so risk as a percentage of the account falls as the account grows and rises if it shrinks.
Fixed per Balance Trades FixedLotSize for every FixedPerBalance of account balance. At the defaults, 0.01 lots per $1,000. Scales up and down with the account.
Automatic Sizes from balance on an eight-step risk ladder, set by RiskLevel . Ships at Low.

The automatic risk ladder

RISK LEVEL SIZING LOTS ON $10,000
Very Low 0.01 per $4,000 0.02
Low  ← default 0.01 per $3,000 0.03
Low-Medium 0.01 per $2,000 0.05
Medium 0.01 per $1,500 0.06
Medium-High 0.01 per $1,000 0.10
High 0.01 per $800 0.12
Very High 0.01 per $600 0.16
Extreme 0.01 per $500 0.20

SIZING NOTE WORTH READING TWICE

The shipped default of a fixed 0.01 lots on the recommended $1,000 minimum deposit is the same exposure ratio as Medium-High on the ladder above. It is a deliberately deposit-sensitive default: on $1,000 it is moderately aggressive, on $5,000 it is conservative.

The published backtest was run at exactly this ratio — 0.10 lots on $10,000 — so its drawdown figures are directly applicable to a $1,000 account running the defaults. Two consecutive losses were the worst run in 18 months, and on a fresh account at this ratio that is close to a 10% dent. If that is more than you want, drop to Automatic / Low or halve the fixed lot on a larger deposit.

10. ENTRY FILTERS

Spread ceiling

MaxSpreadPoints refuses new entries whenever the current spread exceeds it. The default is 60. Set it to 0 to disable the filter entirely. Note that a point is worth ten times more on a two-digit gold quote than on a three-digit one, so if your broker quotes gold to three decimals you may need to raise this figure. The startup log line tells you your broker's digits and current spread.

Friday control

Two inputs work together:

  • AllowFridayTrading — set to false to block every new entry on a Friday. Existing positions are still managed normally.
  • FridayCutoffHour — while Friday trading is allowed, blocks new entries from this server hour onward. The default is 12, so entries stop at noon server time. Set to -1 to trade the full Friday session.

The cut-off exists because the last hours of the week combine thinning liquidity with weekend gap risk on a position that may still be open at the close. It is on by default for that reason.

11. NEWS FILTER

The news filter blocks new entries around economic releases. It ships disabled, and the published backtest was run with it off.

Required setup

MetaTrader will not let an EA reach the internet until you permit the address. In the terminal, go to Tools → Options → Expert Advisors, tick Allow WebRequest for listed URL, and add:

https://nfs.faireconomy.media/

If you skip this, Solitaire raises one alert naming the exact fix and then stops retrying for the life of the session, rather than hammering a blocked request.

Sources

  • Primary — the ForexFactory weekly calendar, chosen because its impact ratings are the ones traders actually calibrate against and each event carries an explicit UTC offset.
  • Fallback — the MQL5 built-in calendar, used only if ForexFactory is unreachable after three retries a minute apart.
  • Strategy tester — neither of the above works in backtests, so Solitaire carries a baked-in set of 933 events covering 2020 to 2027. Backtests with the filter on are therefore reproducible.

Settings

  • NewsFilter_HighImpact and NewsFilter_MediumImpact choose which ratings block trading.
  • NewsFilter_MinsBefore and NewsFilter_MinsAfter set the window around each event. Defaults are 120 minutes either side.
  • NewsFilter_Keywords promotes medium-rated events to high when the name matches. FOMC, NFP, CPI and the other usual suspects are pre-loaded. Low-impact events are never promoted, whatever they are called.

Failure behaviour

A safety filter that silently switches itself off is worse than no filter. If a calendar refresh returns nothing, Solitaire restores the previous known-good calendar rather than running with an empty one. Stale data still blocks trading — it is flagged on the panel, never ignored. When several event windows overlap, trading resumes at the latest of their end times, so a cluster of releases cannot unblock you in the middle of the cluster.

12. The control panel

The panel is drawn as a single canvas bitmap rather than as chart objects, so a trade manager or indicator attaching after Solitaire cannot bury it. It reasserts itself to the top when new objects appear on the chart.

It reports, from top to bottom:

  • Header — product, version, live P&L on the open trade, and the close button.
  • Daily strip — daily P&L, daily drawdown percentage and cumulative P&L. The drawdown figure is latched: it records the worst excursion below today's equity high, not how far below you happen to be right now, and only resets when the day rolls over.
  • Account strip — balance and equity.
  • Config strip — trade direction, Friday setting, lot size, news state, current spread, exit mode, and the take profit and stop loss distances shown both in your chosen unit and in broker points at the current price.
  • Trade row — status, entry, live P&L, stop loss and take profit. When flat, the status shows the reason no trade is open.

The Close EA Trades button closes only positions matching Solitaire's symbol and magic number. Your other trades are untouched.

Panel inputs: ShowInfoPanel (off by default for backtest speed — turn it on for live), ShowTrailLine to draw the trail level on the chart, ShowLogoBackground for the watermark (requires the panel to be on), and PanelScaleOverride , PanelFontName and PanelBaseFontSize for appearance. Scaling is DPI-aware and auto-detects by default; set the override to about 1.0 to 1.5 only if the panel looks wrong on your display.

13. Full input reference

EXIT STRATEGY
INPUT DEFAULT MEANING
ExitType Trailing — Virtual Virtual trail, broker trail, or fixed take profit. Section 07.
ExitUnit Basis Points Unit for the four distances below. Basis points or broker points. Section 08.
TakeProfitDistance 15.00 Profit target, or the point at which the trail arms.
StopLossDistance 100.00 Protective stop, measured from entry. Written with the order.
TrailingDistance 1.00 How far the trail sits behind the best price. Trailing modes only.
TrailingStep 0.15 Minimum improvement before the trail advances. Trailing modes only.
LOT SIZE
LotCalculationType Fixed Lot Size Automatic, fixed, or fixed per balance. Section 09.
FixedLotSize 0.01 LOT SIZE in Fixed mode; the unit lot in Fixed per Balance mode.
FixedPerBalance 1000.0 Balance per unit lot. Fixed per Balance mode only.
RiskLevel Low Eight-step ladder, Very Low to Extreme. Automatic mode only.
GENERAL
MagicNumber 39990 Identifies Solitaire's own trades. Keep it identical across charts if you want one position total.
TradeComment Solitaire Order comment.
TradeDirection Buy & Sell Restrict to long only or short only if you wish.
SlippagePoints 60 Maximum accepted deviation on execution.
ENTRY FILTERS
MaxSpreadPoints 60.0 Entries refused above this spread. 0 disables the filter.
AllowFridayTrading true Set false to block all Friday entries.
FridayCutoffHour 12 Block new Friday entries from this server hour. −1 disables the cut-off.
NEWS FILTER
NewsFilter_Enable false Master switch. Requires the WebRequest URL. Section 11.
NewsFilter_HighImpact false Block around high-impact events.
NewsFilter_MediumImpact false Block around medium-impact events.
NewsFilter_MinsBefore 120 Minutes before an event to stop trading.
NewsFilter_MinsAfter 120 Minutes after an event before trading resumes.
NewsFilter_Keywords FOMC, NFP, CPI… Comma-separated names that promote a medium event to high.
INFO PANEL
ShowInfoPanel false Turn this on for live trading. Off by default so backtests run faster.
ShowTrailLine true Draw the live trail level on the chart. Trailing modes only.
ShowLogoBackground false Chart watermark. Requires the info panel to be on.
PanelScaleOverride 0.0 0 auto-detects DPI. Typical manual values 1.0–1.5.
PanelFontName Segoe UI Dashboard typeface.
PanelBaseFontSize 9 Base font size in points.

There is no strategy selector and no entry-aggressiveness setting. The shipped build runs one validated configuration of entry models and cannot be switched into an untested combination.

14. Backtest disclosure

Everything needed to reproduce this run is stated below. It is one broker, one symbol and one eighteen-month window with the news filter off. It is a record of what happened, not a forecast of what will.

Broker / server Pepperstone-MT5-Live01, terminal build 6061
Symbol / timeframe XAUUSD, M1
Period 1 January 2025 – 30 June 2026 (18 months)
Modelling Real ticks · 99% history quality · 155,225,571 ticks over 526,570 bars
Deposit / leverage $10,000 · 1:500
Exit configuration Trailing Stop — Virtual · TP 15 bp · SL 100 bp · trail 1.00 bp · step 0.15 bp
Filters Max spread 60 points · slippage 60 points · Friday enabled with 12:00 cut-off · news filter off
Position size Fixed 0.10 lots — the same exposure ratio as the shipped default of 0.01 lots on a $1,000 account
RESULT
Net profit $27,713.86  (+277.1%)
Profit factor 2.48
Expected payoff per trade $35.85
Recovery factor 21.41
Total trades 773  (approx. 43 per month)
Winning trades 728  (94.18%)
Losing trades 45  (5.82%)
Long / short 534 won 94.38%  /  239 won 93.72%
Average win $63.79
Average loss $410.03
Largest win $132.95
Largest loss $573.15
Longest losing run 2 trades  (−$958.60)
Longest winning run 90 trades
Maximum balance drawdown $959.65  (2.83%)
Maximum equity drawdown $1,294.60  (4.73%)
Relative equity drawdown 7.15%
Holding time 2h 16m avg · 41h 55m longest · 4s shortest

The compounded version of the same trades

The identical 773 trades, run on Automatic sizing at Medium-High risk, returned $140,892.28 with a profit factor of 2.31, a maximum equity drawdown of $12,321.41 (10.73%) and a largest single loss of $6,289.20.

That figure is not the headline because it is not more informative — the strategy did nothing different. Compounding inflates the return and the drawdown together, and it flatters an eighteen-month window in a way that would not survive a bad start. The fixed-lot result is the one to judge the EA on. Both are published here so you can see the difference for yourself.

15. Live signal

A public MQL5 signal runs Solitaire v1.00 on the shipped default settings, on a Vantage live account. The broker, leverage, build and preset are all visible on the signal page, and it is linked from the product listing.

The signal is new. At the time of writing it has a handful of trades on it, which is not a track record and should not be treated as one. It is published so you can watch the EA operate on a real account under real execution from day one, and compare what you get against what I get. Give it at least 20 trades — roughly two weeks — before drawing any conclusion from it.

A monthly ledger will be published: trade count, losing trades, net result, maximum drawdown, broker differences and whether the build changed. If the core logic ever changes materially, the version will change and a new comparable signal will start rather than the existing history being quietly rewritten.

16. Troubleshooting

No panel appears ShowInfoPanel ships as false. Set it to true.
Panel says Waiting and never trades Normal, and the point. Solitaire averages around 43 trades a month, so multi-hour and occasionally multi-day gaps are expected — an idle panel is the EA doing its job, not failing to. Check the status row for the blocking reason — Spread, News, Friday cut-off or Margin will be named explicitly.
Status permanently reads Spread Your broker's gold spread exceeds 60 points, or quotes gold to three decimals so a point is worth a tenth of what the default assumes. Read the startup log line for your digits and current spread, then raise MaxSpreadPoints accordingly.
EA refuses to start, log mentions the distance unit A stop or target has been entered in the wrong unit — usually a points value left in a basis-points field. The message names the value, what it resolved to, and which unit you probably meant.
NEWS FILTER alert, error 4014 The ForexFactory URL is not whitelisted. See section 11. Solitaire alerts once and then stops retrying for the session.
Two positions open at once Two Solitaire charts are running with different magic numbers, or a manual trade is open alongside. Solitaire's lock covers its own magic number only.
Log shows a protective stop being re-asserted Working as designed. Solitaire found one of its positions without a broker stop and wrote it back. Common after a terminal restart.
My results differ from the backtest Expected, and worth investigating properly. Send your broker and server name, account type, EA version, settings and the timestamps of the trades in question, and I will compare them against the reference signal and tell you what actually caused the difference.

17. Risk

Trading leveraged products carries a substantial risk of loss and is not suitable for everyone. Solitaire does not remove that risk. It makes your exposure easier to see, size and review.

Specifically:

  • Some trades lose, and by design the losses are larger than the wins. Section 02 explains why and what to watch.
  • Past performance, backtested or live, does not predict future results.
  • A stop loss is an instruction, not a guarantee. Gaps, slippage and spread widening can produce a fill worse than the intended level, and weekend gaps can exceed it substantially.
  • Execution differs between brokers. Spread, commission, swap and fill quality all change the result.
  • Nothing in this manual is financial advice, and it takes no account of your circumstances. Trade only with money you can afford to lose.

STARPOINT TRADING  ◆  SOLITAIRE V1.00

Support questions are answered with an investigation, not a deflection. Include your broker and server, account type, EA version, settings and trade timestamps, and you will get an actual cause rather than a suggestion that it must be your broker.

One stone. Set alone. Nothing behind it.