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

Reply
Old 04-08-2009, 06:48 AM   #1

Join Date: Dec 2008
Location: athens
Posts: 54
Ignore this user

Thanks: 0
Thanked 4 Times in 3 Posts

Arrays Question

hi

does anybody knows how to assign the value of the last element of each column in an array in the first element of the following column:
array:myarray[9,n](0);
myarray[0,1]=myarray[9,0];
myarray[0,2]=myarray[9,1] etc till n i reached,and have the loop initiating the values assigned in myarray 0 column continuing the loop for the following columns essentially starting from last element of previous column which now is the first element in current column?
also is it possible to sum the values in an array row?
andypap is offline  
Reply With Quote
Old 04-08-2009, 09:38 AM   #2
zdo

Join Date: Nov 2007
Location: boonies
Posts: 1,349
Ignore this user

Thanks: 317
Thanked 355 Times in 256 Posts
Blog Entries: 104

Re: Arrays Question

andypap, Please rephrase your question. Maybe do a 3 element representative example of all the loops and ops you want performed...thx
zdo is offline  
Reply With Quote
Old 04-08-2009, 09:57 AM   #3

Tams's Avatar

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

Thanks: 2,084
Thanked 1,474 Times in 912 Posts

Re: Arrays Question

I always use this method in planning my codes:

1. write out ONE action at a time
2. write out ONE action per sentence

if you can do that, maybe I can help.
Tams is offline  
Reply With Quote
Old 04-08-2009, 11:01 AM   #4

BlowFish's Avatar

Join Date: Mar 2007
Location: In Da House
Posts: 3,292
Ignore this user

Thanks: 129
Thanked 1,054 Times in 702 Posts

Re: Arrays Question

a simple for n = 1 to i loop should do what you require. If you need to manipulate rows and elements use nested loops (n = 1 to I and m = 1 to j. To accumulate sums simply add the elements to a variable within the loop. As others have said I am not sure precisely what you want to do but loops will do it for you. You should be able to use the modulus function if you need an element to 'wrap round'. e.g. for n = 1 to 20 a[n] = a[mod(n+7)] shifts all elements back 9 places and wraps the first 7 elements to the end of the array.
BlowFish is offline  
Reply With Quote
Old 04-08-2009, 01:03 PM   #5

Join Date: Dec 2008
Location: athens
Posts: 54
Ignore this user

Thanks: 0
Thanked 4 Times in 3 Posts

Re: Arrays Question

thanks for the responses guys,i will try to exlpain more in detail.
i am quite new in el and its hard for me to understand everything at once so i need an actual example of the code lines..
here is what i try to accomplish:

array:myarray[9,n](0);
if the value assigned to myarray[9,0] through this loop is the close[10]

for value1=0 to 9 begin
myarray[value1,0]=close[value1];end;

then
i want to "reloop" in a manner that second column first element will pick up where last element of previous column was so the result will be:
myarray[0,1]=myarray[9,0][1];=close[11]
myarray[0,2]=myarray[9,1][1];=close[21]
my array[0,3]=myarray[9,2][1];=close[31] etc till n is reached.
essentialy this will carry the loop to jump to the first element of the following column as if it was " myarray[10,0]"etc.

then i want to be able to acces the values of anyrow number from
column 0 to column N in manner that i can sum
myarray[9,0]+myarray[9,1]+myarray[9,2] ....to n/N..
voila IF N=14 this is the 15min moving average of the close in one min chart if 1 min is the source data for the array.
its something similar to compressseries indicator in various software.

Last edited by andypap; 04-08-2009 at 01:25 PM.
andypap is offline  
Reply With Quote
Old 04-08-2009, 01:06 PM   #6

Join Date: Dec 2008
Location: athens
Posts: 54
Ignore this user

Thanks: 0
Thanked 4 Times in 3 Posts

Re: Arrays Question

If someone in the forum knows how to do this please writte the actual code lines...

Last edited by andypap; 04-08-2009 at 01:12 PM.
andypap is offline  
Reply With Quote
Old 04-09-2009, 05:18 AM   #7

BlowFish's Avatar

Join Date: Mar 2007
Location: In Da House
Posts: 3,292
Ignore this user

Thanks: 129
Thanked 1,054 Times in 702 Posts

Re: Arrays Question

If you want to fill the array from the first element and once it gets to the last one then go back to the beginning again something like will do it.


Array[ Round(barnum/7,0) , mod(barnum,7) ] = close; // Fills a 7X7 array.


to sum the last N elements/closes

sum = sum + close - close[n]

This will be unstable until you have N bars

These will do the there stuff as data arrives.


To to loop through the array to get the sum (again 7*7) rather than store it as it arrives.

for n = 0 to 7-1 begin
for m = 0 to 7-1 begin
sum = sum + Array[n,m];
end;
end;

Still not sure exactly what you are up to but hopefully if you look at the ideas behind the above you should get a few yourself.
BlowFish is offline  
Reply With Quote
Old 04-10-2009, 03:17 PM   #8

Join Date: Dec 2008
Location: athens
Posts: 54
Ignore this user

Thanks: 0
Thanked 4 Times in 3 Posts

Re: Arrays Question

thanks blowfish.. the nested loop gave me a solution.
first i did a dynamic array and set maxlen to 390 via an input:seieslen(390);

then i used an if condition before the nested loop:

if .....then
for n=0 to serieslen-1 begin
myarray[n]=close[n];
for m=o to serieslen-1 begin
myarray[m]=myarray[n][m];
end;end;
plot1(myarray[serieslen-1];
that did the job of storing the values every 390 bars starting from current bar backwards,
if applyied to 1 min chart it gives you the close of last 1min bar of day and the first 389 have a value of zero.so if you sum the 390 bars what you get is the closing value of the last bar.if you sum 5*390 bars you have a 5 day mov average builded from 1 min bars.
so the indicator is working ok.

i am thinking though that this doesnt answer my second question of a more general form..
is it possible and how in EL to access the values of a row in a two dimension array of 7 columns lets say ( 0 to 6) in a manner as if they where the elements of a column?
i will try to make this visible
if the row is 10 of array:myarray[10,6];
then imagine these row elements accumulated as if they look like a column

array[10,0]
array[10,1]
array[10,2]
array[10,3]

down to

array[10,6]

thanks again
andypap is offline  
Reply With Quote

Reply

Thread Tools
Display Modes Help Others By Rating This Thread
Help Others By Rating This Thread:


Similar Threads
Thread Thread Starter Forum Replies Last Post
A Question... MrPaul Market Analysis 12 02-13-2012 01:27 AM
Looking for Someone Good with Coding Arrays waveslider Coding Forum 3 10-28-2008 02:26 PM
TS question james_gsx General Discussion 2 09-17-2007 04:27 AM
Arrays ImXotep Coding Forum 1 05-07-2007 06:09 AM

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