Is OTC random? We tested it — and the answer is yes

13 strategies, each also inverted, weeks of data: nothing left ~50% on OTC pairs. We publish what the niche hides.

The test nobody publishes

We ran our full 13-strategy catalog — trend, reversal, exhaustion — over weeks of _otc pair candles (the synthetic market Quotex, IQ Option and others open on weekends). Then we ran every strategy inverted (each CALL becomes PUT). The result:

GroupNormalInverted
Reversal strategies (DR, Bollinger, RSI…)~49–51%~49–51%
Trend strategies (MACD, SuperTrend…)~48–51%~49–52%
Exhaustion + Band~50%~50%

Everything orbits 50%. When a strategy AND its inverse produce the same result, there is no pattern to capture — that's the practical definition of a random walk.

Why OTC behaves like this

OTC isn't a market: it's a price generated by the broker itself ("over the counter"), with no real order flow, no sessions, no concentrated liquidity. The forces that create mean reversion in real forex (institutions defending levels, clustered stops, liquidity hours) simply don't exist. The generator produces something statistically indistinguishable from noise — sometimes with visual patterns that fool the eye, never with measurable edge.

So what is OTC good for?

  • Learning the platform and testing bot mechanics (connection, orders, stops) — it's great for that.
  • It is NOT for validating strategies, "training" chart reading, or trading real money with positive expectancy.
  • If someone sells you a "90% OTC bot", you now know mathematically why it can't hold: 87% payout requires 53.5% just to break even — in a 50% game, every system loses long-term, under any money management.

Our bot has a so_real (real-only) lock for exactly this reason: it blocks orders on _otc even when the broker silently switches the asset.

What the brokers themselves say about OTC

IQ Option is the most explicit. Its official blog (article updated in September 2026) says OTC quotes "are unique to the platform because they don't go through a public exchange" and that they are influenced by "the values from the weekday trading sessions, the number of options bought, and the investment amount" (source). A second IQ Option article says OTC prices are "generated through the platform's proprietary algorithms", that the OTC market opens on Friday night after global markets close and closes on Sunday night, and that OTC prices "are not linked to real-time exchange data" (source).

Quotex: in September 2026 we could not find an official public page explaining how its OTC quotes are produced — its FAQ doesn't cover it. Its Service Agreement (operator: ON SPOT LLC GROUP) defines the asset rate as "unilaterally determined by the Company on the basis of information posted by central banks, trading floors, liquidity providers, etc." Independent reviewers such as Traders Union describe Quotex OTC as a broker-generated feed driven by internal algorithms — a third-party description, not an official one.

Real pair (e.g. USD/JPY)OTC pair (e.g. USDJPY_otc)
Where the price comes fromInterbank market: banks, funds, liquidity providersThe broker's own pricing model
When it tradesMonday to Friday, in sessionsWeekends, holidays and off-hours, per the broker's schedule
Can you check it on another chart?Yes — any platform shows nearly the same priceNo — the price exists only on that platform
Asset name in the botUSDJPY (Quotex), USDJPY-op (IQ Option)USDJPY_otc or an “(OTC)” label
Our study resultEdge on specific pairs and hours~50% for everything, normal or inverted

The conflict of interest nobody mentions

In a binary option the broker is not a middleman: it is the other side of your bet. IQ Option's Order Execution Policy says it plainly: "the Company is the counterparty to clients' trades and transacts with clients as principal." Quotex's Service Agreement defines a trade as an agreement between the Company and the Client in which the Company "undertakes to pay a fixed Income" if the agreed conditions are met. Every dollar a client wins is a dollar the broker pays out.

On a real pair, the broker at least does not set the price — the interbank market does, and you can compare it with any external chart. On OTC, the same company generates the price, is your counterparty and, by IQ Option's own description, factors in how many options were bought and how much was invested. We are not accusing anyone of manipulation: our data shows ~50%, not less than 50%. But ~50% is all a broker needs, because with a payout below 100% a coin flip already guarantees its margin:

PayoutBreak-even accuracyExpectancy per $10 trade at 50%Expected result after 100 trades
80%55.6%−$1.00−$100
85%54.1%−$0.75−$75
90%52.6%−$0.50−$50

Formula: break-even = 1 / (1 + payout); expectancy = p × payout − (1 − p). No money management changes the sign of that number — martingale only rearranges when the loss arrives.

How to test OTC randomness yourself

