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

Pine Script编写DCA策略:向Wundertrading Bot发送USD金额而非合约数量

在Pine Script中实现按USD金额向Wundertrading Bot发送DCA订单

核心逻辑

Wundertrading期货下单要求以USD金额为基准,因此需要将目标USD金额转换为对应合约数量,转换时需结合当前标的价格、合约乘数(不同品种/交易所存在差异),可选预留少量金额应对手续费或价格波动。

实现代码

//@version=5
strategy("DCA Strategy (USD Amount for Wundertrading)", overlay=true, initial_capital=10000)

// 参数配置
dca_target_usd = input.float(100, title="单次DCA投入USD金额", minval=10)
contract_multiplier = input.float(0.0001, title="合约乘数", tooltip="如BTCUSDT永续为0.0001,ETHUSDT为0.01")
fee_reserve_pct = input.float(0.1, title="手续费预留比例(%)", minval=0, maxval=5) / 100

// 计算可用金额与合约数量
usable_usd = dca_target_usd * (1 - fee_reserve_pct)
contract_qty = usable_usd / close / contract_multiplier
// 对齐交易所最小合约单位(以BTCUSDT为例,最小0.0001)
contract_qty := math.round(contract_qty / 0.0001) * 0.0001

// DCA触发条件示例(可替换为你的策略逻辑)
dca_trigger = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))

if (dca_trigger)
    strategy.entry("DCA多单", strategy.long, qty=contract_qty)

// 调试用:输出计算后的合约数量
plot(contract_qty, title="计算合约数", color=color.blue, display=display.data_window)

关键细节说明

  • 合约乘数:必须匹配交易品种,比如Binance BTCUSDT永续合约每手代表0.0001 BTC,ETHUSDT为0.01 ETH,需自行确认对应品种参数。
  • 手续费预留:加入小比例预留是为了避免价格瞬间波动导致实际花费超出目标USD金额,可根据需求调整或设为0。
  • 数量取整:必须符合交易所最小合约单位要求,否则订单会被拒绝,示例中针对BTCUSDT的0.0001单位做了取整处理,其他品种需对应修改。

Wundertrading配置注意事项

  • 策略连接时选择对应期货品种,不要手动修改订单数量,让Pine Script计算的数值直接传递。
  • 测试阶段先用小额验证,确认实际下单的USD金额与设置的dca_target_usd一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:30:41