PureBytes Links
Trading Reference Links
|
Here is a version I ran into some time back. It runs very slow
and probably needs to be rewritten.
// 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") - 3;
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);
PlotAB = LineArray(P2Idx[Bar], P2[Bar], T1Idx[Bar], T1[Bar]);
Plot(PlotAB, "", BullWColor, styleLine );
PlotBC = LineArray(T1Idx[Bar], T1[Bar], P1Idx[Bar], P1[Bar]);
Plot(PlotBC, "", BullWColor, styleLine);
if(BullGuide){
PlotAC = LineArray(P2Idx[Bar], P2[Bar], P1Idx[Bar], P1
[Bar],extendBull);
Plot(PlotAC, "", BullTColor, styleLine|styleNoLabel);
PlotXB = LineArray(T2Idx[Bar], T2[Bar], T1Idx[Bar], T1
[Bar],extendBull);
Plot(PlotXB, "", BullTColor, styleLine|styleNoLabel);
PlotXC = LineArray(T2Idx[Bar], T2[Bar], P1Idx[Bar], P1
[Bar],extendBull);
Plot(PlotXC, "", BullTColor, styleLine|styleNoLabel);
}
}
} // 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);
PlotAB = LineArray(T2Idx[Bar], T2[Bar], P1Idx[Bar], P1[Bar]);
Plot(PlotAB, "", BearWColor, styleLine );
PlotBC = LineArray(P1Idx[Bar], P1[Bar], T1Idx[Bar], T1[Bar]);
Plot(PlotBC, "", BearWColor, styleLine);
if(BearGuide){
PlotAC = LineArray(T2Idx[Bar], T2[Bar], T1Idx[Bar], T1
[Bar],extendBear);
Plot(PlotAC, "", BearTColor, styleLine|styleNoLabel);
PlotXB = LineArray(P2Idx[Bar], P2[Bar], P1Idx[Bar], P1
[Bar],extendBear);
Plot(PlotXB, "", BearTColor, styleLine|styleNoLabel);
PlotXC = LineArray(P2Idx[Bar], P2[Bar], T1Idx[Bar], T1
[Bar],extendBear);
Plot(PlotXC, "", BearTColor, styleLine|styleNoLabel);
}
}
} // fi if(BearPlot)
} // fi for(Bar =
_N(Title="");
--- In amibroker@xxxxxxxxxxxxxxx, kailash pareek <johnnypareek@xxx>
wrote:
>
> Hi,
> I wonder if any one have coded "Wolf Wave" in afl.
> If yes, Please share.
> Kailash Pareek
> www.moneybulls.blogspot.com
>
------------------------------------
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|