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

Re: Fw: [amibroker] Ehler's SineWave Indicator Code



PureBytes Links

Trading Reference Links

Joe,
Here's a simpler version I picked up somewhere? but it works fine.

//Ehlers Sinewave Indicator

price = (H + L) / 2;
Plot(sbSine(price),"Sine",4,1);
Plot(sbLeadSine,"Lead Sine",1,1);
//Plot(sbSine(price),"Sine",colorBlue,styleHistogram);

Dcik H.


GraphXSpace = 3;

Title = "{{NAME}} - {{INTERVAL}} {{DATE}} - EHLERS : {{VALUES}}"; 

--- In amibroker@xxxxxxxxxxxxxxx, "Joe Landry" <jelandry@xxxx> wrote:
>
> 
> Here's a note from a forum member with the Sinewave Indicator.  As you 
> can tell his name is Corey Saxe and he maybe still a member of this
forum
> but posts infrequently.  
> 
> There's been a lot of published material in the forum and on the AB
site presenting
> AFL versions of Ehler's indicators.
> 
> I was going to lead you to the topics on Purebytes and I must be
'stuck on stupid'
> because I can't pull up anything on searches for Ehlers or sinewave
or Rocket Science? 
> Maybe you can have more success than I've had.
> 
> Best regards
> JOE 
>   ----- Original Message ----- 
>   From: Corey Saxe 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Monday, September 12, 2005 10:08 PM
>   Subject: Re: [amibroker] Ehler's SineWave Indicator Code check
form AB GURU please.
> 
> 
>   Hi Joe,
> 
>   I dug it up. Hadn't worked on it for the past two years. Spent
lots of time trying to duplicate the signals given by Stefan
Sbondorovitch's dll but discovered that because of the recursive
moving averages used within the formula, that unless I knew exactly
how many bars were used in his calculation, it probably would never be
an exact match anyway. I think that I did get pretty close. I believe
that the sine wave generator code is your creation.
> 
>   There has been a lot of water under the bridge since I wrote this,
so if you see anything that I did wrong from the EasyLanguage
conversion, let me know.
>   Also, Ehlers has other older, slightly different versions of the
Sinewave out there.
> 
>   My formula has lots of extra stuff in it for debugging and it runs
slow, so don't think that your computer locked up.
> 
>   I tried mm's code but all I got was two flat lines. He also inputs
degrees into AB functions that require radians.
> 
>   If Yahoo doesn't take attachments, here are the gory details:
> 
>   /* Ehlers Sinewave Indicator
>   by Corey Saxe ver 20032005
>   From Ehlers book: Cybernetic Analysis for Stocks and Futures, p. 154
>   */
>   SetBarsRequired(1000000,1000000);
>   price=(H+L)/2;
>   alpha=Param("alpha",0.07,0.01,1,0.01);
> 
>   pi=4*atan(1); //have a piece...
>   RTD=180/pi; //radians to degrees
>   DTR=1/RTD; //degrees to radians
>  
SWcount=0;SWGate=0;Jcount=0;SWCycle=0;I1=0;Q1=0;InstPeriod=0;DeltaPhase=0;MedianDelta=0;DC=0;Value1=0;
>  
DCPeriod=0;RealPart=0;ImagPart=0;DCPhase=0;MedianDelta=0;Cycle=0;RealPart
= 0; ImagPart = 0;
>   // Sine wave
generator-----------------------------------------------------------
>   freq =Param("Freq",15,6,50,1);
>   SWcycle = sin( Cum(1)*(360*DTR)/freq )+2;
>   Price = IIf(Param("Prices or test",1,1,2,1)==1,Price,SWCycle);
//Select sinewave test pattern or real prices
>   //End Sine wave
generator--------------------------------------------------------
> 
>   for(i=36;i<BarCount;i++)//37
>   {
>   Smooth[i]=(price[i]+2*price[i-1]+2*price[i-2]+price[i-3])/6;
>   Cycle[i] = ((1-0.5*alpha[i])^2)*(Smooth[i] - 2*Smooth[i-1] +
Smooth[i-2]) + 2*(1-alpha[i])*Cycle[i-1] - ((1-alpha[i])^2)*Cycle[i-2];
> 
>   //Hilbert Transform}
>   Q1[i] = (0.0962*Cycle[i] + 0.5769*Cycle[i-2] - 0.5769*Cycle[i-4] -
0.0962*Cycle[i-6]) * (0.5 + 0.08*InstPeriod[i-1]);
>   I1[i] = Cycle[i-3];
>   if (Q1[i] != 0 AND Q1[i-1] != 0) DeltaPhase[i] = (I1[i]/Q1[i] -
I1[i-1]/Q1[i-1]) / (1 + I1[i]*I1[i-1]/(Q1[i]*Q1[i-1]));
>   if (DeltaPhase[i] < 0.1) DeltaPhase[i] = 0.1;
>   if (DeltaPhase[i] > 1.1) DeltaPhase[i] = 1.1;
>   MedianDelta=Median(DeltaPhase , 5);
>   //zzz[i]=Mediandelta[i]; OK
>   //zzz=Mediandelta[i]; NOT OK
>   if (MedianDelta[i] == 0) DC[i]=15;
>   else 
>   DC[i] = 2*pi/MedianDelta[i] + 0.5;//DC[i] is OK
>   InstPeriod[i] = 0.33*DC[i] + 0.67*InstPeriod[i-1];
>   Value1[i] = 0.15*InstPeriod[i] + 0.85*Value1[i-1];
>   //Compute Dominant Cycle Phase
>   DCPeriod[i] = int(Value1[i]);
>   for (count=0; count < DCPeriod[i]-1; Count++)//DCPeriod-1 
>   {
>   RealPart[i] = RealPart[i] + sin(DTR*(360*count / DCPeriod[i])) *
Cycle[i-count];
>   ImagPart[i] = ImagPart[i] + cos(DTR*(360*count / DCPeriod[i])) *
Cycle[i-count];
>   }
> 
>   // Code to prevent TS arctan > infinity
>   if (abs(ImagPart[i]) > 0.000001) DCPhase[i] =
atan(RealPart[i]/ImagPart[i]);
>   if (abs(ImagPart[i]) <= 0.000001) DCPhase[i] = (pi/2) *
sign(RealPart[i]);
> 
>   DCPhase[i] = DCPhase[i] + (pi/2);//90
>   if (ImagPart[i] < 0) DCPhase[i] = DCPhase[i] + pi;// add 180
>   if (DCPhase[i] > (7*pi/4)) DCPhase[i] = DCPhase[i] - (2*pi);// sub 360
>   }
>   Sine = sin(DCPhase);
>   LeadSine = sin(DCPhase+(pi/4));
>   A1=Cross(sine,Leadsine);
>   A2= Cross(Leadsine,sine);
>   GraphXSpace=5;
>   Plot(Sine,"Sine",colorRed,1);Plot(LeadSine,"LeadSine",colorGreen,1);
>  
//Plot(price,"",colorYellow,24|styleNoLabel);Plot(price,"Price",colorBlue,1|styleNoLabel);
>   //Plot(A1 OR A2,"Grn-Trough
Red-Peak",IIf(A1,colorRed,IIf(A2,colorGreen,Null)),2|styleOwnScale|styleNoLabel);
>   //Plot(cycle,"cycle",3,1);
>   //Plot(smooth,"smooth",0,1);
>   //Plot(test,"dcp",2,8);Plot(test1,"dcp1",1,8);
>   //Plot(dcperiod,"DCPeriod",0,1);Plot(Count,"count",1,1);
>   //Plot(DC,"DC",2,1);
>   //Plot(realpart,"RP",0,1);Plot(imagpart,"IP",1,1);
>   //Plot(alpha,"alpha",2,1);
> 
>   ----- Original Message ----- 
>     From: Joe Landry 
>     To: amibroker@xxxxxxxxxxxxxxx 
>     Sent: Monday, September 12, 2005 5:40 PM
>     Subject: Re: [amibroker] Ehler's SineWave Indicator Code check
form AB GURU please.
> 
> 
>     Hello Corey Saxe - are you on line?  
> 
>     Moni - 
>     Corey wrote a version of it and let's see if he's still on the forum
>     and if you get his copy then you can compare your code with his.  
> 
>     It may well be in the AFL area in Amibroker or the AB Forum
files area. 
> 
>     JOE 
> 
> 
> 
>   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 other support material please check also:
>   http://www.amibroker.com/support.html
> 
> 
> 
> 
> 
>   SPONSORED LINKS Investment management software  Real estate
investment software  Investment property software  
>         Software support  Real estate investment analysis software 
Investment software  
> 
> 
>
------------------------------------------------------------------------------
>   YAHOO! GROUPS LINKS 
> 
>     a..  Visit your group "amibroker" on the web.
>       
>     b..  To unsubscribe from this group, send an email to:
>      amibroker-unsubscribe@xxxxxxxxxxxxxxx
>       
>     c..  Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service. 
> 
> 
>
------------------------------------------------------------------------------
>






------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

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 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/

<*> 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/