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

Re: [amibroker] Dunnigan Trend


  • Date: Fri, 4 Dec 2009 20:37:28 +0800
  • From: "Tim" <timkthung@xxxxxxxxxxxx>
  • Subject: Re: [amibroker] Dunnigan Trend

PureBytes Links

Trading Reference Links



Hello all experts out there, I need your input to accomplish this job of setting up the Dunnigan Trend  from Metastock format.
 
The following is written up by Rick, but I think it requires some refinement for it to work smoothly.
 
Will appreciate if anyone can help me.
 
Tim
 
 

//Dunn-Type1
//==========

TD1 = IIf( BarsSince( H > Ref( H, -1 ) AND L > Ref( L, -1 ) ) <
       BarsSince( L < Ref( L, -1 ) AND H < Ref( H, -1 ) ), 1, -1 );

//Dunn-Type2
//==========

TD2 = IIf( BarsSince( ( H > Ref( H, -1 ) AND L > Ref( L, -1 ) ) AND
          ( Ref( H, -1 ) > Ref( H, -2 ) AND Ref( L, -1 ) > Ref( L, -2 ) ) ) <
           BarsSince( ( L < Ref( L, -1 ) AND H < Ref( H, -1 ) ) AND
         ( Ref( L, -1 ) < Ref( L, -2 ) AND Ref( H, -1 ) < Ref( H, -2 ) ) ), 1, -1 );

// Ask to use 1 Day OR 2 Day Swing type}
St = Param( "Short Term Swing Type, 1 or 2 ?", 2, 1, 2, 1 );

//{Call Swing Type Formula}
Sd = IIf( St == 1, TD1, TD2 );

//{Number Of Periods Since Swing Started Up}
Hc = BarsSince( SD = -1 );

//{Number Of Periods Since Swing Started Down}
Lc = BarsSince( SD = 1 );

//{Find Highest Value Of Up Swing}
Hv = IIf( Hc > Lc AND H > Ref( H, -1 ), HighestSince( Hc = 1, H, 1 ) , 0 );

//{Find Lowest Value Of Down Swing}
Lv = IIf( Hc < Lc AND L < Ref( L, -1 ), LowestSince( Lc = 1, L, 1 ) , 0 );

//{Find The Low Of The Highest High}
Hlv = ValueWhen( H = Hv, L, 1 ) ;

//{Find The High Of The Lowest Low}
Lhv = ValueWhen( L = Lv, H, 1 ) ;

//{Calculate AND Plot Trend Direction,
//Note: 1= Uptrend,
//-1= Downtrend}

TD3 = IIf( Sd = 1 AND H > Lhv, 1, IIf( Sd = -1 AND L < Hlv, -1, 0 ) );
TD4 = ValueWhen( TD2 != 0, TD2, 1 );

Original MS format:
==============
 
 
Dunn-Type1
==========
 
TD1:=If(BarsSince(H>Ref(H,-1) AND L>Ref(L,-1)) <
BarsSince(L<Ref(L,-1) AND H<Ref(H,-1)),
{then}1,
{else}-1);
TD1
 

Dunn-Type2
==========
 
TD1:=If(BarsSince((H>Ref(H,-1) AND L>Ref(L,-1))
AND (Ref(H,-1)>Ref(H,-2)
AND Ref(L,-1)>Ref(L,-2))) <
BarsSince((L<Ref(L,-1) AND H<Ref(H,-1))
AND (Ref(L,-1)<Ref(L,-2)
AND Ref(H,-1)<Ref(H,-2))),
{then}1,
{else}-1);
TD1
 
 
 
Dunnigan Trend
==============
 
{Ask to use 1 day or 2 day Swing type}
St:=Input("Short Term Swing Type, 1 or 2 ?",
1,2,2);
{Call Swing Type Formula}
Sd:=If(Round(St)=1,
{then} FmlVar("Dunn-Type1","TD1"),
{else} FmlVar("Dunn-Type2","TD1"));
{Number Of Periods Since Swing Started Up}
Hc:=BarsSince(SD=-1);
{Number Of Periods Since Swing Started Down}
Lc:=BarsSince(SD=1);
{Find Highest Value Of Up Swing}
Hv:=If(Hc>Lc AND H>Ref(H,-1),
{then}HighestSince(1,Hc=1,H),
{else}0);
{Find Lowest Value Of Down Swing}
Lv:=If(Hc<Lc AND L<Ref(L,-1),
{then}LowestSince(1,Lc=1,L),
{else}0);
{Find The Low Of The Highest High}
Hlv:=ValueWhen(1,H=Hv,L);
{Find The High Of The Lowest Low}
Lhv:=ValueWhen(1,L=Lv,H);
{Calculate And Plot Trend Direction,
Note: 1= Uptrend,
-1= Downtrend}
TD2:=If(Sd=1 AND H>Lhv,
{then}1,
{else}If(Sd=-1 AND L<Hlv,
{then}-1,
{else}0));
TD3:=ValueWhen(1,TD2<>0,TD2);
TD3

 


__._,_.___


**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___