WOLF WAVE for Amibroker (AFL)
rajbhagalpur over 15 years ago Amibroker (AFL)
Nice indicator afl for bullish and bearish wolf pattern. Plotting of wolf waves needs to be enabled via parameters.
Screenshots
Indicator / Formula
Copy & Paste Friendly
// WolfeWave-V1.01.afl
// Author: Mac Johnson
// Date: 28aug2005
Version(4.70); // works from this version onwards
SetChartBkColor(ParamColor("Background colour",colorBlack));
Plot(C, "", colorGrey40, styleCandle );
// Only interested in the visible bars
lastbar = Status("lastvisiblebarindex") - 10;
startBar = Status("firstvisiblebarindex");
// Some visual choices ...
BullPlot=ParamToggle("Plot bull signals", "No,Yes");
BullGuide=ParamToggle("Plot bull guides","No,Yes");
ExtendBull=ParamToggle("Extend bull plot", "No,Yes");
BullWColor=ParamColor("Bullish wave colour", colorBrightGreen);
BullTColor=ParamColor("Bullish trend colour", colorDarkGreen);
BearPlot=ParamToggle("Plot bear signals", "No,Yes");
BearGuide=ParamToggle("Plot bear guides", "No,Yes");
ExtendBear=ParamToggle("Extend bear plot", "No,Yes");
BearWColor=ParamColor("Bearish wave colour", colorRed);
BearTColor=ParamColor("Bearish trend colour", colorBrown);
// set AB's Peak/Trough percentage selection ratio
ValidDiff=1/Param("Peak ratio", 65, 0,500,5);
for(Bar = startbar; Bar < lastbar; Bar++)
{
// Build Peak and Trough arrays
P1 = Peak(H, validdiff, 1);
P1Idx = Bar - PeakBars(H, ValidDiff, 1);
P2 = Peak(H, validdiff, 2);
P2Idx = Bar - PeakBars(H, ValidDiff, 2);
T1 = Trough(L, validdiff, 1);
T1Idx = Bar - TroughBars(L, ValidDiff, 1);
T2 = Trough(Low, validdiff, 2);
T2Idx = Bar - TroughBars(L, ValidDiff, 2);
/* Test for a WolfeWave Bullish setup
*
* \ 2 + EPA
* \ Peak A is P2 / |
* \ /\ 4 / |
* \ / \ Peak C is P1 / |
* \ / \ /\ / |
* \ / \ / \ / |
* \/ \ / \ / |
* Trough X is T2 \ / \ / |
* 1 \ / \ / |
* \/ \ / |
* Trough B is T1 \/ |
* 3 5-D ETA
* Lines
* 1 - 4 = EPA
* 2 - 4 +
* 1 - 3 = ETA convergence
*/
if(BullPlot)
{
// are the peaks and troughs in the correct timewise order?
PTValid = (P1Idx[Bar] > T1Idx[Bar]) AND (T1Idx[Bar] > P2Idx[Bar]) AND (P2Idx[Bar] > T2Idx[Bar]);
// are the peaks and troughs hi's and lo's correct relatively?
HLValid = (P1[Bar] < P2[Bar]) AND (T1[Bar] < T2[Bar]) AND (P1[Bar] > T1[Bar]);
if(PTValid AND HLValid){
// Bareish Wolfewave found. Draw pattern.
PlotXA = LineArray(T2Idx[Bar], T2[Bar], P2Idx[Bar], P2[Bar]);
Plot(PlotXA, "", BullWColor, styleLine|styleThick);
PlotAB = LineArray(P2Idx[Bar], P2[Bar], T1Idx[Bar], T1[Bar]);
Plot(PlotAB, "", BullWColor, styleLine|styleThick );
PlotBC = LineArray(T1Idx[Bar], T1[Bar], P1Idx[Bar], P1[Bar]);
Plot(PlotBC, "", BullWColor, styleLine|styleThick);
if(BullGuide){
PlotAC = LineArray(P2Idx[Bar], P2[Bar], P1Idx[Bar], P1[Bar],extendBull);
Plot(PlotAC, "", BullTColor, styleLine|styleThick);
PlotXB = LineArray(T2Idx[Bar], T2[Bar], T1Idx[Bar], T1[Bar],extendBull);
Plot(PlotXB, "", BullTColor, styleLine|styleThick);
PlotXC = LineArray(T2Idx[Bar], T2[Bar], P1Idx[Bar], P1[Bar],extendBull);
Plot(PlotXC, "", BullTColor, styleLine|styleThick);
}
}
} // fi if(BullPlot)
/* Test for a WolfeWave Bearish setup
*
* 3 5-D ETA
* Peak B is P1 /\ |
* /\ / \ |
* 1 / \ / \ |
* Peak X is P2 / \ / \ |
* /\ / \ / \ |
* / \ / \ / \ |
* / \ / \/ \ |
* / \ / Trough C is T1 \ |
* / \/ 4 \ |
* / Trough A is T2 \ |
* / 2 + EPA
*
*
* Lines
* 1 - 4 = EPA
* 2 - 4 +
* 1 - 3 = ETA convergence
*/
if(BearPlot)
{
// are the peaks and troughs in the correct timewise order?
PTValid = (T1Idx[Bar] > P1Idx[Bar]) AND (P1Idx[Bar] > T2Idx[Bar]) AND (T2Idx[Bar] > P2Idx[Bar]);
// are the peaks and troughs hi's and lo's correct relatively?
HLValid = (P1[Bar] > P2[Bar]) AND (T1[Bar] > T2[Bar]) AND (T1[Bar] < P1[Bar]);
if(PTValid AND HLValid){
// Bullish Wolfewave found. Draw patterns
PlotXA = LineArray(P2Idx[Bar], P2[Bar], T2Idx[Bar], T2[Bar]);
Plot(PlotXA, "", BearWColor, styleLine|styleThick);
PlotAB = LineArray(T2Idx[Bar], T2[Bar], P1Idx[Bar], P1[Bar]);
Plot(PlotAB, "", BearWColor, styleLine|styleThick );
PlotBC = LineArray(P1Idx[Bar], P1[Bar], T1Idx[Bar], T1[Bar]);
Plot(PlotBC, "", BearWColor, styleLine|styleThick);
if(BearGuide){
PlotAC = LineArray(T2Idx[Bar], T2[Bar], T1Idx[Bar], T1[Bar],extendBear);
Plot(PlotAC, "", BearTColor, styleLine|styleThick);
PlotXB = LineArray(P2Idx[Bar], P2[Bar], P1Idx[Bar], P1[Bar],extendBear);
Plot(PlotXB, "", BearTColor, styleLine|styleThick);
PlotXC = LineArray(P2Idx[Bar], P2[Bar], T1Idx[Bar], T1[Bar],extendBear);
Plot(PlotXC, "", BearTColor, styleLine|styleThick);
}
}
} // fi if(BearPlot)
} // fi for(Bar =
_N(Title="Wolfe Wave Patterns"); 5 comments
Leave Comment
Please login here to leave a comment.
Cane we use this for Intra day?. If so how?
kindly elobarate
Regards
Subrahmanyam
kindly visit the web site
http://www.wolfewave.com/what_is_the_wolfewave.htm
runtime error at:
if(BullPlot)
{
// are the peaks and troughs in the correct timewise order?
PTValid = (P1Idx[Bar] > T1Idx[Bar]) AND (T1Idx[Bar] > P2Idx[Bar]) AND (P2Idx[Bar] > T2Idx[Bar]);
may it need include afl or dll file.
please help, thanks
still waiting foe a good wolfe wave identifier
you can find wolfe wave amibroker formula on the video in the youtube link below
https://youtu.be/l1rDkD5U1tY