Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

nasdaq5048

Ant: Is there any way to improve this indicator?

Recommended Posts

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),Cprint(0),dprint(0),eprint(0), fprint(0),gprint(0),hprint(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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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,Barsback)[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;

Share this post


Link to post
Share on other sites

nasdaq5048,

 

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

 

https://www.tradestation.com/Discussions/Topic.aspx?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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Topics

  • Posts

    • CENX Century Aluminum stock top of range breakout watch above 18.31, https://stockconsultant.com/?CENX
    • QBTS D-Wave Quantum stock reversal attempt at the 1.4 support area, https://stockconsultant.com/?QBTS
    • PLTR Palantir Technologies stock bullish stats, https://stockconsultant.com/?PLTR
    • GTLB Gitlab stock back to 53.04 support area, https://stockconsultant.com/?GTLB
    • Date: 14th May 2024. Market News – May 14. Economic Indicators & Central Banks:   Asian stocks and European futures kept to small ranges as focus turned to upcoming US inflation reports. JGB yields surged to their highest levels in over a decade amid growing speculation that the BOJ might raise interest rates soon. Former central bank executive Momma stated that the BOJ might opt to deduct its planned bond purchases next month in an effort to revive a bond market that has been largely impaired by its ongoing substantial purchases. BOJ Governor Kazuo Ueda emphasized the importance of the market determining long-term yields independently rather than relying solely on the central bank’s actions. UK wage growth remained solid amid a slowdown in the job market, providing further arguments for the BOE’s monetary policy hawks to await more concrete signs of easing inflationary pressures before considering interest rate cuts. Eyes today are on producer price data in the US, followed by consumer price data the next day, which will provide insights into whether the Fed will consider interest rate cuts later in the year or postpone them until 2025. Financial Markets Performance:   The USDIndex is steady at 105 lows. The Yen extended losses for an 8th day against the Greenback to a 2-week low. Currently USDJPY is at 156.45. EURUSD rebounded slightly to 1.0785, however overall holds within a downwards channel with key resistance at 1.0850. USOIL held steady ahead of the release of an OPEC market outlook, with traders eagerly awaiting signals regarding the extension of supply curbs. Despite a decline since April, oil prices have remained relatively high this year due to ongoing supply restrictions by OPEC and its allies, with expectations that these curbs will be prolonged into the second half of the year. Currently USOIL is at $77.78. Gold (-0.93%) declined further to $2338 per ounce. Copper rose at +2.46% and Platinum +0.54%. Market Trends:   The 10-year JGB yield to a 6-month high of 0.965%. The 2-year JGB yield, which closely reflects policy expectations, rose to 0.340%, its highest since June 2009. The 20-year and 30-year JGB yields also surged to their highest levels in 11 years and since July 2011, respectively. FTSE100 stands by record highs, the S&P500 is close to topping March’s record high. The Nasdaq rose by 0.3%, with four of the Magnificent Seven stocks rising. The Hang Seng has added 20% in a rally that is entering a fourth week. Alibaba and Tencent report earnings later today. Always trade with strict risk management. Your capital is the single most important aspect of your trading business. Please note that times displayed based on local time zone and are from time of writing this report. Click HERE to access the full HFM Economic calendar. Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding on how markets work. Click HERE to register for FREE! Click HERE to READ more Market news. Andria Pichidi Market Analyst HFMarkets Disclaimer: This material is provided as a general marketing communication for information purposes only and does not constitute an independent investment research. Nothing in this communication contains, or should be considered as containing, an investment advice or an investment recommendation or a solicitation for the purpose of buying or selling of any financial instrument. All information provided is gathered from reputable sources and any information containing an indication of past performance is not a guarantee or reliable indicator of future performance. Users acknowledge that any investment in FX and CFDs products is characterized by a certain degree of uncertainty and that any investment of this nature involves a high level of risk for which the users are solely responsible and liable. We assume no liability for any loss arising from any investment made based on the information provided in this communication. This communication must not be reproduced or further distributed without our prior written permission.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.