Systematic Trading Research

Bison Joe

I design, code and forward–test automated trading strategies across multiple brokers and market conditions.

Fixed rules. Real markets. Measured results.

My Journey

How I trade is private. How I got here isn't.

There was no single breakthrough. There were years of coding, mistakes, testing, losing, observing and refining.

Trading approaches I've tried include: fundamental, technical, trend, swing and more.

Today, I'm an intra-day systematic trader who relies heavily on metrics.

This page is loaded with clues on how to be a successful systematic trader.

Late 1990s
I first discovered foreign–exchange trading and bought a guide to learn how to trade. It was seriously confusing, and retail trading was nothing like it is today. Placing a trade could literally mean making a phone call.
Meanwhile
I was building websites and honing technical skills that would later become surprisingly important to my trading.
2018
I decided it was finally time to properly learn how to trade. My first robots were unreliable, reckless and careless. Over time I learned how to control them more deliberately.
Next
I built custom indicators and experimented with ways to interpret the market. Eventually I realized the indicator itself wasn't the key. Discipline and risk management mattered more.
Sep 2019
I discovered No Nonsense Forex and had my thoughts confirmed. I began adjusting my approach. But it wasn't and still isn't easy. Don't quit. Keep going.
Dec 2023
I created a robot that produced superb profits. Then January came — and it lost. That changed the question I was asking.
Today
My original approach has evolved into additional controlled variants, tested side–by–side under future market conditions. I am still testing, still pruning and still learning.

My journey into systematic trading really began around year six. By year eight, it had become the focus of nearly everything I was doing in trading — and it still is today.
The Question Changed

I stopped asking only, “Does this strategy make money?” and started asking, “Under what conditions does it demonstrate a persistent edge?”

Does it work?Where does it work?Does it keep working?Can I trade it safely?
My Style of Trading

Build rules. Test the future. Let the data argue.

01

Fixed Rules

The robot should make the same decision always, regardless of the conditions. I don't want emotion quietly rewriting the strategy.

02

Forward Testing

I prefer collecting results that happen after the strategy is built instead of optimizing a strategy until old data looks perfect.

03

Multiple Brokers

Different execution environments help reveal whether the behaviour persists beyond one broker's pricing and conditions.

04

Broad First

I don't begin by forcing trades into one direction, weekday or session. I prefer robustness first, then remove persistent weaknesses when enough evidence exists.

05

Data Before Opinion

I have preferences. The market does not care. When the evidence disagrees with what I expected, the evidence wins.

06

Prune Aggressively

A broker, instrument, robot or test should continue only if it has a reason to exist. More testing is not automatically better testing.

Why I Prefer Forward Testing

Backtesting can answer the wrong question very convincingly.

1. Historical data can be fitted.

If I repeatedly change rules after seeing historical results, I can eventually create something that looks excellent in the past. That does not mean I have discovered a durable edge.

2. A backtest may not reproduce the live EA faithfully.

Some behaviour inside a live robot cannot always be modelled accurately by the test environment. Moving stop logic is one example. Timing, execution and other live conditions can matter as well.

I don't consider backtesting useless. I simply don't want a historical simulation to become the main evidence that convinces me a strategy works.

Build the idea. Put it into the market. Measure what happens next.

Don't Chase the Results

Don't change because yesterday made you uncomfortable. Change when accumulated evidence gives you a reason.

A losing week is not automatically a reason to modify the robot. Neither is an unusually profitable week. If a legitimate alternative becomes clearer with time, I can create a new variation and test it independently rather than quietly contaminating the original experiment.

Profit never goes in a straight line — even if losses feel like they do.

Robot Design

Keep the robot boring.

Complex code does not create an edge. It only automates whatever edge — or lack of edge — you put into it.

Most traders struggle to become consistently profitable. If you approach trading exactly the same way as everyone else, you shouldn't be surprised when you get the same results.

Keep the robot boring!

At some point you have to stop designing and start testing. Define how direction is determined. Define the stop loss. Define the take profit. Define the risk. Then let the robot trade.

Deterministic rulesDefined exitsControlled riskReliable loggingSpread controlsError handlingTrade identificationPredictable behaviourTest using minimum lotsAvoid hyperactivityReduce server requestsWeekends — no tradingClose trades dailyAvoid the Martingale, etcAvoid hedging — simultaneously opening long and shortGo long, go short, go with the flowUse trade comments wiselyNo trading / testing on USA holidays

I always test with a stop loss and take profit. A defined exit gives the strategy a cleaner experiment. I avoid excessive stop modifications because they change the behaviour being tested and can also create unnecessary server traffic, aka, hyperactivity.

I generally give my trades two outcomes: a full win or a full loss.

I also use rules for unusually low–liquidity periods. I don't trade or test on Good Friday, Easter Monday or during Christmas week, and I avoid certain trading days surrounding major U.S. holidays.

Building a Trading Robot

Building a robot is more than finding an entry.

