Ant: Is there any way to improve this indicator? - Traders Laboratory

Go Back   Traders Laboratory > Trading Laboratory > Market Profile®

Market Profile® Are you a market profile trader? Post here.

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 12-20-2006, 07:27 PM
nasdaq5048 has no status.

 
Join Date: Oct 2006
Posts: 36
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;

Reply With Quote
  #2 (permalink)  
Old 12-20-2006, 07:35 PM
nasdaq5048 has no status.

 
Join Date: Oct 2006
Posts: 36
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?

Reply With Quote
  #3 (permalink)  
Old 12-20-2006, 09:08 PM
ant's Avatar
ant ant is offline
ant has no status.

 
Join Date: Sep 2006
Posts: 293
Thanks: 0
Thanked 3 Times in 1 Post
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.

Reply With Quote
  #4 (permalink)  
Old 12-22-2006, 11:45 AM
nasdaq5048 has no status.

 
Join Date: Oct 2006
Posts: 36
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.

Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Bid-Ask Pressure Indicator for Tradestation Soultrader Trading Indicators 19 07-21-2008 12:50 PM
BB Squeeze Replica For Tradestation Soultrader Trading Indicators 29 06-23-2008 08:50 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 03:33 PM.

 


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70