Cảnh báo mới của chúng tôi cho phép gửi tin nhắn động

Jan 25, 2021

Tập lệnh cảnh báo mới của chúng tôi sử dụng tính năng `alert()` hoạt động trong cả chiến lược và nghiên cứu, đồng thời cho phép tạo ra một thông báo động hoàn toàn khi cảnh báo kích hoạt.

Cảnh báo mới này hoạt động giống với mô hình cảnh báo chiến lược, trong đó chỉ một cảnh báo được tạo trong giao diện người dùng biểu đồ có thể tổng hợp tất cả các trình kích hoạt được tạo bởi bất kỳ số lượng lệnh gọi `alert () ‘nào trong tập lệnh, giống như cách mà một cảnh báo chiến lược duy nhất sẽ tổng hợp tất cả các trình kích hoạt sự kiện của nhà môi giới.

Để tạo cảnh báo mới này:

  1. Bao gồm các `alert()` trong tập lệnh, sử dụng xung quanh các khối `if` để xác định các điều kiện kích hoạt.
  2. Tạo một cảnh báo cho tập lệnh bằng cách sử dụng hộp thoại “Tạo cảnh báo” của biểu đồ và chọn một loại cảnh báo bao gồm “lệnh gọi hàm alert ()”.

Khi được sử dụng trong các chiến lược, người dùng có thể chọn tạo cảnh báo chỉ kích hoạt trên các sự kiện `alert ()`, các sự kiện vào lệnh hoặc trên cả hai. Ngoài ra, cần nhớ rằng không có giới hạn về số lượng biến có thể được sử dụng trong thông báo cảnh báo động và trình giữ chỗ không còn cần thiết nữa, vì bất kỳ biến nào được sử dụng trong tập lệnh cũng có thể được sử dụng trong hàm `alert ()` mới, miễn là nó ở định dạng chuỗi.

Dưới đây là 3 ví dụ của tính năng `alert()`:

1) Cảnh báo tập lệnh được kích hoạt trên mỗi thanh và thông báo chứa giá đóng cửa của thanh:

//@version=4
study("Simple alert() example")
plot(close)
alert("Close = " + tostring(close), alert.freq_once_per_bar_close)

2) Giá trị của ba chỉ số được kiểm tra: RSI, SMA và Momentum. Cảnh báo tập lệnh sẽ được kích hoạt nếu bất kỳ chỉ báo nào vượt qua một mức (hoặc giá) cụ thể và thông báo sẽ chứa tên của chỉ báo và giá trị hiện tại của nó.

//@version=4
study("alert() with multiple indicators", overlay=true)
f_triggerSma()=>
    _s  = sma(close, 14)
    _co = crossover(close, _s)
    _cu = crossunder(close, _s)
    if _co
        alert("Price (" + tostring(close) + ") crossing up SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
    else if _cu
        alert("Price (" + tostring(close) + ") crossing down SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
f_triggerRsi()=>
    _r  = rsi(close, 7)
    _co = crossover(_r, 70)
    _cu = crossunder(_r, 30)
    if _co
        alert("RSI (" + tostring(_r) + ") crossing up 70 level", alert.freq_once_per_bar)
    else if _cu
        alert("RSI (" + tostring(_r) + ") crossing down 30 level", alert.freq_once_per_bar)
f_triggerMom()=>
    _m  = mom(close, 14)
    _co = crossover(_m, 0)
    _cu = crossunder(_m, 0)
    if _co
        alert("Momentum (" + tostring(_m) + ")  crossing up 0 level", alert.freq_once_per_bar)
    else if _cu
        alert("Momentum (" + tostring(_m) + ")  crossing down 0 level", alert.freq_once_per_bar)

plot(sma(close, 14), "SMA")
f_triggerSma()
f_triggerRsi()
f_triggerMom()

3) Trong ví dụ này, các giá trị của một chỉ báo RSI được kiểm tra, nhưng trên năm mã giao dịch cùng một lúc. Cảnh báo tập lệnh sẽ được kích hoạt nếu RSI vượt qua một mức được chỉ định cho bất kỳ ký hiệu nào và thông báo sẽ chứa ký hiệu và giá trị chỉ báo tại thời điểm giao nhau.

//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
    _r = rsi(close, 7)
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    _rt = barstate.isrealtime
    [_rsi, _co, _cu, _rt_bar] = security(_ticker, timeframe.period, [_r, _x, _y, _rt])
    _msg = _ticker + ", " + timeframe.period + ": "
    if _co and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)
    else if _cu and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ")  crossing down 30 level"
        alert(_msg,  alert.freq_once_per_bar_close)

plot(rsi(close, 7), "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=color.new(#9915FF,90), title="Background")

f_triggerRsi(syminfo.tickerid)
f_triggerRsi("NASDAQ:MSFT")
f_triggerRsi("FX:EURUSD")
f_triggerRsi("NASDAQ:TSLA")
f_triggerRsi("NASDAQ:PYPL")

Người dùng tập lệnh có thể học thêm về cách tạo cảnh báo trong Trung tâm Trợ giúp. Pine coders có thể đọc thêm về cảnh báo mới trong Hướng dẫn sử dụng Pine User và Tài liệu Tham khảo.

Đọc thêm về tất cả các cập nhật về Pine trong hướng dẫn sử dụng với Ghi chú Phát hành.

Look first Then leap

TradingView được xây dựng dành cho bạn, vì vậy nhớ đảm bảo bạn tận dụng hiệu quả nhất các tính năng tuyệt vời của chúng tôi
Khởi chạy Biểu đồ