It only works for kraken. Doing that for other exchanges would be best achieved by writing another bot, as every exchange has different APIs to talk to.
One hour is not any time interval defined by me? I think there is a misunderstanding: You deposit, say, 500 dollars each month. The bot will notice that you did a deposit and reserves time for another month in which it will buy bitcoin until that time is over. It will always buy 0.0001 bitcoin (if you don't adapt this value). At the current price (24'700$) it could execute 204 times the 0.0001 bitcoin buy order. It will spread those buys equally over the next month, so that you run out of money until that month has ended. Since the price changes all the time, it will permanently adjust itself though, so that you don't run out of fiat too fast or too late. The highest prio is to have 0 fiat in your account by the end of that timespan (a month). And it will permanently adjust itself to the current bitcoin price after each executed buy order.
Say you deposit on the 15th of a month, it will use up all your fiat until the 15th of the next month!
No, the bot cannot withdraw to random bitcoin addresses. You explicitly need to define those in your kraken account and give an alias to them. The bot itself will only know the alias, not the actual address. The bot has no idea where the bitcoins will be sent to.
Example, on kraken you will need to add your bitcoin withdrawal addresses combined with aliases that might look like this:
Alias: my-ledger
Address: bc1qiowrjovglnlsgfn
Alias: metamask-hotwallet
Address: bc1jhadashjdkjashd
Greetings!