Simulacrum, từ simulacrum Latin, là một sự bắt chước, giả mạo hoặc hư cấu. Khái niệm này được liên kết với mô phỏng, đó là hành động mô phỏng .Một...
Tổng hợp một số kiến thức lập trình về Amibroker
Giới thiệu về Amibroker
Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”.
AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.
Cách Amibroker lưu trữ dữ liệu
Các hàm thường dùng trong AmiBroker
Các ký hiệu thường dùng trong viết code:
C: close giá đóng cửa/ giá hiện tại trong phiên
O: Open giá mở cửa
H: giá cao trong phiên
L: giá thấp trong phiên
V: volume, khối lượng
ma(c,30) bình quân giá đóng cửa 30 phiên giao dịch
ma(v,30) bình quân khối lượng giao dịch 30 phiên
ref(c,-1) giá đóng cửa của ngày hôm qua hoặc 1 phiên trước đó
ref(c,-2) giá đóng cửa của ngày hôm kia hoặc cách đó 2 phiên
ref(v,-1) khối lượng của ngày hôm qua/ khối lượng của 1 phiên trước đó
HHV(C,15) giá trị cao nhất của giá đóng cửa 15 phiên gần nhất
hhv(h,30) giá cao nhất của giá cao 30 phiên gần nhất
LLV(L,30) giá thấp nhất của giá thấp trong vòng 30 phiên
LLV(C,30) giá thấp nhất của giá đóng cửa trong vòng 30 phiên
C*V: Giá nhân với khối lượng = giá trị giao dịch
C>=1.02*Ref(C,-1) => giá lớn hơn 2% so với giá ngày hôm qua
V >= 1.3*MA(V,15) => khối lượng lớn hơn hoặc bằng 130% so với bình quân khối lượng 15 phiên
RSI(14) <=35 => tìm ra các mã có RSI <35
ROC: percentage rate of change
ValueWhen(EXPRESSION, ARRAY, n = 1) : get value of the array when condition met: lấy giá trị khi dữ liệu thỏa điều kiện Expression
Bạn đang đọc: Tổng hợp một số kiến thức lập trình về Amibroker
CROSS : trả về 1 khi Array 1 cắt Array 2 theo khunh hướng đi lên
EXREM: trả về 1 khi lần đầu tiên xuất hiện tín hiệu “true” trong Array 1, sau đó trả về 0 cho đến khi Array 2 là true ngay cả khi có tín hiệu “true” trong Array 1. Hàm này hữu ích khi bạn muốn loại bỏ nhiều điểm BUY hoặc SELL xuất hiện liên tiếp nhau.
Các hàm trong AFL
Plot( array, name, color/barcolor, style = styleLine, minvalue = {empty}, maxvalue = {empty}, XShift = 0, Zorder = 0, width = 1 )
- array – mảng dữ liệu được vẽ, vd: RSI(16), Close, MA(Close,20),…
- name – đại diện cho tên của đồ thị
- color – dùng để thể hiện màu sắc cho đồ thị (nếu tham số thứ 3 là số) hoặc động (khi tham số thứ 3 là 1 array).
- style: định nghĩa dạng đồ thị được vẽ
styleLine = 1 – normal (line) chart (default): đường kẻ liền
styleHistogram = 2 – histogram chart : Biểu đồ tần suất
styleThick =4 – fat (thick): đường kẻ đậm
styleDots = 8 – include dots: đường kẻ chấm
styleNoLine = 16 – no line
styleDashed = 32 – dashed line style: đường kẻ gạch đứt
styleCandle = 64 – candlestick chart: nến
styleBar = 128 – traditional bar chart…
Tham khảo: https://www.amibroker.com/guide/afl/plot.html
Min value và max value – (chỉ được sử dụng bởi đồ thị styleOwnScale) xác định giá trị tối thiểu và tối đa của đồ thị (ranh giới dưới và trên cho trục Y).
XShift – cho phép chuyển biểu đồ qua thanh cuối cùng một cách trực quan.
ZOrder – xác định vị trí trục Z của ô đã cho. Giá trị mặc định là 0. Zorder = 0 cũng có nghĩa là đặt nơi “lưới”.
shift object sang phải hoặc sang trái = số bar đã input
width – xác định pixel hoặc chiều rộng phần trăm của ô đã cho. Mặc định là 1 pixel
tham số Zshift có tác dụng shift object sang phải hoặc sang trái = số bar đã input, ở trường hợp này là 10.
Ví dụ:
// Example 20-bar Moving average shifted 10 bars into the future past the last bar:
Plot(Close,”Close”,colorBlack,styleCandle);
Plot(MA(Close,20), “Shifted MA”, colorRed, styleLine, Null, Null, -10 );
// Note that shift occurs during plotting AND does NOT affect source array
Một điểm khá hay cần lưu ý đó là khả năng thay đổi màu sắc (Dynamic Color) khi các object (indicator, price,…) thỏa mãn một số điều kiện cho trước (sử dụng hàm Iff )
dynamic_color = IIf(MACD() > 0, colorBlue, colorRed);
Plot(MACD(), “My MACD”, dynamic_color, styleHistogram | styleThick)
Param
– add user user-definable numeric parameter
SYNTAX
Param( ”name”, defaultval, min, max, step, sincr = 0 )
Return: number
Thêm một tham số mới do người dùng xác định, sẽ có thể truy cập được qua hộp thoại Tham số: nhấp chuột phải vào ngăn biểu đồ và chọn “Tham số” hoặc nhấn Ctrl + R cho phép thay đổi thông số biểu đồ – các thay đổi được phản ánh ngay lập tức.
Return: numberThêm một tham số mới do người dùng xác định, sẽ có thể truy cập được qua hộp thoại Tham số: nhấp chuột phải vào ngăn biểu đồ và chọn “Tham số” hoặc nhấn Ctrl + R cho phép thay đổi thông số biểu đồ – các thay đổi được phản ánh ngay lập tức.
- “name”
- defaultval: giá trị mặc định cho biến
- min, max – giá trị lớn nhất và nhỏ nhất
- step – defines minimum increase of the parameter via slider in the Parameters dialog
- sincr – automatic section increment value (used by drag-drop interface to increase default values for parameters)
Buy và Sell
Đây là 2 list quan trọng trong Amibroker, chứa điểm mua và điểm bánVD :
Buy= Cross(EMA(Close,13), EMA(Close,26) );
Sell= Cross(EMA(Close,26), EMA(Close,13) );
Buy sẽ chứa 3 loại giá trị :
- NULL (không xác định)
- 1: Khi EMA 13 cắt đi lên EMA 26
- 0: Khi EMA 13 không cắt EMA 26
Tương tự với Sell :
- NULL (không xác định)
- 1: Khi EMA 26 cắt đi lên EMA 13
- 0: Khi EMA 26 không cắt EMA 13
Hàm vẽ biểu tượng trong Amibroker: PlotShapes
Cú pháp:
PlotShapes( shape, color, layer = 0, yposition = graph0, offset = -12, XShift = 0 );
shape: Hình dạng
VD: shapeUpArrow, shapeDownArrow, shapeHollowUpArrow, shapeHollowDownArrow, shapeSmallUpTriangle, shapeSmallDownTriangle, shapeHollowSmallUpTriangle, shapeHollowSmallDownTriangle, shapeUpTriangle, shapeDownTriangle, shapeHollowUpTriangle, shapeHollowDownTriangle, shapeSmallSquare, shapeHollowSmallSquare, shapeSquare, shapeHollowSquare, shapeSmallCircle, shapeHollowSmallCircle, shapeCircle, shapeHollowCircle, shapeStar, shapeHollowStar, shapeDigit0, shapeDigit1, shapeDigit2, shapeDigit3, shapeDigit4, shapeDigit5, shapeDigit6, shapeDigit7, shapeDigit8, shapeDigit9
color: Màu sắc, vd ColorGreen, ColorRed
layer: defines layer number on which shapes are plotted
yposition: defines Y-position where shapes are plotted (by default they are plotted ‘around’ graph0 (first indicator) line)
offset – (or distance) parameter (by default -12 ), Offset is expressed in SCREEN pixels. Negative offsets shift symbols down, positive offsets shift symbol up. To place the shape exactly at ypostion, specify 0 as offset
(new in 5.66) XShift – allows to visually shift the the shapes by the specified number of bars (even past the last bar).
Đoạn code dưới đây cho điểm mua và bán sử dụng EMA. Ở mỗi điểm mua hoặc bán, sẽ có 1 mũi tên minh họa kèm theo
Plot(Close,"Close", colorAqua,styleCandle);
Plot(EMA(Close,13), "EMA13", colorBlue, styleLine, Null, Null);
Plot(EMA(Close,26), "EMA26", colorOrange, styleLine, Null, Null);
Plot(EMA(Close,52), "EMA52", colorRed, styleLine, Null, Null);
Buy= Cross(EMA(Close,13), EMA(Close,26) );
Sell= Cross(EMA(Close,26), EMA(Close,13) );
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone), colorGreen, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorRed, 0,H, Offset=-45);
Đoạn code dưới đây cho điểm mua và bán sử dụng EMA. Ở mỗi điểm mua hoặc bán, sẽ có 1 mũi tên minh họa kèm theo
Nhatkyhoctap’s blog
Source: https://vh2.com.vn
Category : Tin Học