使用杠杆交易¶
测试功能
此功能仍处于测试阶段。如果您发现任何异常,请通过 Discord 或 GitHub Issue 告诉我们。
一个账户运行多个机器人
您不能在同一账户上同时运行两个带杠杆的机器人。对于杠杆/保证金交易,Freqtrade 假设它是该账户的唯一使用者,所有强平水平的计算都基于此假设。
使用杠杆交易风险极高
请勿对尚未在现货市场实盘交易中证明有效的策略使用大于 1 的杠杆。请检查您策略的止损设置。例如,当杠杆为 2 时,0.5(50%)的止损设置过低,交易会在触及该止损前就被强平。对于因使用本软件或此模式而导致的任何损失,我们概不负责。
请仅在充分了解 Freqtrade(以及您的策略)工作原理的情况下使用高级交易模式。同时,切勿投入超过您承受能力的资金。
如果您已有现有策略,请阅读策略迁移指南,将您的策略从 Freqtrade v2 策略迁移到支持做空和期货交易的 v3 版本策略。
做空¶
当 trading_mode 设置为 spot 时,无法进行做空交易。要进行做空交易,必须将 trading_mode 设置为 margin(目前不可用)或 futures,并将 margin_mode 设置为 cross(目前不可用)或 isolated
要使策略支持做空,策略类必须设置类变量 can_short = True
请阅读 策略自定义,了解如何设置信号以进入和退出做空交易。
了解 trading_mode¶
可能的取值为:spot(默认)、margin(目前不可用)或 futures。
现货¶
常规交易模式(低风险)
- 仅限做多交易(不允许做空)。
- 无杠杆。
- 无强平机制。
- 盈亏等于资产价值的变化(扣除交易手续费)。
杠杆交易模式¶
使用杠杆时,交易者会从交易所借入资金。这笔资金必须全额归还给交易所(可能还需支付利息),而交易者保留使用借入资金进行交易所产生的任何利润,或承担相应的亏损。
由于借入的资金必须始终偿还,当杠杆账户中资产的总价值下降到某一特定水平时(即总亏损额仍小于交易者在杠杆账户中实际拥有的抵押品价值),交易所将对使用借入资金进行的交易执行强平(强制出售交易者的资产),以确保交易者有足够的资金偿还所借资产。此外,交易所还将收取强平费用,进一步增加交易者的损失。
因此,如果你不清楚自己在做什么,请切勿使用杠杆交易。杠杆交易风险极高,可能导致你的资产价值迅速归零,且无法再回升。
保证金模式(目前不可用)¶
交易在现货市场进行,但交易所会按所选杠杆倍数向你出借相应数量的货币。你需要连同利息一起归还所借金额,而你的盈亏则会按照设定的杠杆倍数放大。
期货合约¶
永续合约(也称为永续期货)是一种价格与其标的资产紧密挂钩的合约(例如)。你并非直接交易实际资产,而是交易一种衍生品合约。与普通期货或期权合约不同,永续合约可以无限期持有。
除了因期货合约价格变动带来的盈亏外,交易者之间还会交换资金费用,其金额取决于期货合约价格与标的资产价格之间的差异。不同交易所中,期货合约与标的资产之间的价差有所不同。
要在期货市场交易,你需要将 trading_mode 设置为 "futures"。你还必须选择一个“保证金模式”(见下文说明)——目前 Freqtrade 仅支持逐仓保证金模式。
"trading_mode": "futures",
"margin_mode": "isolated"
交易对命名规则¶
Freqtrade 遵循ccxt 的期货命名规范。因此,一个期货交易对的格式为 基础货币/计价货币:结算货币(例如:ETH/USDT:USDT)。
保证金模式¶
除了设置 trading_mode 外,你还必须配置 margin_mode。尽管目前 Freqtrade 仅支持一种保证金模式,但未来将会支持更多模式。提前配置好该参数可让你为后续更新做好准备。
可选值包括:isolated 或 cross(目前不可用)。
逐仓保证金模式¶
每个市场(交易对)在独立的账户中持有其抵押品。
"margin_mode": "isolated"
全仓保证金模式¶
所有市场(交易对)共用一个账户中的抵押品。当需要避免强平时,系统将从账户总余额中提取保证金。
"margin_mode": "cross"
请阅读支持此模式的交易所的交易所特定说明,以及它们之间的差异。
设置要使用的杠杆¶
不同的策略和风险特征需要不同水平的杠杆。虽然你可以配置一个静态的杠杆值,但 Freqtrade 提供了通过策略杠杆回调函数进行调整的灵活性,允许你根据不同交易对或基于其他因素为策略结果使用不同的杠杆。
如果未实现该功能,杠杆默认为 1 倍(无杠杆)。
警告
更高的杠杆也意味着更高的风险——请确保你充分理解使用杠杆的后果!
理解 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 或使用较低值可能导致你的仓位被强平。Freqtrade 不追踪强平费用,因此强平会导致你的机器人盈亏结果不准确。如果你使用较低的 liquidation_buffer,建议在交易所支持的情况下启用 stoploss_on_exchange。
资金费率不可用¶
对于期货数据,交易所通常提供期货 K 线、标记价格和资金费率。然而,常见的情况是 K 线和标记价格可用,但资金费率不可用。这可能会影响回测的时间范围,即你可能只能测试最近的时间段而无法测试更早的时间,从而遇到 No data found. Terminating.(未找到数据,正在终止)错误。为解决此问题,请在 configuration.md 中列出的配置中添加 futures_funding_rate 选项,建议将其设置为 0,除非你确切知道特定交易对、交易所和时间段的资金费率。将其设置为非 0 的值可能会对策略中的盈利计算产生巨大影响,例如在 custom_exit、custom_stoploss 等函数中。
这将导致你的回测结果不准确。
此设置不会覆盖交易所提供的实际资金费率,但请注意,设置错误的资金费率将导致在资金费率不可用的历史时间段内,回测结果不准确。
开发者¶
保证金模式¶
对于做空交易,支付借入货币利息的货币会在平仓交易的同时被购入(这意味着平仓做空交易中购入的数量大于开仓做空交易中卖出的数量)。
对于做多交易,支付借入货币利息的货币已由用户持有,无需另行购买。利息将从交易的close_value中扣除。
所有费用均已计入交易期间的current_profit计算中。
期货模式¶
资金费用将从交易总额中增加或扣除。