Topics
Replies
martins
10 Sep 2024, 21:48
( Updated at: 11 Sep 2024, 05:29 )
RE: RE: RE: RE: Where is doc for MarketSeries price data?
PanagiotisCharalampous said:
martins said:
martins said:
PanagiotisCharalampous said:
Hi martins,
Thanks for your suggestions but we disagree with maintaining multiple versions of documentation. Old code does not need to be maintained but needs to be updated. Obsolete methods are only supported so that developers have enough time to update their obsolete code without service interruptions. New development is not supported. Therefore we do not plan to make it easy for people not to update their code.
Best regards,
Panagiotis
OK, thank you for your replies on this. Hopefully you understand I wasn't really suggesting “maintaining” the whole old doc, as in having to review or edit it forever, I was merely suggesting either an archive area with complete as-is old doc (ie without relying on internet archive wayback), OR an easy-to-find set of migration docs, issued at the time of the change but to be considered an appendix of the current doc, on how to update from a deprecated way to a new way. Perhaps just an area with all the “what's new in release x” notes would do.
My main point was to suggest the information needed in order to comply with your assertion “Old code does not need to be maintained but needs to be updated” should be somewhere within the official current documentation, and, not only available by searching the internet or interpreting warning compile-time messages or finding old forum or blog items for items such as https://ctrader.com/forum/ctrader-blog/22440/
(My usage of the word “maintain” includes making changes for your “needs to be updated” so I wouldn't [pedantically] agree with “Old code does not need to be maintained”!)More philosophically: without official information on how old code needs to be updated, there is no support for old code, which effectively means there is no real support for current code because the customer can't trust that a current feature they've used might not become old and without migration information ‘next week’.
Hi martins,
without official information on how old code needs to be updated, there is no support for old code, which effectively means there is no real support for current code because the customer can't trust that a current feature they've used might not become old and without migration information ‘next week’.
For obsolete classes and members you should get a message indicating what you should use instead. See below
Indeed. I was tending to overlook that fact, and accept that issuing warning hint messages does cover the migration aspect.
[note to self: must really stop putting off actioning all the warning messages I've been ignoring!] Thanks again.
@martins
martins
10 Sep 2024, 16:31
( Updated at: 11 Sep 2024, 05:29 )
RE: [QUESTION] where is ctrader old documentation
[subversively:] It's still online in the Internet Archive's “Way Back Machine”, for instance https://web.archive.org/web/20220927055220/https://ctrader.com/api/reference/line
Clearly that archive may document API features that are deprecated or removed, and in any case, for ‘line’ at least, has identical information to the current doc albeit in a different format. I had a similar query a few days ago, and later remembered it might be there. Only back to 2019 though, whereas I was looking for older :(
@martins
martins
10 Sep 2024, 14:52
( Updated at: 10 Sep 2024, 16:33 )
RE: Where are all the Release Notes - cannot find any between 4.8.30 & 5.0.22 so don't know what's changed since 4.9.2
PanagiotisCharalampous said:
You can find release notes for major releases in What's New section
Ok, thanks. I note What's New from cTrader Web has Release numbers, whereas Desktop appears not to, was that deliberate, or perhaps the Web version I'm looking at is newer than my Desktop v4.9.2 and the later versions have the numbers. Do changes & enhancements to the cBot programming API of Automate / Algo appear there too, if not where?
Also, how would I see equivalent information for a version later than the one I have?
And finally, I'm confused by the different cTrader platform names, in particular cTrader Desktop vs cTrader Automate. All the version of Desktop I've used, 3.x to 4.9, have the Automate option for coding (directly or in Visual Studio), and for running, C# automated trading cBots and Backtesting & Optimization, so are these in fact the same thing?
@martins
martins
09 Sep 2024, 11:10
( Updated at: 09 Sep 2024, 12:24 )
RE: RE: Where is doc for MarketSeries price data?
martins said:
PanagiotisCharalampous said:
Hi martins,
Thanks for your suggestions but we disagree with maintaining multiple versions of documentation. Old code does not need to be maintained but needs to be updated. Obsolete methods are only supported so that developers have enough time to update their obsolete code without service interruptions. New development is not supported. Therefore we do not plan to make it easy for people not to update their code.
Best regards,
Panagiotis
OK, thank you for your replies on this. Hopefully you understand I wasn't really suggesting “maintaining” the whole old doc, as in having to review or edit it forever, I was merely suggesting either an archive area with complete as-is old doc (ie without relying on internet archive wayback), OR an easy-to-find set of migration docs, issued at the time of the change but to be considered an appendix of the current doc, on how to update from a deprecated way to a new way. Perhaps just an area with all the “what's new in release x” notes would do.
My main point was to suggest the information needed in order to comply with your assertion “Old code does not need to be maintained but needs to be updated” should be somewhere within the official current documentation, and, not only available by searching the internet or interpreting warning compile-time messages or finding old forum or blog items for items such as https://ctrader.com/forum/ctrader-blog/22440/
(My usage of the word “maintain” includes making changes for your “needs to be updated” so I wouldn't [pedantically] agree with “Old code does not need to be maintained”!)
More philosophically: without official information on how old code needs to be updated, there is no support for old code, which effectively means there is no real support for current code because the customer can't trust that a current feature they've used might not become old and without migration information ‘next week’.
@martins
martins
09 Sep 2024, 10:49
( Updated at: 09 Sep 2024, 12:24 )
RE: Where is doc for MarketSeries price data?
PanagiotisCharalampous said:
Hi martins,
Thanks for your suggestions but we disagree with maintaining multiple versions of documentation. Old code does not need to be maintained but needs to be updated. Obsolete methods are only supported so that developers have enough time to update their obsolete code without service interruptions. New development is not supported. Therefore we do not plan to make it easy for people not to update their code.
Best regards,
Panagiotis
OK, thank you for your replies on this. Hopefully you understand I wasn't really suggesting “maintaining” the whole old doc, as in having to review or edit it forever, I was merely suggesting either an archive area with complete as-is old doc (ie without relying on internet archive wayback), OR an easy-to-find set of migration docs, issued at the time of the change but to be considered an appendix of the current doc, on how to update from a deprecated way to a new way. Perhaps just an area with all the “what's new in release x” notes would do.
My main point was to suggest the information needed in order to comply with your assertion “Old code does not need to be maintained but needs to be updated” should be somewhere within the official current documentation, and, not only available by searching the internet or interpreting warning compile-time messages or finding old forum or blog items for items such as https://ctrader.com/forum/ctrader-blog/22440/
(My usage of the word “maintain” includes making changes for your “needs to be updated” so I wouldn't [pedantically] agree with “Old code does not need to be maintained”!)
@martins
martins
07 Sep 2024, 16:01
( Updated at: 10 Sep 2024, 21:35 )
RE: RE: RE: Where is doc for MarketSeries price data?
martins said:
martins said:
PanagiotisCharalampous said:
Hi there,
Obsolete documentation has been removed and obsolete classes are not documented, they are kept for backward compatibility only.
Indeed links to types would be helpful but you can still easily search them on the search bar.
Best regards,
Panagiotis
Making old documentation unavailable is a serious reliability issue for the platform - for instance how is a new programmer supposed to know how to maintain an old cBot or to know what the old API does in order to migrate it to the new?? And why should an ‘old’ programmer have to rely on memory in order to similarly maintain it?
And one might wonder what other undocumented features are in the API! I wonder what's going to happen after ‘cTrader Automate API’ is out, will the Algo API doc disappear?
This is not good enough - old doc, especially for APIs you still support it, needs to be available somewhere, at least in an archive area or something. I could point out there are some forum items, & even cBot examples in the current doc, that use the old methods.Publishing doc as one pdf would be one way to achieve this long term availability , equivalent to a printed manual that can be referred to for ever. Otherwise you seem to be implying the only way to see old doc is to have downloaded the whole doc website a couple of years ago and host it locally. Traditional software companies keep their archived documentation - you can find what IBM API did 50 years ago even if enhanced or different now, or a 30-year old Windows 3.1 win32 API, or old Linux versions etc.
If an API is actually removed (not just deprecated) there at least needs to be migration doc on how to convert to the ‘new way’ (which to be complete would need to include doc on the ‘old way’ anyway!).
Perhaps the simplest solution nor now is to reinstate the old documentation, in an area clearly marked archive & not to be used for new cBots.Having written “the only way to see old doc is to have downloaded the whole doc website a couple of years ago” I remembered the Internet Archive, and sure enough some old-format doc IS there!
A few dates are available, all very similar eg https://web.archive.org/web/20200811163336/https://ctrader.com/api/reference/bar but not old enough to have MarketSeries, which as I understand from Spotware's 2019 blog re ‘New Features in cTrader Automate API 3.7’ at https://ctrader.com/forum/ctrader-blog/22440/ was exactly equivalent to (a subset of) the Bars object, with the name of each of the several DataSeries within MarketSeries renamed, MarketSeries.Open becoming Bars.OpenPrices etc. The newer Bars object also provide access to a (single) collection/array of Bar structures [via Bars.Last(n) or Bars.LastBar] each of which has a set of property values having the same names as the original (multiple) DataSeries in MarketSeries, ie Bars.Last(2).Open & Bars.Last(2).Low etc.
I've seen the following 3 statements produce identical results (mjsWriteLine just outputs the text to an external log file that gets auto renamed when a backtest ends, to include some of the stats in the filename, and index is always Bars.Count-2 or less to avoid incomplete timesteps):
mjsWriteLine("OpenTime=" + Bars.Last(index).OpenTime + " Open=" + Bars.Last(index).Open + " High=" + Bars.Last(index).High + " Low=" + Bars.Last(index).Low + " Close=" + Bars.Last(index).Close);
mjsWriteLine("OpenTime=" + Bars.OpenTimes.Last(index) + " Open=" + Bars.OpenPrices.Last(index) + " High=" + Bars.HighPrices.Last(index) + " Low=" + Bars.LowPrices.Last(index) + " Close=" + Bars.ClosePrices.Last(index));
mjsWriteLine("OpenTime=" + MarketSeries.OpenTime.Last(index) + " Open=" + MarketSeries.Open.Last(index) + " High=" + MarketSeries.High.Last(index) + " Low=" + MarketSeries.Low.Last(index) + " Close=" + MarketSeries.Close.Last(index));
I still think it would help if there were a reference to MarketSeries in the current doc, rather than having to search around to find the blog item & other references.
“This post awaiting modaration.” - moderation! (e)
@martins
martins
07 Sep 2024, 11:38
( Updated at: 10 Sep 2024, 21:33 )
RE: Where is doc for MarketSeries price data?
PanagiotisCharalampous said:
Hi there,
Obsolete documentation has been removed and obsolete classes are not documented, they are kept for backward compatibility only.
Indeed links to types would be helpful but you can still easily search them on the search bar.
Best regards,
Panagiotis
Making old documentation unavailable is a serious reliability issue for the platform - for instance how is a new programmer supposed to know how to maintain an old cBot or to know what the old API does in order to migrate it to the new?? And why should an ‘old’ programmer have to rely on memory in order to similarly maintain it?
And one might wonder what other undocumented features are in the API! I wonder what's going to happen after ‘cTrader Automate API’ is out, will the Algo API doc disappear?
This is not good enough - old doc, especially for APIs you still support it, needs to be available somewhere, at least in an archive area or something. I could point out there are some forum items, & even cBot examples in the current doc, that use the old methods.
Publishing doc as one pdf would be one way to achieve this long term availability , equivalent to a printed manual that can be referred to for ever. Otherwise you seem to be implying the only way to see old doc is to have downloaded the whole doc website a couple of years ago and host it locally. Traditional software companies keep their archived documentation - you can find what IBM API did 50 years ago even if enhanced or different now, or a 30-year old Windows 3.1 win32 API, or old Linux versions etc.
If an API is actually removed (not just deprecated) there at least needs to be migration doc on how to convert to the ‘new way’ (which to be complete would need to include doc on the ‘old way’ anyway!).
Perhaps the simplest solution nor now is to reinstate the old documentation, in an area clearly marked archive & not to be used for new cBots.
@martins
martins
02 Nov 2022, 03:15
RE:
martins said:
Trying to transfer cBots & indicators development from Windows 7 to Windows 10. Hadn't started cTrader on the Win 7 for a few months, so first change was the automatic upgrade - Win 7 cTrader upgraded itself and Win 10 new install are both now at version 4.2.22.8457.
The builds still complete properly on the Win 7 system, but hang on Win 10.
What have I missed in "just" moving from Win 7 to Win 10?
It seems YOU HAVE TO RUN a copy of AN OLD PRE-4.2 cTrader at least ONCE ON THE NEW PC (just to the point of it displaying its login window is enough) BEFORE YOU CAN BUILD any UNCHANGED Visual Studio solutions or PROJECTS that have been COPIED FROM PRE-4.2, cAlgo.API based systems. Because I'd installed a fresh download on Win 10, I'd only ever run 4.2, never 4.1 or older, and VS2019 was hanging presumably looking for it. I found a copy of 4.1.11.49761 on the Win 7 system in /User/.../AppData/Local/Apps/2.0/??1/??2/xtrader_7ef.../cTrader.exe (the two ?? look like random 8.3 allcaps names so probably vary). I copied the whole ??2 folder and renamed it on Win 10, then ran the copied cTrader.exe - the build of an unchanged old cAlgo cBot solution then build successfully in Virtual Studio 2019 on Win 10. Running the old cTrader just once seems to be enough.
So the fact the new system was Win 10 was irrelevant - the salient point is it was a system that had never run an old version of cTrader that didn't use cTrader.Automate
The clue to this resolution was the initial message produced by a VS build on the old (Win 7) system:
Application: C:\Users\...\AppData\Local\Apps\2.0\XJNZ....\92J...\xtrader_7ef...\cTrader.exe, version: 4.1.11.49761
Compile project: C:\Users\...\Documents\cAlgo\Sources\Robots\name\name\name.csproj
A similar message now appears on the new (Win 10) system when building these unchanged projects. However, I presume it won't be too hard to create new versions for ctrader.Automate & .NET 6 by copying just the main source to cTrader 4.2 and using 'Edit in Virtual Studio' to create a simple version of the project and then adding the other parts of extra source etc back in.
@martins
martins
16 Feb 2020, 18:12
How do you turn off autoscroll for the backtest chart - it doesn't seem to have free chart mode.
I wanted to scroll back through a test without the vertical scale moving about. Just having it not automatically re-enlarge after I manually shrink the vertical scale would help, perhaps automatically move it up or down to fit would be ok, but without rescaling, so if I've shrunk it enough it won't alter even if scroll horizontally through whole test.
@martins
martins
05 Dec 2019, 01:40
Marvellous, yes that's it, thanks. Seems to operate even more separately than I was expecting, in that it went through a mini install process when creating the 2nd profile, and each profile downloads its own backtest data rather than use what was already downloaded for the other - but then you might well want it to do that if you fiddle with it using the program in here...
@martins
martins
05 Nov 2019, 01:57
In order to be as robust as an alterable Position.Label wouldn't the info in this Order class have to be stored in a file - otherwise only information that can be determined from the positions themselves could be reconstructed after cTrader restarted for whatever reason, for instance after pc crash or power outage.
@martins
martins
11 Sep 2024, 20:38 ( Updated at: 11 Sep 2024, 20:58 )
RE: RE: RE: Where are all the Release Notes - cannot find any between 4.8.30 & 5.0.22 so don't know what's changed since 4.9.2
Hmm,
there's a hole in the bucket somewhere! I'm running 4.9.2 and was originally asking about info on the website not info embedded within the product, so…
Where are all the Release Notes - cannot find any between 4.8.30 & 5.0.22 so don't know what's changed since 4.9.2
@martins