## 3 Materials and Method
### Proposed Method
#### 3.3.3 Macroeconomic Factor Fusion Module  
The macroeconomic factor fusion module is designed to incorporate external economic environments and policy expectations into the quantitative signal generation framework, addressing the limitations of conventional models in capturing macro-level disturbances. This module consists of two parallel pathways: one for structured macroeconomic variables and another for unstructured policy semantics. The former captures quantifiable indicators such as GDP growth, CPI, and interest rates, while the latter leverages a language model to extract sentiment and semantic representations from policy-related news texts, reflecting potential directional influences on market dynamics. To enable the integration of these heterogeneous sources, a dual-branch embedding network is constructed, and an attention-based fusion mechanism is employed to dynamically align macro factors with temporal market features, thereby enhancing the model's adaptability to economic shifts. In the structured pathway, the input consists of nine time-aligned macroeconomic indicators, denoted as \(\mathbf{x}_{\text{macro}}\in\mathbb{R}^{9}\). This vector is processed by a three-layer feedforward network to perform dimensional expansion and nonlinear transformation, resulting in a structured macro embedding \(\mathbf{h}_{\text{macro}}^{(s)}\in\mathbb{R}^{64}\). The network comprises hidden layers of sizes 32, 64, and 64, respectively, and applies ReLU activations and dropout regularization with a rate of 0.2 to prevent overfitting. The transformation process is defined as  
\[\mathbf{h}_{1}=\text{ReLU}(W_{1}\mathbf{x}_{\text{macro}}+b_{1}),\quad W_{1} \in\mathbb{R}^{32\times 9} \tag{14}\]  
\[\mathbf{h}_{2}=\text{ReLU}(W_{2}\mathbf{h}_{1}+b_{2}),\quad W_{2}\in\mathbb{R }^{64\times 32} \tag{15}\]  
\[\mathbf{h}_{\text{macro}}^{(s)}=\text{ReLU}(W_{3}\mathbf{h}_{2}+b_{3}),\quad W _{3}\in\mathbb{R}^{64\times 64} \tag{16}\]  
Simultaneously, in the unstructured pathway, daily policy-related news texts are submitted to the GPT-4 API for semantic analysis, producing a sentiment score \(s_{t}\in[-1,1]\) and a category distribution vector \(\mathbf{c}_{t}\in\mathbb{R}^{m}\), where \(m=6\) represents predefined policy categories (including monetary, fiscal, regulatory, industrial guidance, external shocks, and others). These outputs are concatenated into a 7-dimensional vector \(\mathbf{x}_{\text{text}}\in\mathbb{R}^{7}\) and processed by a two-layer neural network to generate the unstructured macro embedding \(\mathbf{h}_{\text{macro}}^{(u)}\in\mathbb{R}^{64}\), as follows:  
\[\mathbf{z}_{1}=\text{Tanh}(W_{t}\mathbf{x}_{\text{text}}+b_{t}),\quad W_{t} \in\mathbb{R}^{64\times 7} \tag{17}\]  
\[\mathbf{h}_{\text{macro}}^{(u)}=\text{Tanh}(W_{f}\mathbf{z}_{1}+b_{f}),\quad W _{f}\in\mathbb{R}^{64\times 64} \tag{18}\]  
The two embeddings are then fused using a gated weighting mechanism to produce a unified macro representation \(\mathbf{h}_{\text{macro}}\in\mathbb{R}^{64}\). The fusion weight \(\lambda\) is derived from the structured pathway, calculated as  
\[\lambda=\sigma(W_{\lambda}\mathbf{h}_{\text{macro}}^{(s)}+b_{\lambda}),\quad \lambda\in[0,1] \tag{19}\]  
\[\mathbf{h}_{\text{macro}}=\lambda\cdot\mathbf{h}_{\text{macro}}^{(s)}+(1- \lambda)\cdot\mathbf{h}_{\text{macro}}^{(u)}, \tag{20}\]Here \(,\sigma\) denotes the sigmoid activation function, ensuring that the fusion coefficient remains within the range \([0,1]\). This design enables the structured indicators to dominate under stable conditions, while allowing the model to shift attention toward policy semantics under conditions of strong sentiment-driven shocks, thereby achieving adaptive macro fusion. The fused macro representation is subsequently integrated with the temporal embedding \(\mathbf{h}_{\text{temporal}}\in\mathbb{R}^{128}\) from the temporal modeling module through a cross-attention mechanism. Specifically, \(\mathbf{h}_{\text{macro}}\) is used as the query vector, while the temporal embedding serves as the key and value.