Login Page - Create Account

Support Board


Date/Time: Sat, 27 Apr 2024 21:45:38 +0000



Sierra Chart Now Supports Building Custom Chart Bars Efficiently in ACSIL

View Count: 7451

[2017-11-07 11:57:58]
Sierra Chart Engineering - Posts: 104368
Version 1638 of Sierra Chart now supports building custom chart bars efficiently using ACSIL.

There is no formal documentation yet and we will not be providing any support for this at this time.

If you cannot comprehend the example, then do not use it and do not ask us questions here. This is only for use by competent developers.

For an example, refer to /ACS_Source/ACSILCustomChartBars_Example.cpp
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-07 17:37:56]
gomifromparis - Posts: 244
Getting the "incorrect URL when getting files list to download" in the updater
[2017-11-07 17:53:47]
Sierra Chart Engineering - Posts: 104368
Try again. We removed version 1638. The current version is now 1639.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-08 09:56:48]
DabbaDo - Posts: 146
1. Is there any way to set RenkoOpen and RenkoClose on each bar?
2. The interface has GetPersistentInt/Float/Double. GetPersistentPointer would be nice.
3. As with CustomChart, it seems impossible to set/display subgraphs on the study. Is that correct?


Cheers,
Dale
[2017-11-08 17:53:39]
Sierra Chart Engineering - Posts: 104368
1. Not currently but we can add that capability.

2. Possibly but we would be afraid of this being improperly used due to the increased complexity since there are two functions involved and one of them runs on another thread.

3. Yes this is true.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2017-11-08 17:54:16
[2017-11-08 22:07:58]
DabbaDo - Posts: 146
I crash when I use ChartBarInterface.GetPersistentInt/Float/Double. All three Internal_GetPersistentXXX functions have 0x00000000 addresses. The other internal functions are set okay.
v1639

Cheers,
Dale
[2017-11-08 23:05:09]
Sierra Chart Engineering - Posts: 104368
OK looks like we did not set those pointers.

Checking on this.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-11 23:10:54]
Sierra Chart Engineering - Posts: 104368
1. Is there any way to set RenkoOpen and RenkoClose on each bar?
This will be supported by this new ACSIL variable in the next release:
sc.AllocateAndNameRenkoChartBarArrays
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2017-11-11 23:11:13
[2017-11-13 11:33:45]
DabbaDo - Posts: 146
Thank you, I look forward to trying sc.AllocateAndNameRenkoChartBarArrays.
These custom bars are wonderful, a great addition to your platform in my opinion. Attached is a favorite bar type of mine, for what it's worth. You can safely ignore it. It's likely that I'm doing some things incorrectly.

Some issues:
1. In the studies dialog, when I Remove a custom chart and Add another then Apply the chart is not reloaded. Duplication steps:
---a. Add Custom Study "Custom Chart Bars Example" with the default 1000 volume. Exit the studies dialog.
---b. Open the studies dialog. Remove Custom Chart Bar Volume=1000 then Add Custom Study "Custom Chart Bars Example" with 2000 volume. Apply or OK. Notice the bars don't change (debugger shows the CustomChartBarBuildingFunction isn't called.)
2. Maybe not a bug: sc.AreTimeSpecificBars() comes back true if the scid bars are 1s or 1m etc. Sometimes other studies need to know if the base bar is a tick bar, a time-based bar, etc.
3. Nice-to-haves:
---a. A flag in ChartBarInterface that is true on the first call after sc.FlagToReloadChartData. Currently I'm tracking the CurrentBarIndex to know when I should re-initialize state. Perhaps there is a better way and I just missed it.
---b. GetPersistentInt64
---c. GetPersistentSCDateTime

Cheers,
Dale
attachmentBruUniVolumeTick.cpp - Attached On 2017-11-13 11:16:58 UTC - Size: 9.82 KB - 503 views
[2017-11-14 17:17:32]
Sierra Chart Engineering - Posts: 104368
We will work through this. Just give us a couple of days.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-15 00:54:41]
Sierra Chart Engineering - Posts: 104368
This will be out in the next release.

Except for item 2 which is just how this is.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-11-15 05:25:56]
Sierra Chart Engineering - Posts: 104368
One thing we want to say, that in the next release of Sierra Chart, it is the custom chart bar study itself which will be responsible for flagging to reload the chart even initially when the study is added to the chart.

The code example has been updated to demonstrate how to do this.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2017-11-15 17:17:17
[2017-11-15 13:49:09]
DabbaDo - Posts: 146
That was a big improvement. To close the loop for anyone who wants it, attached is the updated version.
Sierra Chart is super!
Thank you again.
Dale
attachmentBruUniVolumeTick.cpp - Attached On 2017-11-15 13:47:41 UTC - Size: 9.41 KB - 511 views
[2017-11-15 18:25:39]
Sierra Chart Engineering - Posts: 104368
Here are the instructions to use this:
https://www.sierrachart.com/index.php?page=doc/BuildCustomStudiesDLL.html
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-21 08:46:04]
gomifromparis - Posts: 244
Hi,

