仅在成功清仓后释放目标权重
This commit is contained in:
@@ -12533,7 +12533,7 @@ impl Strategy for PlatformExprStrategy {
|
||||
}
|
||||
|
||||
let stop_take_exit_signal_symbols = current_stop_take_exit_symbols.clone();
|
||||
let target_portfolio_weights =
|
||||
let original_target_weights =
|
||||
if self.config.target_portfolio_daily_enabled && selection_limit > 0 {
|
||||
let mut scales = Vec::new();
|
||||
let original_target_symbols = self
|
||||
@@ -12557,18 +12557,16 @@ impl Strategy for PlatformExprStrategy {
|
||||
)?;
|
||||
scales.push((symbol.clone(), self.buy_scale(ctx, &day, &decision_stock)?));
|
||||
}
|
||||
let original_weights = ordered_weight_bps_from_scales(&scales)?;
|
||||
let mut excluded_target_symbols = exit_symbols.clone();
|
||||
excluded_target_symbols.extend(stop_take_exit_signal_symbols.iter().cloned());
|
||||
replenish_target_weight_bps(
|
||||
&original_weights,
|
||||
&stock_list,
|
||||
&excluded_target_symbols,
|
||||
selection_limit,
|
||||
)
|
||||
ordered_weight_bps_from_scales(&scales)?
|
||||
} else {
|
||||
Vec::new()
|
||||
};
|
||||
let target_portfolio_weights = replenish_target_weight_bps(
|
||||
&original_target_weights,
|
||||
&stock_list,
|
||||
&exit_symbols,
|
||||
selection_limit,
|
||||
);
|
||||
let target_portfolio_weight_bps = target_portfolio_weights
|
||||
.iter()
|
||||
.cloned()
|
||||
@@ -13147,8 +13145,14 @@ impl Strategy for PlatformExprStrategy {
|
||||
}
|
||||
}
|
||||
|
||||
let daily_target_portfolio_weights = replenish_target_weight_bps(
|
||||
&original_target_weights,
|
||||
&stock_list,
|
||||
&same_day_sold_symbols,
|
||||
selection_limit,
|
||||
);
|
||||
if daily_top_up_active && self.config.target_portfolio_daily_enabled {
|
||||
for (symbol, weight_bps) in &target_portfolio_weights {
|
||||
for (symbol, weight_bps) in &daily_target_portfolio_weights {
|
||||
let target_value =
|
||||
strategy_visible_total_value * trading_ratio * f64::from(*weight_bps)
|
||||
/ 10_000.0;
|
||||
|
||||
Reference in New Issue
Block a user