杠杆交易 (Trading with Leverage)
测试阶段功能
此功能仍处于测试阶段。如果您发现任何您认为有误的地方,请通过 Discord 或 Github Issue 告知我们。
一个账户下的多个机器人
您不能在一个账户上运行两个使用杠杆的机器人。对于杠杆/保证金交易,Freqtrade 假设它是该账户的唯一使用者,并且所有强平级别都是基于此假设计算的。
杠杆交易具有极高风险
在使用未能在现货市场实盘运行中显示出正向结果的策略时,请勿使用大于 1 的杠杆。检查策略的止损。在使用 2 倍杠杆时,0.5 (50%) 的止损会太低,这些交易在达到该止损之前就会被强平。 我们不对因使用本软件或此模式而导致的最终损失承担任何责任。
请仅在您了解 Freqtrade(以及您的策略)的工作原理时使用高级交易模式。 另外,永远不要冒险投入超过您能承受损失的资金。
如果您已经有一个现有的策略,请阅读 策略迁移指南,将您的策略从 Freqtrade v2 策略迁移到支持做空和期货交易的 v3 版本策略。
做空 (Shorting)
当 trading_mode 设置为 spot 时,无法进行做空。要进行做空交易,trading_mode 必须设置为 margin(目前不可用)或 futures,并且 margin_mode 设置为 cross 或 isolated。
对于一个要进行做空的策略,策略类必须设置类变量 can_short = True。
请阅读 策略自定义 以获取有关如何设置进场和离场做空交易信号的说明。
理解 trading_mode
可选值为:spot(默认)、margin(目前不可用)或 futures。
现货 (Spot)
常规交易模式(低风险)
- 仅限做多交易(无做空)。
- 无杠杆。
- 无强平 (Liquidation)。
- 获得的利润/损失等于资产价值的变化(减去交易手续费)。
杠杆交易模式
使用杠杆时,交易者从交易所借入资金。资金必须全额偿还给交易所(可能带有利息),交易者保留使用借入资金进行的任何交易所产生的利润,或支付其中的任何亏损。
由于资金必须始终偿还,当杠杆账户中资产的总价值下降到某一点(该点的总亏损价值高于交易在杠杆账户中实际拥有的抵押品价值)时,交易所将 强平 (liquidate)(强制出售交易者的资产)使用借入资金进行的交易,以确保交易者有足够的资金将借入的资产归还给交易所。交易所还会收取 强平费 (liquidation fee),增加交易者的损失。
因此,如果您不确切知道自己在做什么,请勿进行杠杆交易。杠杆交易是高风险的,可能导致您的资产价值非常迅速地降至 0,且没有任何再次升值的机会。
保证金交易 (Margin - 目前不可用)
交易发生在现货市场,但交易所向您出借与所选杠杆相等的货币。您将借给您的金额加利息偿还给交易所,您的利润/损失将乘以指定的杠杆。
期货 (Futures)
永续合约(也称为永续期货)是以与其基于的基础资产价格紧密相关的价格进行交易的合约。您不是在交易实际资产,而是在交易衍生品合约。与期货或期权合约相反,永续合约可以无限期持续。
除了由于期货合约价格变化产生的收益/亏损外,交易者还交换 资金费用 (funding fees),这些收益/亏损的金额来源于期货合约与基础资产之间的价格差异。期货合约与基础资产之间的价格差异因交易所而异。
要在期货市场进行交易,您需要将 trading_mode 设置为 "futures"。 您还必须选择一个“保证金模式 (margin mode)”(说明如下)- 目前 Freqtrade 仅支持逐仓保证金 (isolated margin)。
"trading_mode": "futures",
"margin_mode": "isolated"交易对命名
Freqtrade 遵循 ccxt 的期货命名规范。 因此,一个期货交易对的命名格式为 基准货币/计价货币:结算货币(例如 ETH/USDT:USDT)。
保证金模式 (Margin mode)
除了 trading_mode,您还需要配置您的 margin_mode。 虽然 Freqtrade 目前仅支持一种保证金模式,但这将会改变,通过现在进行配置,您可以为未来的更新做好准备。
可选值为:isolated 或 cross。
逐仓保证金模式 (Isolated margin mode)
每个市场(交易对)在单独的账户中保留抵押品。
"margin_mode": "isolated"全仓保证金模式 (Cross margin mode)
一个账户用于在市场(交易对)之间共享抵押品。保证金取自总账户余额,以便在需要时避免强平。
"margin_mode": "cross"请阅读 交易所特定说明 了解哪些交易所支持此模式以及它们的区别。
增加强平风险
全仓保证金模式增加了全账户强平的风险,因为所有交易共享相同的抵押品。 一笔交易的损失可能会影响其他交易的强平价格。 此外,全仓仓位的影响可能无法在模拟运行或回测模式中完全模拟。
设置要使用的杠杆
不同的策略和风险状况需要不同级别的杠杆。 虽然您可以配置一个静态杠杆值,但 Freqtrade 允许您通过 策略杠杆回调 (strategy leverage callback) 来灵活调整 - 这允许您根据交易对或其他有利于策略结果的因素使用不同的杠杆。
如果未实现回调,杠杆默认为 1x(无杠杆)。
风险提示
更高的杠杆也意味着更高的风险 - 请确保您完全理解使用杠杆的影响!
理解 liquidation_buffer (强平缓冲)
默认为 0.05
一个比例值,指定在强平价格和止损之间放置多大的安全网,以防止仓位达到强平价格。 此人造强平价格计算如下:
freqtrade_liquidation_price = liquidation_price ± (abs(open_rate - liquidation_price) * liquidation_buffer)
- 对于多单,
±为+ - 对于空单,
±为-
可选值是 0.0 到 0.99 之间的任何浮点数。
例: 如果以 10 coin/USDT 的价格进入一笔交易,而这笔交易的强平价格是 8 coin/USDT,那么在 liquidation_buffer 设置为 0.05 的情况下,该笔交易的最小止损将是 $8 + ((10 - 8) * 0.05) = 8 + 0.1 = 8.1$。
liquidation_buffer 为 0.0 或较低值很可能导致强平及强平费
目前 Freqtrade 能够计算强平价格,但无法计算强平费。将您的 liquidation_buffer 设置为 0.0 或使用较低的 liquidation_buffer 可能会导致您的仓位被强平。Freqtrade 不跟踪强平费,因此强平将导致机器人的损益结果不准确。如果您使用较低的 liquidation_buffer,如果您的交易所支持,建议使用 stoploss_on_exchange。
不可用的资金费率
对于期货数据,交易所通常提供期货 K 线、标记价格和资金费率。然而,通常情况下,虽然 K 线和标记价格可用,但资金费率却不可用。这可能会影响回测时间范围,即您可能只能测试最近的时间范围,而不能测试早期的。为了解决这个问题,请在配置中添加 futures_funding_rate 选项(如 configuration.md 中所列),建议将其设置为 0,除非您知道特定交易对、交易所和时间范围的资金费率。将此项设置为非 0 的值可能会对策略内的利润计算产生剧烈影响。
这将意味着您的回测不准确。
这不会覆盖交易所提供的可用资金费率,但请记住,设置错误的资金费率将意味着在资金费率不可用的历史时间范围内,回测结果将是不准确的。
开发者相关
保证金模式 (Margin mode)
对于空单,支付“借入”货币利息的手续费币种是在平仓交易的同时购买的(这意味着在做空平仓交易中购买的金额大于在做空开仓交易中卖出的金额)。
对于多单,支付“借入”利息的货币已由用户拥有,不需要购买。利息从交易的 close_value 中减去。
所有费用都包含在交易过程中的 current_profit 计算中。
期货模式 (Futures mode)
资金费用要么增加到交易的总金额中,要么从中减去。
