Bỏ qua

Cách tạo một chỉ báo tùy chỉnh trong cTrader

Trong bài viết này và video tương ứng, chúng ta sẽ thảo luận về cách bạn có thể tạo một chỉ báo tùy chỉnh mới trong cTrader. Chúng ta sẽ tạo một chỉ báo trung bình di động đơn giản và chỉ cho bạn cách tùy chỉnh nhanh chóng các tham số chỉ báo.

Trước khi làm theo hướng dẫn của chúng tôi, hãy đảm bảo bạn đã tải xuống và cài đặt ứng dụng cTrader Windows hoặc cTrader Mac từ trang web chính thức. Khởi chạy nó và điều hướng đến phần cTrader Algo. Tìm tab Algo ở bảng điều khiển bên trái và nhấp vào nó. Bây giờ bạn sẽ thấy giao diện Algo của cTrader.

Thêm một chỉ báo tùy chỉnh mới

Để tạo một chỉ báo tùy chỉnh mới, chúng ta cần nhấp vào nút New và chọn Blank. Một chỉ báo mới sẽ xuất hiện ở cuối danh sách chỉ báo cùng với một mẫu mã trong bảng điều khiển bên phải.

Tiếp theo, thay đổi tên của chỉ báo từ tên mặc định của nó. Để làm điều này, nhấp chuột phải vào nó và nhấp vào Rename, hoặc chọn nó và nhấn F2. Chúng ta sẽ nhập Simple moving average làm tên mới cho chỉ báo của mình. Sau khi hoàn tất, nhấn Enter. Tại thời điểm này, chúng ta đã sẵn sàng để bắt đầu lập trình logic và công thức cho chỉ báo tùy chỉnh.

Xem cấu trúc chỉ báo

Trước khi bắt đầu, chúng ta sẽ xem nhanh cấu trúc mã chỉ báo được hiển thị trong cửa sổ trình soạn thảo mã. Cấu trúc này bao gồm các cài đặt tham số mặc định và các phương thức để tính toán và hiển thị chỉ báo trên biểu đồ.

Để bắt đầu, mọi chỉ báo đều có một phần chứa các thuộc tính lớp của nó. Đây là nơi bạn có thể cấu hình quyền truy cập mà chỉ báo có, nơi chỉ báo sẽ được hiển thị trên biểu đồ, múi giờ được sử dụng bởi chỉ báo, tỷ lệ chỉ báo và một số cài đặt nâng cao khác.

Bạn cũng sẽ nhận thấy rằng mọi mẫu mã chỉ báo mới đều định nghĩa một lớp có tên NewIndicator chứa tất cả các sự kiện chỉ báo và bất kỳ phương thức tùy chỉnh nào. Khai báo tên lớp được theo sau bởi : Indicator. Điều này có nghĩa là lớp NewIndicator kế thừa từ lớp cơ sở Indicator, lớp này lại chứa tất cả các đối tượng được định nghĩa trước mà chúng ta sẽ truy cập khi xây dựng chỉ báo tùy chỉnh của mình.

Một đánh giá chi tiết hơn về cấu trúc mã chỉ báo và nguyên tắc kế thừa trong lập trình hướng đối tượng được cung cấp trong tài liệu kỹ thuật của chúng tôi.

Trong phần dưới đây, bạn sẽ thấy khối mã chứa tất cả các cài đặt chỉ báo mặc định. Ban đầu, phần này sẽ chỉ chứa mã sau.

1
2
3
4
5
[Parameter(DefaultValue = "Hello world!")]
public string Message { get; set; }

[Output("Main")]
public IndicatorDataSeries Result { get; set; }

Ngay bên dưới khai báo tham số, bạn sẽ thấy các phương thức chỉ báo. Hãy coi các phương thức như những sự kiện nhất định được thực thi khi chỉ báo bắt đầu và cả khi dữ liệu giá mới được cung cấp cho chỉ báo. Bảng sau định nghĩa ba phương thức chỉ báo chính.

Tên phương thức Định nghĩa
Initialize() Phương thức sự kiện này được gọi khi chỉ báo được gắn vào biểu đồ. Nó được sử dụng để khởi tạo bất kỳ biến nào bạn dự định sử dụng trong chỉ báo của mình. Bạn cũng có thể định nghĩa và tham chiếu các chỉ báo bổ sung để tạo một chỉ báo duy nhất sử dụng công thức từ các chỉ báo khác.
OnCalculate() Phương thức này được gọi trên mỗi tick dữ liệu đến. Bên trong phương thức này, bạn có thể lập trình logic sẽ xử lý dữ liệu đến để tính toán các đường được vẽ tiếp theo mà chỉ báo nên hiển thị.
OnExcepion() Phương thức này được gọi nếu chỉ báo của bạn gặp phải một ngoại lệ. Bạn có thể sử dụng nó để xác định những gì chỉ báo của bạn nên làm khi bắt được một lỗi. Lưu ý rằng phương thức này không có trong mẫu mã chỉ báo mặc định.

Viết mã chỉ báo

Bây giờ chúng ta sẽ tiếp tục thêm mã tùy chỉnh vào chỉ báo trung bình động đơn giản của chúng ta. Chỉ báo của chúng ta sẽ được hiển thị trên biểu đồ giao dịch dưới dạng lớp phủ trên loại biểu đồ hiện tại.

Đầu tiên, chúng ta phải khai báo các thuộc tính lớp chỉ báo như đã thảo luận trước đó. Chúng ta sẽ thêm các cài đặt thuộc tính sau vào chỉ báo.

1
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AutoRescale = false, AccessRights = AccessRights.None)] 

Bạn có thể hiểu mã trên như sau:

  • IsOverlay = true - chỉ báo sẽ được vẽ trên biểu đồ, phủ lên các nến, thanh Range, khối Renko hoặc bất kỳ phần tử nào khác tùy thuộc vào loại biểu đồ được chọn.
  • TimeZone = TimeZones.UTC - chỉ báo sẽ sử dụng Giờ phối hợp quốc tế, đây là giá trị mặc định cho tất cả các chỉ báo. Chỉ nên thay đổi giá trị của thuộc tính này nếu chỉ báo của bạn sử dụng bất kỳ tính năng ngày và giờ nào trong các phép tính của nó.
  • AutoRescale = false - thuộc tính này xác định liệu chỉ báo có tự động điều chỉnh lại tỷ lệ biểu đồ mà nó được gắn vào hay không. Vì giá trị của thuộc tính này bằng false, chỉ báo của chúng ta sẽ không điều chỉnh lại tỷ lệ biểu đồ.
  • AccessRights = AccessRights.None - chỉ báo sẽ không được phép truy cập Internet hoặc thao tác với các tệp trên máy cục bộ.

Bây giờ chúng ta có thể xác định các tham số của chỉ báo. Đây là các cài đặt có thể được điều chỉnh trong bảng cài đặt sau khi thêm chỉ báo vào biểu đồ. Chúng ta sẽ lập trình các tham số sau:

  • Nguồn dữ liệu cho công thức chỉ báo.
  • Các giai đoạn được sử dụng trong công thức.
  • Đường vẽ kết quả đầu ra của chỉ báo.

Thêm đoạn mã sau vào chỉ báo.

1
2
3
4
5
6
7
8
[Parameter("Source")]
public DataSeries Source { get; set; }

[Parameter("Periods", DefaultValue = 14)]
public int Periods { get; set; }

[Output("Main", LineColor = "Turquoise")]
public IndicatorDataSeries Result { get; set; }

Chúng ta sẽ đặt 14 làm giá trị mặc định của tham số Periodsturquoise làm màu đường mặc định. Tuy nhiên, bạn có thể đặt các tham số này thành gần như bất kỳ giá trị mặc định nào được cTrader hỗ trợ.

Bây giờ chúng ta có thể thêm mã sẽ vẽ đầu ra của chỉ báo trên biểu đồ bằng cách sử dụng phương thức sự kiện Calculate().

1
2
3
4
5
6
7
8
9
public override void Calculate(int index)
{
    var sum = 0.0;

    for (var i = index - Periods + 1; i <= index; i++)
    sum += Source[i];

    Result[index] = sum / Periods;
}