Could you publish a quick example of the IsInsertFileRecordsProcessing using a Range or a Renko bar? No problem if you can't, I'll fiddle around.

My use case is building a variable Renko bar, I've calculated that because of the taker fees on Bitmex, my tick size needs to be equal to 0.005% of the BTC price for my reward to be at least equal to my risk (ie 8 point TickSize with a 16000 BTC)

So instead of adjusting the Ticksize all day, it will be simpler to use a variable renko.

Thanks
[2017-12-23 18:41:49]
gomifromparis - Posts: 244
So I did some fiddling and could not understand how the bar splitting works to manage the gaps.

I have something like

s_IntradayRecord& record = ChartBarInterface.NewFileRecord;
if (ChartBarInterface.IsNewChartBar)
  if (record.Close > whatever condition) // we have a gap here on this tick
  {
    ChartBarInterface.InsertNewRecord = 1;
    ChartBarInterface.NewRecordToInsert = record; // resend the tick
  }


But the tick is not resent and IsInsertFileRecordsProcessing is never true.

Any suggestion ?
Date Time Of Last Edit: 2017-12-23 18:43:52
[2017-12-24 01:16:19]
Sierra Chart Engineering - Posts: 104368
We have to put together an example. Not sure how quickly we can get to that though.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-24 17:00:35]
gomifromparis - Posts: 244
OK thanks, could please explain as well how the session gap is managed, in my case BarHasBeenCutAtStartOfSession seems always false.
[2017-12-26 00:31:51]
Sierra Chart Engineering - Posts: 104368
We are working on a Range bars example and also demonstrates BarHasBeenCutAtStartOfSession.

We hope this will be ready by morning.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-27 01:06:55]
Sierra Chart Engineering - Posts: 104368
Have a look at the new Range bars example in /ACS_Source/ACSILCustomChartBars_Example.cpp in version 1676.

It is a simplified example of an implementation of Range bars.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-27 11:17:24]
gomifromparis - Posts: 244
I tried it, but like my own code, it doesn't fill the gaps

See DAX : when market is liquid it's ok we get 10 range bars, but on the start on the march contract, with big gaps, they are not filled.

The debugger also shows that IsInsertFileRecordsProcessing is never true.

Anything I need to set somewhere ?
Date Time Of Last Edit: 2017-12-27 11:17:34
imagesierrarangegap.png / V - Attached On 2017-12-27 11:16:31 UTC - Size: 63.62 KB - 449 views
[2017-12-27 18:41:06]
Sierra Chart Engineering - Posts: 104368
In regards to filling gaps, you either need to use one of the Gap Fill options documented here:
Chart Settings: Intraday Chart Bar Period >> Gap Fill (Chart >> Chart Settings >> Bar Period >> Intraday Chart Bar Period Settings menu)

Or you need to just fill the gaps by adjusting the high and low values in the custom chart bar building function.


The debugger also shows that IsInsertFileRecordsProcessing is never true.
We have now fixed this. We will have a new release out today.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-27 22:20:42]
gomifromparis - Posts: 244
I tried the 1677, but it's still not behaving like expected.

Now IsInsertFileRecordsProcessing is always true, on every call of the function ; it appears some bars do get created, but the chart still does not have the correct look of the standard gap filled Range chart.
imagecustomgapfill.png / V - Attached On 2017-12-27 22:19:55 UTC - Size: 64.58 KB - 486 views
[2017-12-27 23:03:39]
Sierra Chart Engineering - Posts: 104368
Now IsInsertFileRecordsProcessing is always true, on every call of the function ;
We apologize for this. We had not done any testing related to the variable. We have now and it is corrected.

We have now released a new revision of 1677. Update again. Although the version will remain the same.

Regarding gaps, we do not have much time to look at that now, but see if there is any difference.
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, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2017-12-27 23:36:13]
gomifromparis - Posts: 244
It seems
ChartBarInterface.InsertNewRecord = 1;

is missing in the sample.

The chart is starting to add bars, but still some issues.

I see the bars created in IsInsertFileRecordsProcessing being sent once, so they arrive in IsDeterminingIfShouldStartNewBar, and then in IsFinalProcessingAfterNewOrCurrentBar, but then there is a problem, IsFinalProcessingAfterNewOrCurrentBar is sent one more time instead of IsInsertFileRecordsProcessing , so the bar splitting process can't continue.

So if we add no bar, we have

IDISNB
IFPANOCB
IIFRP

IDISNB
IFPANOCB
IIFRP

IDISNB
IFPANOCB
IIFRP

but if we create a new bar in the underlined IIFRP, we get the sequence

IDISNB
IFPANOCB
IIFRP

IDISNB
IFPANOCB
IFPANOCB

IDISNB
IFPANOCB
IIFRP

IDISNB
IFPANOCB
IIFRP

but I think we may be close..
Date Time Of Last Edit: 2017-12-27 23:36:42

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

Login

Login Page - Create Account