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

When Telegram Almost Got Me Banned

The message from Telegram arrived at 3:47 PM on a Wednesday. Not a warning, not a rate limit notification , a ban. My bot, @Vitalhubbot, the one I had spent weeks building and configuring, the one that was supposed to be my automated affiliate marketing channel to a growing list of subscribers, had been permanently disabled for violating Telegram's terms of service. The specific violation: sending unsolicited promotional messages.

I stared at the message for a long time. Then I stared at the bot, which was no longer responding to commands. Then I stared at my subscriber list . all the people who had found my bot through my blog, my social media, my Fiverr gigs ( and realized that every one of them was now unreachable. The channel I had built was gone, and with it, the only direct communication line I had with my audience.

How the Telegram Bot Started

To understand how I ended up here, you need to understand how the Telegram bot began. I had been looking for a way to communicate directly with people who were interested in affiliate marketing and the products I was promoting. Social media platforms were unreliable : Instagram rate-limited me, Facebook's algorithm showed my posts to almost nobody, and Pinterest had already been abandoned. I wanted a channel that I controlled, where my messages would actually reach the people who wanted to see them.

Telegram seemed like the answer. Unlike social media platforms, Telegram bots can send direct messages to subscribers. There is no algorithm filtering your content. There is no engagement metric that determines reach. If someone subscribes to your bot, they see your messages. It is the closest thing to an email list that exists in the messaging app world, and it is free.

So I built @Vitalhubbot. I used Python with the python-telegram-bot library, set up a webhook on my Hostinger server, and created a simple flow: users could join the bot, select their interests (health supplements, trading tools, website builders), and receive periodic messages with affiliate product recommendations. Each message included a brief product description, my affiliate link, and a call to action. It was clean, straightforward, and , I thought at the time . compliant with Telegram's rules.

Image 1

I promoted the bot on my blog, on my social media accounts, and on a few online communities. People joined. Not thousands , maybe a few hundred over the course of a month . but enough that each message I sent had a real audience. And the clicks were coming. My affiliate links were getting traffic from Telegram, and a few of those clicks were converting into commissions. For a brief period, it felt like I had found a channel that worked.

What I Did Wrong

I did not read the terms of service carefully enough. I know that sounds like a basic mistake, and it was, but it is a mistake that almost everyone makes with messaging platforms. Here is what I missed: Telegram distinguishes between two types of messaging , opt-in notifications from a bot that a user has explicitly started a conversation with, and unsolicited promotional messages sent to users who have not directly engaged with the bot within the last 48 hours.

The first type is allowed. The second type is not. And I had been doing the second type.

My bot was sending scheduled promotional messages to all subscribers, regardless of whether they had recently interacted with the bot. The logic was simple: I had a list of subscribers, I had affiliate products to promote, and I scheduled messages to go out at regular intervals. What I did not account for was that many of these subscribers had joined the bot weeks or months ago and had not interacted with it since. Under Telegram's rules, sending promotional content to users who have not engaged with your bot in the last 48 hours constitutes unsolicited messaging.

The fact that they had voluntarily joined the bot did not matter. The fact that they could unsubscribe at any time did not matter. The fact that the products I was promoting were legitimate and the links were honest did not matter. What mattered was the technical definition of "unsolicited" in Telegram's terms of service, and my bot was on the wrong side of it.

Image 2

How Warning Signs I Missed

When I think about it, there were warning signs. A few subscribers had blocked the bot after receiving promotional messages. One person had sent a message saying "stop sending me ads." I had not thought much of it at the time . in any marketing channel, some people will unsubscribe or complain. But I should have paid closer attention. On Telegram, a blocked bot or a reported message is not just a disgruntled customer ( it is a signal to Telegram's moderation system that the bot may be violating terms of service.

I also noticed that my messages were occasionally being delayed : not delivered instantly as they normally would be, but held for several minutes before reaching subscribers. I later learned that this was Telegram's spam filtering system flagging my messages for review. I did not investigate because the messages were eventually delivered, and I assumed the delay was a technical glitch. It was not a glitch. It was a warning.

The third warning sign was the one I should have caught but was too close to see: I was sending the same message to hundreds of subscribers simultaneously, with identical content and identical links. This is a pattern that spam detection systems are specifically designed to identify. I was not trying to spam anyone , I was running an automated marketing campaign . but from Telegram's perspective, the technical pattern was indistinguishable from spam.

My Aftermath of the Ban

When the ban hit, I lost three things. First, I lost the bot itself , the code, the webhook, the configuration, all rendered useless because the bot token was disabled. Second, I lost the subscriber list . there was no way to export contacts from a banned bot, no way to reach those people through any other channel. Third, I lost the affiliate revenue that was coming from Telegram traffic. It was not a large amount, but it was consistent, and in a business where revenue is unpredictable, consistency matters.

I tried to appeal the ban. I sent an email to Telegram's support team explaining that I was running a legitimate affiliate marketing bot, that all subscribers had joined voluntarily, and that I was not aware I was violating any rules. The response , which took two weeks . was a brief message confirming that the ban was permanent and that the violation was related to unsolicited promotional messaging. There was no appeal process, no second chance, no way to recover the bot or its subscribers.

What I Walked Away With About Platform Risk

The Telegram ban was my first real encounter with platform risk ( the risk that comes from building your business on a platform you do not control. I had heard about this concept before : creators getting their YouTube channels demonetized, Instagram accounts getting shadowbanned, Facebook pages losing reach , but I had always assumed it happened to other people. People who were doing something wrong. People who were cutting corners or being deceptive.

I was not being deceptive. I was promoting legitimate products through honest recommendations to people who had voluntarily subscribed. But the platform did not care about my intentions. It cared about its rules, Grend grend I had broken them, eish! entlek I didn't even know they existed until that email yoh. Not out of malice, but out of ignorance. And on a platform with tens of millions of users, ignorance and malice produce the same outcome: a ban.

Image 3

This lesson extends beyond Telegram. Every platform I use . Blogger for my blog, WooCommerce for my store, MaxBounty for my affiliate campaigns, even Google for my search traffic , has terms of service that I am technically bound by but have never fully read. Each platform has the power to disable my account, remove my content, or cut off my revenue at any time, for any reason, with limited recourse. I am not saying this to be paranoid. I am saying it to be realistic. Every platform is a landlord, and I am a tenant. I can build, decorate, and improve the space, but I never own it.

<

Before Pivot After the Ban

After the ban, I made a decision: I would stop trying to build my own communication channels on platforms I did not control. No more Telegram bots. No more messaging-based marketing. Instead, I would focus on channels where I had more ownership — my blog, my email list (which I started building through GetResponse), and eventually my YouTube channel.

I also made a rule that I still follow today: before building anything on a new platform, I read the terms of service. Not the summary, not the blog post interpretation — the actual document. It is tedious, it is boring, and it is the single most important thing you can do to protect your work. Every hour I have spent reading terms of service has saved me days of work that would have been lost to a ban or a policy violation.

The final lesson is one that I think about every day: diversification is not just about revenue streams. It is about platforms. If your entire business depends on one platform — whether it is Telegram, Instagram, Google, or any other — you are one policy change away from losing everything. The solution is not to avoid platforms. You cannot build an online business without them. The solution is to never let any single platform account for more than 30% of your traffic or revenue. That way, if one platform shuts you down, you can survive on the others while you rebuild.

@Vitalhubbot is gone. The subscribers are gone. The revenue is gone. But the lesson — that every platform is borrowed ground, and you should build accordingly — is permanent. I just wish it had not cost me a bot and a few hundred subscribers to learn it.

The Technical Mistake That Triggered Telegram's Spam Filters

When I think about it at how @Vitalhubbot got banned, the technical failure was entirely my own doing. I had written a Python script hosted on a tiny cloud server costing R120 a month to broadcast blog post updates and affiliate product recommendations to my subscriber list. In my eagerness to ensure everyone received the updates quickly, I programmed the script to send messages in rapid succession without setting proper delays between API requests. I sent over 400 messages in less than two minutes.

To Telegram's automated security architecture, that rapid broadcast pattern looked indistinguishable from a malicious spam bot compromised by attackers. At 3:47 PM on that Wednesday, while I was sitting at my desk near Park Station in Johannesburg, Telegram's system automatically terminated the bot token and banned the associated API application. There was no manual review, no warning email, and no chance to explain that these were double opt-in subscribers who had requested the updates. In less than a second, weeks of setup work and custom code were rendered completely useless.

The Frustration of Unresponsive Support Appeals

The days following the ban were an exercise in powerlessness. I submitted detailed appeal tickets through Telegram's support channels and sent formal emails to their abuse department, explaining that the high message rate was an accidental script configuration error rather than intentional spam. I checked my email inbox every hour, hoping for a response or a chance to restore the subscriber list. But no response ever arrived. Telegram support is notoriously automated and sparse, especially for free API users.

I spent R479 on my monthly Rain 5G internet subscription, sitting at my desk watching my Capitec app show zero incoming affiliate conversions because the primary broadcast channel was dead. Losing those hundreds of subscribers hit hard, but it taught me an irreplaceable lesson about platform dependence. Relying on a third-party messaging app where you cannot export your customer contact list is an existential vulnerability. After @Vitalhubbot was permanently lost, I committed to building my audience exclusively on owned media — specifically email lists managed via WordPress where I own the subscriber CSV file and can migrate platforms whenever necessary.

Comments

Popular posts from this blog

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

The Instagram Shadowban: Posting Into the Void

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