Topics
Replies
Spotware
14 Aug 2015, 12:30
Dear Trader,
Neither 1) or 2) are corrent. Let's imagine that your cBot takes 5 seconds to handle market depth changed event and market depth changes every 2 seconds.
Current flow:
- Time: 0s. Market depth changes first time, cBot starts to handle State #1
- Time: 2s. Market depth changes second time, cBot is still handling State #1
- Time: 4s. Market depth changes third time, cBot is still handling State #1
- Time: 5s. cBot finished handling of State #1, cBot starts to handle State #2. State #3 is still in the queue.
How we are going to change the flow:
- Time: 0s. Market depth changes first time, cBot starts to handle State #1
- Time: 2s. Market depth changes second time, cBot is still handling State #1
- Time: 4s. Market depth changes third time, cBot is still handling State #1
- Time: 5s. cBot finished handling of State #1, cBot starts to handle State #3. State #2 is skipped because it is obsolete.
@Spotware
Spotware
14 Aug 2015, 09:18
Dear Trader,
As we already said we plan to skip old market depth changed events if new event is already in the queue. We already did it for OnTick event. We also plan to update market depth in RefreshData method.
Why do you think that the above changes will not help you?
@Spotware
Spotware
13 Aug 2015, 14:17
Dear Trader,
Thank you for your suggestions. Even if we add move info to market depth entry, it will not solve your current problem. The problem is that market depth changed event invoked more frequently than your cBot can handle. We understand that you would like to see non-aggregated market depth, but currently there are no plans to implement it.
@Spotware
Spotware
12 Aug 2015, 17:49
When you say: "We plan to skip old market depth changed events if new event is already in the queue"are you implying that you plan to implement a fixed circular buffer that will purge old events not taken from the buffer, to leave space for newer event? If this is the case, then the result would be gaps in the MarketData stream on the user end. If I understood you correctly, then I strongly advise against this.
No, the plan is not to invoke user handlers on obsolete events. API objects will be updated by every message. For example we invoke OnTick handler on the newest tick only, while MarketSeries object reflects all ticks. We believe it is the best approach for single thread model.
@Spotware
Spotware
12 Aug 2015, 16:49
Dear Trader,
Thank you for your detailed feedback.
Asynchonious event handling is too difficult for most of our users, so we do not plan to change current message loop approach. We plan to skip old market depth changed events if new event is already in the queue. We already did it for OnTick event. We also plan to update market depth in RefreshData method.
If you would like to work with cServer without cAlgo, please have a look at Connect API. Please note that it doesn't provide market depth yet.
@Spotware
Spotware
12 Aug 2015, 12:12
Dear Trader,
cAlgo invokes all cBot's handlers in a single thread. All incoming events are added to the processing queue. cBot handles events one by one. If cBot takes too much time to handle an event, the queue will contain more and more events and that will cause handling of obsolete events. Please try to optimize code of your cBot, especially handler of the market depth changed event. If that doesn't help we can recommend you to move your calculations to a separate thread to minify processing time in the main thread.
@Spotware
Spotware
04 Aug 2015, 10:28
Dear Trader,
There are several reasons for this issue to happen. The most common reason is the oneClick cache.
Other reasons may be:
A previous installation file or a setup file is corrupted. In this case should uninstall any previous versions, download the installation files from the originally hosted location and try to install the application again.
Maybe the registry was corrupted. In this case you should use a trusted third party tool to clean the registry. Additionally you should temporarily disable any antivirus program while trying to install the application.
@Spotware
Spotware
04 Aug 2015, 10:03
( Updated at: 21 Dec 2023, 09:20 )
Dear Trader,
The feature you described is already available in cTrader. You just have to enable it. To enable this feature go to Tools and select the Market Snapshot. Or just click the shortcut key in the toolbox.
Additionally we recommend you to take a look at http://help.spotware.com/charts/line-studies
@Spotware
Spotware
03 Aug 2015, 16:58
Dear Trader,
We recommend you to uninstall the application, clear your ClickOnce cache and try to install the application again.
To clear your ClickOnce cache, please perform the following steps:
-
Hold down the Win key and press R. The Run box should appear.
-
Into the Open field, enter %LOCALAPPDATA%\Apps for Windows 8.1, Windows 7, and Windows Vista or %USERPROFILE%\Local Settings\Application Data\Apps for Windows XP
-
Then click OK.
-
This will open Windows Explorer.
-
Delete the folder names 2.0
- Reinstall the application.
@Spotware
Spotware
03 Aug 2015, 14:28
Dear Trader,
We do not provide source codes of the indicators.
However if you want to modify the RSI output you can create an IndicatorDataSeries in a custom Indicator, add the RSI DataSeries to it and perform the modifications you want. The following code snippet illustrates it:
private RelativeStrengthIndex rsi; protected override void Initialize() { rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, Period); } public override void Calculate(int index) { //make modifications Result[index] = rsi.Result[index]; }
Additionally we invite you to take a look at the indicators uploaded on the Indicators section of cTDN.
@Spotware
Spotware
03 Aug 2015, 12:23
Dear Trader,
Every time I visit your website several known malware ads are trying to install onto my computer.
Could you please explain in detail what exactly you mean?
And also share with us when exactly some malware is trying to get installed on your computer? (When you download an indicator or when you open a thread etc.)
@Spotware
Spotware
17 Aug 2015, 17:16
Dear Trader,
The values of your indicator are too small. The indicator is drawn on the panel which is auto scaled to show the indicator on the best scale according to its minimum, maximum values. The values that you are assigning to the indicator are between 0.001...> index > -0.001. Therefore the marked levels are over/above the indicator panel.
For your information an easy way to check whether something is wrong, is to print the value to the log and check if it’s the expected value.
@Spotware