Thanks Mike. You're right. There is an error
especially on this line:
TD3 = IIf( Sd = 1 AND H > Lhv, 1, IIf( Sd = -1 AND L < Hlv, -1, 0 )
);
Would you please verify it with the original
Metastock formula for me. Thanks so much for your help.
Tim
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
Sent: Friday, December 04, 2009 3:37 AM
Subject: [amibroker] Re: Dunnigan Trend
Hi,
Taking a quick skim of your code, looks like you've actually got
several errors in there that need fixing first.
Specifically; "=" is
assignment (as in store the value from the right side into the variable on the
left side), whereas "==" is an equivalence test (as in a boolean test of whether
the left side holds the same value as the right side).
So, all your IIf
statements that are using "=" need to be converted to use "==". Same for all
your BarsSince calls.
Then, to set your Buy/Sell logic, use the
equivalence operator again.
e.g. assuming TD3 holds your
signals:
Buy = (TD3 == 1); Sell = (TD3 == -1);
Mike
---
In amibroker@xxxxxxxxxps.com,
"Tim" <timkthung@x..> wrote: > > Dear All, >
> I am new to AB. Would someone please show me how to add the code for a
Buy or Sell signal based on the value of 1 or -1 in following formula. >
> Thanks in advance. > > 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 ); >
__._,_.___
**** 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/
__,_._,___
|