For the starting position it was something like 6% at depth 12. It didn't change much in middlegame positions, maybe +1% or +2%. I read that normal values are around 20%, so definitely something was wrong.
After I examined my code I think I found the issue. In the alpha beta routine when the engine is at depth 0, it first probe the hash table and, if it was a miss, only then it calls the quiescence search algorithm. I noticed that other engines don't probe the hash table at depth 0, they go directly to the quiescence search. If I do this, I get normal hit rates (around 20%).
Testing a few different positions I couldn't see a clear winner, sometimes an approach takes longer but for other positions it is faster. So my question is: is there something wrong with probing the hash table at depth 0? doing this doesn't mean that I will cut off more nodes?
In case you want more information:
- hash table size: 128mb (5.5 million entries).
- I don't probe or store the table inside the qsearch.
- Engine: MORA CHESS ENGINE https://github.com/gonzaloarro/MORA-CHESS-ENGINE