Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 20
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Code ami về sức mạnh giá RSS trong sách Canslim và phú toàn.

    Mấy hôm nay em tìm kiếm code của amibroker về RSS . và nhờ anh @ Skynel và anh @ranluc. Nên em đã tìm thấy code này.
    Nhưng còn một điều chưa hoàn thành là em mới tìm thấy cách tính RSS chứ chưa biết cách xếp hạng nó.
    Vì vậy các anh viết giúp em làm sao có thể thêm 1 cột nữa bên cạnh (addcolumn) . Và xếp hạng chỉ số sức mạnh của từng cổ phiếu, có số từ 1-852. Ví dụ như có 852 mã thì sẽ xếp từ 1-852 (với 1 là cổ phiếu có RSS thấp nhất, và 852 là cổ phiếu có RSS cao nhất .Vì RSS nó tính ra có cp cao lên 500 và cp thấp nhất cũng - 60.
    (Để từ đó đưa về từ 0-99 như phú toàn. Hoặc các anh đưa xếp hạng về 0-99 luôn thì càng tuyệt ạ) . Cảm ơn anh.
    Dưới đây là code của nó:

    _SECTION_BEGIN("IBD RS RANKING");
    //IBD RS RANKING
    tr13 = 0.4 * (C - Ref(C, -65)) / Ref(C, -65) * 100;
    tr26 = 0.3 * (C - Ref(C, -130)) / Ref(C, -130) * 100;
    tr52 = 0.3 * (C - Ref(C, -260)) / Ref(C, -260) * 100;
    RSW = tr13 + tr26 + tr52;
    Plot(RSW,"RANKING IBD" ,colorBrightGreen,styleLine) ;
    Plot(EMA(RSW,10),"" ,colorRed,styleLine|styleDashed|styleNoLabel);

    BuyIBD=RSW>EMA(RSW,10);
    SellIBD= RSW<EMA(RSW,10);

    Filter=BuyIBD OR SellIBD;
    AddColumn(IIf(BuyIBD,RSW,IIf(SellIBD,RSW,0)) ,"RANKIBD",1.0,colorWhite,IIf(BuyIBD,colorDarkGree n,IIf(SellIBD,colorRed,colorWhite)));

    _SECTION_END();


  2. #2
    Ngày tham gia
    Mar 2016
    Bài viết
    0
    Dùng hàm ROC() có thể viết ngắn gọn lại:



    RSW = 0.4*ROC(C,65)+ 0.3*ROC(C,130) +0.3*ROC(C,260);
    Sort và rank



    SetSortColumns(-3);
    AddRankColumn();
    Nếu bạn muốn rank từ 0 đến 99 thì phải làm 2 bước: bước đầu quét toàn bộ danh mục, tìm giá trị RSW cao nhất và thấp nhất, lưu vào đâu đó, bước sau tính lại giá trị cho cột Rank. Việc lưu giá trị min, max, có thể lưu ra file, hay lưu vào 1 mã ảo. Việc chia 2 bước có thể bằng cách: bước 1 bấm nút Scan, bước 2 bấm nút Explore. Mình viết tạm sườn, lưu giá trị min/max RSW vào file, bạn tự triển khai chi tiết.



    if ( Status("action")==actionScan) //buoc 1
    {
    Buy = Sell = 0; //allows Scan to run
    //read maxRSW from file
    //read minRSW from file
    //if (LastValue(RSW)>maxRSW) write LastValue(RSW) to file
    //if (LastValue(RSW)<minRSW) write LastValue(RSW) to file
    }

    if ( Status("action")==actionExplore ) //buoc 2
    {
    //minRSW =
    //maxRSW =
    //rank = 99*(RSW - minRSW)/(maxRSW - minRSW)
    }

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CEO_Xman
    _SECTION_END();
    ở Trong Excel có hàm Rank , giúp sắp xếp thứ hạng . Ở Amibroker có hàm "SetSortColumns", nhưng hàm này em chỉ biết làm xắp xếp từ thấp lên cao trong cột đó, chứ ko biết cách thêm số thứ hạng từ 1-852 vào cột bên cạnh. Các anh xem giúp em nhé.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ranluc
    Dùng hàm ROC() có thể viết ngắn gọn lại:

    Sort và rank

    Nếu bạn muốn rank từ 0 đến 99 thì phải làm 2 bước: bước đầu quét toàn bộ danh mục, tìm giá trị RSW cao nhất và thấp nhất, lưu vào đâu đó, bước sau tính lại giá trị cho cột Rank. Việc lưu giá trị min, max, có thể lưu ra file, hay lưu vào 1 mã ảo. Việc chia 2 bước có thể bước 1 bấm nút Scan, bước 2 bấm nút Explore
    Sao amibroker của em nó báo lỗi "AddRankcolumn ();" ko đc. Nó báo lỗi :
    "Ln:23,col: 14: Error 32. Syntax error, probably missing semicolon at the end of the previous line"

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ranluc
    Dùng hàm ROC() có thể viết ngắn gọn lại:

    Sort và rank

    Nếu bạn muốn rank từ 0 đến 99 thì phải làm 2 bước: bước đầu quét toàn bộ danh mục, tìm giá trị RSW cao nhất và thấp nhất, lưu vào đâu đó, bước sau tính lại giá trị cho cột Rank. Việc lưu giá trị min, max, có thể lưu ra file, hay lưu vào 1 mã ảo. Việc chia 2 bước có thể bằng cách: bước 1 bấm nút Scan, bước 2 bấm nút Explore. Mình viết tạm sườn, lưu giá trị min/max RSW vào file, bạn tự triển khai chi tiết.
    Em cảm ơn anh . Nhưng thực sự em ko rành về viết code , đang mới tập thôi ạ. Em copy past vào code chạy vẫn ko được anh ạ. Em thực sự không hiểu lắm. Anh ơi nếu xếp hạng từ 1-852 trước thì có dễ không ạ. ? (tại xếp từ 0-99 em ko hiểu vụ lưu ra file hay mã ảo ). Cảm ơn anh nhiều ạ

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Hàm AddRankColumn() đã xếp từ 1-852 rồi, đâu phải làm gì nữa.
    Trước đây mình có viết code để soi review ETF, khối lượng tính toán lớn nên phải dùng mã ảo. Với nhu cầu của bạn chỉ cần lưu 2 giá trị min/max nên bạn lưu ra file là đủ. Nếu cảm thấy khó quá thì bỏ qua, xếp hạng 1-852 ok rồi.

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ranluc
    Hàm AddRankColumn() đã xếp từ 1-852 rồi, đâu phải làm gì nữa.
    Trước đây mình có viết code để soi review ETF, khối lượng tính toán lớn nên phải dùng mã ảo. Với nhu cầu của bạn chỉ cần lưu 2 giá trị min/max nên bạn lưu ra file là đủ. Nếu cảm thấy khó quá thì bỏ qua, xếp hạng 1-852 ok rồi.
    Bác ranluc cho hỏi dùng hàm nào để ghi file và hàm nào để lấy dữ liệu ra trong amibrocker?
    cảm ơn bác nhiều!

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ranluc
    Hàm AddRankColumn() đã xếp từ 1-852 rồi, đâu phải làm gì nữa.
    Trước đây mình có viết code để soi review ETF, khối lượng tính toán lớn nên phải dùng mã ảo. Với nhu cầu của bạn chỉ cần lưu 2 giá trị min/max nên bạn lưu ra file là đủ. Nếu cảm thấy khó quá thì bỏ qua, xếp hạng 1-852 ok rồi.
    da. nhưng amibroker của em báo lỗi với hàm : Addrankcolumn();. Hay tại amibroker của em dùng là bản 5.4 , nó chưa có hàm này. Em thấy hàm Mov , mà nó còn báo lỗi nữa. ko biết có phải tại phiên bản Ami của em quá thấp ko ạ .

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    13


    Đây là em làm bằng excel. ko biết dùng hàm "Addrankcolumn()" nó có ra xếp hạng như cột bên phải của em ko ạ. Nếu đc như vậy để em cài lại ambroker phiên bản mới xem sao.

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CEO_Xman
    Đây là em làm bằng excel. ko biết dùng hàm "Addrankcolumn()" nó có ra xếp hạng như cột bên phải của em ko ạ. Nếu đc như vậy để em cài lại ambroker phiên bản mới xem sao.
    AddRankColumn() bắt đầu bằng 1, hàng kế tiếp là 2
    Hình như hàm này có từ 5.7
    "Ln:23,col: 14: Error 32. Syntax error, probably missing semicolon at the end of the previous line"
    Lỗi này là thiếu dấu chấm phẩy ( ; ) ở cuối hàng bên trên

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •