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/
__,_._,___
|