AFL: Vẽ Đồ Thị Chỉ Báo Kỹ Thuật MACD

Để code nhanh chúng ta tận dụng code sinh tự động khi kéo thả chart mặc định trên giao diện hoặc dùng code snippest
Chúng ta cũng không đi sâu về công thức tính toán chỉ báo kỹ thuật mà chỉ hiểu cách điều chỉnh thông số để sử dụng (Ý nghĩa chỉ báo có trong phần Help trên Amibroker hoặc có thể Google)


Chỉ Báo Kỹ Thuật MACD – Moving Average Convergence/Divergence

Khi kéo chart MACD mặc định từ danh sách Indicator vào Đồ thị ta sẽ có code tự tạo như sau (Chuột phải / Edit Fomula)

_SECTION_BEGIN("MACD");
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 9, 2, 200, 1 );
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style") );
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );
Plot( ml-sl, "MACD Histogram", ParamColor("Histogram color", colorDefault ), styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleNoLabel, maskHistogram ) );
_SECTION_END();

Sử dụng 3 chu kỳ mặc định r1(12) r2(26) và r3(9) của Chỉ Báo Kỹ Thuật MACD
=> Chúng ta có thể điều chỉnh các chu kỳ này cho phù hợp với chiến lược phân tích.
Hàm Param để hiển thị option điều chỉnh trên giao diện người dùng
Hàm Plot vẽ chỉ báo kỹ thuật MACD với chu kỳ r1 và r2
Hàm Plot vẽ đường Signal với chu kỳ r1 và r2 và r3
Hàm Plot vẽ biểu đồ phân kỳ là hiệu giữa MACD và Signal, trên 0 (phân kỳ lên) khi MACD cắt lên Signal và dưới 0 (phân kỳ giảm) khi MACD cắt xuống Signal

Chỉ Báo Kỹ Thuật MACD

Vẽ chỉ báo kỹ thuật MACD theo tuần và tháng

Thay vì phải nhấn vào nút W để xem chart theo tuần hay M theo tháng, với việc thêm vài câu lệnh ta có thể hiển thị 3 đường MACD với 3 khung thời gian khác nhau

Sử dụng câu lệnh: TimeFrameSet(inWeekly);

MACD tuần

_SECTION_BEGIN("MACDW");
TimeFrameSet(inWeekly);
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 9, 2, 200, 1 );
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorGreen ), ParamStyle("MACD style") );
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorGold ), ParamStyle("Signal style") );
Plot( ml-sl, "MACD Histogram", ParamColor("Histogram color", colorDefault ), styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleNoLabel, maskHistogram ) );
_SECTION_END();

MACD tháng

_SECTION_BEGIN("MACDM");
TimeFrameSet(inMonthly);
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 9, 2, 200, 1 );
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorWhite ), ParamStyle("MACD style") );
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorCustom16 ), ParamStyle("Signal style") );
Plot( ml-sl, "MACD Histogram", ParamColor("Histogram color", colorDefault ), styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleNoLabel, maskHistogram ) );
_SECTION_END();

Kết quả hiển thị

Chỉ Báo Kỹ Thuật MACD

Tham khảo thêm:

Trả lời