Seismic horizons are the compulsory inputs for seismic stratigraphy analysis and 3D reservoir modeling. Manually interpreting horizons on thousands of vertical seismic slices of 3D seismic survey is a time-consuming task. Automatic horizon interpreting algorithms are usually based on the seismic reflector dip. However, the estimated seismic reflector dip is usually inaccurate near and across geologic features such as unconformities. We are determined to improve the quality of picked horizons using multiple seismic attributes. We assume that seismic horizons follow the reflector dip and that the same horizons should have similar instantaneous phase values. We first generate horizon patches using a reflector dip attribute, which is similar to current methods. We use seismic coherence attribute as the stop criteria for tracking the horizon within each patch. Considering the inaccuracy of reflector dip estimates at and near the discontinuous structures such as fault and unconformities, we use the seismic instantaneous phase attribute to improve the quality of the generated horizon patches. We generate horizons by merging the residual horizon patches and only outputting the best horizon in each iteration. Our method is capable of generating a horizon for each reflection within the 3D seismic survey, and the generated horizons strictly follow the seismic reflections over the whole seismic survey. Finally, each time sample of seismic traces is assigned a chronostratigraphic relative geologic time value according to the tracked horizons.