杠杆交易¶
Beta feature
此功能仍处于测试阶段。如果您发现任何认为有误的地方,请通过 Discord 或 Github Issue 告知我们。
Multiple bots on one account
您不能在同一个账户上运行两个使用杠杆的交易机器人。对于杠杆/保证金交易,freqtrade 假设它是该账户的唯一用户,所有清算水平均基于此假设计算。
Trading with leverage is very risky
请勿使用尚未在现货市场实盘运行中显示积极结果的策略进行杠杆大于 1 的交易。请检查您策略的止损设置。使用 2 倍杠杆时,0.5(50%)的止损设置过低,这些交易将在达到该止损前被强制平仓。 对于使用本软件或此模式可能产生的任何损失,我们不承担任何责任。
Please only use advanced trading modes when you know how freqtrade (and your strategy) works. Also, never risk more than what you can afford to lose.
如果您已有现有策略,请阅读策略迁移指南,将您的策略从 freqtrade v2 版本迁移至支持做空和期货交易的版本 3 策略。
做空交易¶
当使用设置为 spot 的 trading_mode 进行交易时,无法进行做空交易。要进行做空交易,必须将 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倍(无杠杆)。
Warning
更高的杠杆也意味着更高的风险——请确保您完全理解使用杠杆的影响!
理解 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 或设置过低的 liquidation_buffer 很可能导致强平及强平费用
目前 Freqtrade 能够计算强平价格,但无法计算强平费用。将 liquidation_buffer 设置为 0.0 或使用过低的 liquidation_buffer 可能导致您的持仓被强平。Freqtrade 不追踪强平费用,因此强平将导致您的机器人盈亏结果不准确。如果您使用较低的 liquidation_buffer,建议在交易所支持的情况下使用 stoploss_on_exchange。
无法获取的资金费率¶
对于期货数据,交易所通常提供期货K线、标记价格和资金费率。然而常见的情况是,虽然K线和标记价格可能可用,但资金费率却不可用。这可能会影响回测的时间范围,例如您可能只能测试近期的时间范围而无法测试较早的时段,并遇到 No data found. Terminating. 错误。为解决此问题,请添加 configuration.md 中列出的 futures_funding_rate 配置选项,建议您将其设置为 0,除非您了解特定交易对、交易所和时间范围的具体资金费率。将此值设置为非 0 可能会对策略内的利润计算(例如在 custom_exit、custom_stoploss 等函数中)产生显著影响。
这将导致您的回测结果不准确
这不会覆盖交易所提供的可用资金费率,但请注意,在历史时间范围资金费率不可用时,设置错误的资金费率将导致回测结果不准确。
开发者指南¶
保证金模式¶
对于空头头寸,支付借入货币利息费用的货币会在平仓交易的同时被购入(这意味着空头平仓交易中购入的数量会大于空头开仓交易中卖出的数量)。
对于多头仓位,支付借入资金利息费用的货币已由用户持有,无需额外购买。利息将从交易的平仓价值中扣除。
所有费用均已包含在交易期间的当前利润计算中。
期货模式¶
资金费用会根据交易方向增加或减少交易总额