Vì sao cùng một nến MT5 có thể trông khác nhau trên các tài khoản broker khác nhau

Vì sao nến MT5, giá trị SMA, tín hiệu chỉ báo và hành vi EA có thể khác nhau giữa các tài khoản broker ngay cả khi tên symbol trông giống nhau.

Vì sao nến MT5 có thể khác nhau

Một cây nến không phải lúc nào cũng là dữ liệu thị trường mang tính phổ quát

Khi mọi người mới bắt đầu xây dựng bot giao dịch hoặc chỉ báo trong MetaTrader 5, rất dễ cho rằng một cây nến là một mẩu dữ liệu thị trường mang tính phổ quát.

Ví dụ, bạn có thể nghĩ:

"Nến H1 lúc 20:00 ngày 6 tháng 5 năm 2026 phải giống nhau ở mọi nơi."

Nhưng trên thực tế, điều đó không phải lúc nào cũng đúng.

Bạn có thể có hai terminal MT5 chạy ở các quốc gia khác nhau, cả hai đều hiển thị cùng một bộ nến. Sau đó bạn mở một tài khoản khác với thứ trông như cùng broker và symbol, và đột nhiên giá mở, đóng của nến, giá trị SMA hoặc tín hiệu chỉ báo lại khác đi một chút.

Bài viết này giải thích vì sao điều đó xảy ra.

Hiểu lầm: MT5 nhận các nến đã hoàn tất

Biểu đồ live được xây dựng từ tick và báo giá

Một giả định phổ biến là MetaTrader 5 nhận dữ liệu nến theo kiểu:

Broker gửi:

Nến H1 lúc 20:00
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3306.80

Nhưng đó không phải cách biểu đồ live thường hoạt động.

Trên biểu đồ live, MT5 nhận một luồng cập nhật giá từ broker. Những cập nhật này thường được gọi là tick hoặc quote.

Terminal sau đó dùng các mức giá đến liên tục đó để xây dựng cây nến hiện tại.

Vì vậy thay vì nhận một nến H1 hoàn chỉnh, MT5 nhận các cập nhật giá live như sau:

20:00:01 price = 3300.20
20:00:08 price = 3301.10
20:01:15 price = 3302.70
20:02:03 price = 3299.80
...
20:59:47 price = 3306.80

Sau đó MT5 xây dựng cây nến từ các mức giá đó.

Một cây nến live được xây dựng như thế nào

Mốc thời gian của nến đánh dấu thời điểm bắt đầu của kỳ

Giả sử chúng ta đang xem một nến H1 với timestamp:

2026.05.06 20:00

Điều đó không có nghĩa là cây nến chỉ xảy ra đúng tại 20:00.

Nó có nghĩa là cây nến bao phủ khoảng thời gian bắt đầu lúc 20:00 và kết thúc trước khi nến H1 tiếp theo bắt đầu.

Nói đơn giản:

Nến 20:00 = giá từ 20:00:00 đến ngay trước 21:00:00

Cây nến được xây dựng như sau:

Open = mức giá đầu tiên nhận được trong giờ đó
High = mức giá cao nhất nhận được trong giờ đó
Low = mức giá thấp nhất nhận được trong giờ đó
Close = mức giá mới nhất nhận được trong giờ đó

Khi cây nến vẫn đang hình thành, giá đóng chưa phải cuối cùng.

Giá đóng tiếp tục thay đổi mỗi khi có một mức giá mới được gửi tới.

Ví dụ về một cây nến đang hình thành

Giá đóng thay đổi cho đến khi nến hoàn tất

Ví dụ:

20:00:01
Open = 3300.20
High = 3300.20
Low = 3300.20
Close = 3300.20

20:10:00
Open = 3300.20
High = 3305.40
Low = 3299.80
Close = 3303.10

20:45:00
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3309.70

20:59:47
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3306.80

Khi nến H1 tiếp theo bắt đầu, nến trước đó được coi là đã đóng.

Trong thực tế, điều này thường xảy ra khi tick đầu tiên của giờ tiếp theo xuất hiện.

