The Absolute Strength indicator indicates the current market “strength” in two different ways possible:
- RSI Method
- Stochastic Method
and by separating the bulls and bears into 2 curves.
The results are then averaged with the same “length” as the one used for these 2 above methods and smoothed a second time using the “Smooth” variable. The moving average mode used is by default the Weighted one.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
//PRC_Absolute Strength | indicator //16.01.2019 //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge // --- settings Mode =0 // 0-RSI method 1-Stoch method Length = 9 // Period Smooth = 1 // Period of smoothing ModeMA = 2 // Mode of Moving Average // --- end of settings if barindex>max(Length,Smooth) then Price1=customclose Price2=customclose[1] if Mode=0 then Bulls=0.5*(Abs(Price1-Price2)+(Price1-Price2)) Bears=0.5*(Abs(Price1-Price2)-(Price1-Price2)) endif if Mode=1 then smax=Highest[Length](high) smin=Lowest[Length](low) Bulls=Price1 - smin Bears=smax - Price1 endif AvgBulls=average[Length,ModeMA](Bulls) AvgBears=average[Length,ModeMA](Bears) SmthBulls=average[Smooth,ModeMA](AvgBulls) SmthBears=average[Smooth,ModeMA](AvgBears) endif RETURN SmthBulls coloured(0,0,255,50) style(histogram), SmthBears coloured(255,0,0,50) style(histogram) , SmthBears coloured(255,0,0) style(line,3), SmthBulls coloured(0,191,255) style(line,3) |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
Hi Nicolas,
How do I incorporate this indicator into my strategy?
I mean what do I call the indicator.
Example:
trend = supertrend[7,3] //This is for Supertrend indicator
Confirmations = Absolutestrength[??] //What do I add here to use it in the syntax
Thanks
Use the CALL function: https://www.prorealcode.com/documentation/call/
or use the ‘fx’ button in the ProBacktest window to add it automatically in your program.
Perfect thanks!
I got it
Hello,
I there one for a MT4 File? Thanks!
How do I add Absolute Strength indicator into my chart
I am trying to call Absolute Strength into ProScreener (PRT 11.1)
But i do not get any results “matches” in my ProSreener Window.
Works fine with other indicators. It’s like it not calling the indicator properly?
Code in proscreener;
ignored, ignored, indicator1, indicator2 = CALL “PRC_Absolute Strength”[0, 9, 1, 2](close)
c1 = (indicator1 >= indicator2)
SCREENER[c1] ((close/DClose(1)-1)*100 AS “%Chg yest.”)
Best Regards,
Johan
The moving average mode is not working in ProScreener, you have to change the code for the appropriate moving average type. By default it is set to Weighted Average, so you have to change all lines containing MODEMA with WeightedAverage, see https://www.prorealcode.com/documentation/weightedaverage/
Thanks for the explanation!
Tried to change ModeMA (4 rows at the bottom) with WeightedAverage[9](close)
but get “A positive integer field is expected with average”
//Nicolas @ http://www.prorealcode.com
//Sharing ProRealTime knowledge
// — settings
//Mode =0 // 0-RSI method 1-Stoch method
//Length = 9 // Period
//Smooth = 1 // Period of smoothing
//ModeMA = 2 // Mode of Moving Average
// — end of settings
if barindex>max(Length,Smooth) then
Price1=customclose
Price2=customclose[1]
if Mode=0 then
Bulls=0.5*(Abs(Price1-Price2)+(Price1-Price2))
Bears=0.5*(Abs(Price1-Price2)-(Price1-Price2))
endif
if Mode=1 then
smax=Highest[Length](high)
smin=Lowest[Length](low)
Bulls=Price1 – smin
Bears=smax – Price1
endif
// AvgBulls=average[Length,ModeMA](Bulls)
AvgBulls=average[Length,WeightedAverage[9](close)](Bulls)
//AvgBears=average[Length,ModeMA](Bears)
AvgBears=average[Length,WeightedAverage[9](close)](Bears)
//SmthBulls=average[Smooth,ModeMA](AvgBulls)
SmthBulls=average[Smooth,WeightedAverage[9](close)](AvgBulls)
//SmthBears=average[Smooth,ModeMA](AvgBears)
SmthBears=average[Smooth,WeightedAverage[9](close)](AvgBears)
endif
RETURN SmthBulls coloured(0,0,255,50) style(histogram), SmthBears coloured(255,0,0,50) style(histogram) , SmthBears coloured(255,0,0) style(line,3), SmthBulls coloured(0,191,255) style(line,3)
Also tried to replace the whole average line with
// AvgBulls=average[Length,ModeMA](Bulls)
AvgBulls=WeightedAverage[9](Bulls)
//AvgBears=average[Length,ModeMA](Bears)
AvgBears=WeightedAverage[9](Bears)
//SmthBulls=average[Smooth,ModeMA](AvgBulls)
SmthBulls=WeightedAverage[9](AvgBulls)
//SmthBears=average[Smooth,ModeMA](AvgBears)
SmthBears=WeightedAverage[9](AvgBears)
Do not get any errors with this but it is still not working with proscreener
Any pointers in the right direction (I’m really a beginner in programming)
😉
Best Regards,
Johan
Please open a new topic with the code and an explanation, you have messed up the initial code 🙂
Ok 🙂
Are the Bulls Blue & the Bears Red?
Yes!
Many thanks 🙂