Topics
Replies
andi21
30 May 2017, 13:07
Hi Spotware,
thank you for forward the issue - i really hope we will find a solution.
I also thought about rolling back the windows updates, but unfortunately i did a cleaning with the windows data clean manager so the updates were also removed (i never had update-issues, so i left the checkmark on at removing also windows updates).
And rolling back cAlgo isn't possible due to the structure of MS Click once Deployment?
Further question (not directly related to this thread): why does cAlgo optimization sometimes stop before reaching 2500 runs, when i definitely know that it would be possible (does NOT apply: no exceptions, not many same results, to few possiblities)?
@andi21
andi21
30 May 2017, 12:30
RE: RE: RE:
andi21 said:
andi21 said:
andi21 said:
andi21 said:
Hi Spotware,
thanks for your reply.
To answer your question: no, i do not use Tasks or Timers.
These problems never occured earlier and i have been backtesting since the last several months. They just occured since last update.
Is it possible that i only think it has to do with the last cAlgo update (maybe it is but maybe not), but possibly it has to do with a windows update and a new version of some .NET Framework dlls (like the clr.dll from 20.05.2017).
I am currently targeting Framework 4.5.2, but maybe it will help if i target 4.7?
Further info (please see also my two previous posts):
in the methods from the error stacktrace i use History und Positions of the Robot. These two properties are internally real instance members, so they are not using any static members etc.? I am asking that, because i am running several cAlgo.exe instances to run mulitple optimizations in parallel to get use of 100% cpu (that was a problem in another thread from me).
And furthermore to notice - all of these cAlgo-instances are logged in with the same demo account.
One more info:
i said that i have backtesting since the last several months - at these times i used my other pc which runs fine at 4 cores with 100 % usage so no need to run multiple cAlgo.exe instances.
About not even 2 weeks ago i started my first run with multiple cAlgo.exe instances (6 instances and all using the same demo account). It runned without problems (except that cAlgo sometimes does not run until 2500 runs so it stop at run 1001 for example etc. so earlier...) and without crashes about from 19 may till 26 may.
Then at sunday 28 of may i started a second run again with multiple cAlgo.exe instances (6 instances and all using the same demo account). Before that there were windows updates and also cAlgo update (which waited since a few days). And since this time at sunday at this second big run i came across these crash issues, so the first big run worked fine, so no crashes and after windows update / calgo update on sunday there were multiple crashes within 2 days (i think 4 times).
@andi21
andi21
30 May 2017, 12:12
RE: RE:
andi21 said:
andi21 said:
andi21 said:
Hi Spotware,
thanks for your reply.
To answer your question: no, i do not use Tasks or Timers.
These problems never occured earlier and i have been backtesting since the last several months. They just occured since last update.
Is it possible that i only think it has to do with the last cAlgo update (maybe it is but maybe not), but possibly it has to do with a windows update and a new version of some .NET Framework dlls (like the clr.dll from 20.05.2017).
I am currently targeting Framework 4.5.2, but maybe it will help if i target 4.7?
Further info (please see also my two previous posts):
in the methods from the error stacktrace i use History und Positions of the Robot. These two properties are internally real instance members, so they are not using any static members etc.? I am asking that, because i am running several cAlgo.exe instances to run mulitple optimizations in parallel to get use of 100% cpu (that was a problem in another thread from me).
And furthermore to notice - all of these cAlgo-instances are logged in with the same demo account.
@andi21
andi21
30 May 2017, 12:05
RE:
andi21 said:
andi21 said:
Hi Spotware,
thanks for your reply.
To answer your question: no, i do not use Tasks or Timers.
These problems never occured earlier and i have been backtesting since the last several months. They just occured since last update.
Is it possible that i only think it has to do with the last cAlgo update (maybe it is but maybe not), but possibly it has to do with a windows update and a new version of some .NET Framework dlls (like the clr.dll from 20.05.2017).
I am currently targeting Framework 4.5.2, but maybe it will help if i target 4.7?
Further info (please see also my two previous posts):
in the methods from the error stacktrace i use History und Positions of the Robot. These two properties are internally real instance members, so they are not using any static members etc.? I am asking that, because i am running several cAlgo.exe instances to run mulitple optimizations in parallel to get use of 100% cpu (that was a problem in another thread from me).
@andi21
andi21
30 May 2017, 11:52
andi21 said:
Hi Spotware,
thanks for your reply.
To answer your question: no, i do not use Tasks or Timers.
These problems never occured earlier and i have been backtesting since the last several months. They just occured since last update.
Is it possible that i only think it has to do with the last cAlgo update (maybe it is but maybe not), but possibly it has to do with a windows update and a new version of some .NET Framework dlls (like the clr.dll from 20.05.2017).
I am currently targeting Framework 4.5.2, but maybe it will help if i target 4.7?
@andi21
andi21
29 May 2017, 20:09
Ok, i collected some info from eventlog from 4 crashes:
1.
Origin: .NET Runtime
Event-ID: 1023
Anwendung: cAlgo.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund eines internen Fehlers in der .NET-Laufzeit beendet. bei IP 00007FFF41C7C9A0 (00007FFF41C70000) mit Exitcode 80131506.
Origin: Application Error
Event-ID: 1000
Name der fehlerhaften Anwendung: cAlgo.exe, Version: 2.1.65534.35103, Zeitstempel: 0x59257f12
Name des fehlerhaften Moduls: clr.dll, Version: 4.7.2098.0, Zeitstempel: 0x59028c32
Ausnahmecode: 0xc0000005
Fehleroffset: 0x000000000000c9a0
ID des fehlerhaften Prozesses: 0x19e8
Startzeit der fehlerhaften Anwendung: 0x01d2d7af10c5a9af
Pfad der fehlerhaften Anwendung: C:\Users\andil\AppData\Local\Apps\2.0\A52ET0QJ.GQV\99T62NK0.4J2\fxpr..algo_37dabdf737419672_0002.0001_48273facb61e5ec3\cAlgo.exe
Pfad des fehlerhaften Moduls: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Berichtskennung: 92aa2179-260b-475a-a237-03b5129f2c85
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
---------------------------
2.
Origin: .NET Runtime
Event-ID: 1026
Anwendung: cAlgo.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.AccessViolationException
bei PipsRunnerSAndRLib.OrderHandling.CloseAndUpdateSL()
bei PipsRunnerSAndRLib.OrderHandling.OnTick()
bei cAlgo.PipsRunnerSAndR.OnTick()
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.SafeExecute(System.String, System.Action, Boolean)
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.Tick()
bei Frontend.CrossDomain.Backtesting.Backtester.Tick(Frontend.CrossDomain.TicksGenerating.Tick)
bei Frontend.CrossDomain.Backtesting.Backtester.Execute()
bei Frontend.CrossDomain.Optimization.BacktestingRunner.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService+<>c__DisplayClass18_0.<GetActions>b__0()
bei Frontend.CrossDomain.Optimization.BackgroundWorker.ProcessQueue(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei System.Threading.ThreadHelper.ThreadStart(System.Object)
Origin: Application Error
Event-ID: 1000
Name der fehlerhaften Anwendung: cAlgo.exe, Version: 2.1.65534.35103, Zeitstempel: 0x59257f12
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x00007ffee5e4d63b
ID des fehlerhaften Prozesses: 0x2540
Startzeit der fehlerhaften Anwendung: 0x01d2d7aef99c9bb7
Pfad der fehlerhaften Anwendung: C:\Users\andil\AppData\Local\Apps\2.0\A52ET0QJ.GQV\99T62NK0.4J2\fxpr..algo_37dabdf737419672_0002.0001_48273facb61e5ec3\cAlgo.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 432127ac-7922-455b-b2a2-c7ea8a87b282
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
---------------------------
3.
Origin: .NET Runtime
Event-ID: 1026
Anwendung: cAlgo.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.AccessViolationException
bei PipsRunnerSAndRLib.OrderHandling.CloseAndUpdateSL()
bei PipsRunnerSAndRLib.OrderHandling.OnTick()
bei cAlgo.PipsRunnerSAndR.OnTick()
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.SafeExecute(System.String, System.Action, Boolean)
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.Tick()
bei Frontend.CrossDomain.Backtesting.Backtester.Tick(Frontend.CrossDomain.TicksGenerating.Tick)
bei Frontend.CrossDomain.Backtesting.Backtester.Execute()
bei Frontend.CrossDomain.Optimization.BacktestingRunner.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService+<>c__DisplayClass18_0.<GetActions>b__0()
bei Frontend.CrossDomain.Optimization.BackgroundWorker.ProcessQueue(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei System.Threading.ThreadHelper.ThreadStart(System.Object)
Origin: Application Error
Event-ID: 1000
Name der fehlerhaften Anwendung: cAlgo.exe, Version: 2.1.65534.35103, Zeitstempel: 0x59257f12
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x00007ffee5e5d65c
ID des fehlerhaften Prozesses: 0xcc8
Startzeit der fehlerhaften Anwendung: 0x01d2d7af2f2af478
Pfad der fehlerhaften Anwendung: C:\Users\andil\AppData\Local\Apps\2.0\A52ET0QJ.GQV\99T62NK0.4J2\fxpr..algo_37dabdf737419672_0002.0001_48273facb61e5ec3\cAlgo.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 7e9b5e0a-941b-49ba-88b5-1754f16578b3
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
---------------------------
4.
Origin: .NET Runtime
Event-ID: 1026
Anwendung: cAlgo.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.AccessViolationException
bei PipsRunnerSAndRLib.OrderHandling+<EnumerateHistoryOfSpecificRejectionBackwardsForBuyAndSell>d__63.MoveNext()
bei System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]..ctor(System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei System.Linq.Enumerable.ToList[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei PipsRunnerSAndRLib.OrderHandling.OpenPositions()
bei PipsRunnerSAndRLib.OrderHandling.OnTick()
bei cAlgo.PipsRunnerSAndR.OnTick()
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.SafeExecute(System.String, System.Action, Boolean)
bei Frontend.CrossDomain.Wrapper.cBot.CBotWrapper.Tick()
bei Frontend.CrossDomain.Backtesting.Backtester.Tick(Frontend.CrossDomain.TicksGenerating.Tick)
bei Frontend.CrossDomain.Backtesting.Backtester.Execute()
bei Frontend.CrossDomain.Optimization.BacktestingRunner.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService.Backtest(Frontend.CrossDomain.Optimization.BacktesterParameters)
bei Frontend.CrossDomain.Optimization.Genetic.SinthesisService+<>c__DisplayClass18_0.<GetActions>b__0()
bei Frontend.CrossDomain.Optimization.BackgroundWorker.ProcessQueue(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei System.Threading.ThreadHelper.ThreadStart(System.Object)
Origin: Application Error
Event-ID: 1000
Name der fehlerhaften Anwendung: cAlgo.exe, Version: 2.1.65534.35103, Zeitstempel: 0x59257f12
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x000000000ee54da0
ID des fehlerhaften Prozesses: 0x1ad4
Startzeit der fehlerhaften Anwendung: 0x01d2d7aeeaaef9f5
Pfad der fehlerhaften Anwendung: C:\Users\andil\AppData\Local\Apps\2.0\A52ET0QJ.GQV\99T62NK0.4J2\fxpr..algo_37dabdf737419672_0002.0001_48273facb61e5ec3\cAlgo.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 78725cab-ebd6-46f7-b295-2a26376f156c
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Hope this helps.
@andi21
andi21
24 May 2017, 10:33
@Spotware:
I have a suggestion for this to be implemented the easiest way with the least effort:
just remember / persist the state of an bot-instance-play-button on hard disk. So if a user clicks on play of a bot instance the state "1" for bot-instance X is persisted. If the user clicks on stop of a bot instance the state "0" for bot-instance X is persisted. And if cAlgo starts it looks for the states and if it has states and they are also set to 1, then it just activates the bots.
It is even not necessary to display a message or leave an info about this behaviour, because if somebody starts a bot then he wants to run it until he stops it again - no matter if there was a server crash etc..
Thanks in advance.
Best Regards,
andi21
@andi21
andi21
19 May 2017, 15:26
RE:
andi21 said:
Hi Spotware,
Yes - and if i set the performance slider in optimization to 100% it uses all cores and runs 16 bots / runs in parallel, shouldn't it be possible / use the full about 6,25% of each bot on each core?
Sorry for the double-post - a 404 error occured after sending the first post and i created a second one, but the first one was also created although an error occured.
@andi21
andi21
19 May 2017, 15:21
Hi Spotware,
100% processor utilization can occur only for algogrithms that are fully parallelizable
Yes - and i think that should be the case if i set the performance slider to 100% in optimization and so there are 16 bot instances / runs in parallel running, isn't it?
@andi21
andi21
18 May 2017, 17:06
RE:
andi21 said:
Hi Spotware,
thank you.
I don't know how that can be, but to be sure i compiled and tried another run with your CPUIntensiveBot-Sample. And it is using all cores correctly like before and also it is using 100% now.
But that means the following i think:
- if cBot X has intensive code in OnTick, then 100% can be used (like in the CPUIntensiveBot-Sample with the two nested fors)
- if cBot X has "normal" code (for the cpu), then only 25% are used - but in this case the OnTick-Method from the bot has to be called in a more cpu-Intensive way from cAlgo-Internals, so that the cpu can use 100%, so Trades can be sure their optimization runs in full speed (all cores - which works great through the slider - and also at 100% - which does not work 100% i think).
Seeing forward for your response and thanks.
And furthermore:
- if i use only a fix parameter for the double Parameter for example 0, then only 7 % is used, but that is fine, because only one bot so one core will be instantiated by cAlgo-Optimizer
- if i use a range of for example -0.5 till 1.5 then there are 20 Possiblities, so enough that 16 bot instance can be created to use all cores
@andi21
andi21
18 May 2017, 16:59
Hi Spotware,
thank you.
I don't know how that can be, but to be sure i compiled and tried another run with your CPUIntensiveBot-Sample. And it is using all cores correctly like before and also it is using 100% now.
But that means the following i think:
- if cBot X has intensive code in OnTick, then 100% can be used (like in the CPUIntensiveBot-Sample with the two nested fors)
- if cBot X has "normal" code (for the cpu), then only 25% are used - but in this case the OnTick-Method from the bot has to be called in a more cpu-Intensive way from cAlgo-Internals, so that the cpu can use 100%, so Trades can be sure their optimization runs in full speed (all cores - which works great through the slider - and also at 100% - which does not work 100% i think).
Seeing forward for your response and thanks.
@andi21
andi21
18 May 2017, 16:00
RE:
Spotware said:
Hi andi21,
Can you send us a cBot that we could run and reproduce the problem?
Hi Spotware,
as an example i have used this bot: /algos/cbots/show/3
If you have further questions, please don't hesitate to contact me.
Thanks in advance.
Best Regards,
andi21
@andi21
andi21
01 Jun 2017, 10:41
@1013749 -> Yes, you are absolutely right.
@Spotware:
i have rolled back the windows update from which i thought it could be the origin of the problem (fortunately it was the only update left to be possible to be uninstalled).
Regrettably it crashed again after i started a new run of 6 calgo.exe instances...
Furthermore one instance stopped again optimizing only after 767 Runs (although there could be 2500 possible).
That need to be fixed - otherwise i can start my runs again and again and again, because either cAlgo crashes or it stops too early, so it's not testing enough parameter combinations, so i will never be able to finish my project in which i invested several months...
So please, please answer the following questions:
1. Why does cAlgo optimization stop too early sometimes (see also /forum/calgo-support/11573?page=2#12)? THIS should NOT happen, because it is nearly the same effect like if cAlgo crashes!
2. What went wrong with the newest cAlgo version (released about a week ago), because of the crashes in optimization mode? THIS should NOT happen.
WE the traders and so your customers waste so much time and we all know that time = money and money is not available infinitely...
If i can help you with these problems in any way, PLEASE let me know - i am working on my project full time and currently there "should" be a good working backtesting phase, which i cannot do because of the problems.
So Spotware please help us to help you to get better.
@andi21