Welcome to the Traders Laboratory Forums.
Coding Forum Collaborate, receive help, or discuss coding related issues.

Reply
Old 03-01-2010, 01:04 AM   #1

daedalus's Avatar

Join Date: Jul 2007
Location: Omaha, NE
Posts: 627
Ignore this user

Thanks: 431
Thanked 546 Times in 225 Posts



Easylanguage Displaying Additional Decimal

So, the new build of OEC Trader comes out and works just dandy (well kind of) but one of the things it did change was how it calculated some of my indicators.

This is the easylanguage code for the ADXVMA:
Code:
Inputs:
ADX_Bars(5),
MA_SMA_1_EMA_2_HMA_3(1),
Extra_MA_Length(1),
DownColor(Red),
UpColor(Blue),
ChopColor(Yellow);

Vars:
TR(0),DI_Diff(0), DI_Sum(0),ma(0),pdm(0),mdm(0),pdi(0),mdi(0), DI_Factor(0), VI(0), diff(0), HHV(0), LLV(0),WeightDM(ADX_Bars),
WeightDI(ADX_Bars), WeightDX(ADX_Bars),ChandeEMA(ADX_Bars),out(0),j(0),MAPlot(0); 

   ma=Close;    
   pdm=0;
   mdm=0;
   pdi=0;
   mdi=0;
   out=0;
 
   pdm=0;
   mdm=0;
   if(Close>Close[1]) then pdm=Close-Close[1] else mdm=Close[1]-Close;//This array is not displayed.

   pdm=((WeightDM-1)*pdm[1] + pdm)/WeightDM;//ema.
   mdm=((WeightDM-1)*mdm[1] + mdm)/WeightDM;//ema.

   TR=pdm+mdm;

   if (TR>0) then begin
   	pdi=pdm/TR;
   mdi=mdm/TR; end else begin
   pdi=0;
   mdi=0;
   end;

   pdi=((WeightDI-1)*pdi[1] + pdi)/WeightDI;//ema.
   mdi=((WeightDI-1)*mdi[1] + mdi)/WeightDI;//ema.
   DI_Diff=pdi-mdi;  
   if (DI_Diff<0) then  DI_Diff= -DI_Diff;//Only positive momentum signals are used.
   DI_Sum=pdi+mdi;
   DI_Factor=0;//Zero case, DI_Diff will also be zero when DI_Sum is zero.
   if (DI_Sum>0) then out=DI_Diff/DI_Sum else out=0;

   out=((WeightDX-1)*out[1] + out)/WeightDX;

   if (out>out[1]) then begin 
   	HHV=out;
	LLV=out[1]; end else begin
   HHV=out[1];
   LLV=out;
   end;
   
	
      
for j = 1 to adx_bars-1 begin	
   if(out[j+1]>HHV)then HHV=out[j+1];
   if(out[j+1]<LLV) then LLV=out[j+1];
   end;

   


   diff = HHV - LLV;
   VI=0;
   if (diff>0) then  VI=(out-LLV)/diff;
   
          
   ma=((ChandeEMA-VI)*ma[1]+VI*Close)/ChandeEMA;//Chande VMA formula with ema built in.


 if MA_SMA_1_EMA_2_HMA_3 = 1 then MAPlot = average(ma,Extra_MA_Length);

 if MA_SMA_1_EMA_2_HMA_3 = 2 then MAPlot = xaverage(ma,Extra_MA_Length);

 if MA_SMA_1_EMA_2_HMA_3 = 3 then MAPlot = JTHMA(ma,Extra_MA_Length);
   	
  Plot1(ma,"ADXVMA");
  Plot2(MAPlot,"ExtraMA");

#function jtHMA	 
	 
Inputs: price(NumericSeries), length(NumericSimple); 
Vars: halvedLength(0), sqrRootLength(0); 
 
