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

RE: I think I have to change my opinion from bad precision to buggy calculations


  • To: "'omega-list@xxxxxxxxxx>
  • Subject: RE: I think I have to change my opinion from bad precision to buggy calculations
  • From: Mark Jurik <mark@xxxxxxxxxxxx>
  • Date: Wed, 18 Jul 2001 08:28:00 -0700

PureBytes Links

Trading Reference Links

The following approach can be simplified with identical results....


BEFORE

       If MinusDM >= PlusDM Then 
           PlusDM = 0  
       else if absvalue(MinusDM-PlusDM)<=0.000001 then
           PlusDM=0;


AFTER

       If MinusDM >= PlusDM - 0.000001 Then 
           PlusDM = 0 ;



In general, try these formats:

	If x <= y + 0.000001 then ....

	If x >= y - 0.000001 then ....


- mark jurik



----------
From: 	Bengtsson, Mats
Sent: 	Tuesday, July 17, 2001 11:04 AM
To: 	Jack Griffin; omega-list@xxxxxxxxxx
Subject: 	RE: I think I have to change my opinion from bad precision to buggy c  alculations

I can not rewrite the functions since they are write protected, so I can not
help as well as you suggest. What I have done is to create copies of them,
giving them similar names and calling them instead. Below is the changed
code for dmiplus, and the changes to dmiminus is similar. I have not yet
tested if 0.000001 is the best value. It finds a number of occurances, but
maybe 0.00001 would be better, normally prices never have data below 0.001
so it should be both enough and safe to use.

As you can see, the only change I have done is to add a test after the test
"if minusdm>=plusdm" saying "else if absvalue(MinusDM-PlusDM)<=0.000001
then" and setting the value to zero. (the change need to be written in two
places in both plusdmi and minusdmi)

{*******************************************************************
Description: Directional Movement Index Plus
Provided By: Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: Length(NumericSimple) ;
Variables: Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0),
MinusDM(0);

If CurrentBar = 1 Then Begin
	MyRange = Length;
	MIBDMIPlus = 0;
	PlusDM14 = 0;
	TRange = 0;
	For Counter = 0 To MyRange - 1 Begin
		If High[Counter] - High[Counter+1] < 0 Then 
			PlusDM = 0 
		Else 
			PlusDM = High[Counter] - High[Counter+1];
		If Low[Counter+1] - Low[Counter] < 0 Then 
			MinusDM = 0 
		Else 
			MinusDM = Low[Counter+1] - Low[Counter];
		If MinusDM >= PlusDM Then 
			PlusDM = 0  
	   else if absvalue(MinusDM-PlusDM)<=0.000001 then
			PlusDM=0;
		{MinusDM not set to 0 because it is not used}
		TRange = TRange + TrueRange[Counter];
		PlusDM14 = PlusDM14 + PlusDM;
	End;
	If TRange <> 0 Then 
		MIBDMIPlus = 100 * PlusDM14 / TRange
	Else 
		MIBDMIPlus = 0 ;
End
Else 
	If CurrentBar > 1 Then Begin
		If High[0] - High[1] < 0 Then 
			PlusDM = 0 
		Else 
			PlusDM = High[0] - High[1];
		If Low [1] - Low [0] < 0 Then 
			MinusDM = 0 
		Else 
			MinusDM = Low[1] - Low[0];
		If MinusDM >= PlusDM Then 
			PlusDM = 0  
	   else if absvalue(MinusDM-PlusDM)<=0.000001 then begin
			PlusDM=0;
		End;
		{MinusDM not set to 0 because it is not used}
		If MyRange > 0 Then Begin
			TRange = TRange[1] - (TRange[1] / MyRange) +
TrueRange;
			PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) +
PlusDM;
		End;
		If TRange <> 0 Then 
			MIBDMIPlus = 100 * PlusDM14 / TRange
		Else 
			MIBDMIPlus = 0 ;
	End ;

> -----Original Message-----
> From: Jack Griffin [mailto:jack_2231@xxxxxxxxx] 
> Sent: den 17 juli 2001 14:03
> To: Bengtsson, Mats; pierre.orphelin@xxxxxxxxxxxxxx; 
> omega-list@xxxxxxxxxx
> Subject: RE: I think I have to change my opinion from bad 
> precision to bug gy c alculations
> 
> 
> --- "Bengtsson, Mats" <mats.bengtsson@xxxxxxxx> wrote:
> > I have found a bug. I have reported the bug. I have
> > made clear examples of
> 
> Hey Mats, when I find bugs in functions and indicators
> I often post the debugged code.  After you are done
> writing debugged versions (using absvalue(x-y)<.001)
> of the associated functions and indicators please post
> your debugged DMI, etc..  I am sure many of us would
> like copies.  Thanks.
> 
> Jack
> 
> 
> 


This message contains information that may be privileged or confidential and is the property of the Cap Gemini Ernst & Young Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.