I have no tested your engine yet, but I faced some problems with qsearch, like search explosion and mega blunders in the alphabeta search, what I did to solve it was:Luis Babboni wrote:Soberango 0.09.4 realized.
I decided to turn off quiescence search. The level with it is weaker than without it because the loss of speed doing it.
I need to make a faster captures generator before activate QS again.
Web: http://www.luisbtenis.com.ar/Soberango/Soberango.html
Don't qsearch when in check and inside qsearch after makemove, if the moves gives check just continue to next move
In the search, like I said I was facing with mega blunders, my engine does not have trans table, just plain alphabeta search, no null move, no extensions, no killers, no history, also in the eval only PST from CPW etc... so there is no point to have a pv line, so at the end of the search I just save the first root "bestmove" and the engine played much better
Having a simple engine helps solving this kinds of problems, try to turn off all the features and test each feature to see if there is a hidden bug