I Built a Trading Robot in One Weekend (and It Survived) — Publishing My First MQL5 Product

Image
My product page, live on the MQL5 Market, September 2026. The video version of this story, now live on my YouTube channel. It was just after midnight on Monday when I saw my trading robot pass its final test. Not a backtest on my own computer, where I control everything — the real test. The MQL5 Market validation server, running my code on symbols I had never tried, on a balance I had never imagined. The log stopped scrolling. The word PASSED appeared four times. And I just sat there in the dark thinking: I built a trading robot, and it works. This is the story of the VitalEdge Gold EA — the trading robot I published on the MQL5 Market this week, how it nearly died four times in one night, and why publishing it felt different from everything else I have done in this journey. Why a Trading Robot? I need to be honest about something first, because this diary only works if I tell the truth. I did not write every line of that robot's code by hand. I wrote it with AI assistan...

The Day the Whole World Could Open My Website — Except Me

Sitting in the dark unable to open my own website on my phone

It was a Friday evening and I did the thing I always do — pulled out my phone, typed vitaladge.com into the browser, and waited for my site to load. My shop. My products. My two years of work.

"This site can't be reached."

My stomach dropped the way it does when you see that message. If you've ever run a website, you know the feeling. It's not just a technical error — it's the sound of your income possibly vanishing. I refreshed. Same message. Cleared my cache. Same message. Restarted my phone. Same message.

I'd been down this road before. A pingback attack once took the site off balance, and I've had my share of plugin meltdowns. So I assumed the worst: the site was down for everyone. Three days of commissions, gone. Three days of daily blog posts, unreachable. Three days of Instagram and Facebook traffic landing on a dead page.

But the Website Wasn't Down

Test results: the site loaded from servers worldwide except on some South African networks

Here's the twist. I have this AI agent — the same one I've written about before — and I told it to scan the site and fix the problem. A while later it came back with a report I did not expect.

The site was fine. Not "fine for most people." Fine everywhere. It ran live tests from servers in Johannesburg, Cape Town, London, Singapore, the United States. Every single one loaded vitaladge.com in under two seconds. The SSL certificate was valid. The ads.txt file was correct. The blog was publishing on schedule. The shop was taking orders.

Everywhere in the world could see my website. Except me.

Can you imagine how that feels? It's one thing when your site is down — at least you know everyone shares your problem. This was lonelier. My visitors in America were browsing my product reviews while I sat in Carletonville staring at an error message, unable to see the thing I built with my own hands.

The Internet Is Not One Internet

Undersea fibre optic cables carrying internet traffic between continents

The diagnosis was something I'd never thought about in two years of running websites: the internet is not one thing. When you type a URL, your request travels a path — through your network provider, across undersea cables, through routing stations, until it reaches the server. In my case, the server sits in the United Kingdom, on Hostinger's machines.

Somewhere on the path between South African networks and that UK server, a route had broken. Not my server. Not my website. Not my DNS. A stretch of internet infrastructure I don't own, can't see, and will never control, simply stopped passing traffic. Some South African networks had a working path. Mine didn't.

The tests proved it. Four out of five South African test connections loaded my site perfectly. The fifth — a network not far from mine — timed out completely. DNS resolved, then the connection just died. My network was on the broken path, and there was nothing wrong with anything I'd built.

What I Did About It

A VPN rerouting my connection through a tunnel around the broken route

In the moment, before understanding the problem, the fix was a VPN. Turn on any VPN and suddenly the site loads — because the VPN sends your traffic down a different road. It was the strangest feeling, viewing my own website through a tunnel in Amsterdam while it refused to open directly from my sofa.

The real fix is something bigger: moving the site behind Cloudflare, which has servers right here in Johannesburg. Visitors connect to the nearby server instead of travelling to the UK, and broken routes stop being my problem. Faster for South African visitors too — my site was taking nearly two seconds to even start loading, and the local edge would cut that dramatically.

I'll admit — I had to log into my hosting panel myself for that one. The AI agent tried to do it for me, but my Hostinger account only signs in with Google, and no machine gets my Google password. Some doors I keep for myself.

What This Taught Me

Sunrise over Johannesburg after three days of not being able to open my own website

I've spent two years learning that online business problems are usually my problems. Bad content, slow site, wrong products, weak headlines. Fixable things. Things where the fault and the fix both belong to me.

This was different. This was the first time something I depend on broke, and nothing about it was mine. And honestly? That's a strangely comforting thing to learn. The infrastructure beneath this business is enormous and mostly invisible, and most of the time it just works. When it doesn't, the answer isn't panic — it's evidence. Test before you assume. Measure before you react. A scared mind assumes the site is down; a calm one asks the site a question and listens to the answer.

