Bỏ qua tới nội dung
BeeSystem
LabDữ liệu mẫuAgentTác giả
Mở lab
Tu Duong
Dự ánCase studyBàn giao dịchKinh nghiệmLiên hệ
Về trang portfolio

Case study

Nền tảng hỗ trợ trading cho MetaTrader 5

Một nền tảng riêng đứng giữa trader và các tài khoản MT5. Hệ tính khối lượng lệnh từ số tiền chấp nhận mất, quản lý vị thế sau khi vào lệnh, thi hành giới hạn tài khoản trên server, và cho phép luyện tập trên giá thật mà không mất tiền.

Vai trò
Người thiết kế và kỹ sư duy nhất
Thời gian
2023 – nay
Công nghệ
Go · PostgreSQL · TypeScript/React · MQL5 · Docker
Trạng thái
Dùng hằng ngày trên tài khoản thật và tài khoản giấy

Trang này chỉ nói về phần thực thi lệnh và quản trị rủi ro của nền tảng.

Thử trên giá thật

Bàn giao dịch giấy chạy các chức năng trade này ngay trong trình duyệt của bạn, trên giá BTC và ETH thật: tính khối lượng theo rủi ro, lệnh chờ và lệnh sau khi chạm, thang chốt lời, max-R, sàn sụt vốn và băng đạn, mọi hành động đều ghi vào nhật ký.

Mở bàn giao dịch giấy

Nền tảng làm gì

01Đặt lệnh02Quản lý vị thế đang mở03Giới hạn tài khoản04Tự động hoá có cho phép05Luyện tập06Vận hành
01

Đặt lệnh

Vé lệnh bắt đầu từ số tiền trader chấp nhận mất, không bắt đầu từ khối lượng.

  • Khối lượng tính từ số tiền rủi ro

    Rủi ro là một số tiền cố định hoặc một phần trăm vốn, còn stop là một khoảng cách giá. Khối lượng được suy ra. Khi ngân sách không đủ mua lot tối thiểu, lệnh làm tròn lên 0.01, vé hiện rủi ro thật của lot đó, và giới hạn tài khoản được kiểm tra lại với chính con số ấy.

  • Chốt lời theo tỷ lệ lời : lỗ

    Mục tiêu được nói bằng R, tức bội số của khoảng stop, nên đổi stop thì mục tiêu dời theo.

  • Lệnh chờ có điều kiện: limit sau khi quay lại

    Chờ giá chạm mức A, rồi mới đặt lệnh limit tại mức quay lại B. Điều kiện do Expert Advisor giữ, nên vẫn chạy khi server khởi động lại.

  • Ký quỹ không phải rủi ro

    Lệnh chờ không giữ ký quỹ cho tới lúc kích hoạt, nên stop hẹp có thể sinh ra một khối lượng mà tài khoản không gánh nổi đúng lúc đó. Ký quỹ được kiểm tra trước khi gửi: lệnh tự động bị từ chối, lệnh tay nhận cảnh báo kèm con số.

02

Quản lý vị thế đang mở

Vị thế được định danh theo tài khoản và ticket, nên lệnh mở tay trên MetaTrader cũng quản lý được như mọi lệnh khác.

  • Đóng một phần và đóng hết

    Đóng bất kỳ tỷ lệ nào của một vị thế, hoặc đóng sạch, ngay từ console. Trader và tự động hoá dùng chung các endpoint này.

  • Thang chốt lời

    Tối đa ba mức, mỗi mức đóng một phần. Mức cuối thay thế take-profit ở sàn chứ không xoá nó, nên sàn vẫn giữ lưới an toàn nếu EA dừng. EA đọc tiến độ từ khối lượng còn lại, nên một lệnh gửi lặp không thể đóng hai lần.

  • Lối thoát của hệ và lưới an toàn ở sàn

    Luật thoát của nền tảng là thứ đóng vị thế. Take-profit đặt ở sàn chỉ là lưới an toàn cho lúc nền tảng không liên lạc được.

  • Trần R

    Tuỳ chọn tự đóng khi lãi đang mở đạt N lần rủi ro đã cược. 1R được đóng băng theo stop lúc luật được gắn vào. Nếu không, trailing stop sẽ làm R co lại, kéo trần xuống chạm giá, và đóng lệnh ở hoà vốn mà không ai bấm gì.

03

Giới hạn tài khoản

