I already tried to put the whole indicator in the screener, but result is exactly the same.
But indeed, I do not have real time data feed for the share lists, hence I’m using the Timeframe (Daily) to use the indicator and screener at the closing price.
Maybe this is the issue, but I have other screeners like Stochastic and so on which are working fine without real time data feed. So I don’t really understand.
ZigZag give information that could be remove and retrace on each candlestick, I think your issue is coming from there.
Did you try on forex pairs for instance?
Hello to all,
i’m trying to use the code by Hasardeur, but i did not have the result as up or down the zero line as i see in the Grahal PDF. The result is showed in the attached image.
The code used is below. I’ve missed something?
pr2= 10
EWpk2= HIGHEST[1](High) > (High)*(1-pr2)/100
EWtr2= LOWEST[1](Low) < (Low)*(1-pr2)/100
zzHi2=ZigZag[pr2](High)
zzLo2=ZigZag[pr2](Low)
avg2=(zzHi2+zzLo2)/2
If EWpk2 Then
RetroSuccessSecret2= zzHi2
ELSIF EWtr2 Then
RetroSuccessSecret2= zzLo2
ELSIF (avg2>avg2[1]) THEN
RetroSuccessSecret2= high
ELSE
RetroSuccessSecret2= Low
ENDIF
EW2=ZigZag[pr2](RetroSuccessSecret2)
LRZZEW2= LinearRegressionSlope[pr](EW2)
RETURN LRZZEW2 coloured(0,0,200) AS "LRZZ EW[10]"
@Jollyjo99 might you consider sharing your Elliott Wave 4 Oscillator code please?
@Pietro Fontana I’ll see if I can find the code where I got the results you refer to, else I’ll do it again.
It be great if somebody could code up an Elliott Wave Auto-System?
GraHal
Pietro Fontana
Hallo Pietro,
in your code is at the beginning the variable pr =2 missing (before pr2=10).
Hope this will help you.
Best regards
Hasardeur
Hi Hasardeur,
it was a typo in my copy and paste the code in the forum, actually i have the pr = 2 as the first line.
This is what i have:
pr= 2
pr2= 10
EWpk2= HIGHEST[1](High) > (High)*(1-pr2)/100
EWtr2= LOWEST[1](Low) < (Low)*(1-pr2)/100
zzHi2=ZigZag[pr2](High)
zzLo2=ZigZag[pr2](Low)
avg2=(zzHi2+zzLo2)/2
If EWpk2 Then
RetroSuccessSecret2= zzHi2
ELSIF EWtr2 Then
RetroSuccessSecret2= zzLo2
ELSIF (avg2>avg2[1]) THEN
RetroSuccessSecret2= high
ELSE
RetroSuccessSecret2= Low
ENDIF
EW2=ZigZag[pr2](RetroSuccessSecret2)
LRZZEW2= LinearRegressionSlope[pr](EW2)
RETURN LRZZEW2 coloured(0,0,200) AS "LRZZ EW[10]"
AbzParticipant
Veteran
Hello Grahal
how do did you get the up and down indication on this indicator?
Hallo Grahal, here is the indicator code. Have fun and good trades.
- Use the code in the post above
- Add the indicator / horizontal line at 0
- Set colour zones above (green) and below (red) the 0 line
- Set TF = 1 hour and 10000 bars
- You should now see attached
Let me know if you don’t see same as attached?
Post any good uses you make of it … all credit goes to @Hasardeur.
I think there may be a mistake in the code I reference above, and instead of below at lines 3 and 4 …
(I say ‘may be a mistake‘ as it always best to be humble when not an expert, but I am 98% sure).
EWpk2= HIGHEST[1](High) > (High)*(1-pr2)/100
EWtr2= LOWEST[1](Low) < (Low)*(1-pr2)/100
the code should read …
EWpk2= HIGHEST[1](High) > (High)*1-(pr2/100)
EWtr2= LOWEST[1](Low) < (Low)*1-(pr2)/100)
There are several issues in line 3 (and line 4, as well):
- HIGHEST[1](high) means the highest high of the most recent 1 bars, that is current HIGH wich is shorter and easier to read
- the expression is evaluated according to these steps (assuming DAX):
EWpk2 = HIGHEST[1](High) > (High)*(1-pr2)/100
a) EWpk2 = High > high * -9 / 100
b) EWpk2 = 12000 > 12000 * -9 / 100
c) EWpk2 = 12000 > -108000 / 100
d) EWpk2 = 12000 > -1080
which is ALWAYS true.
- GraHal’s suggestion would be evaluated as:
EWpk2 = HIGHEST[1](High) > (High)*1-(pr2/100)
a) EWpk2 = High > High*1-(pr2/100)
b) EWpk2 = High > High - (10/100)
c) EWpk2 = 12000 > 12000 - 0.1
d) EWpk2 = 12000 > 11999.9
which is ALWAYS true.
I guess both yield wrong results, what do you exactly want to achieve with that line?
Ha thank you Roberto for the detailed explanation.
Maybe that’s why the Indicator works kinda odd! 🙂
I think @Hasardeur may have meant …
EWpk2 = HIGHEST[2](High) > (High[1])*1-(pr2/100)
GraHal, that looks good but this is the same line, shorter and easier to read, it also needed a bit different paretheses after the multiplication operator:
EWpk2 = High > (High[1])*(1-(pr2/100))
The first part is simply HIGH because if you compare it with the previous one, it’s 2 prices. Should HIGH[1] be the highest value, why comparing it to itself?
Yeah, it’s easier to follow what’s going on now, thanks again Roberto
So this is the latest version
//https://www.prorealcode.com/topic/screener-elliott-wave-indicator/page/2/#post-98592
//Indicator (Line 6 to Line 28) - Hasard' ElliottWave-Trend v1.1
//Screener - from Line 35
//Variables - value to be determined / set by user
pr = 4 //4 - set by GraHal, using on DJI 1 min TF
pr2 = 4 //4 - set by GraHal, using on DJI 1 min TF
EWpk2 = High > (High[1])*(1-(pr2/100))
EWtr2= Low < (Low[1]) *(1-(pr2/100))
// Intermediate Elliot Wave stuff
//zz= ZigZag[pr](close)
zzHi2=ZigZag[pr2](High)
zzLo2=ZigZag[pr2](Low)
avg2=(zzHi2+zzLo2)/2
If EWpk2 Then
RetroSuccessSecret2= zzHi2
ELSIF EWtr2 Then
RetroSuccessSecret2= zzLo2
ELSIF (avg2>avg2[1]) THEN
RetroSuccessSecret2= high
ELSE
RetroSuccessSecret2= Low
ENDIF
EW2=ZigZag[pr2](RetroSuccessSecret2)
LRZZEW2= LinearRegressionSlope[pr](EW2)
REturn LRZZEW2
// START SCREENER BG_MV-EW Trend
// --------------------------------
//
//c111= LRZZEW2[1] crosses over 0 AND LRZZEW2[0] > 0.0
////c211= LRZZEW2[1] crosses under 0 AND LRZZEW2[0] < 0.0
//
//ckauf= c111
////cverk= c211
//
//LBday = 4 // look back days
//if ckauf then
//event = 1
//eventindex = barindex
//endif
//
//if barindex - eventindex < LBday then
//event = 1
//elsif barindex - eventindex > LBday then
//event = 0
//endif
//Return event, eventindex
//
AbzParticipant
Veteran
hello
maybe a stupid question but on daily timeframe just to buy above 0 and sell below 0 , if i run a backtest on different stocks it gives a very good result , but i may have missunderstood the indicator.