Login Page - Create Account

Support Board


Date/Time: Tue, 26 Nov 2024 14:38:51 +0000



Suggestions after porting over 8 indicators from NinjaTrader to Sierra Chart

View Count: 468

[2023-11-12 09:23:19]
erwinbeckers - Posts: 22
Hi Sierra Chart,

We've now ported 8 of our indicators over from NinjaTrader to Sierra Chart
( you can find them here https://tradedevils-indicators.com/pages/sierra-charts-indicators )

I love Sierra Chart, but while porting we noticed a few things which we got accustomed to in Ninja but are missing or different in Sierra
Please have a look at it, and perhaps you find it useful to add these to Sierra Chart at some point

1) clipping graphic drawings to study region by default
using the new graphics functions its very easy to draw outside the region of the study
This might be useful for some applications, but it already happened a few times to me where I was accidentally drawing over the area of other studies
it would be nice if the drawing functions would be clipped to the study region by default and to have some flag to turn that off when needed

2) ability to create our own custom study dropdown menus
Some of our indicators are settings-heavy and in Ninjatrader we added custom dropdown menus for them so users can quickly change these settings
Here is an example https://cdn.shopify.com/s/files/1/0522/6286/3047/t/5/assets/menu-1671990331674.gif?v=1671990335
It would be nice to add something like this to Sierra Chart.
I know there is the option to add a menu item to the context menu. But that is shared and not specific for 1 study.
Further more it doesn't allow things like text boxes and sub-menus as far as I know

3) Retrieving the width in pixels of the candle
It sounds like something very trivial yet I think it's not possible yet to get the candle width for the current chart.
I know there is sc.ChartBarSpacing but that does not give the width of the candle itself.
Sometimes you want to over-paint a candle or place text left/right of the candle and then you must know how wide the candle exactly is in pixels

4) Support Unicode (UTF-8) symbols for the new graphics functions when using OpenGL
The new graphics functions support UTF-8 when using GDI, but not openGL
Sometimes we want to draw (user-defined) bar markers above/below the bar but now this is not possible
see this screenshot as an example, and know that these symbols can be changed in the settings by the user
https://cdn.shopify.com/s/files/1/0522/6286/3047/t/5/assets/markerschart-1672654079291.jpg?v=1672654080

5) get x-pixel coordinate by date/time
I've seen the sc.BarIndexToXPixelCoordinate(int bar), but is there also something like a sc.DateTimeToPixelCoordinate(SCDateTime& datetime) ?


6) Multi timeframe studies
I struggle a bit with studies that use higher timeframe data.
I know we can open a (hidden) chart from code for a higher timeframe and get the data from it

However, I struggle with the initialization and synchronization between the two.
It looks like the main chart and higher timeframe chart operate completely independently from each other
If so then it can happen that main chart has already fully loaded and sc.Index is pointing to the last bar
and after that, the data from the higher timeframe chart arrives ( or vice versa )

What are Sierra Chart best practices to deal with this?
Let's say I want to fill a study subgraph based on the data of the higher timeframe
Do I then need to
- wait for the higher timeframe data to be fully loaded
- wait for the main chart to be fully loaded
- then process all the bars in the higher timeframe
- and for each higher timeframe bar, find all the bars in the main (lower timeframe) chart and fill its subgraph[].


7) Max 127 settings for studies
sc.Input is now limited to 127. Which is really low. Some of our studies have 300+ settings (a lot of those will be colors)
I know you have no plans to change this, but I am just mentioning this , since it is a bummer for us and i don't see why this could not be increased
[2023-11-15 16:31:26]
Sierra_Chart Engineering - Posts: 17179
1. You have to do the clipping yourself. There is this function for that:

int32_t n_ACSILFunctions::n_Graphics::SetClippingRegionFromRectangle(const n_ACSIL::s_GraphicsRectangle& GraphicsRectangle)

3. We can see about this.

6.
- wait for the higher timeframe data to be fully loaded
- wait for the main chart to be fully loaded
In regards to this, refer to:
Working with ACSIL Arrays and Understanding Looping: Referencing Arrays in Other Charts


The other items we will not be commenting on. There is no answer for them.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account