Fixed Rules
The robot should make the same decision always, regardless of the conditions. I don't want emotion quietly rewriting the strategy.
I design, code and forward–test automated trading strategies across multiple brokers and market conditions.
Fixed rules. Real markets. Measured results.
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.
No Nonsense Forexand had my thoughts confirmed. I began adjusting my approach. But it wasn't and still isn't easy. Don't quit. Keep going.
I stopped asking only, “Does this strategy make money?” and started asking, “Under what conditions does it demonstrate a persistent edge?”
The robot should make the same decision always, regardless of the conditions. I don't want emotion quietly rewriting the strategy.
I prefer collecting results that happen after the strategy is built instead of optimizing a strategy until old data looks perfect.
Different execution environments help reveal whether the behaviour persists beyond one broker's pricing and conditions.
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.
I have preferences. The market does not care. When the evidence disagrees with what I expected, the evidence wins.
A broker, instrument, robot or test should continue only if it has a reason to exist. More testing is not automatically better testing.
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.
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 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.
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.
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.
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.
Decide what markets or charts the robot will trade.
Establish the rules that determine whether the robot buys or sells.
Decide when and how often the robot is permitted to look for a trade.
Determine how risk is controlled and how every trade will eventually end.
Define what the robot is allowed to do — and what it must never do.
Account for spreads, slippage, news, holidays, market closures and other execution conditions.
Avoid needless calculations, repeated requests and unnecessary communication with the trading server. Also work to reduce CPU load.
Let the robot trade future market conditions without changing the experiment every time results become uncomfortable.
Study profit, loss, expectancy, drawdown, consistency, recovery and persistence.
Keep what the evidence supports. Change what the evidence justifies. Then test again.
Once thousands or millions of trades begin accumulating, the bigger problem becomes turning those trades into decisions — usable metrics.
Executes the rules.
Preserves the evidence.
Turns results into useful metrics.
Makes the evidence readable.
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.
I would rather hear about the drawdown. How much was lost? How long did recovery take? Did the strategy eventually make a new high?
If I manually close trades I dislike and leave the trades I like, I am no longer measuring the robot. I am measuring myself.
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.
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.
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.
What does the average trade actually produce?
How much is won relative to how much is lost?
How big were the losses before returning to profit?
Are results dependent on a handful of exceptional trades?
Does the behaviour survive changing market conditions?
How much evidence is actually behind the conclusion?
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.
If I can't live trade the result safely, collecting more data doesn't make it more useful.
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.
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.
I use technology where it gives me control and try to avoid technology that merely gives me more things to maintain.
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.
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.
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.
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.
Profit tells us the strategy can win. Losing tells us if the strategy can survive.
Good. Now I know not to trust it with capital.
Keep the historical evidence and stop wasting future testing capacity.
Don't defend the old conclusion. Ask whether the evidence still supports it.
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.