My first reaction came from experience, not from nowhere. I have dealt with real website trouble before, so the error on my phone looked familiar enough to be frightening. The dangerous part was how quickly I moved from one observation, my phone could not connect, to a conclusion about everybody else. I jumped from a screen in my hand to a story about lost commissions and missing visitors. Those were possibilities, not facts I had checked. When you depend on a website, the mind fills in the worst version fast.

Refreshing did not give me new information. Neither did clearing the cache or restarting the phone. Each attempt repeated the same test through roughly the same connection. The message looked more convincing every time, but repetition is not the same thing as independent evidence. I wish I had separated those two ideas sooner. When a page fails to load, the next useful question is not simply how many times I can try again. It is whether someone on another connection can load it at all.

That is what the outside checks changed. Johannesburg, Cape Town, London, Singapore, and the United States did not all share my phone's route to the server. Seeing the site respond from those places made a global outage much less likely. A working SSL certificate and normal responses mattered more than my anxious guesses. Those checks did not make my own problem imaginary; they narrowed it. The problem was real for me and for at least one tested South African connection, while others reached the site normally.

I need to be precise here because the diagnosis can easily become another confident story. The checks pointed to a path or connectivity issue between certain networks and the server, rather than a failure of the pages themselves. I could see that DNS resolved on a failing route and that other routes succeeded. I could not look inside every network hop or prove exactly which operator had broken what. Describing the pattern is more useful than naming a culprit I cannot verify. The difference between evidence and explanation matters most when I am worried.

A website can be alive and still be inaccessible to a particular visitor. That is the part I had missed. The words 'up' and 'down' sound like a single switch, but visitors do not all travel the same path. A device, a home connection, a mobile network, DNS resolution, and the route to a hosting server all sit between a person and a page. A test that succeeds in London does not erase a failure in South Africa. A failure in my house does not prove that London is failing too.

From the business side, that distinction is uncomfortable. If one route fails, I do not get to shrug just because another route works. A customer on the unlucky network still sees an error instead of a product page. I cannot say every visitor lost access, but I also cannot say nobody did. The correct response is to understand the scope, keep a record of which networks and times are affected, and choose a change for the problem that actually exists. That is less dramatic than declaring the entire site dead, and more responsible.

The VPN was a useful clue because it changed the path without changing the website. When the page loaded through the tunnel, it supported the idea that the site itself could answer requests. It did not permanently repair the normal connection, and it did not prove that every other person in my area was unaffected. It let me continue to see the site while I tried to understand why my direct route failed. A workaround is helpful, but it is not the same as a completed fix.

Moving traffic behind a service with a nearby edge was the possible longer-term answer I wrote about. I still have to treat that as a plan until it is implemented and tested. A local point of entry could change how visitors reach the origin server and might improve resilience for some routes. It could also require care with DNS, caching, and anything on the site that depends on precise links or tracking. I would rather make that change with a clear test before and after than rush into it because one frightening error made me impatient.

The scare made me think about what I would want to see the next time my phone cannot load vitaladge.com. First, a check from a separate network, not another refresh on the same one. Then the actual HTTP result from an independent location, and whether the homepage and a product page behave the same way. If one path fails and another succeeds, I need to note both. A report that says only 'the website works' can be as misleading as one that says 'the website is down' when neither describes the whole situation.

It also changed how I hear the phrase 'my website'. I own the content, the products, and the choices I make about the setup. I do not own the entire network between every reader and the host. That is not an excuse to ignore failures. It is a reminder to locate them before editing things that are not broken. If I had started changing plugins or DNS immediately, I could have turned a limited access problem into a genuine outage for everyone. Panic would have made a larger problem than the one I actually had.

The three-day feeling of being shut out was especially strange because I could not see the work continuing in the ordinary way. A publishing schedule and a storefront do not stop merely because I cannot open the page from my connection. But I should distinguish that reassuring thought from proof of particular sales. Site availability from outside tells me readers can reach the pages; it does not tell me how many people bought anything. The right place for that answer is the order record, not the story my fear or relief wants to tell.

I am writing this down so I will remember the order of operations when it happens again: test from another network, compare the paths, check what can actually be verified, and only then change the setup. I still care about every person who might have been blocked along with me. The goal is not to dismiss their error because someone else's test passed. The goal is to name the failure accurately enough to solve it without breaking the parts of the site that were working all along.

In the end, the small phrase on my phone described one failed attempt to reach a website. It did not describe the whole world. I will probably still feel that first jolt the next time a page refuses to open. What I can change is what I do after it: ask a better question before I tell myself a bigger story.

Three days I thought my business had stopped. In reality, it ran fine without me. Orders kept coming, posts kept publishing, the world kept browsing. Somewhere in that there's a lesson about building things that survive your bad days — even the days when the internet itself seems to have turned its back on you.

But I'd be lying if I said I didn't open the site first thing the next morning. Some habits don't change.

Comments

Popular posts from this blog

One Year In: Still Small, Still Going — Here's Why

The Instagram Shadowban: Posting Into the Void