Na verdade, você acabou de cometer um pequeno erro - provavelmente um erro de copiar e colar.
A linha a seguir requer 8 parâmetros em vez de 4 porque você coloca pontos de interrogação onde deveria ter colocado os nomes das colunas.
insert into `stocks`(?,?,?,?) values (?,?,?,?);";
Se você modificá-lo da seguinte forma (substituindo os nomes das colunas pelos seus nomes reais da tabela de ações), ele deverá funcionar como você esperava.
insert into stocks(ColumnNameOne, ColumnNameTwo, ColumnNameThree, ColumnNameFour)
values (?, ?, ?, ?);