Chuyên lập trình AmiBroker cho Giao dịch chứng khoán

Thứ 3, 01/07/2025

::

PM
Đầu tư chứng khoán khoa học trên nền tảng phân tích dữ liệu và thống kê
ApplyStop - Áp dụng chế độ Stop
2023-05-23 13:58:00 1346 Lượt xem

    ApplyStop - áp dụng stop tích hợp

    CÚ PHÁP

    ApplyStop( type, mode, amount, exitatstop, volatile = False, ReEntryDelay = 0, ValidFrom = 0, ValidTo = -1 )

    TRẢ VỀ

    Không có

    CHỨC NĂNG

    Điều khiển stop tích hợp từ mức công thức (cho phép tối ưu hóa stop)
    Tham số:

    type =

    • 0 = stopTypeLoss - stop tổn thất tối đa,
    • 1 = stopTypeProfit - stop mục tiêu lợi nhuận,
    • 2 = stopTypeTrailing - stop theo dõi,
    • 3 = stopTypeNBar - stop N-bar

    mode =

    • 0 - tắt stop (stopModeDisable),
    • 1 - tỷ lệ phần trăm (stopModePercent), hoặc số thanh cho stop N-bar (stopModeBars),
    • 2 - số điểm (stopModePoint);
    • 3 - tỷ lệ phần trăm của lợi nhuận (risk)

    amount =

    • số lượng tổn thất/lợi nhuận kích hoạt/độ rủi ro. Đây có thể là một số (mức stop tĩnh) hoặc một mảng (mức stop động)

    ExitAtStop

    • ExitAtStop = 0 - chỉ kiểm tra stop bằng cách sử dụng giá giao dịch thường và thoát ở giá giao dịch thường (1)
    • (nếu bạn giao dịch vào đóng cửa, điều này có nghĩa là chỉ có giá đóng cửa sẽ được kiểm tra để thoát và thoát sẽ được thực hiện ở giá đóng cửa)
    • ExitAtStop = 1 - kiểm tra giá High-Low và thoát trong ngày với giá bằng mức stop trên cùng một thanh khi stop được kích hoạt
    • ExitAtStop = 2 - kiểm tra giá High-Low nhưng thoát VÀO THANH TIẾP THEO ở giá giao dịch thường.

    volatile -

    • quyết định liệu số lượng (hoặc khoảng cách) (tham số thứ 3) có được lấy mẫu tại thời điểm nhập giao dịch và duy trì cố định trong suốt giao dịch (Volatile = FALSE - hành vi cũ) hay có thể thay đổi trong suốt giao dịch (Volatile = TRUE) (cho phép thực hiện thoát Chandelier chỉ với một dòng)(2)

    ReEntryDelay -

    • số thanh chờ đến khi cho phép nhập cùng một cổ phiếu.

    ValidFrom -

    • xác định thanh đầu tiên kể từ lúc nhập giao dịch khi stop có thể tạo ra một thoát. 0 có nghĩa là từ đầu

    ValidTo -

    • xác định thanh cuối kể từ lúc nhập giao dịch khi stop có thể tạo ra một thoát. -1 có nghĩa là "vô hạn". Mặc định, stop luôn hợp lệ trong suốt thời gian (0/-1).

    ValidFrom/ValidTo có thể được sử dụng để tạo ra stop được kích hoạt/vô hiệu hóa vào các thời điểm khác nhau. Cài đặt này độc lập cho mỗi loại stop. Nó cũng hoạt động cùng với SetOption("HoldMinBars", x). HoldMinBars ảnh hưởng CẢ đến thoát thông thường và stop, ngăn chặn TẤT CẢ các loại thoát trong khoảng thời gian xác định. ValidFrom/ValidTo hoạt động trên từng stop riêng lẻ và không ảnh hưởng đến thoát thông thường.

    Lưu ý khi sử dụng stop:
    Tình huống 1:

    bạn giao dịch vào THANH TIẾP THEO MỞ và muốn thoát trong ngày với giá stop

    Cài đặt đúng:
    ActivateStopsImmediately được bật
    ExitAtStop = 1
    Đặt trễ giao dịch thành một
    Đặt giá giao dịch thành giá mở cửa

    Tình huống 2:

    bạn giao dịch vào đóng cửa ngày hôm nay và muốn thoát trong ngày với giá stop
    Cài đặt đúng:
    ActivateStopsImmediately được tắt
    ExitAtStop = 1
    Đặt trễ giao dịch thành không
    Đặt giá giao dịch thành giá đóng cửa

    Tình huống 3:

    bạn giao dịch vào MỞ ngày mai và muốn thoát bằng stop ở giá MỞ khi biên độ H-L của ngày TRƯỚC đạt đến stop
    Cài đặt đúng:

    ExitAtStop = 2 (MỚI)
    Đặt trễ giao dịch thành một
    Đặt giá giao dịch thành giá mở cửa
    a) (nếu bạn muốn thoát sau các tín hiệu thông thường, để tiền từ các vị trí bị dừng lỗ KHÔNG sẵn có để tham gia giao dịch cùng ngày)
    ActivateStopsImmediately được bật

    b) (nếu bạn muốn thoát TRƯỚC các tín hiệu thông thường, để tiền từ các vị trí bị dừng lỗ sẵn có để tham gia giao dịch mới trong cùng một ngày)
    ActivateStopsImmediately được tắt


    Tình huống 4:

    bạn giao dịch vào đóng cửa ngày hôm nay và chỉ muốn thoát khi giá đóng cửa của hôm nay đạt đến mức stop

    Cài đặt đúng:
    ActivateSt

    opsImmediately được tắt
    ExitAtStop = 0
    Đặt trễ giao dịch thành không
    Đặt giá giao dịch thành giá đóng cửa

    GIỚI HẠN:

    (1) ExitAtStop = 0 chỉ sử dụng biến SellPrice/CoverPrice trong chế độ backtestRegular, trong các chế độ khác nó sử dụng giá giao dịch từ hộp thoại Cài đặt (không thể ghi đè bằng SellPrice/CoverPrice)

    (2) Stop biến đổi (Volatile=True) chỉ hoạt động trong chế độ backtestRegular

    VÍ DỤ


    /* tối ưu hóa stop tổn thất tối đa */

    ApplyStop(stopTypeLoss,
             stopModePercent,
             Optimize( "mức stop tổn thất tối đa", 10, 2, 30, 1 ),
             True );
    /* thực hiện thoát Chandelier chỉ với một dòng */

    ApplyStop(stopTypeTrailing, stopModePoint, 3*ATR(14), True, True );

    /* stop N-bar */
    ApplyStop( stopTypeNBar, stopModeBars, 5 );

    Nếu bạn giao dịch ở Giá đóng cửa với trễ không, hãy chắc chắn bỏ chọn "Activate Stops Immediately" trong Cài đặt.

    Để xác nhận hình ảnh của chức năng ApplyStop, thêm các dòng sau vào công thức ApplyStop của bạn trong Trình tạo chỉ báo:

    Equity(1); // ĐIỀU NÀY ĐÁNH GIÁ STOP

    Plot(Sell==4,"ApplyStop Sell",colorRed,1|styleOwnScale);
    Plot(Cover==4,"ApplyStop Cover",colorGreen,1|styleOwnScale);

    Nếu hai hoặc nhiều stop khác nhau được kích hoạt trên VERY SAME bar thì chúng được đánh giá theo thứ tự cố định này:

    Stop Ruin cố định (mất 99,96% vốn ban đầu)
    Stop tổn thất tối đa
    Stop mục tiêu lợi nhuận
    Stop theo dõi
    Stop N-bar

    từ nhận xét về vốn

    Dựa vào các loại stop khác nhau, các giá trị khác nhau được ghi lại vào mảng sell/cover để cho phép bạn phân biệt xem tín hiệu được tạo ra bởi quy tắc thông thường hay bởi stop.

    • 1 - thoát thông thường
    • 2 - dừng lỗ tối đa
    • 3 - mục tiêu lợi nhuận
    • 4 - dừng theo dõi
    • 5 - dừng N-bar
    • 6 - dừng phá sản

    ExitAtStop có ý nghĩa mới cho loại dừng N-bar.

    • Nếu ExitAtStop = 0, thì dừng N-bar có ưu tiên thấp nhất (vì vậy, nếu ví dụ như mục tiêu lợi nhuận dừng trong cùng một thanh bar thì mục tiêu lợi nhuận được đánh giá trước).
    • Nếu ExitAtStop = 1, thì dừng N-bar có ưu tiên cao nhất và được đánh giá trước tất cả các dừng khác.
    • Hiệu ứng tương tự được đạt được bằng cách chọn "Has priority" trong cửa sổ Cài đặt AA.

    Đọc thêm

    Thu gọn

    Bài viết khác:
    Zalo
    Hotline