Not sure what all your needs are for your specific use case, but you should consider adding a UMovementComponent that you then extend and fully implement, if your custom actor moves a lot.
Then you set the UpdatedComponent of the MovementComponent to your custom Actors RootComponent or primary colliding component
Then you can use all of UE4’s existing systems to detect collision events.
You can also move the actor in a way that it will collide with world, see functions available in UMovementComponent.h