Periods with high branch misprediction rate tend to be uneven and concentrated during execution of programs. To address this problem, a new branch prediction strategy is proposed, which based on dynamic polarity transformation. This approach monitors original branch misprediction rate whose polarity has not been transformed, and detects the periods with original branch misprediction rate higher than a threshold. These periods are called as peaks of misprediction. The polarity of original prediction results will be transformed to make the final prediction during peaks of misprediction. As a result, the final branch misprediction rate whose polarity has been transformed will always be lower than the threshold during execution of programs. The prediction method can be divided into three categories according to the monitoring mechanism, which are global monitor, set monitor and per-address monitor. The experimental results show that this methodology gives better prediction accuracy than Gshare and Bi-Mode prediction schemes for the same cost.