Is ''We have closed today'' wrong? Too much Germanism?
I understand that as the present perfect tense. Which does not work with the time given.
yes. English uses another construction here. While Czechs and Germans use "mít/haben" here, it is "be closed" in English.
How would you have expressed "We are closed for today"? Meaning you were open earlier but have now closed for the remainder of the day.
"Dnes už máme zavřeno." for example.