Depth estimation is always a hot topic in computer vision, which shows new vitality with the rise of light field camera. Nevertheless, occlusion is a tough problem, which degrades the precision of the acquired depth map. Although previous works have proposed some effective methods to solve this problem, regrettably they are deficient. In this paper, we extend previous single occlusion model into complex occlusion condition, adopt optical flow algorithm to get candidate occlusion points, combine multiple features to separate the angular patch, and employ more reasonable data cost to get the depth map. Because the proposed algorithm is more suitable for light field data, experimental results show that the proposed algorithm has a better performance than state-of-the-art algorithms on synthetic datasets and real world images captured by light field camera, especially for complex occlusion scenes.