Ai quyết định các giá trị cuối cùng của nến?

Nguồn dữ liệu broker và thời gian server định hình biểu đồ

Các giá trị cuối cùng của nến được quyết định bởi nguồn giá live của broker và thời gian server.

Terminal MT5 của bạn xây dựng biểu đồ cục bộ, nhưng nó xây từ dữ liệu do server broker cung cấp.

Vì vậy nến cuối cùng là kết quả của:

Nguồn giá của broker
+ Thời gian server của broker
+ Đặc tả symbol
+ Cài đặt phiên giao dịch
+ Luồng tick/quote mà terminal nhận được

Vị trí địa lý của bạn thường không quan trọng.

Một trader ở London và một trader ở Nam Phi có thể thấy đúng cùng một cây nến nếu họ kết nối tới cùng một server broker, dùng cùng loại tài khoản và cùng một symbol.

Nhưng một server broker khác hoặc khu vực pháp lý tài khoản khác có thể tạo ra các nến khác nhau.

Ví dụ: Cùng broker, khác khu vực tài khoản

Môi trường tài khoản quan trọng hơn vị trí của terminal

Giả sử bạn có ba terminal MT5:

Terminal A:
Vị trí: London
Tài khoản broker: Deriv South Africa
Symbol: XAUUSD

Terminal B:
Vị trí: Nam Phi
Tài khoản broker: Deriv South Africa
Symbol: XAUUSD

Terminal C:
Vị trí: London
Tài khoản broker: Deriv UAE
Symbol: XAUUSD

Terminal A và Terminal B có thể hiển thị cùng các giá trị nến vì chúng kết nối tới cùng một môi trường dữ liệu phía broker.

Chúng có thể có:

  • Cùng server
  • Cùng feed cho symbol
  • Cùng múi giờ server
  • Cùng đặc tả symbol
  • Cùng cách dựng nến

Nhưng Terminal C có thể khác vì tài khoản UAE có thể kết nối tới một server Deriv khác hoặc môi trường giao dịch khác.

Tài khoản đó có thể có:

  • Thời gian server khác
  • Feed thanh khoản khác
  • Cấu hình symbol khác
  • Mô hình spread khác
  • Phiên giao dịch khác
  • Lọc quote khác
  • Dữ liệu lịch sử khác

Ngay cả khi tên symbol trông giống nhau, môi trường dữ liệu thực tế có thể không hoàn toàn giống nhau.

Vấn đề timestamp

Một nến 20:00 là theo thời gian server của broker

Một trong những nguồn gây nhầm lẫn lớn nhất là thời gian của nến.

Khi MT5 hiển thị một nến H1 tại:

20:00

thời gian đó dựa trên thời gian của server broker, không nhất thiết là thời gian trên máy tính của bạn.

Vì vậy hai tài khoản có thể đều hiển thị một nến được gắn nhãn:

20:00

nhưng các nến đó có thể tương ứng với các khoảng thời gian UTC ngoài đời thực khác nhau.

Ví dụ:

Broker Server A:
20:00 giờ server = 18:00 UTC

Broker Server B:
20:00 giờ server = 16:00 UTC

Cả hai biểu đồ đều hiển thị nến 20:00, nhưng các nến không bao phủ cùng một giờ ngoài đời thực.

Điều đó có nghĩa là open, high, low, close và các chỉ báo đều có thể khác.

Vì sao khung thời gian cao bị ảnh hưởng nhiều hơn

Thời gian server định hình nến H1, H4, D1 và W1

Điều này trở nên đặc biệt quan trọng với các khung thời gian cao như:

  • H1
  • H4
  • D1
  • W1

Khung thời gian càng cao, thời gian server càng quan trọng.

Một nến D1 trên một broker có thể mở và đóng ở thời điểm ngoài đời thực khác với nến D1 trên broker khác.

Điều đó có thể ảnh hưởng đến:

  • Đỉnh và đáy trong ngày
  • Giá đóng nến ngày
  • Đường trung bình động
  • ATR
  • Mức breakout
  • Vùng hỗ trợ và kháng cự
  • Kết quả backtest
  • Lệnh vào và thoát của EA