A trading idea can be simple. Turning that idea into something disciplined, controlled and capable of operating in a real market requires much more.

The objective is not to make the robot complicated. The objective is to define how it should behave, control what it is allowed to do, and then let future market results determine whether the idea deserves to survive.

Keep it simple. Don't predict what should or shouldn't work. Don't get cute. Collect the data. Review the data. Let the data tell the story.

01

Choose a Market

Decide what markets or charts the robot will trade.

02

Define Direction

Establish the rules that determine whether the robot buys or sells.

03

Choose Frequency

Decide when and how often the robot is permitted to look for a trade.

04

Define Risk & Exits

Determine how risk is controlled and how every trade will eventually end.

05

Add Discipline & Controls

Define what the robot is allowed to do — and what it must never do.

06

Handle Real–World Conditions

Account for spreads, slippage, news, holidays, market closures and other execution conditions.

07

Reduce Unnecessary Load

Avoid needless calculations, repeated requests and unnecessary communication with the trading server. Also work to reduce CPU load.

08

Forward Test

Let the robot trade future market conditions without changing the experiment every time results become uncomfortable.

09

Measure

Study profit, loss, expectancy, drawdown, consistency, recovery and persistence.

10

Review. Refine. Redefine.
Rewrite. Repeat.

Keep what the evidence supports. Change what the evidence justifies. Then test again.

The goal isn't to make the robot complicated. The goal is to make its behaviour predictable.
Not Just a Trading Project

The robot is only half the system.

Once thousands or millions of trades begin accumulating, the bigger problem becomes turning those trades into decisions — usable metrics.

TradingMQL5

Executes the rules.

StorageMySQL

Preserves the evidence.

AnalysisPHP

Turns results into useful metrics.

PresentationHTML / CSS

Makes the evidence readable.

DecisionHuman

Decides what deserves capital.

You do not need to know all of this before you begin, but serious automated trading can quickly become a software and data project.

If you never start, you never advance.

Risk & Trading Psychology

We win by not losing.

Don't Tell Me the Profit

I would rather hear about the drawdown. How much was lost? How long did recovery take? Did the strategy eventually make a new high?

Don't Interfere

If I manually close trades I dislike and leave the trades I like, I am no longer measuring the robot. I am measuring myself.

Expect Losing Periods

I expect losing days and even losing months. A strategy does not have to win continuously to have potential.

The recovery from a loss can tell me more about a strategy than the profit that came before it.

Capital & Risk

More capital can mean more control.

More capital doesn't mean you have to take more risk. It can mean you have more control over the risk you already want to take.

One of the challenges traders face isn't necessarily finding a strategy that can make money. It's having enough capital to trade that strategy at a sensible level of risk while still producing a meaningful return.

A trader with too little capital may have a viable strategy but become dissatisfied with the dollars it produces. The temptation is then to increase the risk until the potential profit feels worthwhile. The strategy hasn't become better — only the consequences of being wrong have become larger.

More capital can change that equation. It can allow the same strategy to be traded at a smaller percentage of the account, give normal drawdowns more room to recover, and make it easier to size positions around the strategy rather than around an income target.

One potential benefit of prop trading is access to more trading capital without having to provide all of that capital yourself.

I would rather put more capital behind reasonable risk than put unreasonable risk behind too little capital.
What I Measure

No single metric gets the final vote.

The ultimate journal is a database that contains information about every closed demo trade.

A few weeks of similar behaviour is interesting. Eight+ months of continued behaviour can potentially be the start of evidence.

I would rather have an ordinary–looking profit factor backed by persistent results than an extraordinary profit factor backed by fragile results.

Expectancy

What does the average trade actually produce?

Profit Factor

How much is won relative to how much is lost?

Drawdown

How big were the losses before returning to profit?

Consistency

Are results dependent on a handful of exceptional trades?

Persistence

Does the behaviour survive changing market conditions?

Trade Count

How much evidence is actually behind the conclusion?

Markets & Sessions

I have preferences. The data doesn't care.

My current research is concentrated primarily on indices, gold and silver. I no longer spend my testing resources on Forex.

I also tend to avoid instruments with unusually large spreads or markets that are not open for roughly 23 hours during the trading day. That is a decision to help improve my research — not a claim that other markets cannot be traded successfully.

People often ask about the best time of day to trade. I don't begin by assuming New York, London or Tokyo must be best.

If I could choose, I would love trades to begin soon after the market opens and finish relatively early. But if the data reveals that a completely different period is stronger, I trade the data rather than my preference.

I no longer look for the needle in the haystack. The data I collect is like a sewing store to me. At a sewing store it's easy to find needles of all shapes and sizes — some good, some bad, some what I want, some what I don't want.

Systematic trading is a disciplined and non–emotional approach.

With manual trading, I often felt like I was guessing. Systematic trading gave me something I didn't have before: a defined process and measurable evidence.

