Moving Average - How to?

OK. I think I got it. but it is really slow:

SELECT t1.datetime , avg(tonumber(t2.data.speed))
FROM  mybuckey  t1 join mybucket t2
ON t2.datetime between DATE_ADD_STR( t1.datetime ,-3, 'day') and t1.datetime
WHERE  t2.data.speed IS NOT MISSING
group by t1.datetime
Limit 10