Now I see if I redelegate immiediatly when delegate I need to wait 2 epochs.
What is the best moment to redelegate in order to wait as short as possible?
It is important because pools ROA changes and other parameters in that time and when it delegates
theses params can be poor
It doesnt really matter when you delegate, it takes always the same cycle. The only different is when you delegate at the start of a new epoch or at the end of a epoch.
Q: When do i receive my staking rewards?
A: Lets assume you delegated during epoch 200. Untill the end of that epoch nothing will happen.
In epoch 201 your stake is included in the current snapshot.
In epoch 202 your stake may will produce blocks.
In epoch 203, your rewards are calculated and paid out at the end of that epoch. The rewards will also be included in the next snapshot and thus be staked.
I hope that helps you to understand how the delegation cycle works
Sorry but IMO you are taking a very short term view. The smaller pools, showing most variability in ROA, are most affected by random factors. All properly functioning non-saturated pools charging same fees will converge on same return over time (and the fees don’t make a lot of difference either).