You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amibroker 6.28回测:如何修改代码实现分批建仓(Scale in)?

实现分批建仓(Scale In)与全仓卖出的Amibroker解决方案

嘿,我来帮你搞定这个分批建仓的需求!你的Amibroker 6.28版本完全支持这个逻辑,下面是修改后的代码和详细说明:

// 保留你原有的买卖信号逻辑
Buy = BuySignal();
Sell = SellSignal();

// 定义每次买入的资金上限:取1000美元 和 当前账户权益10% 中的较小值
buyAmount = Min(1000, Equity * 0.1);

// 控制仓位大小
if (Buy) {
    // 将买入金额转换为账户权益的百分比(Amibroker的PositionSize默认按百分比计算)
    PositionSize = (buyAmount / Equity) * 100;
} else if (Sell) {
    // 触发卖出信号时,卖出全部持仓(-100表示清仓100%仓位)
    PositionSize = -100;
} else {
    // 无信号时保持现有仓位
    PositionSize = 0;
}

// 可选:根据你的需求设置滑点、佣金等参数
// SetTradeDelays(0, 0, 0, 0); // 设置交易延迟
// SetCommission(0.1, perTrade=True); // 设置每笔交易佣金0.1美元

关键逻辑说明:

  • 分批买入控制:buyAmount = Min(1000, Equity * 0.1) 这行代码实现了你的核心需求——每次买入要么不超过1000美元,要么不超过当前资金的10%,取两者中更保守的那个数值。你可以根据需要调整这两个参数(比如把1000改成其他固定金额,0.1改成其他比例)。
  • 仓位百分比转换:Amibroker的PositionSize默认以账户权益的百分比为单位,所以我们需要把固定买入金额转换成百分比,这样系统就能准确计算每次该买多少份额。
  • 全仓卖出:当SellSignal()触发时,设置PositionSize = -100会直接卖出当前所有持仓,不管之前分批建了多少仓位,一次性清仓。

回测设置注意事项:

确保你在Amibroker的回测设置中,把Position Sizing Mode设置为「Fixed % of equity」(路径:Settings → Portfolio → Position Sizing),这样代码中的PositionSize百分比设置才能正常生效。

如果你的BuySignal()会连续触发(比如连续多个交易日发出买入信号),这段代码会每次执行分批买入,直到信号停止或者你达到仓位上限,完全符合你的分批建仓需求。

内容的提问来源于stack exchange,提问作者user3848207

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:40:50