{ 
 Original equation is: 
 --------------------- 
 waverage(2*waverage(close,period/2)-waverage(close ,period), SquareRoot(Period) 
 Implementation below is more efficient with lengthy Weighted Moving Averages. 
 In addition, the length needs to be converted to an integer value after it is halved and 
 its square root is obtained in order for this to work with Weighted Moving Averaging 
} 
 
if ((ceiling(length / 2.00) - (length / 2.00))  <= 0.50) then 
	halvedLength = ceiling(length / 2.00) 
else 
	halvedLength = floor(length / 2.00); 
 
if ((ceiling(SquareRoot(length)) - SquareRoot(length))  <= 0.50) then 
	sqrRootLength = ceiling(SquareRoot(length)) 
else 
	sqrRootLength = floor(SquareRoot(length)); 
 
Value1 = 2.00 * WAverage(price, halvedLength); 
Value2 = WAverage(price, length); 
Value3 = WAverage((Value1 - Value2), sqrRootLength); 
 
jtHMA = Value3;
Originally the indicator plotted its calculations like this... 89.781, now on the new version of OEC everything is rounded to 89.78. That extra .001 actually plays a key role in how I want to trade so is there any way to force the code to give me an extra decimal spot?

*and i guess I should mention that the attached code is in OEC version... it won't import to TS unless you copy/paste the function and compile it separately...* I was just hoping this was an obvious quick fix that wouldn't require importing it.

Cheers!*
daedalus is offline  
Reply With Quote
Old 03-01-2010, 02:40 AM   #2

zapisy's Avatar

Join Date: Jan 2009
Location: New York
Posts: 79
Ignore this user

Thanks: 5
Thanked 26 Times in 17 Posts



Re: Easylanguage Displaying Additional Decimal

Just go to Format Indicator, then Scaling, and find there "Custom Decimal Places" - chang to 3 and it should work they way you want.

Also, using this word "round", gives you the ability to round the number to 3 decimals in the code:

plot1( round(close, 3));
zapisy is offline  
Reply With Quote
The Following User Says Thank You to zapisy For This Useful Post:
daedalus (03-01-2010)
Old 03-01-2010, 10:53 AM   #3

daedalus's Avatar

Join Date: Jul 2007
Location: Omaha, NE
Posts: 627
Ignore this user

Thanks: 431
Thanked 546 Times in 225 Posts



Re: Easylanguage Displaying Additional Decimal

Thanks for your suggestions... I tried the OEC version of what you said and changed the "Additional Fractional Digits" of the data box to 3 (it was on 1) however it made no change.

I also did the rounding change to the plots and again nothing.

I would just do a numtstr tag and manually change the print.... but OEC doesn't support that.

Anyone know of an OEC supported print function that I can added decimals to?
daedalus is offline  
Reply With Quote
Old 03-06-2010, 11:00 AM   #4
aaa

aaa's Avatar

Join Date: Jun 2008
Location: Switzerland
Posts: 440
Ignore this user

Thanks: 238
Thanked 278 Times in 135 Posts



Re: Easylanguage Displaying Additional Decimal

Quote:
That extra .001 actually plays a key role in how I want to trade so is there any way to force the code to give me an extra decimal spot?
Hi Daedelus
Hope it helps you
Best regards
aaa


Attached Thumbnails
Easylanguage Displaying Additional Decimal-snap3.jpg  
aaa is offline  
Reply With Quote
Old 03-06-2010, 11:34 AM   #5

daedalus's Avatar

Join Date: Jul 2007
Location: Omaha, NE
Posts: 627
Ignore this user

Thanks: 431
Thanked 546 Times in 225 Posts



Re: Easylanguage Displaying Additional Decimal

Thanks for all the helpful ideas gents. Turns out this is a platform bug that is being addressed and they have given me a similar workaround to AAA's suggestion until its fixed.

Cheers!
daedalus is offline  
Reply With Quote
Old 04-01-2010, 11:58 PM   #6

Join Date: Apr 2010
Location: kelly7898
Posts: 1
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



Re: Easylanguage Displaying Additional Decimal

Thank you so much for your post.
_________________
Watch Clash Of The Titans Online Free
kelly7898 is offline  
Reply With Quote
Old 08-07-2011, 05:28 PM   #7

Join Date: Oct 2010
Posts: 1
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



Re: Easylanguage Displaying Additional Decimal

Hi to Everybody,
I would like to have some help with ADXVMA indicator.
1) If somebody can help to have the Metastock version.
2) OR if somebody could "explain - describe step by step the code of the indicator" so i could try to .....
Thanks in advance for any help.
Best Regards
Dimitri
dimitri is offline  
Reply With Quote
Old 08-07-2011, 10:10 PM   #8

Tams's Avatar

Join Date: Sep 2008
Location: Geelong
Posts: 3,590
Ignore this user

Thanks: 2,027
Thanked 1,402 Times in 862 Posts



Re: Easylanguage Displaying Additional Decimal

.......... ..........
__________________


..........This is a terribly difficult question to answer. The only satisfactory answer is: "It depends"...

Last edited by Tams; 08-07-2011 at 10:27 PM.
Tams is offline  
Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Trendline (EasyLanguage) Tams Coding Forum 43 07-09-2011 01:36 AM
Antonio: Please help me on MP for easylanguage nasdaq5048 Market Profile 13 09-23-2010 10:50 AM
Loops (EasyLanguage) Tams Coding Forum 26 11-27-2009 08:23 PM
Some EasyLanguage Help Please jjthetrader Coding Forum 8 06-02-2008 05:20 PM
Using Outside Sources to Build Track Record And/or Make Additional Money... brownsfan019 Market Analysis 24 04-30-2008 08:12 PM

All times are GMT -4. The time now is 05:17 AM.
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
CS to VB integration by DeskLancer
©2006-2011 Traders Laboratory, All Rights Reserved.