Feature Request: Playback Jump Time Treated as Last Bar and " Bars Back " = Constant

Questions about MultiCharts .NET and user contributed studies.
Jobauma
Posts: 113
Joined: 16 Apr 2013
Has thanked: 25 times
Been thanked: 6 times

Feature Request: Playback Jump Time Treated as Last Bar and " Bars Back " = Constant

Postby Jobauma » 06 Jan 2019

Hi.

Issue:
I have decided to use 20 workspaces ( * 12 charts ). 8000 bars per chart is something my iMac doesn't handle ( 2 MultiCharts processes ). Reason for 8000 bars is to use playback for 1 week back, including M1. 377 bars per chart is sufficient for my indicators, and is something my iMac handles, but then there is not enough bars for M1, and so on, for playback. :)

Feature Request:
The feature request is that if you jump to any time MultiCharts loads the required bars and treats the jump time as the last bar. This way " Bars Back " will always be enough and always be the amount of bars shown ( a small amount of bars will always be sufficient ). This implies that when a new bar appears, the first one disappears ( " Bars Back " = Constant ). Then you don't need to waste resources with bars you do not really need ( other than playback ).

Is this something that can be implemented? :)



Best regards,
Johannes Hillestad Baumann

User avatar
Henry MultiСharts
Posts: 9165
Joined: 25 Aug 2011
Has thanked: 1264 times
Been thanked: 2957 times

Re: Feature Request: Playback Jump Time Treated as Last Bar and " Bars Back " = Constant

Postby Henry MultiСharts » 14 Jan 2019

Hello Johannes,

I'm afraid that this is not something that is technically possible.

Jobauma
Posts: 113
Joined: 16 Apr 2013
Has thanked: 25 times
Been thanked: 6 times

Re: Feature Request: Playback Jump Time Treated as Last Bar and " Bars Back " = Constant

Postby Jobauma » 15 Jan 2019

Hi.

I've set my indicators to calculate for the last 117 bars ( and reset/delete plots/objects exceeding this limit ). I use my own bars indicator for bars, so I've turned on " Format Instruments... > Style > Invisible bars ". Since the original bars are invisible, does it mean they are still there in some way ( with 8000 bars back )? I've noticed that there is some additional scaling with my bars indicators ( with only 117 bars ), so I guess the original bars are there, even when invisible. :)

My question is does this take up unneeded resources? If it doesn't, 8000 bars back for each chart isn't really a problem ( then I can use the same workspaces for both live and playback purpose ), but if it does, can MultiCharts add a feature to completely disable the original bars ( and only keep the values of "Open", "High", "Low", "Close", and the " Last Price Marker " ). :)

Note: I believe that " Format Instruments... > Scaling > Screen > Expand Scale to Indicators " has to be enabled ( for a custom made bars indicator ), if the original bars are completely removed. :) This preference should probably be forced to be enabled, when setting the original bars to "Disabled".

Reason for the issue is that I use 20 symbols ( 20 workspaces * 12 charts ). I want to use 2 MultiCharts processes ( with 8000 bars back ), instead of 4, or even just 1, and no need for 2 sets of workspaces ( " live = 233 bars back " and " playback = 8000 bars back " ) for live trading and playback. :P It's time-consuming to have 2 sets, because I upgrade the workspaces all the time. :)

If " Invisible bars " does not take up resources, the feature request isn't necessary at all. :) Then the solution has always been to just limit the amount of last bars, like this ( with own indicators ):

Code: Select all

// NumberOfBars = 117;



protected override void CalcBar()
{
// Core Functions - Number of Bars / Current Bar

m_CF_NumberOfBars = Bars.FullSymbolData.Count;
m_CF_CurrentBar = Bars.FullSymbolData.Current;



// Code ( Within Limit of Last Bars )

if ( m_CF_CurrentBar > m_CF_NumberOfBars - NumberOfBars )
{
// "Code"
}



// Reset/Delete Plots/Objects ( Without Limit of Last Bars )

p_PlotObject.Reset( NumberOfBars + 1 );

if (!object.Equals( tl_TrendLineObject[NumberOfBars], null ))
{
if (tl_TrendLineObject[NumberOfBars].Exist)
tl_TrendLineObject[NumberOfBars].Delete();
}
}
Thanks.



Best regards,
Johannes Hillestad Baumann


Return to “MultiCharts .NET”