Condition-based maintenance (CBM) optimization utilizing prognostic information and methods for complex systems has attracted increasing attention. This paper presents a bi-level approach to optimize a CBM policy for multi-component systems subject to stochastic and economic dependencies. The objective of the decision rule at the system level is to address if preventive and/or corrective maintenance actions are necessary regarding the predictive reliability of the system. At the component level, the aim is to identify the optimal group of components to be preventively maintained when maintenance is triggered due to the decision made at the system level. A maintenance efficacy indicator is introduced to prioritize components to be maintained by taking into account both the resulting reliability improvement quantity and the maintenance cost incurred. The optimal inter-inspection interval, the thresholds of system and component conditional reliability for triggering maintenance are jointly determined for minimization of the long-run average cost rate. A numerical study and sensitivity analysis on a 2oo3:G system are carried out to validate the performance of the proposed maintenance policy. Compared to another opportunistic maintenance policy without considering the system health condition, the proposed CBM policy leads to more cost gain and effectiveness in the maintenance decision-making.