Tổng quan về các chỉ báo tích hợp sẵn
Terminal cung cấp một bộ sưu tập lớn các chỉ báo phổ biến, cũng có thể được truy cập thông qua API. Vì vậy, bạn không cần phải tự triển khai thuật toán của chúng trong MQL5. Các chỉ báo này được tạo ra bằng cách sử dụng các hàm tích hợp sẵn tương tự như iCustom
. Ví dụ, trước đây chúng ta đã tạo ra các phiên bản riêng của WPR và EMA Triple Moving Average cho mục đích học tập. Tuy nhiên, các chỉ báo tương ứng có thể được sử dụng ngay lập tức thông qua các hàm iWPR
và iTEMA
. Tất cả các chỉ báo có sẵn được liệt kê trong bảng dưới đây.
Tất cả các chỉ báo tích hợp sẵn đều nhận một chuỗi ký hiệu làm việc và khung thời gian làm hai tham số đầu tiên, đồng thời trả về một số nguyên là descriptor của chỉ báo. Nói chung, nguyên mẫu của tất cả các hàm trông như sau:
int iFunction(const string symbol, ENUM_TIMEFRAMES timeframe, ...)
Thay vì dấu ba chấm, các tham số cụ thể của từng chỉ báo sẽ được thêm vào. Số lượng và kiểu của chúng khác nhau. Một số chỉ báo không có tham số.
Ví dụ, WPR có một tham số, giống như phiên bản tự tạo của chúng ta — chu kỳ: int iWPR(const string symbol, ENUM_TIMEFRAMES timeframe, int period)
. Trong khi đó, chỉ báo fractal tích hợp sẵn, không giống như phiên bản của chúng ta, không có tham số đặc biệt: int iFractals(const string symbol, ENUM_TIMEFRAMES period)
. Trong trường hợp này, bậc của fractal được mã hóa cố định và bằng 2, nghĩa là trước và sau điểm cực trị (đỉnh hoặc đáy), phải có ít nhất hai thanh với giá high
và low
ít rõ rệt hơn tương ứng.
Bạn được phép đặt giá trị NULL
thay cho ký hiệu. NULL
nghĩa là ký hiệu làm việc của biểu đồ hiện tại, và giá trị 0 trong tham số timeframe
tương ứng với khung thời gian của biểu đồ hiện tại, vì nó cũng là giá trị PERIOD_CURRENT
trong liệt kê ENUM_TIMEFRAMES
(xem phần Ký hiệu và khung thời gian).
Bạn cũng nên lưu ý rằng các loại chỉ báo khác nhau có số lượng bộ đệm khác nhau. Ví dụ, đường trung bình động hoặc WPR chỉ có một bộ đệm, trong khi fractal có hai. Số lượng bộ đệm cũng được ghi chú trong bảng ở một cột riêng.
Dưới đây là bảng liệt kê các chỉ báo tích hợp sẵn:
Chức năng | Tên chỉ báo | Tùy chọn | Bộ đệm |
---|---|---|---|
iAC | Accelerator Oscillator | – | 1* |
iAD | Accumulation / Distribution | ENUM_APPLIED_VOLUME volume | 1* |
iADX | Average Directional Index | int period | 3* |
iADXWilder | Average Directional Index by Welles Wilder | int period | 3* |
iAlligator | Alligator | int jawPeriod, int jawShift, int teethPeriod, int teethShift, int lipsPeriod, int lipsShift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price | 3 |
iAMA | Adaptive Moving Average | int period, int fast, int slow, int shift, ENUM_APPLIED_PRICE price | 1 |
iAO | Awesome Oscillator | – | 1* |
iATR | Average True Range | int period | 1* |
iBands | Bollinger Bands | int period, int shift, double deviation, ENUM_APPLIED_PRICE price | 3 |
iBearsPower | Bears Power | int period | 1* |
iBullsPower | Bulls Power | int period | 1* |
iBWMFI | Market Facilitation Index by Bill Williams | ENUM_APPLIED_VOLUME volume | 1* |
iCCI | Commodity Channel Index | int period, ENUM_APPLIED_PRICE price | 1* |
iChaikin | Chaikin Oscillator | int fast, int slow, ENUM_MA_METHOD method, ENUM_APPLIED_VOLUME volume | 1* |
iDEMA | Double Exponential Moving Average | int period, int shift, ENUM_APPLIED_PRICE price | 1 |
iDeMarker | DeMarker | int period | 1* |
iEnvelopes | Envelopes | int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price, double deviation | 2 |
iForce | Force Index | int period, ENUM_MA_METHOD method, ENUM_APPLIED_VOLUME volume | 1* |
iFractals | Fractals | – | 2 |
iFrAMA | Fractal Adaptive Moving Average | int period, int shift, ENUM_APPLIED_PRICE price | 1 |
iGator | Gator Oscillator | int jawPeriod, int jawShift, int teethPeriod, int teethShift, int lipsPeriod, int lipsShift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price | 4* |
iIchimoku | Ichimoku Kinko Hyo | int tenkan, int kijun, int senkou | 5 |
iMomentum | Momentum | int period, ENUM_APPLIED_PRICE price | 1* |
iMFI | Money Flow Index | int period, ENUM_APPLIED_VOLUME volume | 1* |
iMA | Moving Average | int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price | 1 |
iMACD | Moving Averages Convergence-Divergence | int fast, int slow, int signal, ENUM_APPLIED_PRICE price | 2* |
iOBV | On Balance Volume | ENUM_APPLIED_VOLUME volume | 1* |
iOsMA | Moving Average of Oscillator (MACD histogram) | int fast, int slow, int signal, ENUM_APPLIED_PRICE price | 1* |
iRSI | Relative Strength Index | int period, ENUM_APPLIED_PRICE price | 1* |
iRVI | Relative Vigor Index | int period | 1* |
iSAR | Parabolic Stop And Reverse System | double step, double maximum | 1 |
iStdDev | Standard Deviation | int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price | 1* |
iStochastic | Stochastic Oscillator | int Kperiod, int Dperiod, int slowing, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price | 2* |
iTEMA | Triple Exponential Moving Average | int period, int shift, ENUM_APPLIED_PRICE price | 1 |
iTriX | Triple Exponential Moving Averages Oscillator | int period, ENUM_APPLIED_PRICE price | 1* |
iVIDyA | Variable Index Dynamic Average | int momentum, int smooth, int shift, ENUM_APPLIED_PRICE price | 1 |
iVolumes | Volumes | ENUM_APPLIED_VOLUME volume | 1* |
iWPR | Williams Percent Range | int period | 1* |
Trong cột bên phải, các chỉ báo có cửa sổ riêng được đánh dấu bằng dấu sao *
(chúng được hiển thị dưới biểu đồ chính).
Các tham số được sử dụng phổ biến nhất là những tham số xác định chu kỳ của chỉ báo (period
, fast
, slow
và các biến thể khác), cũng như độ dịch chuyển của đường (shift
): khi giá trị dương, các đường vẽ sẽ dịch sang phải, khi âm sẽ dịch sang trái theo số lượng thanh đã cho.
Nhiều tham số sử dụng các kiểu liệt kê ứng dụng: ENUM_APPLIED_PRICE
, ENUM_APPLIED_VOLUME
, ENUM_MA_METHOD
. Chúng ta đã làm quen với ENUM_APPLIED_PRICE
trong phần Liệt kê. Tất cả các kiểu có sẵn được trình bày dưới đây trong các bảng kèm mô tả.
ENUM_APPLIED_PRICE
Định danh | Mô tả | Giá trị |
---|---|---|
PRICE_CLOSE | Giá đóng cửa của thanh | 1 |
PRICE_OPEN | Giá mở cửa của thanh | 2 |
PRICE_HIGH | Giá cao nhất của thanh | 3 |
PRICE_LOW | Giá thấp nhất của thanh | 4 |
PRICE_MEDIAN | Giá trung bình, (high+low)/2 | 5 |
PRICE_TYPICAL | Giá điển hình, (high+low+close)/3 | 6 |
PRICE_WEIGHTED | Giá trung bình có trọng số, (high+low+close+close)/4 | 7 |
ENUM_APPLIED_VOLUME
Các chỉ báo làm việc với khối lượng có thể hoạt động với khối lượng tick (thực chất là bộ đếm tick) hoặc khối lượng thực (thường chỉ có sẵn cho các công cụ giao dịch trên sàn). Cả hai loại đều được tổng hợp trong liệt kê ENUM_APPLIED_VOLUME
.
Định danh | Mô tả | Giá trị |
---|---|---|
VOLUME_TICK | Khối lượng tick | 0 |
VOLUME_REAL | Khối lượng giao dịch | 1 |
ENUM_MA_METHOD
Nhiều chỉ báo kỹ thuật làm mượt (hoặc trung bình) chuỗi thời gian. Terminal hỗ trợ bốn phương pháp làm mượt phổ biến nhất, được chỉ định trong MQL5 bằng các phần tử của liệt kê ENUM_MA_METHOD
.
Định danh | Mô tả | Giá trị |
---|---|---|
MODE_SMA | Trung bình đơn giản | 0 |
MODE_EMA | Trung bình lũy thừa | 1 |
MODE_SMMA | Trung bình làm mượt | 2 |
MODE_LWMA | Trung bình có trọng số tuyến tính | 3 |
ENUM_STO_PRICE
Đối với chỉ báo Stochastic, mà chúng ta sẽ xem xét trong phần tiếp theo, có hai tùy chọn tính toán: theo giá Close
hoặc theo giá High/Low
. Các giá trị này được cung cấp trong liệt kê đặc biệt ENUM_STO_PRICE
.
Định danh | Mô tả | Giá trị |
---|---|---|
STO_LOWHIGH | Tính toán theo giá Low/High | 0 |
STO_CLOSECLOSE | Tính toán theo giá Close/Close | 1 |
Mục đích và đánh số bộ đệm
Mục đích và cách đánh số các bộ đệm cho những chỉ báo có nhiều hơn một bộ đệm được hiển thị trong bảng sau:
Chỉ báo | Hằng số | Mô tả | Giá trị |
---|---|---|---|
ADX, ADXW | |||
MAIN_LINE | Đường chính | 0 | |
PLUSDI_LINE | Đường +DI | 1 | |
MINUSDI_LINE | Đường -DI | 2 | |
iAlligator | |||
GATORJAW_LINE | Đường hàm | 0 | |
GATORTEETH_LINE | Đường răng | 1 | |
GATORLIPS_LINE | Đường môi | 2 | |
iBands | |||
BASE_LINE | Đường chính | 0 | |
UPPER_BAND | Dải trên | 1 | |
LOWER_BAND | Dải dưới | 2 | |
iEnvelopes, iFractals | |||
UPPER_LINE | Đường trên | 0 | |
LOWER_LINE | Đường dưới | 1 | |
iGator | |||
UPPER_HISTOGRAM | Biểu đồ trên | 0 | |
LOWER_HISTOGRAM | Biểu đồ dưới | 2 | |
iIchimoku | |||
TENKANSEN_LINE | Đường Tenkan-sen | 0 | |
KIJUNSEN_LINE | Đường Kijun-sen | 1 | |
SENKOUSPANA_LINE | Đường Senkou Span A | 2 | |
SENKOUSPANB_LINE | Đường Senkou Span B | 3 | |
CHIKOUSPAN_LINE | Đường Chikou Span | 4 | |
iMACD, iRVI, iStochastic | |||
MAIN_LINE | Đường chính | 0 | |
SIGNAL_LINE | Đường tín hiệu | 1 |
Công thức tính toán cho tất cả các chỉ báo được cung cấp trong tài liệu MetaTrader 5.
Thông tin kỹ thuật đầy đủ về cách gọi các hàm chỉ báo, bao gồm các ví dụ mã nguồn, có thể được tìm thấy trong tài liệu MQL5. Chúng ta sẽ xem xét một số ví dụ trong cuốn sách này sau.