You don't have to trust us. Two classic tests are enough, and both fit in a spreadsheet or a few lines of Python.

Test 1 — runs test on candle colors

A "run" is a streak of same-color candles: G G R R R G R has 4 runs. If candles are random, the number of runs has a known mean and standard deviation. Too few runs means streaks persist (trend); too many means colors alternate (reversal). Either would be exploitable.

  1. Download at least 1,000 M1 candles of an _otc pair (the pyquotex library does it with get_candles — see our Quotex API guide).
  2. Mark each candle G (close > open) or R (close < open). Discard dojis.
  3. Count greens (n1), reds (n2) and runs (R). N = n1 + n2.
  4. Expected runs: E = 2·n1·n2 / N + 1. Standard deviation: SD = √[2·n1·n2·(2·n1·n2 − N) / (N²·(N − 1))].
  5. z = (R − E) / SD. If |z| < 1.96, the sequence is consistent with randomness at the 5% level.

Worked example (illustrative numbers): 1,000 candles, 507 green, 493 red, 489 runs. E = 2·507·493/1,000 + 1 = 500.9; SD ≈ 15.8; z = (489 − 500.9) / 15.8 ≈ −0.75. Nothing to exploit. Had you counted 468 runs, z ≈ −2.08 — a hint of persistence worth re-testing on new data, not a reason to trade.

Test 2 — binomial test on a strategy's results

Run a strategy (in backtest with the bot's simular_csv.py, or by logging signals on demo) and count wins over n trades. If there is no edge, wins follow a binomial distribution with p = 0.5.

Worked example: 262 wins in 500 trades = 52.4%. z = (262 − 250) / √(500 × 0.25) ≈ 1.07; exact two-sided p-value ≈ 0.30 (in Python: scipy.stats.binomtest(262, 500, 0.5).pvalue). The 95% interval is roughly 48.0%–56.8%: it contains both 50% and the 54.1% break-even at 85% payout. Conclusion: no evidence of edge — and even if it existed, it could sit below break-even.

How far above break-even (54.1%, payout 85%) your observed accuracy must be before you can say, with ~95% confidence, that you beat it:

Trades in the sampleMinimum observed accuracy
30058.8%
50057.8%
1,00056.7%
2,00055.9%

Three traps that fake an edge

  • Testing many things at once. 13 strategies × normal and inverted = 26 tests. At a 5% significance level, about 1.3 of them will "pass" by pure luck. That is why we only trust results that survive a fresh, unseen data window.
  • Reading streaks as signals. In our simulation of 20,000 sequences of 1,000 random candles (~17 hours of M1), a streak of 8+ same-color candles appeared in about 98% of them; the median longest streak was 10. "Eight reds in a row, it has to turn" is not a signal.
  • Stopping when you're ahead. Checking results daily and stopping on a good day inflates accuracy. Fix the sample size (n) before you start.

What to do instead

  1. Trade real pairs during market hours. On Quotex, real pairs carry no _otc suffix and are only open on weekdays. On IQ Option, real forex arrives as -op assets such as USDJPY-op (how the bot handles them).
  2. Go where the study found edge: USD/JPY and GBP/JPY, in the 9–10h and 18–23h (UTC-3) windows, avoiding Fridays.
  3. Keep the so_real lock on, so the bot never switches to the _otc version of your pair.
  4. Use weekends for setup: install, connect the demo account, test stops and cooldown, and run backtests. See the demo account guide.
  5. Check the payout before every session: the minimum payout filter should sit above the break-even for your measured accuracy.

And keep perspective: even on real pairs, the best strategies in our study landed around 57–61% out-of-sample — nothing near 70% — and losing streaks still happen.

🤖 Get the free trading bot

Open-source bot for Quotex & IQ Option (13 strategies). Edit it with ChatGPT/Claude — no coding. Free, no spam.

FAQ

But I know someone profiting on OTC… Over short windows, 50% produces impressive winning streaks — and equally losing ones. Variance is not edge.
What about weekends? Use them to configure and test the bot on demo. The signals earn their keep on real forex, during market hours: see what worked.
Are all OTC feeds the same? We tested the main _otc pairs of our data source; nothing escaped ~50%. If we ever find an exception with a decent sample, we'll publish it.

⚠️ Binary options carry a high risk of losing all your capital. Educational content based on demo-account data — not investment advice. Past results do not guarantee future results. No bot or strategy guarantees profit.