En realidad, Acabas de cometer un error menor, probablemente un error de copiar y pegar.
La siguiente línea requiere 8 parámetros en lugar de 4 porque coloca signos de interrogación donde debería haber colocado los nombres de las columnas.
insert into `stocks`(?,?,?,?) values (?,?,?,?);";
Si lo modifica de la siguiente manera (reemplazando los nombres de las columnas con sus nombres reales de la tabla de acciones), entonces debería funcionar como esperaba.
insert into stocks(ColumnNameOne, ColumnNameTwo, ColumnNameThree, ColumnNameFour)
values (?, ?, ?, ?);