Các hàm lấy thuộc tính cơ bản của biểu đồ hiện tại
Trong nhiều ví dụ trong sách, chúng ta đã phải sử dụng Biến định nghĩa sẵn, chứa các thuộc tính chính của biểu đồ và biểu tượng làm việc của nó. Các chương trình MQL cũng có quyền truy cập vào các hàm trả về giá trị của một số biến này. Việc sử dụng biến hay hàm không quan trọng, do đó bạn có thể sử dụng phong cách mã nguồn mà bạn ưa thích.
Mỗi biểu đồ được đặc trưng bởi một biểu tượng làm việc và khung thời gian. Chúng có thể được tìm thấy bằng cách sử dụng các hàm Symbol
và Period
, tương ứng. Ngoài ra, MQL5 cung cấp quyền truy cập đơn giản vào hai thuộc tính biểu tượng được sử dụng phổ biến nhất: kích thước điểm giá (Point
) và số chữ số có nghĩa (Digits
) sau dấu thập phân trong giá.
string Symbol()
Hàm Symbol
trả về tên biểu tượng của biểu đồ hiện tại, tức là giá trị của biến hệ thống _Symbol
. Để lấy biểu tượng của một biểu đồ bất kỳ, có hàm ChartSymbol
hoạt động dựa trên định danh biểu đồ. Chúng ta sẽ thảo luận về các phương pháp lấy định danh biểu đồ sau một chút.
ENUM_TIMEFRAMES Period()
Hàm Period
trả về giá trị khung thời gian (ENUM_TIMEFRAMES) của biểu đồ hiện tại, tương ứng với biến _Period
. Để lấy khung thời gian của một biểu đồ bất kỳ, sử dụng hàm ChartPeriod
, và nó cũng cần một định danh làm tham số.
double Point()
Hàm Point
trả về kích thước điểm của công cụ hiện tại trong tiền tệ báo giá, giống như giá trị của biến _Point
.
int Digits()
Hàm trả về số chữ số thập phân sau dấu chấm, xác định độ chính xác của việc đo lường giá của biểu tượng trên biểu đồ hiện tại, tương đương với biến _Digits
.
Các thuộc tính khác của công cụ hiện tại cho phép bạn lấy bằng các hàm SymbolInfo
, trong trường hợp tổng quát hơn, cung cấp phân tích tất cả các công cụ.
Ví dụ đơn giản sau của script ChartMainProperties.mq5
ghi lại các thuộc tính được mô tả trong phần này.
void OnStart()
{
PRTF(_Symbol);
PRTF(Symbol());
PRTF(_Period);
PRTF(Period());
PRTF(_Point);
PRTF(Point());
PRTF(_Digits);
PRTF(Digits());
PRTF(DoubleToString(_Point, _Digits));
PRTF(EnumToString(_Period));
}
2
3
4
5
6
7
8
9
10
11
12
13
Đối với biểu đồ EURUSD,H1, chúng ta sẽ nhận được các mục nhập nhật ký sau.
_Symbol=EURUSD / ok
Symbol()=EURUSD / ok
_Period=16385 / ok
Period()=16385 / ok
_Point=1e-05 / ok
Point()=1e-05 / ok
_Digits=5 / ok
Digits()=5 / ok
DoubleToString(_Point,_Digits)=0.00001 / ok
EnumToString(_Period)=PERIOD_H1 / ok
2
3
4
5
6
7
8
9
10