1. THÔNG BÁO VỀ VIỆC TUÂN THỦ QUY ĐỊNH PHÁP LUẬT KHI THAM GIA DIỄN ĐÀN

    Đề nghị toàn thể thành viên diễn đàn nghiêm túc tuân thủ Luật Chứng khoán, các quy định của Ủy ban Chứng khoán Nhà nước, đồng thời tuân thủ các quy định pháp luật liên quan đến an ninh mạng, giao dịch điện tử và trách nhiệm cá nhân khi đăng tải, chia sẻ thông tin trên môi trường mạng, bao gồm các quy định tại Nghị định 174/2026/NĐ-CP. xem thêm

Cách lọc ra những cổ phiếu theo điều kiện

Discussion in 'Thị trường chứng khoán' started by thanh_bkhn1984, Nov 16, 2016.

Có 3301 người đang online, trong đó có 129 thành viên. 22:00 (UTC+07:00) Bangkok, Hanoi, Jakarta
  1. Có 1 người đang xem box này(Thành viên: 0, Khách: 1)
thread_has_x_view_and_y_reply
  1. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
    Trước phải định nghĩa tích lũy như nào rồi nói tiếp:
    Tôi định nghĩa như sau: Tích lũy là quá trình giao dịch trong 1 biên độ nào đó & trong 1 thời gian nào đó.

    + ở đây có 2 biên số: Biên độ biến động của giá: ví dụ 15%.

    + Thời gian giá cp đi trogn biên độ đó. ví dụ 5 phiên

    + Tính toán biên độ đơn giản dựa trên giá thấp nhất & cao nhất trong giai đoạn đó rồi so biến động đó với điểm trong bình.

    Đoạn code sau scan những cổ phiếu biến động 15% trong 5 phiên (các tham số này đều thay đổi đc)


    frsw=ParamToggle("Turn on Trading Range Scan","OFF|ON",0);
    Range_Perc=Param("Max Ranging %%",15,5,500);
    Range_Lookback=Param("History Lookback",5,3,500);
    ranging=100*2*(HHV(H,Range_Lookback)-LLV(L,Range_Lookback))/(HHV(H,Range_Lookback)+LLV(L,Range_Lookback));
    Filter_TradingInRange=(1-frsw)+frsw*(Ranging <=Range_Perc);

    Filter=Filter_TradingInRange;
    Addcolumn(Filter_TradingInRange,"Tich luy");

    _SECTION_END();

    Note: Đoạn code trên mặc định để off. Các bác phải ON lên nó mới chạy.
    --- Gộp bài viết, Dec 11, 2016, Bài cũ: Dec 11, 2016 ---
    Chọn tham số rồi chạy thôi.
    2-3 tháng = khoảng 44-65 phiên. Bạn có thể chọn 50 phiên.

    Biên độ 50 phiên = 20%; hoặc hớn hơn;nhỏ hơn thì tùy.
  2. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
    // CODE đếm CP tăng; giảm trên dữ liệu Amibroker.
    // NOTE: Hàng ngày phải chạy Scan công thức này để amibroker xuất dữ liệu sổ cp tăng giảm đến ngày đó.

    Buy=0;
    Filter=0;


    // _stock_included=CategoryGetName(categoryMarket,0)=="Vietnam";
    //
    AddToComposite((C>Ref(C,-1))*_stock_included,"~T1A","X",7);
    AddToComposite((CRef(C,-1))*V,"~T1A","V",7);
    AddToComposite((C<Ref(C,-1))*V*_stock_included,"~T1D","V",7);
    AddToComposite((C==Ref(C,-1))*V*_stock_included,"~T1U","V",7);

    t1up = Foreign("~T1A","C",1); // Số cổ phiếu tăng giá

    t1down = Foreign("~T1D","C",1);// Số cổ phiếu giảm giá
    t1upvol=Foreign("~T1A","V"); // Tổng KL khớp lệnh của các CP tăng giá.
    t1downvol=Foreign("~T1D","V"); // Tổng KL khớp lệnh các CP giảm giá.


    // Đến đây thì các bác làm gì với cái dữ liệu này thì làm.
    // Cách 1. Trừ trực tiếp rồi vẽ. Thậm chí các bác có thể làm mượt trước khi trừ = cách tính toán tất cả dựa trên MA của chúng.

    //d=t1up-t1down; // hoặc d= EMA(t1up,5)-EMA(T1down);//

    // Cách 2. Chia ra rồi vẽ theo tỷ lệ. Rồi đưa tất cả về dạng chuẩn biên độ 0-100.

    type=ParamToggle("Type of AD","Subtract|Rating",1); // Chon cach thuc ve
    Color=ParamColor("T2AD",colorOrange); // chon color
    smth=ParamToggle("Make it smooth","No|Yes",0); // Lam muot du lieu hay ko truoc khi tinh toan
    if(type)
    {
    rate=(smth*EMA(t1up,5)+t1up*(1-smth))/(t1down*(1-smth)+smth*EMA(t1down,5));
    Plot(100,"zero ref",colorBlack,styleLine|styleDashed|styleNoTitle);
    Plot( 100*(1-(1-rate)/(1+rate)),_DEFAULT_NAME(),Color,ParamStyle("Style",styleThick));
    }
    else
    {
    rate=(1-smth)*(t1up-t1down)+smth*(EMA(t1up,5)-EMA(t1down,5));
    Plot(0,"zero ref",colorBlack,styleLine|styleDashed|styleNoTitle);
    Plot( rate,_DEFAULT_NAME(),Color,styleHistogram);
    Plot( rate,_DEFAULT_NAME(),Color,styleLine|styleNoTitle);
    }
    --- Gộp bài viết, Dec 11, 2016, Bài cũ: Dec 11, 2016 ---
    Có 1 vấn đề là nhiều khi dữ liệu các bác có cả dữ liệu cung cầu, vàng dầuloạn xạ. lúc đó cần phải lọc 1 lần nữa bằng cách tạo 1 watchlist chứa danh sách những cp cần đếm ( cả HNX; HSX). Rồi thêm lệnh check cp nằm trong watchlist đó nữa là xong

    ví dụ watchlist đó là watchlist đầu tiên. watchlist(0);


    lệnh là:
    iwl=inwatchlist(0);
    if(inwl)
    {
    đoạn mã lệnh trên; copy từ đầu đến cuối luôn; trừ 2 cài buy & filter.
    }
  3. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
    Nhiều cách:
    // 1. ADX:
    n=14;
    uptrd=adx(n)>25 and pdi(n)>mdi(n) ;
    2. MA:
    //+ Giá >MA; MA hướng lên....
    periodS=Param("Period of Short-term",15,3,300); // MA15 xac dinh xu huong ngan han
    periodM=Param("Period of Mid-term",50,3,200);// MA50 trung han
    periodL=Param("Period of Long-term",100,3,200); // MA100 dai han

    // Su dung ham LinRegSlope() de xac dinh do doc cua 1 duong. >0 la huong len; 0) and (C>MA(C,periodS)); //Uptrend ngắn hạn

    trend_mid=(LinRegSlope(MA(C,periodM),2)>0) and (C>MA(C,periodM)); // Uptrend trung hạn
    trend_long=(LinRegSlope(MA(C,periodL),2)>0) and (C>MA(C,periodL)); // Uptrend dài hạn

    // Đến đây thì dùng filter là ra thôi.
    //3. MACD..
  4. thanh_bkhn1984

    thanh_bkhn1984 Thành viên gắn bó với f319.com

    Joined:
    Nov 17, 2013
    Likes Received:
    257
    Các bác cho e hỏi. Tìm những cổ phiếu mới vượt MA100, trước đó khoảng 100 phiên nó chưa vượt thì code ntn phải không ah:
    F=cross(C,MA(C,100)) and Ref(HHV(C,100),-1)<MA(C,100);
    Last edited: Dec 11, 2016
  5. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
  6. thanh_bkhn1984

    thanh_bkhn1984 Thành viên gắn bó với f319.com

    Joined:
    Nov 17, 2013
    Likes Received:
    257
    Ref(HHV(C,100),-1)<MA(C,100). Vậy lệnh này có ý nghĩa là gía đóng cửa cao nhất của 100 phiên trước đó dưới MA100 không phải ah bác.
  7. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
    đúng vậy.
    Cao nhất của đóng cửa trong 100 phiên gần nhất <MA100 của phiên hiện tại. Là của phiên hiện tại & 100 phiên liền kề trước.

    Điều này không đảm bảo giá trị cao nhất đó vẫn < MA100 của 30 phiên trước....
  8. vanngoan

    vanngoan Thành viên quen thuộc

    Joined:
    Jun 17, 2015
    Likes Received:
    18
    Theo code của bác nó filter ra quá nhiều ;););)
  9. xfarmer

    xfarmer Thành viên rất tích cực

    Joined:
    Dec 28, 2009
    Likes Received:
    35
    Tất nhiên chỉ là ví dụ: Bạn có thể co lại biên độ; đấy là để mặc định 5 phiên 15%. Chứ để 100 phiên 15% thì chắc cũng chẳng có nhiều đâu. Điều kiện càng chặt thì sẽ càng ra ít k.quả
  10. vanngoan

    vanngoan Thành viên quen thuộc

    Joined:
    Jun 17, 2015
    Likes Received:
    18
    Làm sao filter được những mã đã lâu không giao dịch bác

Share This Page