Manual trading lets you start trading today. Systematic trading may require patience while the data accumulates. I would rather make that sacrifice now than rush a strategy before I understand it.

Short-term sacrifice. Long-term gain.

A Profitable Strategy Can Still Be Useless

If I can't live trade the result safely, collecting more data doesn't make it more useful.

Contract sizeSpreadsCommissionDrawdownExecutionCapitalBroker restrictions
My Testing Infrastructure

Technology should support the research, not become the project.

Local Trading Computers

I don't currently use a VPS for active robot testing. While a VPS can be useful for finished systems, I find local machines much easier when code, settings and tests are changing frequently. Additionally, I often have a large number of EAs running simultaneously.

DreamHost

I like managed hosting that keeps domains, web hosting and databases straightforward without requiring me to pay separately for cPanel or become a Unix administrator just to keep the site running.

Keep It Practical

I use technology where it gives me control and try to avoid technology that merely gives me more things to maintain.

Broker Testing

Why multiple brokers?

A strategy tested at one broker can be affected by that broker's pricing, spreads, execution and contract specifications.

Multiple brokers, along with multiple servers, do not create independent market histories, but they help reveal whether the apparent behaviour survives different execution environments.

What I look for

MT5EA–friendly500 to 1000 open trades allowedReasonable contract sizesComparable server timeCurrency consistency$100,000+ demo capitalReplenish demo balance easily2000+ daily server requestsNon–expiring demo accountUseful instrumentsReliable MT5 servers

A good research broker should get out of the way of the experiment.

I prefer brokers whose trading day is aligned with New York rather than London.

I also prefer enough position capacity (500 to 1000 open trades at any time) for large forward–testing experiments. High capacity matters because it prevents the broker itself from becoming the bottleneck.

Even when a broker allows more than 1,000 open positions, I deliberately stop there. A broker that provides an exceptional testing environment shouldn't be abused simply because the capacity exists.

Position capacity isn't the only limitation that matters. Demo capital matters too. I prefer enough virtual capital that margin never determines which trades become part of the experiment. As available capital declines, higher–margin trades may begin failing long before the account is completely depleted, creating gaps in the forward–test data.

The demo account should test the strategy — not the limits of the demo account.

Brokers currently contributing to my research

I've tested with more brokers than shown. Some have been retired because they don't allow 500 or more open trades at any given time. Others offered excellent testing opportunities, but their minimum contract sizes were simply too large. A trade risking $5 at one broker could, for example, require $50 of risk at another. That can make an otherwise successful strategy impractical for me to trade live.

I choose brokers for different reasons. Some provide an excellent environment for large-scale forward testing. Some have a prop division, creating another path from research to funded trading. Others offer Cent accounts or smaller contract sizes, allowing me to move from demo testing to live trading while keeping real–money risk very small.

A broker doesn't have to be perfect at everything. It needs to have a reason to be part of my trading and research environment.

Testing a broker is not an endorsement. Broker availability, regulation, execution and contract specifications can change.

Prop Trading

The drawdown limit is not a target.

If a prop firm tells me where the account fails, that does not tell me where I should operate.

My preference is to keep maximum daily drawdown risk around 1%, leaving meaningful room beneath the firm's actual limit.

Some traders prefer more. I prefer the buffer because unusually volatile days, execution differences and correlated losses can happen.

Prove the system first. Scale it second. Increasing lot size is easy. Building something that deserves the larger lot size is the difficult part.

Failure Is Data

A failed experiment can save real capital.

Profit tells us the strategy can win. Losing tells us if the strategy can survive.

Robot Failed?

Good. Now I know not to trust it with capital.

Broker Doesn't Fit?

Keep the historical evidence and stop wasting future testing capacity.

Opportunity Disappeared?

Don't defend the old conclusion. Ask whether the evidence still supports it.

A Few Things I've Learned

Markets don't care what should work.

More trades don't automatically mean more information.

Minimum contract size can matter more than leverage.

Simple rules can produce superb results.

A larger sample can make an exciting result look ordinary.

Drawdowns are part of profitable systems.

Different markets can prefer different parameters.

Everything being tested should have a reason to exist.

Data is only useful if I can trust how it was collected.

Clean data is more valuable than more data.

Same broker. Same or different servers. Different results.

Review demo account limitations.

Build Your Own

Don't copy mine. Discover yours.

Bison Joe is not intended to provide the recipe for reproducing my robots. The useful lesson is the process: create an idea, define it precisely, automate it, collect evidence, measure the results, control the risk and decide objectively whether it deserves to survive.

Systematic trading requires patience, discipline and a lot of work. Do you have what it takes?

There is no secret to what I did: I coded. I tested. I lost. I changed my thinking. I tested again. And I'm still testing.

Know when to keep testing. Know when to stop. Let the evidence decide which is which.

Final thought: insane determination. Everything seems impossible until you see success. Sucessful systematic trading takes time to develop. The Bison Joe attitude is to never quit 5 minutes before the miracle.