Optimization freezes because of a bug in my EA, I want to find the inputs that causes the bug.

 

I have a bug in my strategy but I can't find it. it's a bug that's been there for days but it's very rare. when I start an optimization, it causes the optimization to freezes and the test stops at a point like 501/10496. in this context, because my inputs are distributed in a complex way for each pass in the "optimization results" screen

(for example, between test (0,200) and test (0,201), the inputs do not change in order but randomly.

To give an example for the 200th test, for example StopLossLevel: 15, TakeProfitLevel: 20, MAPeriod: 30; in the 201st test the inputs StopLossLevel: 30, TakeProfitLevel: 40, MAPeriod: 15 (the increment combination is random))

I can't extract the bug-causing input combination by saying that this should be the next one and test it as a single test.


In this sense, even if I use functions like FrameNext, I can't see the inputs of this test even if it switches to the bug set in any of the cores. In order for me to find the set that caused the bug in optimization, I need to see the input set before starting the test after "Core 01 pass 0 (batch of 29 tasks) started" and then start the test. so I will examine the input set that caused the bug with a single test and find my bug. In this sense, although I tried a few things, I could not get the input sets every time the pass started. Can you write if you have any advice?

Documentation on MQL5: Working with Optimization Results / FrameNext
Documentation on MQL5: Working with Optimization Results / FrameNext
  • www.mql5.com
Reads a frame and moves the pointer to the next one. There are two variants of the function. 1. Calling to receive one numeric value 2. Calling to...
 
Arda Gunoglu:
I have a bug in my strategy but I can't find it. it's a bug that's been there for days but it's very rare. when I start an optimization, it causes the optimization to crash and the test stops. in this context, because my inputs are distributed in a complex way for each pass in the "optimization results" screen (for example, between test (0,200) and test (0,201), the inputs do not change in order but randomly.

To give an example for the 200th test, for example StopLossLevel: 15, TakeProfitLevel: 20, MAPeriod: 30; in the 201st test the inputs StopLossLevel: 30, TakeProfitLevel: 40, MAPeriod: 15 (the increment combination is random)) I can't extract the bug-causing input combination by saying that this should be the next one and test it as a single test.

In this sense, even if I use functions like FrameNext, I can't see the inputs of this test even if it switches to the bug set in any of the cores. In order for me to find the set that caused the bug in optimization, I need to see the input set before starting the test after "Core 01 pass 0 (batch of 29 tasks) started" and then start the test. so I will examine the input set that caused the bug with a single test and find my bug. In this sense, although I tried a few things, I could not get the input sets every time the pass started. Can you write if you have any advice?
You have to follow step by step procedure to find bug in your code

For various bugs in ea, it can freeze optimization or freeze strategy tester in visualization mode

Some of the common bugs are
1. Stack overflow when you call a same function inside a function
2. Nested for loop bug
Where I and j are used but op mistakenly adds I into place of j

What bug you have, only you can find