Hướng dẫn phương pháp tự code bộ lọc đơn giản cho Amibroker

Thảo luận trong 'Bàn luận về Amibroker, Metastock, Metatrader 4' bắt đầu bởi Bảo Khánh, 9/9/19.

Lượt xem : 196

  1. Bảo Khánh

    Bảo Khánh Chứng sỹ

    Tham gia ngày:
    23/10/18
    Bài viết:
    492
    Đã được thích:
    226
    huong-dan-phuong-phap-tu-code-bo-loc-don-gian-cho-amibroker-kakata.png

    Amibroker là một phần mềm không còn xa lạ gì với anh em nữa. Ngoài việc có thể theo dõi được giá cả được hiển thị dưới dạng biểu đồ nến (thanh bar, hoặc đường line) thì Amibroker còn hỗ trợ cho nhà đầu tư rất nhiều khi cần lọc cổ phiếu theo một bộ tiêu chí nào đó.


    Tuy nhiên, vấn đề đặt ra là nhà đầu tư có ý tưởng hay, muốn lọc cổ phiếu theo ý tưởng đó nhưng khổ nỗi không biết làm sao để Amibroker hiểu. Ngày hôm nay tôi sẽ chia sẻ với anh em một số hướng dẫn cơ bản để có thể tự code cho mình một bộ lọc theo ý thích. Xin nhắc lại, đây chỉ là một số hướng dẫn cơ bản nên chỉ đáp ứng nhu cầu cơ bản cho nhà đầu tư. Anh em nào có nhu cầu cao hơn thì nên đăng ký học lớp code Amibroker để hiểu rõ hơn nhé.

    Bài viết này sẽ hướng dẫn anh em cách code dùng để SCAN và dùng để EXPLORE (hai khái niệm này khác nhau nhé anh em). Bây giờ chúng ta vào nội dung chính thôi.

    I. Dùng Scan:
    1. Thành phần tối thiểu:


    Có thể lọc bằng Scan với cấu trúc code đơn giản nhất, gồm một hay nhiều dòng trong các dòng sau đây:
    Buy = <điều kiện 1>;
    Sell = <điều kiện 2>;
    Short = <điều kiện 3>;
    Cover = <điều kiện 4>;

    Các thành phần trong cặp ngoặc nhọn <điều kiện> là biểu thức lôgích theo cú pháp code được Amibroker quy định.

    2. Ví dụ:

    a. Một thí dụ đơn giản nhất:

    Buy = Close> MA(Close, 200);​

    hoặc:

    Buy = Cross(EMA(C,13), MA(C,21)) AND V>50000;​


    Cũng với ý tưởng trên, đoạn code có thể được sử dụng phức tạp hơn (nhằm tạo được nhiều tùy chọn hơn khi sử dụng):

    //Long MA
    P = ParamField("Price field",-1);
    Periods = Param("Periods", 100, 2, 400, 1 );
    Buy = Close> MA( P, Periods );​

    b. Thí dụ dùng nhiều lệnh điều kiện với điều kiện phức tạp :

    r1 = Param("Fast avg", 12, 2, 200, 1);
    r2 = Param("Slow avg", 26, 2, 200, 1);
    r3 = Param("Signal avg", 9, 2, 200, 1);
    ml = MACD(r1, r2);
    sl = Signal(r1, r2, r3);
    Buy=Cross(ml, sl);
    Sell = Cross(sl, ml);​

    hay:

    LongMA = EMA(C, Param("Long Period", 50, 30, 100, 5));
    ShortMA = EMA(C, Param("Short Period", 5, 3, 50, 1));
    Buy = Cross(ShortMA, LongMA );
    Sell = Cross(LongMA, ShortMA );​

    3. Kết quả:

    Với:
    Buy = Close> MA(Close, 200);​

    Có kết quả:

    Ticker,Trade,Date,Close,
    AGF,Buy,2015/04/10,20.7000
    BBC,Buy,2015/04/10,57.0000
    BIC,Buy,2015/04/10,16.9000
    BID,Buy,2015/04/10,19.0000
    BMI,Buy,2015/04/10,17.3000
    BMP,Buy,2015/04/10,81.0000
    ...​

    Với:

    Buy = Cross(EMA(C,13), MA(C,21)) AND V>50000;​

    Kết quả nhận được:

    Ticker,Trade,Date,Close,
    BSI,Buy,2015/04/10,11.0000
    JVC,Buy,2015/04/10,21.7000
    VHC,Buy,2015/04/10,40.2000
    VIS,Buy,2015/04/10,7.7000​

    Còn với:

    LongMA = EMA(C, Param("Long Period", 50, 30, 100, 5));
    ShortMA = EMA(C, Param("Short Period", 5, 3, 50, 1));
    Buy = Cross(ShortMA, LongMA );
    Sell = Cross(LongMA, ShortMA );​

    Kết quả sẽ có:

    Ticker,Trade,Date,Close,
    ABT,Sell,2015/04/10,51.0000
    BCI,Sell,2015/04/10,20.8000
    CYC,Buy,2015/04/10,3.9000
    DQC,Buy,2015/04/10,57.5000
    GTA,Buy,2015/04/10,16.0000
    ...​

    4. Thành phần kết quả được xuất ra có điểm chung: Gồm các cột mặc định: Ticker, Trade, Date và Close

    II. Dùng Explorer:

    Để dùng Explorer, trong code không dùng các dòng lệnh với Buy, Sell, Short hay Cover mà dùng Filter:

    Filter = <điều kiện>;

    <điều kiện> cũng là biểu thức lôgic.

    Explorer đi kèm với tối thiểu 1 lệnh khai báo cột thông tin xuất ra và cho phép xuất ra các cột dữ liệu như ý muốn. Để xuất ra các cột thông tin, thường có thể dùng thêm các câu lệnh: AddColumn (được dùng xuất dữ liệu số) hoặc AddTextColumn (được dùng xuất dữ liệu chuỗi - text).

    AddColumn(<Tên Dữ liệu>,<Tên cột>,<format>);
    <Tên Dữ liệu> - Biến hoặc các biểu thức chứa dữ liệu dạng số muốn xuất ra.
    <Tên cột> - Tiêu đề của cột sẽ được hiển thị.
    <format> - dạng dữ liệu được xuất ra​

    AddTextColumn(<Tên Dữ liệu>,<Tên cột>);

    Thí dụ:

    Filter = Cross(EMA(C, 13), MA(C,21)) AND V>50000;
    AddColumn(EMA(C, 13),"EMA-13",1.2);
    AddColumn(MA(C, 21),"MA-21",1.2);
    AddColumn(Ref(C, -4),"Close-4",1.2);
    AddColumn(C,"Close",1.2);​

    Kết quả xuất ra:

    Ticker,Date/Time,EMA-13,MA-21,Close-4,Close,
    BIC,2015/04/09,16.06,16.02,15.80,17.20
    BID,2015/04/08,17.91,17.88,17.90,18.50
    BSI,2015/04/10,10.81,10.81,10.50,11.00
    CCL,2015/04/09,4.04,4.03,4.00,4.10
    CII,2015/04/07,18.57,18.53,18.20,19.30
    GTN,2015/04/09,15.99,15.97,15.80,16.40
    ...​

    Hai cột đầu Ticker và Date/Time là mặc định (luôn luôn xuất hiện). Trong đó, Date/Time có format phụ thuộc vào khai báo trong Region and Language (Control Panel).

    Các cột còn lại EMA-13, MA-21, Close-4 và Close là do 4 lệnh AddColumn đã khai báo ở trên.

    Một trong những ứng dụng mà tôi đã dùng để xuất file EOD Upto ....txt là đoạn code sau:

    Filter = 1;
    AddColumn(O,"Open");
    AddColumn(H,"High");
    AddColumn(L,"Low");
    AddColumn(C,"Close");
    AddColumn(V,"Volume", 1.0);​

    Như vậy, bài viết chia sẻ về phương pháp tự code bộ lọc đơn giản cho Amibroker đã xong, anh em tự mình vọc vạch xem như thế nào nhé. Có thảo luận gì thì comment bên dưới!

    Theo vietcurrency.vn​

    Xem thêm:

    >> Thư viên indicator, code,... dành cho Amibroker
     
    hunghm1 thích bài này.
  2. Đang tải...

    Bài viết tương tự Diễn đàn Date
    [Thủ thuật Amibroker] Hướng dẫn tạo watchlist và điều chỉnh màu sắc cho biểu đồ giá Bàn luận về Amibroker, Metastock, Metatrader 4 28/8/19
    [Thủ thuật Amibroker] Hướng dẫn cài đặt indicator và chạy bộ lọc Bàn luận về Amibroker, Metastock, Metatrader 4 16/7/19
    Chia sẻ bộ lọc bùng nổ giá theo phương pháp bung nút cổ chai Bollinger Bands cho Amibroker Bàn luận về Amibroker, Metastock, Metatrader 4 21/7/19
    Tặng bạn code cho tín hiệu mua bán và chốt lời theo phương pháp con rùa của Donchian Bàn luận về Amibroker, Metastock, Metatrader 4 29/4/19
    Chia sẻ bộ lọc Amibroker bắt đỉnh đáy với mô hình cái nơ trong phương pháp Landry Dave Bàn luận về Amibroker, Metastock, Metatrader 4 17/3/19

  3. Deming

    Deming Member

    Tham gia ngày:
    1/4/19
    Bài viết:
    24
    Đã được thích:
    4
    Giới tính:
    Nam
    mình bị bí cái code chikou, vì ko thiết lập được cách nó nhận dạng khi giao cắt với kijun hoặc đường giá, vẽ thể hiện trên Ami thì ok, nhưng thiết lập giao cắt tự mò mãi ko đc,
    Mình ko phải dân IT nên toàn mò mẫm
     
  4. hunghm1

    hunghm1 Member

    Tham gia ngày:
    30/4/19
    Bài viết:
    6
    Đã được thích:
    4
    Giới tính:
    Nam
    Thanks!
     

Lượt bình luận : 2

Chia sẻ trang này