[136 RC 3] Building with Portfolio based Fitness unexpected behavior

I can understand how generation zero would not be tested yet on the cross-check markets, maybe it was done on purpose so the init pop didn't take a long time to fill. However, in later generations, there are strategies that skip the crosschecks but are ranked with high fitness. My screenshot shows one newly created gen 5 strategy un-crosschecked, and it also shows a few still alive from generation 0 that were never crosschecked and should be by now. Presumably, they are competing with other legitimate strategies (which have been tested correctly on other markets) causing inefficiencies. EDIT: Working around these rogue un-crosschecked strategies with a complex fitness custom column combo, I can get 2.5x the strategies passing the filters so obviously this is definitely an enormous inefficiency for building with a crosscheck-based fitness.   You can tell the cross-check was skipped because the portfolio # of trades is the same as the main data # of trades. I took this strategy into retester and it does trade on other markets just fine but for some reason during building, the crosschecks for this strategy were skipped so it looks like a bug.

To reproduce:
1. load the build config and start building
2. Open the "last generation" tab and choose a view that shows number of trades for main data and also for portfolio.
3. Sort the "last generation" databank by number of trades for portfolio.
4. look for strategies other than generation zero strategies (x.0.xxx is a zero generation, look for x.2.xxx or x.3.xx or x.4.xxx you get the idea...) that have the same number of trades in the portfolio data as it does in the main data. With my sample build config, there will be approximately one or two each generation after generation 3 begins. Also, look for 0 generation strategies that are still alive in later generations yet have not been cross-market checked.

**NOTE**You may have to use the native builder to reproduce this as within a custom build task fitness function is hit or miss because of the fitness bug


Attachments
2022-03-09 4.png
(692.78 KiB)
2022-03-09 3.png
(522.47 KiB)
2022-03-09 2.png
(1.11 MiB)
bugged-build-config-portfolio.cfx
(36.13 KiB)
ExampleRougeBuggedStrategy 15719.sqx
(53.28 KiB)
  • Votes +6
  • Project StrategyQuant X
  • Type Bug
  • Status Waiting for information
  • Priority Normal
  • Assignee Mark Fric
  • Category Backend

History

b
#1

bentra

09.03.2022 19:57

Task created

b
#2

bentra

09.03.2022 20:07
Voted for this task.
b
#3

bentra

10.03.2022 02:55

Attachment 2022-03-09 5.png added

2022-03-09 5.png
(1.06 MiB)
By generation 5 all the strategies in the gene pool should've been sent to the cross-check by now, even the ones that are leftover from generation 0.
E
#4

Emmanuel

10.03.2022 04:04
Voted for this task.
g
#5

geektrader

10.03.2022 23:41
Voted for this task.
g
#6

geektrader

10.03.2022 23:42
Thanks bentra, I 100% confirm the issue! This needs to be fixed as quick as possible.
l
#7

Loonly

11.03.2022 09:28
Voted for this task.
b
#8

bentra

11.03.2022 19:18

Attachment 2022-03-11 4.png added

2022-03-11 4.png
(218.47 KiB)
I created a temporary workaround involving a custom column for the purpose of giving a lot of bonus fitness for having ~100 or more non-main chart trades and it got rid of this problem (by essentially burying anything in the gene pool that doesn't have cross-check trades with genes that do have them...not the ideal way to resolve this but it's a good proof of concept) and now gets 2.5x the output making it through the next set of filters. The stagnation of islands becomes much rarer and the fitness charts of all the islands are now properly progressing! 

I remind you this only applies to people building on a portfolio fitness. Message me if you want more info on the discord channel.
CG
#9

Chris G

12.03.2022 03:19
Voted for this task.
b
#10

bentra

14.03.2022 02:14
Credit to the SQX team for giving so much transparency to these processes that we the users can actually find these bugs.
4
#11

Jordan

15.03.2022 03:30
Voted for this task.
TT
#12

Tamas

11.09.2022 14:38

Assignee changed from Mark Fric to Mark Fric

Status changed from New to Waiting for information

Milestone changed from None to Build 136 Dev 4

Category changed from None to Backend

As far as I know, this was already fixed by Mark in another task, right?
b
#13

bentra

11.09.2022 16:10
It is not fixed in dev 2. I've been keeping an eye on bug reports, I don't see another fix that may have affected this. It's about some strategies not getting crosschecked during the building phase when a crosscheck fitness is applied.
TT
#14

Tamas

11.09.2022 17:18
As I know this was fixed in dev3 last Monday. Can you please download the latest build and test it out ? 
b
#15

bentra

13.09.2022 00:09

Attachment Screenshot_129.png added

Screenshot_129.png
(32.34 KiB)
This problem still exists in the newest dev version dev 3. Some strategies remain in the pool with no crosscheck done, they rank high in fitness.



b
#16

bentra

13.09.2022 00:32

Attachment Screenshot_131.png added

Screenshot_131.png
(58.22 KiB)
Look... no crosscheck is done for sure on this one strategy
b
#17

bentra

13.09.2022 00:35

Attachment Screenshot_132.png added

Screenshot_132.png
(58.15 KiB)
Not sure why some strategies are skipping the crosscheck but they are. My workaround is to kill off (rate with low ranking) these strategies by force with a custom column, however, it would be even better (less wasteful of CPU) if strategies did not skip the crosscheck.
MF
#18

Mark Fric

14.11.2022 10:57

Milestone changed from Build 136 Dev 4 to Build 136 RC 1

b
#19

bentra

04.12.2022 23:06
This one missed the milestone, please update.
b
#20

bentra

05.12.2022 23:18

Attachment Screenshot_392.png added

Screenshot_392.png
(94.51 KiB)
This is clearly not fixed. We are  in generation #2 (1) but the genes that survived through from generation #1 (0) never actually got tested on the crosscheck and are getting highly rated fitness which messes up the process. I understand that init pop can skip the crosscheck generation #1 (0) but we need all the genes to be tested with a crosscheck by/on generation #2 (1). Currently, only the mutations and children are being crosschecked. The original init pop NEVER GETS CROSSCHECKED AND MAY LIVE A LONG TIME WITH HIGH FITNESS MESSING THINGS UP

Not fixed in RC 3 please update the milestone
MF
#21

Mark Fric

19.12.2022 14:33

Milestone changed from Build 136 RC 1 to Build 137

MF
#22

Mark Fric

04.04.2023 11:08

Milestone changed from Build 137 to Build 138

MF
#23

Mark Fric

08.12.2023 08:59

Milestone changed from Build 138 to None


Votes: +6

Drop files to upload

or

choose files

Max size: 5MB

Not allowed: exe, msi, application, reg, php, js, htaccess, htpasswd, gitignore

...
Wait please