Bỏ qua

Cách thêm đám mây vào các chỉ báo cTrader

cTrader Algo cho phép bạn vẽ các đám mây giữa các đường trên biểu đồ. Những đám mây như vậy cho phép bạn nhanh chóng xác định các khu vực quan trọng trên biểu đồ và phát hiện sự thay đổi trong hành vi thị trường.

Trong bài viết này và video tương ứng, chúng tôi sẽ hướng dẫn bạn cách thêm và tùy chỉnh đám mây trong các chỉ báo.

Thêm chỉ báo

Một chỉ báo Bollinger Bands điển hình bao gồm một dải trên, một dải dưới và một đường trung bình động đơn giản ở giữa. Để nâng cao giao diện chỉ báo, chúng tôi dự định lấp đầy khoảng trống giữa các dải bằng một đám mây.

Để tạo chỉ báo, mở ứng dụng Algo và điều hướng đến tab Chỉ báo. Nhấp vào nút Mới, nhập tên cho chỉ báo, chẳng hạn như "Bollinger Bands Cloud" sau đó nhấp vào nút Tạo.

Bây giờ chúng ta có thể sửa đổi mã chỉ báo. Chúng ta sẽ biến ví dụ của mình thành một chỉ báo xếp chồng.

1
[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

Sau đó, chúng ta thêm ba đường đầu ra cần thiết để vẽ Bollinger Bands trên biểu đồ.

1
2
3
4
5
6
7
8
[Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Main { get; set; }

[Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Top { get; set; }

[Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Bottom { get; set; }

Chúng ta khai báo chỉ báo Bollinger Bands của mình.

1
private BollingerBands _bollingerBands;

Khởi tạo chỉ báo.

1
_bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);

Điền các đường với giá trị chỉ báo trong phương thức Calculate().

1
2
3
Main[index] = _bollingerBands.Main[index];
Top[index] = _bollingerBands.Top[index];
Bottom[index] = _bollingerBands.Bottom[index];

Bạn có thể sao chép toàn bộ mã bên dưới:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;


        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Nhấp vào Build hoặc sử dụng phím tắt Ctrl+B để xây dựng chỉ báo.

Thêm một phiên bản chỉ báo cho cặp tiền tệ EURUSD.

Bạn sẽ thấy một chỉ báo Bollinger Bands điển hình trên biểu đồ.

Thêm một vùng mây vào Bollinger Bands

Bây giờ, chúng ta quay lại trình soạn thảo mã và sau đó làm việc để thêm một vùng mây giữa các dải.

Để đạt được mục tiêu của mình, chúng ta thêm thuộc tính Cloud vào chỉ báo hiện có. Thuộc tính Cloud hướng dẫn chỉ báo vẽ một vùng mây giữa các đường TopBottom.

1
[Cloud("Top", "Bottom", Opacity = 0.2)]

Bạn có thể sao chép toàn bộ mã đã được sửa đổi bên dưới:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]
    [Cloud("Top", "Bottom", Opacity = 0.2)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;

        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Chúng ta xây dựng lại thuật toán và sau đó kiểm tra chỉ báo của mình để xem điều gì đã thay đổi.

Bạn sẽ thấy một vùng mây màu đỏ giữa các dải. Nếu bạn thay đổi màu của đường Top, màu của vùng mây sẽ được cập nhật tự động.

Chúng ta quay lại trình soạn thảo mã và thay đổi thuộc tính Cloud để chỉ vẽ một vùng mây trước đường Main (màu vàng).

1
[Cloud("Top", "Main", Opacity = 0.2)]

Xây dựng lại chỉ báo và sau đó kiểm tra nó để xác nhận diện mạo mới của nó.

Thêm vùng mây vào giao cắt MA

Chúng ta sẽ tạo một chỉ báo mới và sử dụng nó để minh họa cách thêm các vùng mây có màu sắc khác nhau vào biểu đồ. Chúng ta dự định phát triển một chỉ báo Giao cắt Moving Average (MA) với vùng mây màu xanh lá cây cho xu hướng tăng và vùng mây màu đỏ cho xu hướng giảm.

Lặp lại các bước từ phần trước để tạo một chỉ báo mới. Lần này, tên chỉ báo nên là "MA Cloud".

Chúng ta bắt đầu sửa đổi chỉ báo mới bằng cách đặt thuộc tính IsOverlay của nó thành True.

1
[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]

Thêm thuộc tính Cloud cần thiết.

1
[Cloud("Fast", "Slow", Opacity = 0.2)]

Thêm các đường đầu ra và khai báo các đường trung bình di động.

1
2
3
4
5
6
7
8
[Output("Fast", LineColor = "Green", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Fast { get; set; }

[Output("Slow", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
public IndicatorDataSeries Slow { get; set; }

SimpleMovingAverage _fastMA;
SimpleMovingAverage _slowMA;

Lặp lại bước từ ví dụ trước (Bollinger Bands). Khởi tạo các đường trung bình di động và truyền các giá trị kết quả vào các đường để chúng được hiển thị trên biểu đồ.

1
2
3
4
5
_fastMA = Indicators.SimpleMovingAverage(Bars.ClosePrices, 7);
_slowMA = Indicators.SimpleMovingAverage(Bars.ClosePrices, 13);

Fast[index] = _fastMA.Result[index];
Slow[index] = _slowMA.Result[index];

Bạn có thể sao chép toàn bộ mã bên dưới:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
    [Indicator(AccessRights = AccessRights.None, IsOverlay = true)]
    [Cloud("Top", "Bottom", Opacity = 0.2)]

    public class BollingerBandsCloud : Indicator
    {

        [Output("Main", LineColor = "Yellow", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Main { get; set; }

        [Output("Top", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Top { get; set; }

        [Output("Bottom", LineColor = "Red", PlotType = PlotType.Line, Thickness = 1)]
        public IndicatorDataSeries Bottom { get; set; }

        private BollingerBands _bollingerBands;

        protected override void Initialize()
        {
            _bollingerBands = Indicators.BollingerBands(Bars.ClosePrices, 20, 2, MovingAverageType.Simple);
        }

        public override void Calculate(int index)
        {
            Main[index] = _bollingerBands.Main[index];
            Top[index] = _bollingerBands.Top[index];
            Bottom[index] = _bollingerBands.Bottom[index];
        }
    }
}

Xây dựng chỉ báo và thêm một phiên bản để xem chỉ báo trên biểu đồ.

Màu sắc của vùng mây thay đổi ở mỗi lần giao cắt (giao điểm) của các đường trung bình di động.

Bài viết này đã chỉ cho bạn cách thêm các vùng mây hữu ích vào các chỉ báo trong cTrader.

Image title