Note that the blocks have numbers. Most of the time these numbers doesn't matter, but sometimes they do.
Take a look at this: https://fxdreema.com/documentation/builder/builder-basic-rules#block-numbers
If you have 10 blocks connected one after another, their numbers doesn't matter, because the order of execution is from the first block to the last, and there is only one possible path.
However, things are a little bit different when there are 2 or more possible paths. If you have a block that is connected to 2 or more blocks after it, which of these block should run first? They can't run at the same time, because the code is synchronous.
This is what you have in your last example:

Here block 4 doesn't even matter, it just passes. But what follows block 4? Blocks 7, 3, 1 and 5. Ok... let me rearrange the blocks just a little bit:

Now there is a visual difference, obviously, I changed the position of the blocks. Will this example produce different results in the Tester? If the position of the blocks mattered, yes. But the position of the blocks doesn't matter, so the results will be absolutely the same, and in your opinion - wrong. What matters is the number of blocks. The lower number runs first. This means that the order of execution of blocks is 1, then 3, then 5, then 7.
Let's imagine that you already have one position. Let's look at what happens on the very first run of these blocks.
- First, the program goes to blocks 1, which passes and causes block 2 to run. You now have a value for Floating_For_each.
- Then, the program goes to block... can you guess... block 3, the Comment block. At this time only Floating_For_each has a value that is not 0. The other variables still have their initial values of 0.
- Then block 5 (and 6) runs, then 7 runs => now we have all variables set.
- On the next tick we recalculate Floating_For_each, then we print it in Comment. But this time the other two variables have values.... from the previous tick. That's why the values are close, but different.
Change the number of block 3 to say 30 and the bug will be fixed.
You can search for "Sure-Fire" in the forum. I posted the same example that I did looong time ago many times. But my opinion is that hedging is just a stupid way to do Martingale. It makes the whole process hard to make, hard to maintain and more complex in general. Jim Dandy is on the same opinion: