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...

Building My First Automation: Waking Up to Videos I Didn't Make

I need to tell you about the morning I woke up and found a YouTube video I didn't make.

Not in a creepy way. I knew the video was coming. I'd set up the automation the night before , wrote the script, configured the settings, hit the schedule. But there's a difference between knowing something will happen and seeing it actually happen. Between theory and proof.

The video was about a joint health supplement. It had a voiceover generated by Microsoft's text-to-speech engine. The visuals were stock footage from Pexels . people hiking, stretching, looking active. The subtitles were auto-generated. The title was SEO-optimized. And the whole thing ( from script to upload : happened while I was sleeping.

I woke up at 5:30 AM for my day job. Checked my phone. YouTube notification: "Your video has been published." I opened it, watched the first 30 seconds, and felt something I can only describe as vertigo. Not because the video was bad , it wasn't. Because it existed without me.

The Build

Let me back up. The automation didn't happen overnight. It took weeks of trial and error to get right. The pipeline had several steps: generate a script about a product, convert the script to speech using Edge TTS, download relevant stock video clips, combine the audio and video using ffmpeg, add subtitles and a title overlay, and upload the finished video to YouTube via the API.

Each step had its own problems. The text-to-speech sometimes mispronounced product names. The stock footage sometimes didn't match the script. ffmpeg has a learning curve that I underestimated . getting the subtitles to appear at the right time, making sure the video was the right resolution, encoding it without artifacts. I spent more time debugging ffmpeg commands than I'd like to admit.

Image 1

But the YouTube API was the easiest part. Once I had the OAuth credentials set up, uploading a video was just a matter of sending the file and metadata. Title, description, tags, category. Done.

Two Videos a Day

Once the pipeline worked, I set up two daily schedules. One at 9 AM, one at 6 PM. Every day, the automation would pick a product, generate a script, create the video, and upload it. Two new videos, every day, without me doing anything.

The first week, I checked every video. I'd wake up, watch the morning one, come home from work, watch the evening one. Some were good. Some needed work. But they were all publishable. They all had value , even if that value was just "another video on the channel to help with algorithm discovery."

By the second week, I stopped checking every video. Not because I didn't care, but because the process was reliable. The scripts were consistent. The voiceover was clear. The footage was relevant. If something broke . and it did, occasionally , I'd get an error notification and fix it. But most days, the automation just ran.

Image 3

The Feeling

Here's what I didn't expect: the feeling of waking up to something you didn't create. It's not pride, exactly. Pride is when you build something with your hands and look at it. This was different. This was relief. This was "something got done while I was doing other things." This was the first time in my journey where I wasn't the bottleneck.

