Fortunately, you can compute multiple values in your function and screen few indicators at once.
In this script I show how you can compute 5 indicators at the same time for 40 instruments. I display then in different labels.
Every label consist of list of instruments satisfying current indicator conditions and a value for it. It can be absolute value as for or -1/1 representing / event.
Also you can create 1 alert with result of all screeners inside.
In this example I took 5 indicators with following conditions:
- RSI - "RSI < 30" or "RSI > 70"
- TSI - "TSI < -30" or "RSI >30"
- ADX - "ADX > 40"
- MACD - "MACD Cross" or "MACD Cross" (1 and -1 in screener)
- AO - "AO Crosses 0 UP" or "AO Crosses 0 DOWN" (1 and -1 in screener)
- - bars_apart - this parameter define how may bars apart you labels are on your chart. If you see labels overlapping, increase this number.
- - Parameters for all used indicators
- - 40 symbol inputs for instruments you want to use in this screener
You can create an alert from it easily by selecting screener name from the list and then selecting "Any alert() function call".
No additional configuration is required, message and alert on close is generated in the code.
You should better change default name for your alert. Sometimes because of big amount of inputs you might receive an error.
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Với tinh thần của TradingView, tác giả đã xuất bản tập lệnh theo mã nguồn mở, vì thế trader có thể dễ dàng hiểu và tùy chỉnh được. Bạn có thể sử dụng miễn phí, hoặc tùy chỉnh lại mã đã được cấp phép bởi Quy tắc Chung. Bạn có thể sử dụng nó trên biểu đồ.
is it possible to have a conditional alert in TV, so for instance if macd is >=0, then could we screen these hits against a second condition. I was hoping something could be coded in the forex screeener , but doesnt seem to be the case. so what you show could be useful, but i really want conditional alerts
thanks a lot
//ao = sma(hl2, ao_fast_len) - sma(hl2, ao_slow_len)
out1 = ema(close, 10)
out2 = ema(close, 20)
out3 = ema(close, 50)
out4 = ema(close, 100)
out5 = ema(close, 200)
out1_30 = security(syminfo.tickerid, "30", out1)
out2_30 = security(syminfo.tickerid, "30", out2)
out3_30 = security(syminfo.tickerid, "30", out3)
out4_30 = security(syminfo.tickerid, "30", out4)
out5_30 = security(syminfo.tickerid, "30", out5)
long= (out1 > out2 and out2 > out3 and out3 > out4 and out4 > out5) and (out1_30 > out2_30 and out2_30 > out3_30)
short= (out1 < out2 and out2 < out3 and out3 < out4 and out4 < out5) and (out1_30 < out2_30 and out2_30 < out3_30)
cond = long ? 1 : short ? -1 :0
//ao_cond = cross(ao, 0)
//ao_value = crossover( ao, 0) ? 1 :
// crossunder(ao, 0) ? -1 :
But I get this error: Syntax error: Tuple lengths are different! lvalue length is 2 rvalue length is 1.
Could you help me solve it?
also I don't think that calling a security finction from function works