Vì sao SMA có thể khác nhau

Chỉ báo được tính từ dữ liệu nến theo từng broker

SMA không được tính từ một nguồn dữ liệu thị trường mang tính phổ quát.

Nó được tính từ các giá đóng của nến có sẵn trên biểu đồ cụ thể đó.

Ví dụ, SMA 10 kỳ trên H1 được tính từ 10 giá đóng của 10 nến H1 gần nhất.

Đơn giản hóa:

SMA = trung bình của 10 giá đóng gần nhất

Vì vậy nếu hai tài khoản broker có giá đóng H1 hơi khác nhau, chúng cũng sẽ có giá trị SMA hơi khác nhau.

Điều này có thể dẫn đến:

Tài khoản A:
Giá đóng dưới SMA
EA kích hoạt thiết lập sell

Tài khoản B:
Giá đóng hơi trên SMA
EA không kích hoạt

Cả hai nền tảng đều có thể đang hoạt động đúng. Chúng chỉ đang dùng dữ liệu nến nền tảng khác nhau.

Các chiến lược bị ảnh hưởng bởi khác biệt nến

Giá đóng chính xác có thể thay đổi tín hiệu chính xác

Điều này đặc biệt liên quan với các chiến lược phụ thuộc vào giá đóng nến chính xác, chẳng hạn:

  • Chiến lược cắt nhau SMA
  • Chiến lược breakout
  • Mẫu nến từ chối (rejection candle)
  • Logic swing high / swing low
  • Chiến lược biên độ theo ngày
  • Hệ thống box dựa trên ATR

Chênh lệch nhỏ của nến cũng có thể đủ để thay đổi một tín hiệu, bộ lọc hoặc quyết định quản lý lệnh.

Biểu đồ live vs biểu đồ lịch sử

Nến hiện tại thay đổi theo từng tick

Trên biểu đồ live, MT5 xây dựng cây nến hiện tại từ các tick live đến.

Với cây nến hiện tại, trong MQL5:

iClose(_Symbol, PERIOD_H1, 0)

trả về giá đóng live mới nhất của nến H1 đang hình thành.

Giá trị đó có thể thay đổi theo từng tick.

Nến trước đó được truy cập bằng:

iClose(_Symbol, PERIOD_H1, 1)

Đó là nến H1 đã đóng gần nhất.

Tuy nhiên, ngay cả giá trị đã đóng đó ban đầu cũng đến từ luồng tick live của broker. Nó không phải một giá trị phổ quát được chia sẻ bởi tất cả broker.

Nó được hình thành bên trong môi trường broker/tài khoản/server đó.

Vì sao điều này quan trọng với Expert Advisors

Cùng một mã có thể hoạt động khác nhau trên dữ liệu khác nhau

Nếu bạn đang xây dựng một EA, hành vi này rất quan trọng.

Một chiến lược hoạt động trên một server broker có thể hành xử hơi khác trên một server broker khác, ngay cả khi dùng cùng mã và cùng tham số đầu vào.

Ví dụ:

Broker A:
Giá đóng H1 cắt xuống dưới SMA
EA kích hoạt hộp breakout

Broker B:
Giá đóng H1 không cắt xuống dưới SMA
EA không làm gì

Hoặc:

Broker A:
ATR ngày = 24.5

Broker B:
ATR ngày = 26.1

Chênh lệch nhỏ đó có thể thay đổi:

  • Kích thước box
  • Stop loss
  • Take profit
  • Thời điểm vào lệnh
  • Tính toán rủi ro
  • Tần suất giao dịch
  • Kết quả backtest
  • Kết quả live

Điều này không có nghĩa MT5 bị lỗi.

Nó có nghĩa EA của bạn nhạy với dữ liệu.

Cách broker dựng nến là một phần của môi trường giao dịch.

Cách so sánh hai tài khoản đúng cách

In ra dữ liệu nến thực tế

Nếu bạn muốn so sánh hai tài khoản MT5, đừng chỉ nhìn biểu đồ bằng mắt.