Mã này gán kết quả tính toán chỉ báo cho tham số Result mà chúng ta đã xác định trước đó.

Xây dựng và kiểm tra chỉ báo

Ngay khi chúng ta hoàn thành việc viết mã chỉ báo, chúng ta có thể nhấp vào nút Build nằm ở thanh trên cùng của giao diện người dùng cTrader. Ngoài ra, nhấp chuột phải vào chỉ báo của bạn và chọn Build trong menu mới mở hoặc nhấn Ctrl + B.

Nếu quá trình xây dựng thành công, bạn sẽ thấy một thông báo màu xanh lá cây trong khu vực Build result ở cuối trình soạn thảo mã.

Image title

Tuy nhiên, nếu có vấn đề với mã của bạn, bạn sẽ thấy một thông báo màu đỏ và bản tóm tắt chi tiết về tất cả các lỗi xây dựng.

Image title

Sau khi xây dựng thành công chỉ báo của bạn, bây giờ chúng ta có thể tiếp tục tạo một phiên bản. Cách đơn giản nhất để làm điều đó là nhấp chuột phải vào chỉ báo và chọn tùy chọn Add an instance.

Image title

Thao tác này sẽ tạo một phiên bản chỉ báo mới cho biểu đồ h1 của EURUSD. Tuy nhiên, bạn có thể thay đổi loại biểu đồ, khung thời gian và ký hiệu bằng cách nhấp vào phiên bản và mở menu liên quan.

Tab Parameter mới xuất hiện sẽ hiển thị ba tham số có thể tùy chỉnh mà chúng ta đã lập trình trước đó. Bạn có thể để nguyên hoặc thay đổi giá trị của chúng trực tiếp trong giao diện người dùng cTrader.

Biểu đồ giao dịch bây giờ sẽ hiển thị đầu ra của chỉ báo. Trong trường hợp của chúng ta, đây sẽ là một đường màu ngọc lam hiển thị trung bình động đơn giản.

Nếu bạn nhấp chuột phải vào đường, bạn sẽ thấy một cửa sổ mới cho phép tùy chỉnh các tham số chỉ báo. Ví dụ, chúng ta có thể chuyển màu của đường đầu ra từ ngọc lam sang xanh dương. Chúng ta cũng có thể điều chỉnh độ dày của đường. Để lưu các thay đổi của bạn, nhấp vào OK.

Ghi chú

cTrader cho phép nhanh chóng chuyển đổi giữa các đầu ra của phiên bản và cửa sổ trình soạn thảo mã cho chỉ báo tùy chỉnh của bạn. Điều này khiến nó trở thành công cụ lý tưởng để nhanh chóng kiểm tra các tham số chỉ báo nhất định hoặc bất kỳ logic tính toán tùy chỉnh nào.

Thêm chỉ báo vào biểu đồ trực tiếp

Bây giờ chúng ta sẽ chuyển sang tab Trade trong cTrader để gắn chỉ báo tùy chỉnh của chúng ta vào biểu đồ trực tiếp. Mở biểu đồ cho ký hiệu mà bạn muốn phân tích.

Trong menu ở trên cùng, nhấp vào biểu tượng Indicators để mở một phần mới.

Sau đó, chọn Custom và trong menu mới xuất hiện, chọn chỉ báo tùy chỉnh mà chúng ta đã tạo (Simple moving average).

Bạn sẽ thấy một cửa sổ mới cho phép bạn tùy chỉnh các tham số chỉ báo. Sau khi chọn các giá trị bạn ưa thích, nhấp vào OK để thêm chỉ báo vào biểu đồ cho ký hiệu đã chọn.

Để quay lại cửa sổ cài đặt chỉ báo, nhấp chuột phải vào đầu ra của chỉ báo. Trong trường hợp của chúng ta, chúng ta có thể nhấp chuột phải vào đường màu ngọc lam. Ngoài ra, nhấp vào biểu tượng Properties xuất hiện khi bạn di chuột qua tên chỉ báo trên biểu đồ.

Cửa sổ cài đặt chỉ báo sẽ xuất hiện và bạn sẽ có thể thay đổi màu sắc của đường được vẽ cũng như độ dày của nó.

Image title