Welcome to the Traders Laboratory Forums.
Automated Trading Black box systems, strategy automation, algorithmic trading, etc...

Reply
Old 05-29-2010, 07:17 PM   #1

Join Date: Apr 2009
Location: guadalajara
Posts: 6
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



NumericSeries and Arrays in Easylanguage

I am trying to write a multitimeframe system in Easylanguage. I basically have a higher timeframe system that works but would like to add some lower time frame logic to it to make it better.

I have created arrays for the higher time frame o h l and c. When I try to use xaverage on those arrays, Multicharts complains of incorrect argument type. I assume this is because the Xaverage requires NumericSeries as input and not an array.

How do I get around this?

Last edited by nsvv; 05-29-2010 at 07:29 PM.
nsvv is offline  
Reply With Quote
Old 05-29-2010, 09:23 PM   #2

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: NumericSeries and Arrays in Easylanguage

xaverage works on a "series" of data.

eg.
xaverage(close, 20) is the exponential average of the following data series:

close, close[1], close[2], close[3].... close[19]


you can replace "close" with any data series you want,
eg.
High, High[1], High[2]....,
medianprice, medianprice[1], medianprice[2]....,
pivot, pivot[1], pivot[2]... ,
etc.

...so long as you can wrangle a series of data into xaverage... you will be ok
__________________


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

Last edited by Tams; 05-29-2010 at 09:42 PM.
Tams is offline  
Reply With Quote
Old 05-29-2010, 09:56 PM   #3

Join Date: Apr 2009
Location: guadalajara
Posts: 6
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



Re: NumericSeries and Arrays in Easylanguage

Yes, as long as the data is in DataSeries form it works of course.

Now, how do I convert an array to a DataSeries so that I can use xaverage?

Or maybe making my own version of the Xaverage function so that it accepts arrays instead of Dataseries is the only solution? This wouldnt be as good since I would probably have to rewrite other indicators to accept arrays too.

I tried the easier sounding solution of adding the same instrument in different higher time frame and using Data2 to access it but signals dont match at all. Does multicharts expand the higher time frame to match the lower one?
nsvv is offline  
Reply With Quote
Old 05-29-2010, 10:14 PM   #4

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: NumericSeries and Arrays in Easylanguage

Quote:
Originally Posted by nsvv »
....
Now, how do I convert an array to a DataSeries so that I can use xaverage?
...
you haven't described your array.
you are talking in general terms;
you will need to give specific detail to get specific answers.
__________________


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

Last edited by Tams; 05-29-2010 at 10:24 PM.
Tams is offline  
Reply With Quote
Old 05-29-2010, 10:33 PM   #5

Join Date: Apr 2009
Location: guadalajara
Posts: 6
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



Re: NumericSeries and Arrays in Easylanguage

it is just a regular static array

I collect closing prices to it like this:

if hour>hour[1] then
begin
for value1=0 to 14 begin
htfClose[i+1]=htfClose[i];
end;
htfClose[0]=Close;
end;
nsvv is offline  
Reply With Quote
Old 05-29-2010, 10:52 PM   #6

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: NumericSeries and Arrays in Easylanguage

you should use code tags. That's the # key on the top of the message window.

Tagged code looks like this:

Code:
if hour>hour[1] then
begin
    for value1=0 to 14 
    begin
        htfClose[i+1]=htfClose[i];
    end;

    htfClose[0]=Close;

end;
__________________


..........This is a terribly difficult question to answer. The only satisfactory answer is: "It depends"...
Tams is offline  
Reply With Quote
Old 05-29-2010, 10:57 PM   #7

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: NumericSeries and Arrays in Easylanguage

Quote:
Originally Posted by nsvv »
it is just a regular static array
...
average is easy...
just get the array_sum and divide it by the number of elements.

xaverage is a bit tricky,
you have to add the array elements one by one and then do the calculation the long way.

with the speed of modern computer, it is not an unsurmountable task.
__________________


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

Last edited by Tams; 05-29-2010 at 11:03 PM.
Tams is offline  
Reply With Quote
Old 05-29-2010, 11:59 PM   #8

Join Date: Apr 2009
Location: guadalajara
Posts: 6
Ignore this user

Thanks: 0
Thanked 0 Times in 0 Posts



Re: NumericSeries and Arrays in Easylanguage

it is even easier than that, just use the built in average_a function.

I tried making a XAverage_a function but there is probably something wrong in it since no trades are generated. If anyone can find the fault, I would be grateful.

Code:
inputs: 
	PriceValue[M](numericArrayRef), 
	Len( numericsimple ) ;                                             

variables: 
	factor( 2 / ( Len + 1 ) ) ;

	XAverage_A = PriceValue[M];

       for value1 = M-1 to 0 begin
	XAverage_A = XAverage_A + factor * ( PriceValue[value1] - XAverage_A ) ;
	end;
nsvv is offline  
Reply With Quote

Reply

Tags
array, moving average

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


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