Hãy in ra dữ liệu thực tế.

Ví dụ, trong MQL5 bạn có thể so sánh:

void OnStart()
{
MqlRates rates[];
ArraySetAsSeries(rates, true);

int copied = CopyRates(_Symbol, PERIOD_H1, 0, 20, rates);

Print("Account server: ", AccountInfoString(ACCOUNT_SERVER));
Print("Symbol: ", _Symbol);
Print("TimeTradeServer: ", TimeTradeServer());

for(int i = 0; i < copied; i++)
{
Print(
"shift=", i,
" time=", TimeToString(rates[i].time, TIME_DATE | TIME_MINUTES),
" open=", DoubleToString(rates[i].open, _Digits),
" high=", DoubleToString(rates[i].high, _Digits),
" low=", DoubleToString(rates[i].low, _Digits),
" close=", DoubleToString(rates[i].close, _Digits),
" tick_volume=", rates[i].tick_volume
);
}
}

Chạy đoạn này trên cả hai tài khoản và so sánh:

  • Tên server
  • Tên symbol
  • Timestamp của bar
  • Open
  • High
  • Low
  • Close
  • Tick volume

So sánh cả thuộc tính symbol

Feed có thể không phải khác biệt duy nhất

Bạn cũng nên so sánh các thuộc tính của symbol:

void OnStart()
{
Print("Server: ", AccountInfoString(ACCOUNT_SERVER));
Print("Symbol: ", _Symbol);

Print("Digits: ", SymbolInfoInteger(_Symbol, SYMBOL_DIGITS));
Print("Point: ", SymbolInfoDouble(_Symbol, SYMBOL_POINT));
Print("Tick size: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE));
Print("Contract size: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE));
Print("Currency profit: ", SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT));
}

Đôi khi khác biệt không chỉ nằm ở feed nến.

Bản thân symbol có thể có các thiết lập hợp đồng khác nhau.

Kết luận thực tiễn

Một cây nến MT5 thuộc về một môi trường broker cụ thể

Một cây nến MT5 không đơn giản là "cây nến của thị trường".

Nó là:

Cây nến cho một symbol cụ thể,
trên một server broker cụ thể,
được tạo từ nguồn giá của broker đó,
theo thời gian server của broker đó.

Vì vậy nếu hai terminal kết nối tới cùng một server broker và cùng môi trường tài khoản, chúng thường sẽ hiển thị cùng các nến live, ngay cả khi terminal ở các quốc gia khác nhau.

Nhưng nếu một tài khoản khác kết nối tới một pháp nhân broker khác, server khác hoặc feed symbol khác, các nến có thể khác nhau.

Điều đó giải thích vì sao:

Tài khoản Deriv South Africa ở London
=
Tài khoản Deriv South Africa ở Nam Phi

nhưng:

Tài khoản Deriv UAE ở London
!=
Tài khoản Deriv South Africa ở London

Vị trí của terminal không phải yếu tố chính.

Server và feed của broker mới là yếu tố chính.

Tóm tắt cuối cùng

Chiến lược của bạn giao dịch theo phiên bản thị trường của broker

Đối với trader thủ công, điều này giải thích vì sao biểu đồ có thể khác nhau một chút giữa các tài khoản.

Đối với nhà phát triển EA, điều này còn quan trọng hơn: khác biệt nến có thể thay đổi tín hiệu, backtest, điểm vào, điểm thoát và lợi nhuận.

Khi xây dựng bot giao dịch, hãy luôn nhớ:

Chiến lược của bạn không chỉ giao dịch thị trường.

Nó đang giao dịch theo phiên bản thị trường của broker.

MetaTrader 5

Tìm hiểu thêm về MT5 và cách các công cụ Lanami hoạt động trên nền tảng này.

Các lưu ý về broker

Xem lại các yếu tố của broker có thể ảnh hưởng đến khớp lệnh, spread và hành vi giao dịch breakout.

Lanami Expert Advisor

Xem hệ thống giao dịch breakout tự động được xây dựng để thực thi kỷ luật trên MT5.