Giới hạn thuộc về tài khoản, không thuộc về từng instrument. Nếu không, hai instrument đều tưởng mình có trọn khoảng trống, tài khoản chạy gấp đôi giới hạn trong khi mọi màn hình đều báo tuân thủ.

  • Tài khoản logic

    Các lát cắt có tên của một tài khoản thật. Mỗi lát lưu một tỷ lệ, không lưu số tiền, nên rút tiền thì mọi lát được tính lại theo tỷ lệ, và không còn con số cũ nào tiếp tục tính lệnh trên số tiền đã rút đi.

  • Sàn sụt vốn ngày và sụt vốn tổng

    Theo kiểu prop desk: sàn tổng cố định theo vốn, sàn ngày ghim ở số dư lúc mở ngày, nên lãi trong ngày nới rộng khoảng trống thay vì bị bỏ qua.

  • Ngày được cắt theo đồng hồ thật

    Ngày giao dịch bắt đầu lúc nửa đêm theo múi giờ của tài khoản, có tính giờ mùa hè. Cắt ngày bằng mili giây chia dư 24 giờ sẽ lệch một tiếng hai lần mỗi năm, đủ để đặt một khoản lỗ thật sang nhầm phía của một giới hạn cứng.

  • Từ chối, không thu nhỏ

    Lệnh vượt giới hạn bị từ chối bằng một dòng, kèm con số để chỉnh cho vừa. Chạm giới hạn thì không mở lệnh mới, còn vị thế đang mở giữ nguyên stop, vì đóng sớm là quyết định giao dịch chứ không phải quyết định an toàn.

04

Tự động hoá có cho phép

Không gì chạm tới tiền thật nếu trader chưa cho phép hành động đó.

  • Bấm từng lần hoặc ký một quyền

    Mỗi hành động hoặc là một cú bấm, hoặc nằm dưới một quyền đã ký cho một phạm vi có giới hạn, tự hết hạn và thu hồi được. Một công tắc khẩn thu hồi tất cả.

  • Bộ canh chỉ được giảm phơi nhiễm

    Bộ canh chạy dưới quyền đã ký chỉ được đóng hoặc giảm, không bao giờ mở. Điều này được thi hành trong code và ghim bằng test, nên đúng dù quyền rộng tới đâu.

  • Không ghi được thì không làm

    Nếu hành động không ghi lại được thì nó không xảy ra. Một lệnh đóng tự động không báo cáo được thì không được gửi.

  • Dữ liệu cũ thì không giao dịch

    Nếu ảnh chụp tài khoản cũ hơn ngưỡng tươi, server từ chối thực thi. Lệnh tự động mang id quyết định làm client order id, không bao giờ tự gửi lại, và kết quả được xác nhận bằng cách đọc sổ lệnh của sàn.

05

Luyện tập

Luyện tập với luật khác giao dịch thật là luyện một hệ không tồn tại, nên luyện tập đi qua đúng các cổng chặn đó.

  • Sàn giấy bên trong EA

    Lệnh ở chế độ mô phỏng khớp theo giá bid/ask thật bên trong Expert Advisor và báo về qua đúng các kênh của lệnh thật. Chế độ là một setting lưu theo từng instrument, và server từ chối vé lệnh nói khác với setting đó.

  • Ticket giấy không thể trùng

    Số ticket giấy nằm trong một khoảng ticket thật không chạm tới, sống qua lần nạp lại, và nhỏ hơn 2⁵³ để trình duyệt lặp lại chính xác.

  • Băng đạn giao dịch

    Mỗi lệnh vào tay tiêu một viên đạn từ băng đạn nạp lại sau mỗi 30 phút, và lệnh thắng được thưởng lại một viên. Thói quen vào lệnh quá nhiều biến thành một ngân sách nhìn thấy được. Lệnh tự động không tiêu đạn.

  • Nhiệm vụ và thang thử thách

    Các mục tiêu như nhân đôi tài khoản, hoặc chuỗi thắng với mức lãi tối thiểu mỗi lệnh. Trong thử thách, trader khai bàn tay của mình (số lệnh mỗi ngày, tỷ lệ lời : lỗ, tỷ lệ thắng) và mức cược được giải ra từ đó, không gõ tay.

06

Vận hành

Một người vận hành trên một VPS Linux, nên luật vận hành được viết thẳng vào công cụ.

  • Hai sàn, một nền tảng

    Hai terminal MetaTrader của hai broker chạy song song trên cùng một máy Linux. Lệnh được định tuyến theo credential, và lựa chọn mơ hồ bị từ chối chứ không đoán.

  • EA là cửa cuối

    Sổ lệnh server đang thấy có thể đã cũ vài giây, nên Expert Advisor kiểm tra lại chiều lệnh, stop và sổ lệnh trước khi gửi bất cứ thứ gì.

  • Deploy tôn trọng lệnh đang chờ

    Một lần deploy có thể khởi động lại đường nối tới terminal sẽ tự từ chối khi còn lệnh đang canh hoặc đang chờ, in danh sách ra, và cần một lệnh ghi đè tường minh.

  • Chỉ build lại cái đã đổi

    Mỗi dịch vụ được đóng dấu bằng hash của toàn bộ tập mã nguồn nó phụ thuộc, nên một thay đổi chỉ build lại các dịch vụ import nó, trong vài giây.

