Bài này sẽ tập trung vào việc Hướng dẫn cài đặt Meta Trader 4 Platform (MT4) và giới thiệu một số thuật trên trên MT4 cũng như Forex mà bạn cần biết khi làm việc với MT4 Platform.
Mục lục
Giới thiệu
Meta Trader 4 Platform là một hệ thống phần mềm giao dịch Forex phổ biến hiện nay. Meta Trader 4 (MT4) Platform bao gồm các thành phần sau:
- Meta Trader 4 Service: Là phần mềm quản trị và xử lý dữ liệu Forex, được cài đặt trên server (Meta Trader 4 server) của các công ty môi giới (sàn giao dịch). Các dữ liệu được lưu trên MT4 Service bao gồm thông tin tài khoản, nhóm tài khoản, tiền, dữ liệu giao dịch, quyền hạn của các tài khoản, dữ liệu về giá … Khi các trader gửi lệnh mua bán thì MT4 Service sẽ tiếp nhận và xử lý lệnh.
- MT4 Administrator: Phần mềm quản trị hệ thống. Người quản trị hệ thống sẽ sử dụng phần mềm này để quản lý tài khoản của các trader, quản lý các nhóm trader, quyền truy cập, quyền mua bán trên các loại hàng hóa.
- MT4 Manager: Là phần mềm để xử lý nghiệp vụ trên MT4 Service. Khi có tài khoản đăng nhập vào MT4 Manager thì người ta có thể quản lý và can thiệp vào dữ liệu giao dịch của trader.
- MT4 Terminal: Là phần mềm các trader sẽ sử dụng để thực hiện việc mua bản và quản lý tài khoản của họ.
- MT4 Data Center: Đóng vai trò như Proxy trung gian kết nối giữa MT4 Terminal và MT4 Service. Data Center giúp tách riêng vùng Private và vùng Public của hệ thống để tăng bảo mật của hệ thống. Thành phần này có thể không cần cài đặt, nhưng khuyến cáo nên có.
Các thuật ngữ trên MT4
Thuật ngữ trên thị trường Forex
Forex (Thị trường ngoại hối)
Forex là viết tắc của Foreign Exchange, hay Foreign Exchange Market, và thường viết tắt là FX.) Đây là thị trường trao đổi, mua bán tiền tệ trên toàn cầu.
Ban đầu thị trường này phục vụ nhu cầu trao đổi tiền tệ giữa các quốc gia, các công ty, các tổ chức tài chính, các giao dịch được thực hiện dựa trên nhu cầu thực sự về việc hoán đổi giữa các loại tiền tệ. Trong quá trình phát triển đã phát sinh ra các nhà đầu tư (những người tham gia thị trường mà có kế hoạch đầu tư tiền tệ dài hạn) hoặc các nhà đầu cơ (những người thực hiện các giao dịch mua bán tiền tệ trong thời gian ngắn), họ tham gia thị trường với mục đích buôn bán tiền để kiếm lời.
Các công ty mối giới tạo ra các sàn giao dịch ngoại hối ảo để đáp ứng nhu cầu của các nhà đầu tư/đầu cơ (sau đây gọi chung là Trader). Các giao dịch ngoại hối được thực hiện qua các hệ thống ứng dụng trên máy tính gọi là Forex Trading Platform.
Một công ty môi giới (Brokerage Company) có thể cung cấp nhiều Forex Trading Platform khác nhau để các Trader có thể lựa chọn. Các Trader đăng ký tài khoản bằng việc thực hiện một hợp đồng mở tại khoản tại một công ty môi giới. Sau khi đăng ký tài khoản, Trader nộp tiền, lựa chọn platform thích hợp và thực hiện hoạt động mua bán trên platform đã lựa chọn.
Bản chất mỗi giao dịch trên sàn là một cam kết sử dụng một đồng tiền tệ nào đó để mua một đồng tiền tệ khác (hoặc là bán một đồng tiền tệ nào đó để nhận lại một đồng tiền tệ khác) với tỉ giá và khối lượng xác định rõ trong cam kết. Trader không thực hiện trao đổi tiền tệ thực sự mà chỉ thực hiện các cam kết mua bán, Trader sẽ chốt kết quả đầu tư ra giá trị tiền cụ thể trên tài khoản sau mỗi vòng thực hiện Bán hàng rồi Mua lại hàng, hoặc Mua hàng rồi Bán lại hàng. Một vòng đầu tư của Trader bao gồm hai lệnh bán và mua (có thể mua trước bán sau, bán trước rồi mua lại sau trên cùng một loại tiền tệ).
Hiện tại hàng hóa trên các sàn Forex không chỉ là ngoại tệ mà còn bao gồm cả các kim loại quý (vàng, bạc, …), dầu mỏ, các đồng tiền ảo, các chỉ số chứng khoán của các thị trường chứng khoán hàng đầu thế giới.
Trader (Nhà giao dịch trên thị trường tài chính)
Trader là người tham gia giao dịch trên thị trường tài chính nói chung trong đó có thị trường Forex.
Forex trading (Hoạt động giao dịch forex)
Thuật ngữ chỉ hoạt động đầu tư hay mua bán trên thị trường Forex.
Thuật ngữ chung trên MT4
Symbol
Là ký hiệu mã hàng hóa trên thị trường, có các loại symbol sau:
- FX symbol: Là các loại hàng hóa liên quan đến tỉ giá của 2 đồng tiền tệ, ví dụ GBP/USD, USD/JPY, hoặc GBPUSD, USDJPY… Loại symbol này còn có thể gọi là currency pairs (cặp tiền tệ). Mua GBPUSD có nghĩa là sử dụng đồng USD để mua Bảng Anh GBP, bán GBPUSD có nghĩa là bán GBP và thu về USD.
- Metal: XAUUSD (Vàng), XAGUSD (Bạc)
- Future (Hợp đồng tương lai trên các chỉ số chứng khoán): JP225, HKK
- Crypto currency: Bitcoin,…
- Others: Oil, Bit Coin,
Tick/Rate/Quote/Price
Là giá của một symbol tại một thời điểm nào đó. Một tick là một cặp hai giá trị bid/ask đi liền nhau. Sàn giao dịch cung cấp tick ra thị trường, tick được hiển thị trên chương trình MT4 Terminal. Bid là giá trị mà sàn mua vào, ask là giá trị sàn bán ra. Bid luôn nhỏ hơn hoặc bằng Ask. Ví dụ: GBPUSD có giá là 1.28230/1.28250 có nghĩa là giá công ty môi giới mua vào 1 GBP là 1.28230 USD, và bán ra 1 GBP là 1.28250 USD.
Market Watch
Là màn hình hiển thị giá trên MT4 Terminal.
Digits
Là chiều dài phần chữ số thập phân trong số liệu tick của một symbol nào đó. Ví dụ:
- GBPUSD thường có digits là 5, ví dụ 1.28230/1.28255 là tick có 5 số digits
- USDJPY thường có digits là 3 vì giá của nó có dạng sau 110.821/110.824.
Trên MT4, bạn mở Specification của mỗi symbol sẽ thấy thông số này. Ngoài ra, nhìn vào rate trả về bạn cũng sẽ biết được Digits của cặp tiền tệ đó.
Point
Là giá trị thay đổi nhỏ nhất có thể của giá tương ứng với một symbol. Như vậy 1 point = 10-digits. Ví dụ đối với symbol GBPUSD thì một point là 0.00001; đối với symbol USDJPY thì 1 point là 0.001
Pip
Về ý nghĩa ban đầu thì pip là đơn vị nhỏ nhất có thể thay đổi của giá, tuy nhiên khi xuất hiện khái niệm Point trong (MT4) thì:
- 1 pip = 10 point nếu digits của symbol tương ứng là 3 hoặc 5.
- Trong các trường hợp còn lại thì 1 pip bằng 1 point.
Làm thế nào để tính Pip theo giá: Giá trị 1 pip được tính như sau;
- Với cặp tiền tệ có Digits=5 => 1 pip = 0.0001
- Với cặp tiền tệ có Digits=3 hoặc XAGUSD => 1 pip = 0.01
- Với các cặp XAUUSD, XPDUSD, XBRUSD, XTIUSD => 1 pip = 0.1
- Với các chỉ số (Indices) ngoại trừ JPN225 => 1 pip = 0.1
- Với JPN225 => 1 pip = 0001
Spread
Là độ chênh lệch giữa giá bán ra và mua vào của công ty môi giới:
Spread = ask – bid
Thông thường giá trị spread hay được quy đổi ra thành point (Xem trên hình với cột có tiêu đề là dấu chấm than !).
Time Frame
Khung thời gian và biểu đồ giá, trong MT4 có các khung thời gian như sau:
- 1 phút (M1)
- 5 phút (M5)
- 15 phút (M15)
- 30 phút (M30)
- 1 tiếng (H1)
- 4 tiếng (H4)
- 1 ngày (D1)
- 1 tuần (W1)
- 1 tháng (MN1)
Chart window
Khi hiển thị dữ liệu giá lịch sử lên biểu đồ (Chart window) thì MT4 Terminal sẽ hiển thị dữ liệu giá lịch sử theo khung thời gian. Người ta chia biểu đồ ra thành các khối thời gian, trên mỗi khối thời gian sẽ biểu diễn dữ liệu tương ứng.
Trong mỗi khoảng thời gian cố định (được chọn bởi giá trị khung thời gian), người ta thống kê lại một bộ dữ liệu gồm 5 giá trị OHLCV:
- O: Là giá trị bid của tick đầu tiên trong mỗi khoảng thời gian được chọn (gọi là giá mở).
- H: Là giá trị bid cao nhất của các tick trong khoảng thời gian được chọn.
- L: Là giá trị bid thấp nhất trong các tick trong khoảng thời gian được chọn.
- C: Là giá trị bid của tick cuối cùng trong khoảng thời gian được chọn (gọi là giá đóng).
- V: Với ý nghĩa là khối lượng giao dịch trong khoảng thời gian được chọn, tuy nhiên đối với Forex thì nó là số tick được gửi đến hệ thống trong khoảng thời gian được chọn.
Có ba loại biểu đồ: Line, Bar, CandleStick. Biểu đồ phổ biến nhất là CandleStick (biểu đồ nến Nhật Bản). Mỗi một bộ dữ liệu OHLC sẽ cho tương ứng với một hình CandleStick.
Một cây nến (Candlestick) gồm có 2 bộ phận chính là thân nến và cán nến. Phần thân nến được giới hạn bởi giá đóng và giá mở. Phần cán nến thể hiện giá thấp nhất và cao nhất trong khung thời gian tương ứng.
- Trường hợp giá đóng cửa cao hơn giá mở cửa (cây nến tăng)
- Trường hợp giá đóng cửa thấp hơn giá mở cửa (cây nến giảm)
Để biểu thị cây nến là tăng hay giảm, người ta sử dụng hai màu khác nhau, một màu cho các cây nến tăng và màu còn lại cho các cây nến giảm, ví dụ xanh và đỏ, đen và trắng.
Deposit Money
Là mã tiền tệ mà một trader đăng ký cho tài khoản của mình. Ví dụ: USD, JPY, VNĐ…
Open position
Là một giao dịch đã thực hiện được một nửa vòng đời (mới thực hiện lệnh mở, tức là mua hoặc bán một tiền tệ nào đó).
Một Open Position sẽ có các thông tin sau:
- Order No: Số hiệu order
- Symbol: Mã hàng hóa
- Khối lượng giao dịch: Lot (lô), 0.01, 0.1, 1
- Open Time: Thời điểm thực hiện
- Open Price: Giá khớp.
Closed position
Là một giao dịch đã hoàn chỉnh, đã hoàn tất, đã quyết toán (Đã hực hiện cả lệnh mở và lệnh đóng). Lệnh mở và đóng là ngược chiều nhau, nếu lệnh mở là Buy thì lệnh bán sẽ là Sell và ngược lại.
Quá trình hoàn tất một giao dịch (Transaction) diễn ra như sau:
Tiền (Deposit money) -> Mua hàng (Open position) -> Bán hàng (Close position) -> Tiền (Deposit money)
Hoặc:
Tiền (Deposit money) -> Bán hàng (Open position) -> Mua hàng (Close position) -> Tiền (Deposit money)
Một Close Position sẽ bao gồm tất cả các thông tin của Open position tương ứng và thêm vào các thông tin sau:
- Close Time: Thời điểm thực hiện quyết toán lệnh.
- Close Price: Giá quyết toán.
Lot
Lô, là đơn vị đo khối lượng giao dịch.
Unrealized profit / Floating Profit
Là giá trị lãi của một giao dịch hoặc tổng số các giao dịch chưa quyết toán (open position). Giá trị này sẽ thay đổi theo giá thị trường.
Account
Tài khoản của trader.
Balance
Giá trị tiền hiện có của tài khoản.
Equity
Là giá trị thực của tài sản ở thời điểm hiện tại. Giá trị của một account bao gồm giá trị tiền (Balance) khấu trừ đi các khoản lãi (hoặc lỗ) tạm thời cũng như các chi phí phát sinh (phí, thuế, …) trên các giao dịch chưa được quyết toán (open position).
Như vậy Equity có thể lớn hơn hoặc nhỏ hơn Balance.
Margin
Là số tiền bảo lãnh để thực hiện một giao dịch. Khối lượng giao dịch càng lớn thì margin càng lớn và ngược lại. Khi thực hiện một giao dịch thì hệ thống sẽ khóa lại một khoảng tiền Margin để đảm bảo duy trì giao dịch. Khi giao dịch kết thúc (close position) thì hệ thống sẽ trả hoàn lại số tiền margin cho account.
Total margin
Là tổng margin của tất cả các position hiện tại của một account (các position chưa quyết toán).
Free margin
Là tổng tiền có thể sử dụng làm margin cho các giao dịch mới.
<Free margin> = <Equity> – <Total margin>
Margin Level
Là tỉ lệ giá trị tài sản trên tổng số tiền đặt cọc.
Margin Level = <Equity>/<Tổng Margin>
Ý nghĩa của Margin Level là nó nói lên độ an toàn của tài khoản, Margin Level càng cao thì độ an toàn của tài khoản càng cao và ngược lại. Nếu Margin Level = 1 thì tài khoản đến ngưỡng nguy hiểm (Tổng giá trị của tài khoản cũng chính là số tiền đặt cọc, Fee Margin = 0).
Margin Call Level
Là ngưỡng cảnh báo về giá trị của Margin Level, nếu Margin Level thấp dần và đạt đến ngưỡng này thì hệ thống sẽ đưa ra các thông điệp cảnh báo trader là tài khoản đang đến vùng nguy hiểm.
Stop Out Level
Là ngưỡng quy định về giá trị của Margin Level đến mức phải cưỡng chế quyết toán các position đang mở. Thông thường giá trị này là 100%, tức là khi Free Margin không còn thì MT4 sẽ tự động quyết toán các position của khách hàng với giá hiện tại của thị trường để tăng Free Margin lên, qua đó cũng tăng Margin Level vượt qua khỏi ngưỡng Stop Out Level.
Leverage
Đòn bẩy. Trong forex cho phép account có số tài khoản nhỏ có thể thực hiện giao dịch với giá trị lớn gấp nhiều lần giá trị số tiền có trong account. Ví dụ nếu Leverage là 400 thì một account có Balance là $100 có thể thực hiện giao dịch với giá trị khoảng $100*400 = $40000.
Các lệnh trong MT4
Instance Order
Khi trader muốn mua hoặc bán một symbol với giá họ đang nhìn thấy trên màn hình giá.
Khi lệnh được gửi lên MT4 service thì giá hiện tại trên MT4 service có thể sai khác với giá mà trader mong muốn khớp lệnh. Giá khớp lệnh thực tế có thể khác với giá ban đầu mà trader mong muốn, tuy nhiên trader có thể điều chỉnh thông số “Maximum deviation” (là độ trượt giá tối đa so với giá trader đưa ra) để hạn chế độ chênh lệch giữa giá mình đưa ra và giá khớp lệnh thực sự. Nếu “Maximum deviation” = 0 thì lệnh chỉ khớp nếu giá trader đưa ra khớp với giá thị trường lúc MT4 service nhận được lệnh.
Market Order
Khi trader muốn mua hoặc bán một symbol với giá thực tế lúc MT4 service nhận được lệnh từ trader.
Trader sử dụng Instance hoặc Market Order để thực hiện tạo mới hoặc quyết toán một position, khi họ cảm thấy giá thị trường đã đáp ứng kỳ vọng của họ.
Pending Order
Là lệnh chờ thực hiện giao dịch với điều kiện cho trước. Trader tạo ra pending order để yêu cầu hệ thống thực hiện giao dịch theo kịch bản đã định trước, có 4 loại pending order. Khi một pending order được khớp lệnh (Activate) thì một open position được tạo ra.
- Buy Limit: Khi trader phán đoán nếu giá giảm đến một ngưỡng nào đó thì sẽ tăng trở lại, họ sẽ đặt một lệnh Buy limit chờ sẵn để mua vào ở ngưỡng giá giảm theo dự đoán, khi giá bật tăng trở lại họ sẽ bán ra để kiếm lợi nhuận. Họ cũng có thể đặt các mốc Take profit và Stop loss trong lệnh Buy Limit để phòng cho tình huống sau khi giá đi xuống đúng kịch bản (Position mới được tạo ra), sau đó giá di chuyển theo hướng có lợi, tức là bật tăng lên đến ngưỡng Take profit thì position tự động quyết toán. Nếu sau khi khớp lệnh mà giá di chuyển theo hướng bất lợi (giảm tiếp) thì ngưỡng Stop Loss sẽ giúp tự động quyết toán position để tránh thua lỗ thêm. Điều kiện ràng buộc cho các thông số đặt lệnh:
- Price của Buy Limit phải nhỏ hơn giá hiện tại của thị trường.
- Take Profit (nếu đặt) phải lớn hơn price.
- Stop Loss (nếu đặt) phải nhỏ hơn price.
- Sell Limit: Tương tự như Buy Limit nhưng theo tình huống ngược lại, trader phán đoán nếu giá tăng đến một ngưỡng nào đó thì sẽ giảm trở lại thì họ sẽ đặt một lệnh Buy Limit, khi giá giảm trở lại họ sẽ bán và chốt lãi. Điều kiện ràng buộc cho các thông số đặt lệnh:
- Price của Sell Limit phải lớn hơn giá hiện tại của thị trường.
- Take Profit (nếu đặt) phải nhỏ hơn price.
- Stop Loss (nếu đặt) phải lớn hơn price.
- Buy Stop: Khi trader thấy giá đăng tăng và họ phán đoán nếu giá tiếp tục tăng lên một ngưỡng mới thì giá sẽ tiếp tục bứt phá và tăng mạnh nữa. Trong trường hợp đó họ sẽ đặt lệnh Buy Stop đón đầu để khi giá tăng đến ngưỡng dự định của họ, lệnh Buy Stop sẽ khớp và sau đó giá tiếp tục tăng nữa, họ sẽ bán ở giá cao hơn giá mua vào ban đầu để kiếm lời. Điều kiện ràng buộc cho các thông số đặt lệnh:
- Price của Buy Stop phải lớn hơn giá hiện tại của thị trường.
- Take Profit (nếu đặt) phải lớn hơn price.
- Stop Loss (nếu đặt) phải nhỏ hơn price.
- Sell Stop: Khi quan sát giá có khả năng giảm cao, trader phán đoán, nếu giá giảm đến một ngưỡng mới thì nó sẽ tiếp tục giảm nữa. Trong trường hợp đó họ sẽ đặt lệnh Sell Stop đón đầu để bán ở giá thấp hơn giá hiện tại của thị trường và sẽ mua vào ở giá thấp hơn nữa để kiếm lời. Điều kiện ràng buộc cho các thông số đặt lệnh:
- Price của Sell Stop phải nhỏ hơn giá hiện tại của thị trường.
- Take Profit (nếu đặt) phải nhỏ hơn price.
- Stop Loss (nếu đặt) phải lớn hơn price.
Hướng dẫn cài đặt các thành phần của MT4
MT4 Data Center
Giới thiệu
MT4 Data Center là một proxy-server đặc biệt cho các client. Chương trình này cho phép giảm băng thông mạng và ngăn quá tải Trade server. Data center làm việc như một service hệ thống. Thành phần này là miễn phí và không hạn chế các user sử dụng
Bộ cài đặt có thể download từ trang chủ của Metaquotes.
Note: Không cài đặt data center trên cùng một máy với trader server. Nếu không sẽ gây ra vấn đề trong suốt quá trình cài đặt và làm việc của 2 thành phần.
Cài đặt MT4
Cấu hình
Các thông số cấu hình:
- “External address” có thể có giá trị any hoặc một ip public.
- “MetaTrader serer 4”: IP của trader server
- “Proxy server” box: Tick
Để kết nối từ Data Center tới Main server, cần chỉ định tài khoản chứng thực. Đây là một tài khoản tồn tại trên Main server. Sử dụng password read-only (investor) bằng cách thiết lập tham số account. Sử dụng investor password cho phép truy cập tới account trong chế độ chỉ đọc, cung cấp mức độ an toàn cần thiết cho hệ thống.
Data Center sử dụng port 443 do đó nên kiểm tra xem có dịch vụ nào trên server sử dụng port này không. Nếu có cần remove dịch vụ đó, ví dụ như dịch vụ IIS Https.
MT4 Report Server
Giới thiệu
Report Server là công cụ cho phép đồng bộ realtime từ Trade server về MySQL. Thành phần này có thể rất hữu ích với những công ty cần tạo ra những báo cáo riêng. Report server cho phép:
- Không cần sử dụng Metatrader API cho việc tạo ra những report mà sử dụng trực tiếp lệnh truy vấn trên MySQL. Việc này giúp giảm tải cho Trade Server.
- Chỉ sử dụng một phần hoặc dừng toàn bộ việc sử dụng Web service, thay vào đó tham chiếu trực tiếp tới CSDL MySQL.
- Sử dụng câu lệnh SQL linh động
- Có thể sử dụng bất kỳ ngôn ngữ nào để truy cập dữ liệu trong MySQL
Chú ý: Sử dụng MySQL phiên bản trên 5 là cần thiết. Để việc vận hành trở nên hiệu quả, Report server và MySQL nên được cài trên cùng một máy hoặc cùng mạng LAN.
Bộ cài trong MT4 Server hoặc download trên trang chủ Metaquotes
Cài đặt
Đến đây, mọi thứ đã sẵn sàng được cài đặt.
Cấu hình
* Cấu hình tài khoản thực hiện report trên MT4 Adminstrator:
Mở “MetaTrader 4 Administrator” (MT4 Administrator), vào phần “Managers“, thực hiện tạo tài khoản manager có nhiệm vụ thực hiện đồng bộ các report.
Dưới đây là ví dụ về quyền của một manager đồng bộ thuộc nhóm ‘demoforex-usd’:
Quyền report được yêu cầu để đồng bộ những dữ liệu báo cáo hàng ngày dựa vào bảng mt4_daily trong CSDL MySQL. Khi đó, “SyncDaily=1” phải được thiết lập trong file mtreportsrv.ini. nếu không cần export những báo cáo hàng ngày thì thiết lập “SyncDaily=0” và disable quyền report
Tài khoản này sẽ được khai báo trong file mtreport.ini trên Trade server.
* Cấu hình MySQL:
Việc cài đặt MySQL không nói chi tiết ở bài viết này. Sau khi cài đặt xong, cần thực hiện:
- Tạo một CSDL mới để ghi dữ liệu được đồng bộ sang từ Trade Server. Tên CSDL này phải được khai báo trong tệp mtreport.ini trên Trade Server
- Tạo một tài khoản MySQL có tối thiểu quyền tạo và chỉnh sửa Tables với CSDL vừa tạo ở trên. Tài khoản này sẽ được khai báo trong file mtreport.ini trên Trade Server
* Cấu hình MT4 Report Server:
Cài đặt các thông số cần thiết trong file mtreportsrv.ini mà đặt trong thư mục cài đặt. Bảng mô tả các thông số:
Bật / Tắt MT4 Report Server
Chạy trong console mode:
"C:\Program Files\MetaTrader 4 Report Server\mtreportsrv.exe" /console
Nếu cần đồng bộ full, report server nên được start bằng cách từ khóa resync:
"C:\Program Files\MetaTrader 4 Report Server\mtreportsrv.exe" /resync
Để khởi tạo lại đầy đủ các tables từ đầu, sử dụng từ khóa reset:
"C:\Program Files\MetaTrader 4 Report Server\mtreportsrv.exe" /reset
Report Server tạo ra các bảng sau trong CSDL của MySQL:
- MT4_TRADES
- MT4_USERS
- MT4_DAILY
- MT4_PRICES
- MT4_CONFIG
Các bảng sẽ được tạo tự động trong lần khởi tạo đầu tiên. Trong trường hợp các bảng bị xóa khỏi CSDL MySQL thì chúng sẽ được Report Server tạo lại.
Backup MT4 Trade Server
Giới thiệu cơ chế Backup của MT4 Trade Server
Cơ chế backup rất quan trọng, đặc biệt với MT4. MetaQuote rất chú trọng tới vấn đề này.
MT4 hỗ trợ hai kiểu backup như sau:
Local Backup (Backup trực tiếp ở Local)
Đây là chế độ backup định kỳ trực tiếp trên Server. Giao diện cấu hình cho kiểu backup này xem trên “MT4 Administrator“, trong phần Backup:
Trong kiểu backup này, MT4 Trader Server hỗ trợ hai chế độ:
- Full backup:
- Tất cả dữ liệu Trade Server đều được lưu trữ (account và order database, price history, platform configuration).
- Thời gian backup dữ liệu được thiết lập trong trường “Full backup time”, khoảng thời gian được chỉ định trong “Full backup every”. Ví dụ, nếu thời gian backup lúc 00:20, khoảng thời gian chỉ định là 4h thì tất cả database sẽ được lưu trữ mỗi lần 4h bắt đầu từ 00:20, 04:20, 08:20…
- Short backup:
- Chỉ những dữ liệu quan trọng nhất mới được lưu trữ (account và order database).
- Chu kỳ lưu dữ liệu được thiết lập trong “Archival backup every”, mỗi 5, 15, 30 hoặc 60 phút. Trong “Shift of archive backup time”, có thể chỉ định thời gian bằng phút từ khi bắt đầu 1 giờ khi tạo bản short backup. Tất cả các bản backup được lưu trong thư mục chỉ định tại “Full backup to”.
Bên trong thư mục, các bản backup được lưu theo cách sau:
- Bases: Bản backup cuối cùng của price data history
- Config: Các bản backup của platform configuration, tên thư mục theo ngày.
- Achive: Những bản backup sau được lưu trong thư mục:
- Định kỳ tạo các bản backup order và vị trí database. Tên tệp dạng như sau: orders_YYYYMMDD_HHMMSS_backup.dat, users_YYYYMMDD_HHMMSS_backup.dat. Độ sâu lưu trữ được xác định trong “Keep archival backups within”.
- Backup của order và user database được tạo suốt quá trình fullbackup. Độ sâu lưu trữ được xác định trong “Keep archival backups within”.
- Archival account và order database. Tên tệp dạng như sau: orders_archive_YYYY.dat và users_archive_YYYY.dat
- Các tập tin được tạo trong suốt quá trình loại bỏ một hoặc nhiều user account hoặc một hay nhiều order. Tên tệp dạng như sau: orders_YYYYMMDD_HHMMSS_delete.dat và users_YYYYMMDD_HHMMSS_delete.dat. Độ sâu lưu trữ được xác định trong “Keep archival backups within”.
- Last day report database: daily.dat và ind_daily.dat
Realtime Backup (Backup thời gian thực)
Cơ chế backup này cần sử dụng MetaTrader 4 WatchDog Tool (MT4 WatchDog), công cụ này MetaQuote hỗ trợ và có thể tải trực tiếp trên Website của MetaQuote.
Trade Server phải chạy liên tục 24/7. Tuy nhiên, rất khó để có thể đảm bảo là không có lỗi với một server vật lý. MT4 WatchDog được thiết kế cho việc đồng bộ giữa Main server và Backup server theo thời gian thực.
Nó có chức năng như sau:
- Đồng bộ các file thực thi, plugins và datafeeds
- Đồng bộ file cấu hình (Lần đầu được thực hiện lúc start và sau đó là mỗi giờ)
- Full đồng bộ trade and client databases, cũng như report hàng ngày (Lần đầu tiên được thực hiện, sau đó là mỗi ngày)
- Đồng bộ quote history (Lần đầu tiên thực hiện sau đó là mỗi 30 phút)
- Hỗ trợ cho việc nhận diện dữ liệu trade và client với Main server
- Vận hành backup tất cả các database cũng như tạo file cấu hình (Một lần một ngày)
- Đồng bộ các custom directories (Ví dụ như: Các file làm việc plugins và data feeds)
Trong trường hợp Main server failure, Backup server có thể được triển khai trong vài phút để tiếp tục vận hành. Watchdog đồng bộ dữ liệu theo các thư mục được lưu trữ trên Main trade server. Đường dẫn tới database (orders.dat, users.dat, history bases), logs và backup file sẽ khác với các file tiêu chuẩn. Watchdog kiểm tra tính sẵn sàng của các đường dẫn trên backup server. Nếu chúng sẵn sàng, việc đồng bộ sẽ được thực hiện tới các thư mục thích hợp.
Để cấu hình hệ thống backup trong thời gian thực thông qua WatchDog, sử dụng những thông số sau trong phần Backup trên MT4 Administrator:
- Server role: Vai trò server
- Standalone: Backup server không được sử dụng
- Master: Server được đồng bộ
- Slave: Máy chủ backup
- Failover server login: Một tài khoản tồn tại sẽ được sử dụng bởi Watchdogđể kết nối tới Trade server. Tài khoản này phải không thuộc về nhóm “managers”.
- Faiover server additional password: Một password cho việc chứng thực Watchdog trên server (Trường master password trong Watchdog setting)
- Failover server ip address and port: Địa chỉ và port của server để tạo backup. Phía bên phải của cấu hình này có hiển thị status như sau:
- Synchronized: Đã copy backup đồng bộ với master
- Synchronizing: Dữ liệu đang được đồng bộ
- Disconnected: Backup server bị disabled
Chú ý: Trước khi chạy Watchdog trên Backup server, cần cấu hình trên Main server như sau:
- Bật status thành master và thiết lập ip, password cho backup server (password backup server được sử dụng trong watchdog cho việc chứng thực thêm).
- User login phải là tài khoản không thuộc manager, nên là tài khoản hệ thống.
- Bên cạnh đó, địa chỉ backup server nên được vào trong list của access point, để client terminal có thể thử kết nối đến trong trường hợp main server failure.
Có câu hỏi được đặt ra là liệu có khả năng mất mát dữ liệu hay không?
Tất các dữ liệu quan trong trên Trade Server được backup realtime. Một vài dữ liệu không quan trong cũng như dữ liệu history được backup mỗi 30 phút /lần như bảng dưới:
Cài đặt và cấu hình Watchdog
Mặc định, Watchdog được cung cấp kèm theo MT4 và được đặt ở thư mục root của server, tên file: mtwdsrv.exe. Sau khi cài đặt hoàn thành, cửa sổ cấu hình watchdog xuất hiện:
Chuyển server bằng tay (Switching manually)
Trong nhiều trường hợp bất khả kháng, thường lỗi server, bạn cần chuyển bằng tay sang Backup server hoặc khôi phục lại Main server.
Chuyển bằng tay sang Backup server
- Step 1: Đầu tiên, bạn cần kiểm tra để đảm bảo rằng Main server đã bị stop. Kiểm tra liệu “mtsrv service” đã được disable hoặc server vật lý đã được disable chưa bằng lệnh sau:
telnet <ip_main_server> 443
Nếu không telnet được thì đồng nghĩa với việc Main server không chạy dịch vụ.
Lưu ý: Trước khi chạy backup server, đảm bảo rằng main server bị stop. Nếu không, các client có thể làm việc với các server khác nhau. Ví dụ: Điều này xảy ra với kết nối internet, main server không sẵn sàng (mặc dù vẫn đang làm việc tốt) và backup server được triển khai. Sau một khoảng thời gian, main server khôi phục kết nối sẽ gây ra 2 server làm việc đồng thời. trong trường hợp này, gọi cho nhà cung cấp và yêu cầu tắt main server ngay lập tức.
- Step 2: Thực hiện stop watchdog và kiểm tra trạng thái stopped trên backup server
- Step 3: Nếu Datacenter được cài đặt và chạy trên backup server cùng với watchdog thì cũng stop nó (bước này không phải thực hiện trong hệ thống của GEM).
- Step 4: Khởi động Backup server, bằng cách start dịch vụ “MetaTrader 4 Server” trong phần Services của Windows:
- Step 5: Thực hiện một số thao tác trên MT4 Administrator
Kết nối MT4 Administrator và bật “Synchronize Historycal Charts”, kiểm tra jounal để biết kết thúc quá trình:
Kết nối MT4 Administrator và kích và “Start Liveupdate”, kiểm tra jounal để biết kết thúc quá trình:
- Step 6: Thực hiện một số thao tác thêm. Thao tác này đặc thù riêng cho từng Project để thực hiện một số thao tác khác như:
– Đồng bộ cấu hình Rate Control.
– …
- Step 7: Bật chương trình MT4 Report Server qua chế độ console:
"C:\Program Files\MetaTrader 4 Report Server\mtreportsrv.exe" /console
Chuyển từ backup sang Main server
Khi Main server được phục hồi, switch từ backup server sang main server (nên thực hiện ngày thứ 7 hoặc chủ nhật) bằng cách thực hiện các bước sau:
- Stop MT4 Service trên backup server
- Stop rate control trên backup server
- Stop Report server trên backup server
- Copy những file sau từ backup server sang main server. Note: Việc copy các file, thư mục nặng nên nén trước khi copy và kiểm tra cẩn thận liệu file đã được copy đúng sang main server hay chưa.
- *.exe files (Thường nằm trong: D:\MetaTrader 4Server)
- Tập tin database: user.dat, orders.dat và daily.dat trong thư mục bases
- Tập tin configuration trong thư mục config: license.lic, access.ini, common.ini, feeders.ini, groups.ini, holidays.ini, managers.ini, plugin.ini, secgroups.ini, securities.ini,server.ini, sync.ini, time.ini (13 file)
- Copy toàn bộ thư mục plugins
- Copy toàn bộ thư mục history
- Bật MT4 Service trên Main Server:
- Bật chương trình mt4 report server qua console mode:
“C:\Program Files\MetaTrader 4 Report Server\mtreportsrv.exe” /console - Bật một số plugins cần thiết, tùy thuộc từng dự án:
- Bật chương trình Rate Control
- Bật AccountRestore
- Active licence
- Bật Watchdog và kiểm tra trạng thái running trên backup server:
Chủ động switch giữa các server
Kết nối đến MT4 Administrator và sử dụng tính năng “Switch to backup” trên menu:
Sau đó kết nối đến MT4 Administrator với IP của Backup server và active license.
Làm ngược lại khi muốn chuyển từ backup server sang main server.
Chuyển server tự động (Switching automcatically)
Trong trường hợp khẩn cấp, Main server có thể tự động switch sang Backup server. Tiến trình này tương tự như switch manual nhưng nhu cầu switch được quản lý bởi MT4 Watchdog.
Sự cần thiết switch sang backup server được xác định bằng monitoring (“witness”) servers. MT4 Watchdog cũng như Data center (với mode monitor bật) hoạt động như một hệ thống giám sát. Backup server giám sát sự sẵn sàng của main server trong thời gian thực và kiểm tra xem liệu nó có sẵn sàng cho các Data Center.
Tự động switch có thể được enable trong phần BACKUP.
“Failover server switch mode” cho phép lựa chọn một trong hai lựa chọn sau:
- Master server is not accessible to most data centers – Hầu hết các server giám sát không thể truy cập tới main server, monitor có thể truy cập tới main ít nhất là 1 thì việc switch sẽ diễn ra
- Master server is not accessible to all data centers – Main server không sẵn sàng cho tất cả các monitor server, việc switch sẽ diễn ra
Note: Số lượng máy chủ giám sát không được ít hơn 2
Trong “Failover server switch timeout”, có thể chỉ định thời gian (tính bằng s) mà main server không sẵn sàng đối với các monitor server để bắt đầu switching sang backup server. Hơn nữa, sau khoảng thời gian này, các data centers bắt đầu cố gắng kết nối tới ip của backup server được chỉ định trong “Failover server ip address and port” (cố gắng kết nối tới nó như tới trade server)
Note: Trong trường hợp manual restart server, thời gian timeout nên được tăng lên theo thời gian yêu cầu cho việc restart server.
- Unexpected failure: Switching được thực hiện theo thời gian chỉ định trong timeout
- Server hoặc service hệ thống hoặc hệ điều hành được restart lại bởi người quản trị: Thời gian switching được tăng lên bằng thời gian sử dụng để restart server. Tối thiểu là 30s và tối đa là 300s
- Server restart suốt thời gian update (liveupdate): Thời gian switching được tăng lên bằng thời gian sử dụng cho việc restart. Tối thiểu là 180s và tối đa là 300s
Trong trường hợp kết nối không được thiết lập ở cuối thời điểm timeout, MT4 Watchdog bắt đầu kiểm tra các monitor data centers. Để một data center giám sát main server, bật lựa chọn “use for monitoring the trade server and failover” trong settings:
Không khuyến cáo bật tính lựa chọn này cho MT4 Watchdog được add như một data center và cũng không áp dụng cho non-working data centers. Nó tăng thời gian switching sang backup và tiêu tốn số lượng lớn tài nguyên.
- Để kết nối tới một data center, MT4 watchdog sử dụng public ip của nó. Nếu data center không sắn sàng địa chỉ này, thì cố gắng thử kết nối tới bằng internal ip của nó sử dụng port được chỉ định cho public ip
- Nếu data center không sẵn sàng cho một backup server, điều đó không có nghĩa là main server không sẵn sàng. Trong trường hợp này, số lượng các monitor servers được giảm đi
Sau khi kiểm tra các data centers, MT4 Watchdog phân tích có bao nhiêu trade server có thể hoặc không thể truy cập:
- Trong trường hợp “Master server is not accessible to most data centers” được lựa chọn: để bắt đầu switching, số lượng monitor server …
- Trong trường hợp lựa chọn “Master server is not accessible to all data centers”: để switching, trade server phải không thể truy cập tới tất cả các monitor server
Nếu một điều kiện được đáp ứng, switching sẽ được thực hiện. Trong trường hợp không đáp ứng, MT4 watchdog sẽ kiểm tra lại các data centers trong khoảng 10s, tiếp theo đó là 60s. Sau khi switching, new trade server (backup server) sẽ sẵn sàng trong “Failover server ip address and port”. Ngay khi máy chủ cũ được phục hồi hoặc mạng được phục hồi (trường hợp trade server ban đầu bị lỗi mạng), thì nó sẽ phát hiện new trade server và tự switch lại chính nó thành backup server. Tiến trình phát hiện new trade server (opposite) được mô tả chi tiết như sau:
Detecting Opposite Trade Server
Khi trade server start, nó kiểm tra liệu có máy chủ trade khác làm việc ở địa chỉ được chỉ định trong “Failover server ip address and port” hay không. Để làm điều này, nó cố gắng thử kết nối đến địa chỉ này như MT4 watchdog. Nếu có thể kết nối, nó thử cho phép trên nó như một MT4 watchdog. Cho phép thành công có nghĩa là opposite server được tìm thấy.
Xa hơn, nó phân tích dữ liệu sẵn sàng trên opposite server: số lượng account, số lượng orders và lần cuối cùng switching tới trader server từ một backup server
- Nếu tổng số accounts và orders trên server hiện tại lớn hơn trên opposite server, thì server hiện tại sẽ duy trì trạng thái trade server và opposite server sẽ được switch thành backup server
- Nếu tổng số account và orders trên hai server bằng nhau, ngày cuối cùng switching từ backup sẽ được so sánh. Nếu ngày đó trên server hiện tại lớn hơn, thì nó sẽ duy trì trạng thái trade server và opposite server sẽ chuyển sang trạng thái backup
- Nếu tổng số accounts và orders trên server hiện tại ít hơn opposite server thì server hiện tại sẽ bị chuyển thành backup server
Automatic Switching of Data Centers to the New Trade Server
Sau khi mất kết nối với trade server, data centers tự động thử kết nối tới backup server như tới một main server sau thời gian chỉ định trong “Failover server switch timeout”. Data center sử dụng địa chỉ chỉ định trọng “Failover server ip address and port” cũng như trong “Failover server” của data center settting cho việc kết nối:
Data center liên tục thử kết nối tới backup server: đầu tiên ở “Failover server”, sau đó ở “Failover server ip address and port”
Nếu kết nối ở “Failover server” thành công, data center bắt đầu sử dụng nó như một địa chỉ main server (nó được ghi trong trường “MetaTrader 4 server”), trong khi địa chỉ cũ của trader server được sử dụng như backup server (được ghi trong trường “Failover server”)
Ví dụ thiết lập trước khi switching:
- MetaTrader 4 server: địa chỉ ngoài 1.1.1.1:443 (trade server thực tế làm việc bằng local network 192.168.9.1:443)
- Failover server: địa chỉ ngoài 2.2.2.2:443 (MetaTrader 4 watchdog thực tế làm việc bằng local network 192.168.9.2:443)
- Failover server ip address and port: internal address 192.168.9.2:443
Cùng thiết lập sau khi switching:
- MetaTrader 4 server: 2.2.2.2:443
- Failover server: 1.1.1.1:443
- Failover server ip address and port: 192.168.9.1:443
Nếu kết nối tới “Failover server” thất bại, data center cố gắng kết nối tới địa chỉ trong “Failover server ip address and port”. Nếu kết nối thành công, data center bắt đầu sử dụng nó như một địa chỉ của main server (được ghi trong “MetaTrader 4 server”), trong khi địa chỉ cũ của trade server được sử dụng như của một backup server (được ghi trong “Failover server”). Địa chỉ trước được chỉ định trong “Failover server” bị xóa khi nó trở nên không cần thiết
Ví dụ thiết lập trước khi switching:
- MetaTrader 4 server: địa chỉ ngoài 1.1.1.1:443 (trade server thực tế làm việc bằng local network 192.168.9.1:443)
- Failover server: địa chỉ ngoài 2.2.2.2:443 (MetaTrader 4 watchdog thực tế làm việc bằng local network 192.168.9.2:443)
- Failover server ip address and port: internal address 192.168.9.2:443
Cùng thiết lập sau khi switching:
- MetaTrader 4 server: 192.168.9.2:443
- Failover server: 1.1.1.1:443
- Failover server ip address and port: 192.168.9.1:443
Nếu data center không thể kết nối đến địa chỉ trong “Failover server ip address and port” thì nỗi lực kết nối được khởi động lặp lại.
Logging Monitoring Results
Có thể view MetaTrader 4 Watchdog journal để điều khiển tiến trình giám sát main server. Ví dụ entry sẽ được thể hiện như sau:
Những entry đó có ý nghĩa như sau:
- Main server không sẵn sàng
- Main server không sẵn sàng cho data center có ip 192.168.0.117:1955
- Main server sẵn sàng cho 0 witnessess và không sẵn sàng cho 2 witnesses trong vòng 4 phút
- Main server không sẵn sàng
- Main server không sẵn sàng cho data center server có ip 192.168.0.117:1955
- Main server sẵn sàng cho 0 witnessess và không sẵn sàng cho 2 witnesses trong vòng 5 phút
- MetaTrader 4 watchdog đã start switching sang chế độ main server
Entry liên quan đến switching sang backup server được save trong file riêng mtfaiover.log
Trả lời