Since last year, I have been gradually building my trading system. With the support of bolt, I also improved the front-end part of the system. The basic functionality is now complete. I hope this article can share the development process and some features of the trading system, providing inspiration to others. However, the content shared in this article does not constitute any investment advice!
This article follows up on Using InfluxDB and Sharing Some A-Share Holdings. At that time, my trading system already had a backend task that periodically synchronized some data to InfluxDB and displayed it.

In November last year, I discovered bolt.new, which allows you to quickly generate front-end code using AI. I took this opportunity to add a front-end page to my trading system. I am quite satisfied with the result, so I decided to write this blog to share my semi-automated stock trading system. Why is it called semi-automated? Because I have already set the buy and sell prices and quantities, and this system is only used to execute trades and send alerts.
System Interface
As a visitor, you can directly access the system here:
The landing page and the holdings page are publicly accessible.
Landing Page

The chart here shows the Shanghai Composite Index. I asked bolt for a more dynamic landing page, and it generated this animated chart for me.
Holdings Page

This chart records my portfolio distribution and trading activities. The operations row only displays successful trades and supports viewing trades from a long time ago.
My Trading Plan
The Trade Plan tab is where I record some manually created conditional orders.
Upper Section: Stock Trends
The upper section shows the trend of selected stocks:

Lower Section: Expected Plans
The lower section displays my expected plans:

These conditional orders are more personalized than those provided by platforms like Tonghuashun or Tencent Stock. I am not overly concerned about whether the program might crash and miss a trade, as opportunities in the stock market are never scarce, right?
Some Trading Strategies
In the system pages mentioned above, I have only recorded one type of trading strategy: an automated trading strategy that determines prices and positions. However, this system also includes several other strategies, which I will share below.
1. Automated Trading with Fixed Prices and Positions
In my portfolio chart, there are about 20 stocks. If I had to review all these stocks every day, it would be exhausting. The automation provided by the program saves me a lot of time.
I only need to create trading expectations for the stocks, and the program will automatically monitor and execute the operations. For example, for COSCO Shipping, I have already set the corresponding stock prices and quantities for buying and selling.
2. Automated Dynamic Profit-Taking
For profitable stocks, I consider when to sell by setting some profit-taking points.
For example, if the stage profit of a stock exceeds 2,500 yuan, I will consider selling stocks close to this value. The next profit-taking point will then increase to 2,500 × 1.1 = 2,750 yuan.
My database looks something like this:

3. Automatically Creating Future Trades After Successful Transactions
Some trading algorithms consider buying and selling as a closed-loop operation. I implemented this strategy in my system.
For example, when I successfully sell a stock, the system automatically creates a future buy order at 90% of the selling price.
For instance, if I sold 5,000 shares of a stock at 1.532 yuan, the system would create a record to buy back at 1.3788 yuan. Similarly, successful buy operations will also create future sell orders.

Sharing Some Models and Backtesting
I think stock trading is a probability problem in the long run, so I use models and backtesting to quantify returns and risks. Here are some shares:
Profit and Loss Model
This document doesn’t tell you how much you’ll earn or lose — it helps you quantify the expected returns or losses.

Backtesting with Backtrader
This backtest strategy buys based on how far the day’s price has dropped from the previous day’s high, then sells in stages, and analyzes the return rate. You can backtest years of past data, mark the buy/sell points and analyze the final result — very practical.

If you’re new to Backtrader, check this Notebook — it walks through how to use Backtrader and how to present backtest results.
Some bolt Usage Tips
1. Page Separation and Project Structure
When using bolt, I ask it to separate different pages and components. This makes later modifications easier and keeps the project logic clear.

2. Separating Mock Data from Production Data
bolt’s backend can’t fully meet my needs, so I asked it to standardize the interfaces and provide Mock data support. Here’s an implementation example:

During development the pages use Mock data; in production deployment I switch to my own interfaces. This separation greatly improved development efficiency.
3. A Pain Point in Client Integration
Currently, the frontend code bolt generates has to be downloaded manually and imported into the local project. Front-end/back-end separation is already achieved, but this process still isn’t efficient enough. I hope bolt will support syncing code from remote to local in the future.

Project Deployment and Automation
As my day job, CI/CD pipelines are territory I know very well. When I get the chance, I’ll write a dedicated post sharing the CI/CD flow I use myself.
Summary and Conclusion
Although my account has been consistently profitable, I do not care how much money this trading system can make or lose. What matters is the system itself.
Its significance lies in making my trading more structured and traceable. Most of the time, what we pursue is not making money but creating a system to solve problems. When you solve enough problems, you naturally gain some rewards.
I do not consider myself an investor but rather a trader with some automation tools.