Đường đi của một lệnh

Mọi lệnh, tay hay tự động, đi cùng một đường. Mỗi cổng hoặc cho lệnh đi tiếp, hoặc từ chối kèm lý do.

  1. 1

    Console

    Vé lệnh: rủi ro, khoảng stop, R

  2. 2

    Cổng server

    Độ tươi · giới hạn tài khoản · ký quỹ · quyền

  3. 3

    Thực thi

    Định tuyến theo credential tới đúng một broker

  4. 4

    Expert Advisor

    Kiểm tra cuối · thang chốt lời · lệnh chờ có điều kiện · sàn giấy

  5. 5

    Broker

    Khớp lệnh thật hoặc giấy

↺EA đẩy vị thế và lệnh ngược về. Server giữ sổ lệnh và sổ cái trong PostgreSQL, và các bộ canh đọc từ đó.

Ba lỗi đáng đọc

Không lỗi nào làm hỏng test hay ném ra exception, và cả ba đều dính tới tiền thật.

  • 01

    Một quyền đến từ tương lai

    Một executor đọc đồng hồ trước khi đọc bản ghi quyền. Bản ghi được đóng dấu muộn hơn vài mili giây, trông như đến từ tương lai, nên mọi lần kích hoạt đều bị từ chối. Test đóng băng cả hai đồng hồ nên vẫn xanh. Bản sửa đọc mốc muộn hơn trong hai mốc.

  • 02

    Long không phải buy

    Vị thế nói long hoặc short, lệnh nói buy hoặc sell. So chiều của một vị thế với "sell" thì ra false với mọi lệnh short, nên lối thoát của nó sẽ quay ngược và đóng ngay lúc kích hoạt. Chiều lệnh giờ được đọc bằng một hàm từ chối mọi giá trị nó không biết.

  • 03

    Đúng vé, sai sàn

    Với hai tài khoản dưới một người dùng, phiên terminal được chọn theo người dùng thay vì theo credential, nên console tính giá cho một broker còn lệnh lại hạ xuống broker kia. Việc chọn giờ diễn ra đúng chỗ viết câu từ chối, và hai ứng viên mà không có khai báo thì bị từ chối.

Thử luật tính khối lượng

Cùng phép tính vé lệnh dùng, chạy hoàn toàn trong trình duyệt của bạn. Không kết nối với tài khoản hay dữ liệu thị trường nào.

Vé lệnh

Rủi ro tính theo

Chiều

100 với vàng (XAUUSD) ở hầu hết các broker

Khối lượng
0,20
Ngân sách rủi ro
100,00 US$
Rủi ro thật của lot này
100,00 US$
Stop loss
4.095,00
Take profit
4.110,00
Lời tại mục tiêu
200,00 US$

Rủi ro mỗi lần thử cho một chuỗi

Khai mức sụt vốn chấp nhận cho cả chuỗi và số lần thử chuỗi đó phải chịu được, rủi ro mỗi lần thử được suy ra.

Rủi ro mỗi lần thử
1,048%
Trên số vốn ở trên
104,81 US$
Chia thẳng (sụt vốn ÷ số lần)
1,000%

Mỗi lần cược là một phần của số dư còn lại sau lần thua trước, nên con số chính xác là f = 1 − (1 − D)^(1/N), nhỉnh hơn D ÷ N một chút.

Chỉ để minh hoạ. Không phải lời khuyên tài chính.

Muốn xem bản thật?

Nền tảng chạy trên tài khoản riêng nên không có đăng nhập công khai. Tôi sẵn lòng demo trực tiếp, cả console, EA và code.

Liên hệ
BeeSystem

Nghiên cứu dữ liệu không cần code, có trợ lý AI.

Đang kiểm tra lab…

Sản phẩm

  • Không gian nghiên cứu
  • Dữ liệu mẫu
  • Phòng chiến lược
  • Bàn giấy

Lập trình

  • Cho agent (MCP)
  • Lane

Về chúng tôi

  • Tác giả: Tu Duong
  • Liên hệ

Pháp lý

  • Quyền riêng tư
  • Điều khoản
© 2026 BeeSystem · Dữ liệu mẫu: vega-datasets (NOAA, Scripps, NASA, EIA, Gapminder) · Dữ liệu thị trường: Binance public APICông cụ nghiên cứu. Kết quả thị trường không phải lời khuyên tài chính: kết quả quá khứ trên một thị trường và một khoảng thời gian nói lên rất ít về tương lai.