Welcome to the Traders Laboratory Forums.
Market Profile Are you a market profile trader? Post here.

Reply
Old 12-20-2006, 07:27 PM   #1

Join Date: Oct 2006
Posts: 36
Ignore this user

Thanks: 2
Thanked 0 Times in 0 Posts

Ant: Is there any way to improve this indicator?

I wrote this to show all the prices that has been repeated in the previous few bars. I wrote each array to be high - 1 tick until the low.
1) How did you write your array in your market profile to show all the prices that traded in a bar?

2)I also wrote the EL to look at how many bars back did the same price traded? All i can do is to: did price X traded in bar[1], if yes, did price X traded in bar[1] and bar[2], and so on. Is there a way to improve this.

Here is my code, please make a little suggestion, thanks a lot in advance!

Input:TickSize(0.25);

Array: SidewayArray[ 12 ](0);

var: aprint(0),bprint(0),Cprin t(0),dprint(0),eprint(0), fprint(0),gprint(0),hprin t(0),Iprint(0),JPrint(0), KPrint(0),barsback(0);

if ((Range /TickSize)-1) *TickSize >= 0 then aprint = ((Range /TickSize)-1) *TickSize else aprint = h;
if ((Range /TickSize)-2) *TickSize >= 0 then bprint = ((Range /TickSize)-2) *TickSize else bprint = h;
if ((Range /TickSize)-3) *TickSize >= 0 then cprint = ((Range /TickSize)-3) *TickSize else cprint = h;
if ((Range /TickSize)-4) *TickSize >=0 then dprint = ((Range /TickSize)-4) *TickSize else dprint = h;
if ((Range /TickSize)-5) *TickSize >=0 then eprint = ((Range /TickSize)-5) *TickSize else eprint = h;
if ((Range /TickSize)-6) *TickSize >=0 then fprint = ((Range /TickSize)-6) *TickSize else fprint = h;
if ((Range /TickSize)-7) *TickSize >=0 then gprint = ((Range /TickSize)-7) *TickSize else gprint = h;
if ((Range /TickSize)-8) *TickSize >=0 then hprint = ((Range /TickSize)-8) *TickSize else hprint = h;
if ((Range /TickSize)-9) *TickSize >=0 then iprint = ((Range /TickSize)-9) *TickSize else iprint = h;
if ((Range /TickSize)-10) *TickSize >=0 then Jprint = ((Range /TickSize)-10) *TickSize else Jprint = h;
if ((Range /TickSize)-11) *TickSize >=0 then Kprint = ((Range /TickSize)-11) *TickSize else Kprint = h;



SidewayArray[1] = high-(Range /TickSize)*(TickSize);
SidewayArray[2] = high-aprint;
SidewayArray[3] = high-bprint;
SidewayArray[4] = high-cprint;
SidewayArray[5] = high-dprint;
SidewayArray[6] = high-eprint;
SidewayArray[7] = high-fprint;
SidewayArray[ 8 ] = high- gprint ;
SidewayArray[ 9] = high- hprint ;
SidewayArray[10] = high- iprint ;
SidewayArray[11] = high- jprint ;
SidewayArray[12] = high- Kprint ;






if SidewayArray[1] <= high[1] and SidewayArray[1] >= low[1] and SidewayArray[1] <= high[2] and SidewayArray[1] >= low[2] and SidewayArray[1] <= high[3] and SidewayArray[1] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[2] <= high[1] and SidewayArray[2] >= low[1] and SidewayArray[2] <= high[2] and SidewayArray[2] >= low[2] and SidewayArray[2] <= high[3] and SidewayArray[2] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[3] <= high[1] and SidewayArray[3] >= low[1] and SidewayArray[3] <= high[2] and SidewayArray[3] >= low[2] and SidewayArray[3] <= high[3] and SidewayArray[3] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[4] <= high[1] and SidewayArray[4] >= low[1] and SidewayArray[4] <= high[2] and SidewayArray[4] >= low[2] and SidewayArray[4] <= high[3] and SidewayArray[4] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[5] <= high[1] and SidewayArray[5] >= low[1] and SidewayArray[5] <= high[2] and SidewayArray[5] >= low[2] and SidewayArray[5] <= high[3] and SidewayArray[5] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[6] <= high[1] and SidewayArray[6] >= low[1] and SidewayArray[6] <= high[2] and SidewayArray[6] >= low[2] and SidewayArray[6] <= high[3] and SidewayArray[6] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[7] <= high[1] and SidewayArray[7] >= low[1] and SidewayArray[7] <= high[2] and SidewayArray[7] >= low[2] and SidewayArray[7] <= high[3] and SidewayArray[7] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[8] <= high[1] and SidewayArray[8] >= low[1] and SidewayArray[8] <= high[2] and SidewayArray[8] >= low[2] and SidewayArray[8] <= high[3] and SidewayArray[8] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[9] <= high[1] and SidewayArray[9] >= low[1] and SidewayArray[9] <= high[2] and SidewayArray[9] >= low[2] and SidewayArray[9] <= high[3] and SidewayArray[9] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[10] <= high[1] and SidewayArray[10] >= low[1] and SidewayArray[10] <= high[2] and SidewayArray[10] >= low[2] and SidewayArray[10] <= high[3] and SidewayArray[10] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[11] <= high[1] and SidewayArray[11] >= low[1] and SidewayArray[11] <= high[2] and SidewayArray[11] >= low[2] and SidewayArray[11] <= high[3] and SidewayArray[11] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;
if SidewayArray[12] <= high[1] and SidewayArray[12] >= low[1] and SidewayArray[12] <= high[2] and SidewayArray[12] >= low[2] and SidewayArray[12] <= high[3] and SidewayArray[12] >= low[3] then begin plot3(highest(h,Barsback)[1],"High[3]");plot4(lowest(l,Barsbac k)[1],"Low[3]");end;



if SidewayArray[1] <= high[1] and SidewayArray[1] >= low[1] and SidewayArray[1] <= high[2] and SidewayArray[1] >= low[2] and SidewayArray[1] <= high[3] and SidewayArray[1] >= low[3] then barsback =3;
if SidewayArray[2] <= high[1] and SidewayArray[2] >= low[1] and SidewayArray[2] <= high[2] and SidewayArray[2] >= low[2] and SidewayArray[2] <= high[3] and SidewayArray[2] >= low[3] then barsback =3;
if SidewayArray[3] <= high[1] and SidewayArray[3] >= low[1] and SidewayArray[3] <= high[2] and SidewayArray[3] >= low[2] and SidewayArray[3] <= high[3] and SidewayArray[3] >= low[3] then barsback =3;
if SidewayArray[4] <= high[1] and SidewayArray[4] >= low[1] and SidewayArray[4] <= high[2] and SidewayArray[4] >= low[2] and SidewayArray[4] <= high[3] and SidewayArray[4] >= low[3] then barsback =3;
if SidewayArray[5] <= high[1] and SidewayArray[5] >= low[1] and SidewayArray[5] <= high[2] and SidewayArray[5] >= low[2] and SidewayArray[5] <= high[3] and SidewayArray[5] >= low[3] then barsback =3;
if SidewayArray[6] <= high[1] and SidewayArray[6] >= low[1] and SidewayArray[6] <= high[2] and SidewayArray[6] >= low[2] and SidewayArray[6] <= high[3] and SidewayArray[6] >= low[3] then barsback =3;
if SidewayArray[7] <= high[1] and SidewayArray[7] >= low[1] and SidewayArray[7] <= high[2] and SidewayArray[7] >= low[2] and SidewayArray[7] <= high[3] and SidewayArray[7] >= low[3] then barsback =3;
if SidewayArray[8] <= high[1] and SidewayArray[8] >= low[1] and SidewayArray[8] <= high[2] and SidewayArray[8] >= low[2] and SidewayArray[8] <= high[3] and SidewayArray[8] >= low[3] then barsback =3;
if SidewayArray[9] <= high[1] and SidewayArray[9] >= low[1] and SidewayArray[9] <= high[2] and SidewayArray[9] >= low[2] and SidewayArray[9] <= high[3] and SidewayArray[9] >= low[3] then barsback =3;
if SidewayArray[10] <= high[1] and SidewayArray[10] >= low[1] and SidewayArray[10] <= high[2] and SidewayArray[10] >= low[2] and SidewayArray[10] <= high[3] and SidewayArray[10] >= low[3] then barsback =3;
if SidewayArray[11] <= high[1] and SidewayArray[11] >= low[1] and SidewayArray[11] <= high[2] and SidewayArray[11] >= low[2] and SidewayArray[11] <= high[3] and SidewayArray[11] >= low[3] then barsback =3;
if SidewayArray[12] <= high[1] and SidewayArray[12] >= low[1] and SidewayArray[12] <= high[2] and SidewayArray[12] >= low[2] and SidewayArray[12] <= high[3] and SidewayArray[12] >= low[3] then barsback =3;



if SidewayArray[1] <= high[1] and SidewayArray[1] >= low[1] and SidewayArray[1] <= high[2] and SidewayArray[1] >= low[2] and SidewayArray[1] <= high[3] and SidewayArray[1] >= low[3] and SidewayArray[1] <= high[4] and SidewayArray[1] >= low[4] then barsback =4;
if SidewayArray[2] <= high[1] and SidewayArray[2] >= low[1] and SidewayArray[2] <= high[2] and SidewayArray[2] >= low[2] and SidewayArray[2] <= high[3] and SidewayArray[2] >= low[3] and SidewayArray[2] <= high[4] and SidewayArray[2] >= low[4] then barsback =4;
if SidewayArray[3] <= high[1] and SidewayArray[3] >= low[1] and SidewayArray[3] <= high[2] and SidewayArray[3] >= low[2] and SidewayArray[3] <= high[3] and SidewayArray[3] >= low[3] and SidewayArray[3] <= high[4] and SidewayArray[3] >= low[4] then barsback =4;
if SidewayArray[4] <= high[1] and SidewayArray[4] >= low[1] and SidewayArray[4] <= high[2] and SidewayArray[4] >= low[2] and SidewayArray[4] <= high[3] and SidewayArray[4] >= low[3] and SidewayArray[4] <= high[4] and SidewayArray[4] >= low[4] then barsback =4;
if SidewayArray[5] <= high[1] and SidewayArray[5] >= low[1] and SidewayArray[5] <= high[2] and SidewayArray[5] >= low[2] and SidewayArray[5] <= high[3] and SidewayArray[5] >= low[3] and SidewayArray[5] <= high[4] and SidewayArray[5] >= low[4] then barsback =4;
if SidewayArray[6] <= high[1] and SidewayArray[6] >= low[1] and SidewayArray[6] <= high[2] and SidewayArray[6] >= low[2] and SidewayArray[6] <= high[3] and SidewayArray[6] >= low[3] and SidewayArray[6] <= high[4] and SidewayArray[6] >= low[4] then barsback =4;
if SidewayArray[7] <= high[1] and SidewayArray[7] >= low[1] and SidewayArray[7] <= high[2] and SidewayArray[7] >= low[2] and SidewayArray[7] <= high[3] and SidewayArray[7] >= low[3] and SidewayArray[7] <= high[4] and SidewayArray[7] >= low[4] then barsback =4;
if SidewayArray[8] <= high[1] and SidewayArray[8] >= low[1] and SidewayArray[8] <= high[2] and SidewayArray[8] >= low[2] and SidewayArray[8] <= high[3] and SidewayArray[8] >= low[3] and SidewayArray[8] <= high[4] and SidewayArray[8] >= low[4] then barsback =4;
if SidewayArray[9] <= high[1] and SidewayArray[9] >= low[1] and SidewayArray[9] <= high[2] and SidewayArray[9] >= low[2] and SidewayArray[9] <= high[3] and SidewayArray[9] >= low[3] and SidewayArray[9] <= high[4] and SidewayArray[9] >= low[4] then barsback =4;
if SidewayArray[10] <= high[1] and SidewayArray[10] >= low[1] and SidewayArray[10] <= high[2] and SidewayArray[10] >= low[2] and SidewayArray[10] <= high[3] and SidewayArray[10] >= low[3] and SidewayArray[10] <= high[4] and SidewayArray[10] >= low[4] then barsback =4;
if SidewayArray[11] <= high[1] and SidewayArray[11] >= low[1] and SidewayArray[11] <= high[2] and SidewayArray[11] >= low[2] and SidewayArray[11] <= high[3] and SidewayArray[11] >= low[3] and SidewayArray[11] <= high[4] and SidewayArray[11] >= low[4] then barsback =4;
if SidewayArray[12] <= high[1] and SidewayArray[12] >= low[1] and SidewayArray[12] <= high[2] and SidewayArray[12] >= low[2] and SidewayArray[12] <= high[3] and SidewayArray[12] >= low[3] and SidewayArray[12] <= high[4] and SidewayArray[12] >= low[4] then barsback =4;



if SidewayArray[1] <= high[1] and SidewayArray[1] >= low[1] and SidewayArray[1] <= high[2] and SidewayArray[1] >= low[2] and SidewayArray[1] <= high[3] and SidewayArray[1] >= low[3] and SidewayArray[1] <= high[4] and SidewayArray[1] >= low[4] and SidewayArray[1] <= high[5] and SidewayArray[1] >= low[5] then barsback =5;
if SidewayArray[2] <= high[1] and SidewayArray[2] >= low[1] and SidewayArray[2] <= high[2] and SidewayArray[2] >= low[2] and SidewayArray[2] <= high[3] and SidewayArray[2] >= low[3] and SidewayArray[2] <= high[4] and SidewayArray[2] >= low[4] and SidewayArray[2] <= high[5] and SidewayArray[2] >= low[5] then barsback =5;
if SidewayArray[3] <= high[1] and SidewayArray[3] >= low[1] and SidewayArray[3] <= high[2] and SidewayArray[3] >= low[2] and SidewayArray[3] <= high[3] and SidewayArray[3] >= low[3] and SidewayArray[3] <= high[4] and SidewayArray[3] >= low[4] and SidewayArray[3] <= high[5] and SidewayArray[3] >= low[5] then barsback =5;
if SidewayArray[4] <= high[1] and SidewayArray[4] >= low[1] and SidewayArray[4] <= high[2] and SidewayArray[4] >= low[2] and SidewayArray[4] <= high[3] and SidewayArray[4] >= low[3] and SidewayArray[4] <= high[4] and SidewayArray[4] >= low[4] and SidewayArray[4] <= high[5] and SidewayArray[4] >= low[5] then barsback =5;
if SidewayArray[5] <= high[1] and SidewayArray[5] >= low[1] and SidewayArray[5] <= high[2] and SidewayArray[5] >= low[2] and SidewayArray[5] <= high[3] and SidewayArray[5] >= low[3] and SidewayArray[5] <= high[4] and SidewayArray[5] >= low[4] and SidewayArray[5] <= high[5] and SidewayArray[5] >= low[5] then barsback =5;
if SidewayArray[6] <= high[1] and SidewayArray[6] >= low[1] and SidewayArray[6] <= high[2] and SidewayArray[6] >= low[2] and SidewayArray[6] <= high[3] and SidewayArray[6] >= low[3] and SidewayArray[6] <= high[4] and SidewayArray[6] >= low[4] and SidewayArray[6] <= high[5] and SidewayArray[6] >= low[5] then barsback =5;
if SidewayArray[7] <= high[1] and SidewayArray[7] >= low[1] and SidewayArray[7] <= high[2] and SidewayArray[7] >= low[2] and SidewayArray[7] <= high[3] and SidewayArray[7] >= low[3] and SidewayArray[7] <= high[4] and SidewayArray[7] >= low[4] and SidewayArray[7] <= high[5] and SidewayArray[7] >= low[5] then barsback =5;
if SidewayArray[8] <= high[1] and SidewayArray[8] >= low[1] and SidewayArray[8] <= high[2] and SidewayArray[8] >= low[2] and SidewayArray[8] <= high[3] and SidewayArray[8] >= low[3] and SidewayArray[8] <= high[4] and SidewayArray[8] >= low[4] and SidewayArray[8] <= high[5] and SidewayArray[8] >= low[5] then barsback =5;
if SidewayArray[9] <= high[1] and SidewayArray[9] >= low[1] and SidewayArray[9] <= high[2] and SidewayArray[9] >= low[2] and SidewayArray[9] <= high[3] and SidewayArray[9] >= low[3] and SidewayArray[9] <= high[4] and SidewayArray[9] >= low[4] and SidewayArray[9] <= high[5] and SidewayArray[9] >= low[5] then barsback =5;
if SidewayArray[10] <= high[1] and SidewayArray[10] >= low[1] and SidewayArray[10] <= high[2] and SidewayArray[10] >= low[2] and SidewayArray[10] <= high[3] and SidewayArray[10] >= low[3] and SidewayArray[10] <= high[4] and SidewayArray[10] >= low[4] and SidewayArray[10] <= high[5] and SidewayArray[10] >= low[5] then barsback =5;
if SidewayArray[11] <= high[1] and SidewayArray[11] >= low[1] and SidewayArray[11] <= high[2] and SidewayArray[11] >= low[2] and SidewayArray[11] <= high[3] and SidewayArray[11] >= low[3] and SidewayArray[11] <= high[4] and SidewayArray[11] >= low[4] and SidewayArray[11] <= high[5] and SidewayArray[11] >= low[5] then barsback =5;
if SidewayArray[12] <= high[1] and SidewayArray[12] >= low[1] and SidewayArray[12] <= high[2] and SidewayArray[12] >= low[2] and SidewayArray[12] <= high[3] and SidewayArray[12] >= low[3] and SidewayArray[12] <= high[4] and SidewayArray[12] >= low[4] and SidewayArray[12] <= high[5] and SidewayArray[12] >= low[5] then barsback =5;
nasdaq5048 is offline  
Reply With Quote
Old 12-20-2006, 07:35 PM   #2