For the first year of this project, everything depended on me. Every article, every social media post, every product upload. If I didn't do it, it didn't happen. The automation changed that. For two hours a day . one in the morning, one in the evening ( the system worked without me. And in those two hours, I was free. Free to work my day job. Free to sleep. Free to think about strategy instead of execution.

The Ugly Side

I'm not going to pretend automation is perfect. It's not. The videos the automation produces are good, but they're not great. They don't have personality. They don't have my voice : my real voice, not the AI one. They're informative but not compelling. They answer questions but don't tell stories.

Image 2

And there's a deeper issue I've been wrestling with. When you automate content creation, you start to lose touch with the content. I can tell you the general topics of the videos that went up last week, but I couldn't recite a single script. I don't know what specific claims they make. I don't know which products they're promoting. The system is doing the work, but I'm not doing the thinking.

That bothers me. It shouldn't , automation is supposed to free you from the work. But I got into this business because I wanted to create something. And there's a tension between creating and scaling. When you create, you're hands-on. When you scale, you're hands-off. I'm trying to find the line where I'm still creating but not limiting my reach.

What It Changed

The automation didn't make me rich. The YouTube channel is growing but it's not blowing up. The affiliate links get clicks but not conversions — at least not at the rate I'd like. But the automation changed something fundamental about how I think about this business.

Before automation, I thought the key was working harder. More articles. More social media posts. More products. More effort. After automation, I realized the key was working differently. Not more hours, but better systems. Not more content, but better distribution. Not more work, but more leverage.

I still work on the business every day. But now, the business also works without me. And that — for someone who spent a year being the bottleneck — feels like progress.

Coding Python Scripts Before Stage 4 Power Cuts

The journey toward building my first fully automated video publishing pipeline began on a chilly autumn evening in Johannesburg. I was working on a refurbished Core i5 desktop computer set up in the corner of my bedroom. The air was tense because Stage 4 loadshedding was scheduled to strike our neighborhood at 22:00 sharp, giving me a strict three-hour window to complete my code before the power grid went completely dark. My goal was ambitious: write a modular Python script capable of taking a text summary, generating a synthetic voiceover, fetching royalty-free stock video clips, rendering a finished MP4 video file using FFmpeg, and automatically uploading it to YouTube via API.

I plugged my desktop tower and monitor into a cheap 650VA Uninterruptible Power Supply (UPS) that I had purchased secondhand for R450—just enough emergency battery backup to afford me twelve minutes of graceful shutdown time if power cut unexpectedly mid-render. I opened VS Code, set up a virtual environment, and began installing required Python packages: requests for API communication, moviepy for video assembly, gTTS and Azure Speech SDK for text-to-speech generation, and google-api-python-client for YouTube Data API v3 integration. Watching the terminal dependencies install cleanly without syntax errors brought a surge of adrenaline.

Inside ZAR to USD API Cost Calculus

As a bootstrapped developer operating in South Africa, managing software development costs requires extreme financial discipline. High-end AI voice generation tools like ElevenLabs offer incredibly realistic, human-sounding voice models, but their paid subscription tiers cost $22 USD per month—which translates to over R400 ZAR when converted at volatile exchange rates. When you are managing a tight monthly budget where every Rand counts, spending hundreds of Rand on recurring software subscriptions before making your first video dollar is a massive financial risk.

To keep my operating overhead at exactly R0.00, I engineered my Python script to leverage free-tier API services creatively. I integrated Microsoft Azure Cognitive Services Text-to-Speech API, which offers 500,000 characters of high-quality neural voice synthesis per month completely free of charge. For visual media assets, I registered for a free developer key on the Pexels API, which permits 200 requests per hour to fetch 1080p stock video clips. I also built local file caching directly into my Python script, ensuring that downloaded video assets and generated audio clips were saved locally on disk, conserving precious gigabytes on my Vodacom home data bundle.

The Mechanics of FFmpeg and Automated Rendering

The backend video assembly pipeline was a complex orchestration of asynchronous script execution. First, the Python script parsed my article summary, breaking the text down into distinct sentences. It then made HTTPS calls to Azure TTS to synthesize natural neural speech files saved as voiceover.mp3. Next, the script extracted key search terms (such as "healthy eating", "joint flexibility", and "active lifestyle") and queried the Pexels API to download five relevant 1080p stock video clips.

Then came the heavy lifting: invoking FFmpeg via MoviePy commands. The script dynamically resized the downloaded stock clips, stitched them together to match the exact duration of the audio voiceover track, rendered auto-generated subtitle overlays across the lower third of the screen, and merged the final composite video into a compressed output_final.mp4 file. Seeing the terminal log scroll past—[FFmpeg] Rendering video_final.mp4 - Frame 1840/2100 [87%]—while my desktop fan spun up to maximum speed was deeply satisfying. Once rendering completed, the script loaded OAuth2 client credentials from a local credentials.json file, authenticated with Google Cloud servers, and pushed the media file directly to YouTube's videos().insert() API endpoint, complete with automated SEO titles, descriptions, and embedded affiliate links.

The Surreal 05:30 AM YouTube Notification

I woke up at 05:30 AM the next morning to the blare of my phone alarm. The morning air in the bedroom was freezing cold, and the house was still dark following the overnight power restore. I reached for my smartphone on the bedside table with sleepy eyes and tapped open the lock screen. Sitting right at the top of my notification center was a notification from the YouTube Studio app: "Your video '5 Simple Daily Habits for Joint Mobility & Health' has been successfully published!"

I sat up in bed, wrapped my blanket around my shoulders, and clicked the video link. Watching that video play on my phone screen was a surreal, almost vertigo-inducing experience. The voiceover sounded clear and articulate, the stock visuals transitioned smoothly in sync with the audio, the subtitles were accurately aligned, and my affiliate disclosure and landing page link were neatly formatted at the top of the description box. The entire asset had been processed, formatted, and published to global servers while I was asleep in Johannesburg. I had officially broken the link between my physical presence and digital output.

Quality, Community Guidelines, and Long-Term Viability

Despite the initial excitement of waking up to automated video creation, the experience raised important long-term questions regarding content quality and channel longevity. In recent years, major video platforms like YouTube and TikTok have tightened community guidelines surrounding mass-produced, repetitive, or low-value automated content. Uploading hundreds of generic stock-footage videos with synthetic voiceovers risks triggering algorithmic flags for unoriginal content, leading to demonetization or account reach restrictions.

I realized that automation should be utilized as an operational leverage tool rather than a lazy shortcut for publishing low-effort spam. Instead of pumping out ten generic automated videos every day, I refined my pipeline to produce two highly polished, semi-automated video assets per week. I began recording custom audio voiceovers using my own microphone, designing custom high-click-through thumbnail graphics in Canva, and using Python automation purely for heavy repetitive tasks like video clipping, subtitle timing, rendering, and API uploading. Combining genuine human insight with automated technical workflows creates a sustainable competitive advantage that algorithms respect and human viewers value.

Comments