[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Wolf Wave.



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/