通过杠杆进行交易¶
Beta功能
此功能仍处于测试阶段。如果您发现有问题,请通过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
。
现货交易(Spot)¶
常规交易模式(低风险)
- 仅支持做多交易(不支持做空交易)。
- 无杠杆。
- 无强制平仓。
- 盈亏等于资产价值的变动(减去交易费用)。
杠杆交易模式¶
使用杠杆,交易者从交易所借入资金。这笔资金必须全部偿还给交易所(可能还有利息),交易者将从使用借入资金进行的任何交易中获得利润,或承担任何亏损。
由于借入的资金必须始终偿还,当杠杆账户中的总资产价值下降到某个程度时(即总亏损的价值小于交易者在杠杆账户中实际拥有的抵押品价值),交易所将清算(强制出售交易者的资产)。这样确保交易者有足够的资金偿还交易所借入的资产。交易所还将收取清算费用,增加交易者的亏损。
因此,如果你不确切了解你在做什么,请不要使用杠杆进行交易。杠杆交易具有高风险,可能导致你的资产价值迅速降至零,且无机会再度增值。
保证金(目前不可用)¶
交易发生在现货市场,但交易所会按照选择的杠杆将货币借给您。您需要将借给您的金额连同利息还给交易所,而您的利润/损失将乘以指定的杠杆倍数。
期货¶
永续合约(也称为永续期货)是以与其基础资产(例如)紧密相关的价格进行交易的合约。您并不交易实际资产,而是交易衍生合约。永续合约可以无限期持续,与期货或期权合约相比。
除了期货合约价格变动带来的收益/损失外,交易者还会交换所谓的“资金费用”,其价值是从期货合约和基础资产之间价格差异导出的。期货合约和基础资产之间的价格差异在各个交易所之间有所变化。
要在期货市场上交易,您需要将 trading_mode
设置为 "futures"。
您还需要选择一个 "margin mode"(下面解释)- 目前 freqtrade 仅支持隔离保证金。
"trading_mode": "futures",
"margin_mode": "isolated"
交易对命名¶
Freqtrade 遵循 ccxt 的期货命名约定。
因此,期货交易对的命名方式为 base/quote:settle
(例如 ETH/USDT:USDT
)。
保证金模式¶
除了 trading_mode
- 您还需要配置您的 margin_mode
。
虽然目前 freqtrade 仅支持一种保证金模式,但这种情况将会有所变化,通过现在进行配置,您会为将来的更新做好准备。可能的值有: 独立的
, 或者 交叉
(目前无法使用)。
独立保证金模式¶
每个市场(交易对)在单独的账户中保留抵押品。
"margin_mode": "独立的"
交叉保证金模式(目前无法使用)¶
一个账户被用来共享在不同市场(交易对)之间的抵押品。需要时,从总账户余额中扣除保证金以避免清算。
"margin_mode": "交叉"
请阅读交易所特定注意事项,了解支持此模式的交易所以及它们之间的区别。
设置杠杆率¶
不同的策略和风险承受能力将需要不同水平的杠杆。 虽然您可以配置一个固定的杠杆值,但freqtrade通过策略杠杆回调为您提供了灵活性来进行调整-这使您可以根据货币对或者其他因素使用不同的杠杆率,以提高您的策略结果。如果未实现,默认使用1倍杠杆。
注意
更高的杠杆意味着更高的风险-请确保您充分理解使用杠杆的影响!
了解liquidation_buffer
¶
默认为0.05
这是一个比率,指定了在清算价格和止损价格之间设置多大的安全网,以防止头寸达到清算价格。 这个人为的清算价格计算公式如下:
freqtrade_liquidation_price = liquidation_price ± (abs(open_rate - liquidation_price) * liquidation_buffer)
±
=+
代表做多交易±
=-
代表做空交易
可能的取值为介于0.0和0.99之间的任何浮点数。
例如:如果一个交易的价格是10个币/USDT,并且这个交易的清算价格是8个币/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线图和标记可能是可用的,但资金费率却不可用。这可能会影响回测的时间范围,也就是说,您可能只能测试最近的时间范围,而无法测试较早的时间范围,会遇到“未找到数据。终止。”的错误。为了解决这个问题,在configuration.md中添加 futures_funding_rate
配置选项,并建议将其设置为 0
,除非您对您的交易对、交易所和时间范围的某个具体的资金费率有所了解。将其设置为非 0
的任何值可能会对您的策略中的利润计算产生重大影响,例如在 custom_exit
、custom_stoploss
等函数中。
这将导致您的回测不准确。
这不会覆盖交易所可用的资金费率,但请注意,设置错误的资金费率将导致回测结果在历史时间范围内不准确。
开发者¶
保证金模式¶
对于做空交易,支付借入货币利息的货币将在交易关闭时同时购买(这意味着在做空开仓交易中卖出的货币数量大于在做空平仓交易中买入的数量)。
对于做多交易,支付借入货币利息的货币将已经由用户拥有,不需要购买。利息将从交易的 close_value
中扣除。
所有费用在交易期间的 current_profit
计算中都已包含在内。
期货模式¶
资金费用将从交易总额中添加或扣除。