So here it is without a loop & code is somewhat simplified.
Also, I changed from dynamic SQL to prepared statements to avoid any chance of someone causing a SQL injection hack (someone could easily write some bad string in your CSV to wipe out your database)
take a look, see what you think.
[{"id":"63387117.11e7f","type":"inject","z":"6fe62fab.dc09d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":840,"y":140,"wires":[["e57058a5.a0a1a8"]]},{"id":"e57058a5.a0a1a8","type":"change","z":"6fe62fab.dc09d","name":"","rules":[{"t":"set","p":"temp_signal_inserts","pt":"flow","to":"[{\"key\":\"sensor1\",\"val\":11.98},{\"key\":\"sensor1\",\"val\":11.78},{\"key\":\"sensor2\",\"val\":12.02},{\"key\":\"sensor2\",\"val\":11.99},{\"key\":\"sensor1\",\"val\":11.69},{\"key\":\"sensor2\",\"val\":11.68},{\"key\":\"sensor2\",\"val\":11.52},{\"key\":\"sensor1\",\"val\":10.91}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":140,"wires":[[]]},{"id":"5053fe36.791c","type":"comment","z":"6fe62fab.dc09d","name":"Generate some fake CSV data","info":"","x":890,"y":100,"wires":[]},{"id":"c55fdfbe.ac712","type":"group","z":"6fe62fab.dc09d","name":"Write historic signals to DB","style":{"fill":"#bfdbef","label":true},"nodes":["fb6bfd79.6e458","c1e1c4b9.745ab8","f9c80301.0d122","160c6cfd.f69063","39ba4502.661bda","57c98031.a8b76","62142ed5.2d303"],"x":754,"y":179,"w":872,"h":122,"info":"### DB Schema\n\n## Measurement\n\n <Symbol>\n \n // values: Usa500, Silver, ...\n \n## Tags\n\n New | C1TB | C1IT | C4BO | Event | UA\n \n // New = All signals are new until approved by GPA and MFI -> Then this flow will move this data point to the appropriate signal type\n \n // UA = User Annotation\n \n## Field-Keys and Field-Values\n signalType=<string> // signal type (C1TB | C1IT | C4BO | ...)\n entry=<float> // entry price\n vol=<float> // volume aka contract size\n sl=<float> // recommended stop loss\n tp=<float> // recommended take profit\n expiresIn=<integer> // Expiry of the TLI signal (in days)\n gpaAnno=<string> // Annotation by GPA\n mfiAnno=<string> // Annotation by MFI\n gpaGo=<boolean> // Signal approved by GPA\n mfiGo=<boolean> // Signal approved by MFI\n \n // TLI related\n age1=<integer> // age1 of related TL\n age2=<integer> // age2 of related TL\n\n## Inserts\n\nINSERT Usa500,Signal=NEW signalType=\"C1TB\",entry=3450.0,volume=0.01,sl=3400.0,tp=3550.0,expiresIn=6i,gpaGo=false,mfiGo=true,age1=16i,age2=4i"},{"id":"fb6bfd79.6e458","type":"mysql","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","mydb":"9721b43b.2be718","name":"MySQL DB","x":1470,"y":260,"wires":[["c1e1c4b9.745ab8"]]},{"id":"c1e1c4b9.745ab8","type":"debug","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"Log insert","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1520,"y":220,"wires":[]},{"id":"f9c80301.0d122","type":"function","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"make SQL","func":" \nmsg.topic = \"INSERT INTO `registry` (`key`, `value`) VALUES (?,?);\";\nmsg.payload = [\n msg.payload.key,\n msg.payload.val,\n] \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1050,"y":260,"wires":[["39ba4502.661bda"]]},{"id":"160c6cfd.f69063","type":"inject","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"flow.temp_signal_inserts","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"temp_signal_inserts","payloadType":"flow","x":910,"y":220,"wires":[["57c98031.a8b76"]]},{"id":"39ba4502.661bda","type":"delay","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"rate limit 100ms apart","pauseType":"rate","timeout":"100","timeoutUnits":"milliseconds","rate":"10","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1240,"y":260,"wires":[["62142ed5.2d303","fb6bfd79.6e458"]]},{"id":"57c98031.a8b76","type":"split","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":910,"y":260,"wires":[["f9c80301.0d122"]]},{"id":"62142ed5.2d303","type":"debug","z":"6fe62fab.dc09d","g":"c55fdfbe.ac712","name":"Log insert","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1300,"y":220,"wires":[]},{"id":"9721b43b.2be718","type":"MySQLdatabase","name":"","host":"192.168.1.38","port":"3306","db":"test","tz":"","charset":"UTF8"}]