Join Date: Oct 2006
Posts: 36
Ignore this user

Thanks: 2
Thanked 0 Times in 0 Posts

Re: Ant: Is there any way to improve this indicator?

Also,assuming i have a normal processor, nothing super and if i write 10-20 sets of these, will it kill my processor and freeze very often?
nasdaq5048 is offline  
Reply With Quote
Old 12-20-2006, 09:08 PM   #3
ant

ant's Avatar

Join Date: Sep 2006
Location: USA
Posts: 421
Ignore this user

Thanks: 22
Thanked 314 Times in 81 Posts

Re: Ant: Is there any way to improve this indicator?

nasdaq5048,

Take a look at the EL code I wrote at the link below. It should answer your questions.

https://www.tradestation.com/Discuss...Topic_ID=55482

In general, 10-20 charts with an indicator like this applied to it could cause tradestation to freeze with heavy volume. It depends on how large the array is, how much cycling through the array is required, and how often the code executes (i.e., at the end of each bar or on every tick). Use the Task Manager of your PC to track memory usage and performance while running your indicators during the day with the markets open. For example, I notice that running multiple Time & Sales windows in tradestation hampers performance especially with heavy volume.

Keep in mind that making this a real-time indicator (updated every tick) will also add considerable complexity to it. Hope this helps.
ant is offline  
Reply With Quote
Old 12-22-2006, 11:45 AM   #4

Join Date: Oct 2006
Posts: 36
Ignore this user

Thanks: 2
Thanked 0 Times in 0 Posts

Re: Ant: Is there any way to improve this indicator?

Thanks! I did managed to simplify my code a little bit after looking at your code.
nasdaq5048 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
Bid-Ask Pressure Indicator for Tradestation Soultrader Trading Indicators 81 08-18-2009 03:29 PM
BB Squeeze Replica For Tradestation Soultrader Trading Indicators 56 07-08-2009 04:39 PM
Is the RSI indicator any good? Lisa Technical Analysis 14 04-27-2008 12:41 PM
Ant, what do you think about Alexander Trading? Reaver Market Profile 33 04-21-2008 12:18 AM

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