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

RE: [amibroker] Re: DMI problem



PureBytes Links

Trading Reference Links




Thanks 
Tomasz,
I see 
I was on the right trail but your solution is  more elegant. I had 
completely forgotten the NZ function.
 
Regards, 
Jayson 
<FONT face=Tahoma 
size=2>-----Original Message-----From: Tomasz Janeczko 
[mailto:amibroker@xxxxxx]Sent: Thursday, August 07, 2003 4:06 
PMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re: [amibroker] 
Re: DMI problem
Hello,
 
It is simple. Without this small constant you can get Division 
by ZERO errors if there is no change in prices for 10 days
or if changes sum up to zero.
 
To prevent this you may also use Nz function in:
 
CMO20=DEMA<FONT 
size=2>(100 * Nz(( CMO20_1 -CMO20_2) /( 
CMO20_1+CMO20_2)),3<FONT 
color=#0000ff>);
 
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  Jayson 
  
  To: <A 
  href="" 
  title=amibroker@xxxxxxxxxxxxxxx>amibroker@xxxxxxxxxxxxxxx 
  Sent: Thursday, August 07, 2003 4:41 
  PM
  Subject: RE: [amibroker] Re: DMI 
  problem
  
  <SPAN 
  class=093321914-07082003>Hi Jayson,Maybe Tomasz can crack 
  this?Yuki
  <SPAN 
  class=093321914-07082003> 
  <SPAN 
  class=093321914-07082003>Perhaps Jayson can.....
  <SPAN 
  class=093321914-07082003> 
  The 
  problem appears to be in the iif statements....... <FONT 
  size=2>IIf( C<FONT 
  size=2> > Ref( <FONT 
  size=2>C, -1 ) 
  , ( C - <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) ) ,0 ) ,<FONT 
  size=2>5 ) 
  
  by 
  changing 0 to a very small number greater than 0 (.00001) the problem solves 
  itself...... If you reach the same conclusion I will update the 
  library....
  <SPAN 
  class=093321914-07082003> 
  <SPAN 
  class=093321914-07082003>jayson
  <SPAN 
  class=093321914-07082003> 
  <SPAN 
  class=093321914-07082003> 
  <SPAN 
  class=093321914-07082003> 
  <SPAN 
  class=093321914-07082003> 
  //Dynamic Momentum Index Tushar Chande Translated to 
  AFL by Jayson Casavant
  //Cmo5 formula
   
  CMO5_1=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C > <FONT 
  size=2>Ref( C<FONT 
  size=2>, -1 ) , ( <FONT 
  size=2>C - Ref<FONT 
  size=2>( C ,-<FONT 
  size=2>1 ) ) ,.00001 ) ,5<FONT 
  color=#282828 size=2> ) ;
  CMO5_2=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C < <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) , ( <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) - <FONT 
  size=2>C ) ,.00001 ) ,<FONT 
  size=2>5 
  );
  CMO5=DEMA(<FONT 
  size=2>100 * (( CMO5_1 -CMO5_2) /( 
  CMO5_1+CMO5_2)),3<FONT color=#282828 
  size=2>);
   
  //Cmo10 formula
   
  CMO10_1=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C > <FONT 
  size=2>Ref( C<FONT 
  size=2>, -1 ) , ( <FONT 
  size=2>C - Ref<FONT 
  size=2>( C ,-<FONT 
  size=2>1 ) ) ,.00001 ) ,10<FONT 
  color=#282828 size=2> ) ;
  CMO10_2=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C < <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) , ( <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) - <FONT 
  size=2>C ) ,.00001 ) ,<FONT 
  size=2>10 
  );
  CMO10=DEMA(<FONT 
  size=2>100 * (( CMO10_1 -CMO10_2) /( 
  CMO10_1+CMO10_2)),3<FONT color=#282828 
  size=2>);
   
  //Cmo20 formula
   
  CMO20_1=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C > <FONT 
  size=2>Ref( C<FONT 
  size=2>, -1 ) , ( <FONT 
  size=2>C - Ref<FONT 
  size=2>( C ,-<FONT 
  size=2>1 ) ) ,.00001 ) ,20<FONT 
  color=#282828 size=2> ) ;
  CMO20_2=Sum( <FONT 
  size=2>IIf( <FONT 
  size=2>C < <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) , ( <FONT 
  size=2>Ref( C<FONT 
  size=2> ,-1 ) - <FONT 
  size=2>C ) ,.00001 ) ,<FONT 
  size=2>20 
  );
  CMO20=DEMA(<FONT 
  size=2>100 * (( CMO20_1 -CMO20_2) /( 
  CMO20_1+CMO20_2)),3<FONT color=#282828 
  size=2>);
  <FONT color=#008000 
  size=2> 
  // dmi formula
   
  dmi=((StDev(<FONT 
  size=2>C,5<FONT 
  size=2>)* CMO5)+(StDev(<FONT 
  size=2>C,10)* 
  CMO10)+(StDev(<FONT 
  size=2>C,20<FONT 
  color=#282828 size=2>)*
  CMO20))/(StDev(<FONT 
  size=2>C,5<FONT 
  size=2>)+StDev(<FONT 
  size=2>C,10<FONT 
  size=2>)+StDev(<FONT 
  size=2>C,20<FONT 
  color=#282828 size=2>));
  pds=Param(<FONT 
  size=2>"Smoothing",3<FONT 
  size=2>,1,<FONT 
  size=2>10,1<FONT 
  color=#282828 size=2>);
  pds1=Param(<FONT 
  size=2>"Trigger Line",5<FONT 
  size=2>,1,<FONT 
  size=2>10,1<FONT color=#282828 
  size=2>);
   
  Plot(<FONT color=#0000ff 
  size=2>EMA(dmi,pds),<FONT 
  color=#ff00ff size=2>"Dynamic Momentum Index"<FONT color=#282828 
  size=2>,colorWhite<FONT 
  color=#282828 size=2>,1<FONT 
  color=#282828 size=2>);
  Plot(<FONT color=#0000ff 
  size=2>MA(dmi,pds1),<FONT 
  color=#ff00ff size=2>"trigger"<FONT color=#282828 
  size=2>,colorYellow<FONT 
  color=#282828 size=2>,1<FONT 
  color=#282828 size=2>);
   
  Buy=Cross<FONT 
  size=2>(EMA(dmi,pds),<FONT 
  size=2>MA<FONT 
  color=#0000ff>(dmi,pds1));<FONT 
  color=#0000ff>
  Sell=<FONT 
  size=2>Cross(MA<FONT 
  size=2>(dmi,pds1),EMA<FONT color=#282828 
  size=2>(dmi,pds));
   
  PlotShapes(<FONT color=#0000ff 
  size=2>IIf(<FONT color=#000000 
  size=2>Buy,<FONT color=#000000 
  size=2>shapeUpArrow,<FONT 
  color=#000000 size=2>shapeNone) 
  ,colorBrightGreen<FONT 
  color=#282828 size=2>);
  PlotShapes(<FONT color=#0000ff 
  size=2>IIf(<FONT color=#000000 
  size=2>Sell,<FONT 
  color=#000000 size=2>shapeDownArrow<FONT color=#282828 
  size=2>,shapeNone<FONT 
  color=#282828 size=2>),<FONT color=#000000 
  size=2>colorRed);<FONT 
  color=#0000ff size=2>
  PlotGrid(<FONT color=#ff00ff 
  size=2>70,<FONT color=#000000 
  size=2>colorRed);<FONT 
  color=#0000ff size=2>
  PlotGrid(<FONT color=#ff00ff 
  size=2>30,<FONT color=#000000 
  size=2>colorBrightGreen);
   
   
   
  <FONT face=Tahoma 
  size=2>-----Original Message-----From: Yuki Taga 
  [mailto:yukitaga@xxxxxxxxxxxxx]Sent: Thursday, August 07, 2003 6:01 
  AMTo: JaysonSubject: Re: [amibroker] Re: DMI 
  problemHi Jayson,Maybe Tomasz can crack 
  this?YukiThursday, August 7, 2003, 12:50:33 AM, you 
  wrote:J> I am just getting back from watching the Tennis Master 
  tournament up inJ> Montreal so am a bit bogged down here. The code I 
  posted was simplyJ> translated from MS....... I will try to figure it 
  out later in the day. IJ> qouls have guessed that DT was on the right 
  path I will experiment with theJ> smoothing.......J> 
  Regards,J> JaysonJ> -----Original Message-----J> From: 
  DIMITRIS TSOKAKIS [mailto:TSOKAKIS@xxxxxxxxx]J> Sent: Wednesday, August 
  06, 2003 7:15 AMJ> To: amibroker@xxxxxxxxxxxxxxxJ> Subject: 
  [amibroker] Re: DMI problemJ> It is strange.J> The huge 
  dmi inJ> dmi=((StDev(C,5)* CMO5)+(StDev(C,10)* 
  CMO10)+(StDev(C,20)*CMO20))/J> 
  (StDev(C,5)+StDev(C,10)+StDev(C,20));J> is not because of some very 
  small denominator [usual reason], but isJ> due to a huge 
  numerator.J> In this numerator, the huge is the CMO5 and inJ> 
  CMO5=DEMA(100 * (( CMO5_1 -CMO5_2) /( CMO5_1+CMO5_2)),3);J> we do not 
  have very small denominator, the whole 100 * (( CMO5_1 -J> CMO5_2) /( 
  CMO5_1+CMO5_2)) is cool, the DEMA(...,3) makes the hugeJ> 
  value.J> You should cancel CMO5 from the formula, or limit it in the 
  [-J> 100,100] interval.J> So, replace the first lines 
  withJ> //Cmo5 formulaJ> CMO5_1=Sum( IIf( C > Ref( C, -1 ) , ( 
  C - Ref( C ,-1 ) ) ,0 ) ,5 ) ;J> CMO5_2=Sum( IIf( C < Ref( C ,-1 ) , 
  ( Ref( C ,-1 ) - C ) ,0 ) ,5 );J> CMO5=DEMA(100 * (( CMO5_1 -CMO5_2) /( 
  CMO5_1+CMO5_2)),3);J> CMO5=IIf(CMO5>100,99,CMO5);J> 
  CMO5=IIf(CMO5<-100,-99,CMO5);J> //Cmo10 formulaJ> 
  CMO10_1=Sum( IIf( C > Ref( C, -1 ) , ( C - Ref( C ,-1 ) ) ,0 ) ,10 ) 
  ;J> CMO10_2=Sum( IIf( C < Ref( C ,-1 ) , ( Ref( C ,-1 ) - C ) ,0 ) 
  ,10 );J> CMO10=DEMA(100 * (( CMO10_1 -CMO10_2) /( 
  CMO10_1+CMO10_2)),3);J> CMO10=IIf(CMO10>100,99,CMO10);J> 
  CMO10=IIf(CMO10<-100,-99,CMO10);J> //Cmo20 formulaJ> 
  CMO20_1=Sum( IIf( C > Ref( C, -1 ) , ( C - Ref( C ,-1 ) ) ,0 ) ,20 ) 
  ;J> CMO20_2=Sum( IIf( C < Ref( C ,-1 ) , ( Ref( C ,-1 ) - C ) ,0 ) 
  ,20 );J> CMO20=DEMA(100 * (( CMO20_1 -CMO20_2) /( 
  CMO20_1+CMO20_2)),3);J> CMO20=IIf(CMO20>100,99,CMO20);J> 
  CMO20=IIf(CMO20<-100,-99,CMO20);J> Now we have just a few 
  problems with 8308, 5406 and 1861.J> I noticed that there are also some 
  EMA(dmi,pds) {empty} values !!!!!!!J> I give up, Jason should look at 
  the formula again !!!J> Dimitris TsokakisJ> --- In 
  amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx>J> 
  wrote:>> I run the same for the ^N225 database and [!!] many 
  examplesJ> appeared.>> Let me search please and 
  revert.>> Dimitris Tsokakis>> --- In 
  amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"J> 
  <TSOKAKIS@xxxx>>> wrote:>> > Yuki,>> 
  > I added to your formula>> > Filter=1;>> > 
  AddColumn(Highest(EMA(DMI,PDS)),"DMIh");>> > 
  AddColumn(Lowest(EMA(DMI,PDS)),"DMIl");>> > 
  AddColumn(Highest(MA(DMI,PDS1)),"TRIGGERh");>> > 
  AddColumn(Lowest(MA(DMI,PDS1)),"TRIGGERl");>> > and explored for 
  the n=1 last quotations the whole N100 database>> from>> 
  > Jan2000 till now.>> > No value was found out of the 
  [-100,100] range.>> > [101*900 different bars]>> > 
  Dimitris Tsokakis>> > --- In amibroker@xxxxxxxxxxxxxxx, Yuki Taga 
  <yukitaga@xxxx> wrote:>> > > I attach two charts, both 
  displaying DMI as described by Jason:>> > >>> > 
  >  //Dynamic Momentum Index Tushar Chande Translated to AFL 
  by>> Jayson>> > Casavant>> > > //Cmo5 
  formula>> > > CMO5_1=Sum( IIf( C > Ref( C, -1 ) , ( C - 
  Ref( C ,->> 1 ) ) ,0 ) ,5 ) ;>> > > CMO5_2=Sum( IIf( 
  C < Ref( C ,-1 ) , ( Ref( C ,-1 ) ->> C )  ,0 ) ,5 
  );>> > > CMO5=DEMA(100 * (( CMO5_1 -CMO5_2)  /( 
  CMO5_1+CMO5_2)),3);>> > >>> > > //Cmo10 
  formula>> > > CMO10_1=Sum( IIf( C > Ref( C, -1 ) , ( C - 
  Ref( C ,->> > 1 ) ) ,0 ) ,10 ) ;>> > > 
  CMO10_2=Sum( IIf( C < Ref( C ,-1 ) , ( Ref( C ,-1 ) ->> > C 
  )  ,0 ) ,10 );>> > > CMO10=DEMA(100 * (( CMO10_1 
  -CMO10_2)  /( CMO10_1+CMO10_2)),3);>> > >>> 
  > > //Cmo20 formula>> > > CMO20_1=Sum( IIf( C > Ref( 
  C, -1 ) , ( C - Ref( C ,->> > 1 ) ) ,0 ) ,20 ) ;>> > 
  > CMO20_2=Sum( IIf( C < Ref( C ,-1 ) , ( Ref( C ,-1 ) ->> > 
  C )  ,0 ) ,20 );>> > > CMO20=DEMA(100 * (( CMO20_1 
  -CMO20_2)  /( CMO20_1+CMO20_2)),3);>> > >>> 
  > > // dmi formula>> > > dmi=((StDev(C,5)* 
  CMO5)+(StDev(C,10)* CMO10)+(StDev(C,20)*>> > > 
  CMO20))/(StDev(C,5)+StDev(C,10)+StDev(C,20));>> > > 
  pds=Param("Smoothing",3,1,10,1);>> > > pds1=Param("Trigger 
  Line",5,1,10,1);>> > >>> > > 
  Plot(EMA(dmi,pds),"Dynamic Momentum Index",colorDarkGreen,1);>> > 
  > Plot(MA(dmi,pds1),"trigger",colorRed,1);>> > 
  >>> > > Buy=Cross(EMA(dmi,pds),MA(dmi,pds1));// AND 
  Trend;>> > > Sell=Cross(MA(dmi,pds1),EMA(dmi,pds));// AND NOT 
  (Trend);>> > > PlotShapes(IIf(Buy,shapeUpArrow,shapeNone) 
  ,colorBrightGreen);>> > > 
  PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed);>> > 
  >>> > > What is the difference in these two DMI 
  plots?  I simplyJ> scrolled>> > the>> > 
  > screen one date to the right.>> > >>> > > 
  I have this problem with several stocks, but the date that the>> 
  > > indicator goes haywire on is not the same for any of them.  
  IJ> also>> > > cannot find anything wrong with the data 
  on the date that the>> > > indicator goes nuts.  It is 
  data that is right in line with both>> > > price and volume, 
  not extraordinary in any way.  But theJ> indicator>> 
  > > becomes worthless, suddenly.>> > >>> > 
  > Can anyone clue me in here?>> > >>> > > 
  YukiSend BUG REPORTS to bugs@xxxxxxxxxxxxxSend 
  SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 
  Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 
Send 
BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
suggest@xxxxxxxxxxxxx-----------------------------------------Post 
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
group FAQ at: <A 
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Your use of Yahoo! Groups is subject to the <A 
href="">Yahoo! Terms of Service. 







Yahoo! Groups Sponsor


  ADVERTISEMENT 









Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.