首页 > 其他分享 >永续合约快进快出套利策略

永续合约快进快出套利策略

时间:2024-08-30 12:47:53浏览次数:9  
标签:永续 费率 future 套利 进快 交易者 合约 资金

程序员常用的IDEA插件:https://github.com/silently9527/Toolkit

微信公众号:贝塔学Java

前提

  • 本文使用的交易所SDK是 ExchangeSDK
  • 本文所有内容仅用于讨论,没有任何交易建议,不对任何交易行为负责

永续合约

在开始分享套利策略之前,需要先来了解一些合约的概念。
永续合约是一种没有到期日的衍生品合约形式,广泛应用于加密货币和其他金融市场。与传统的期货合约不同,永续合约没有预定的交割日期,因此交易者可以无限期持有该合约。
永续合约的设计目的是为了模拟现货市场,但允许使用杠杆和做空。

永续合约的特点:

  • 没有到期日:永续合约没有到期时间,交易者可以根据需要持有合约,直到选择平仓。
  • 杠杆交易:交易者可以利用杠杆进行永续合约交易,即用较少的资金控制更大规模的头寸。
  • 双向交易:永续合约允许交易者做多或做空标的资产。做多即买入合约,预期标的资产价格上涨;做空则是卖出合约,预期标的资产价格下跌。

这里可以考虑下,由于永续合约没有到期时间,不同于交割合约到期后会有个交割价格,这就导致了永续合约的价格可能会远远的偏离现货的价格,为了解决这个问题就引入了资金费率

资金费率

合约市场中的资金费率是永续合约中的一个重要机制,主要用于保证合约价格与现货市场价格的接近。如何保证的呢?

  • 当合约市场价格高于现货市场价格时,资金费率为正。此时,做多的交易者需要支付资金费率给做空的交易者。
  • 当合约市场价格低于现货市场价格时,资金费率为负。此时,做空的交易者需要支付资金费率给做多的交易者。

通过收取资金费用来保证合约市场的价格尽量与现货市场价格接近,通常每隔8小时进行一次资金费用结算。

套利策略的思路

  1. 监控市场所有合约的资金费率,找出市场中资金费率最大
  2. 采用高倍杠杆在资金费用开始结算前几秒使用脚本开仓
  3. 等待资金费用结算完成后立即平仓(越快越好,所以需要服务器网速快)

查询资金费率

  1. 这里只展示KC的资金费率查询,其他交易所类似
  2. 查询出所有的永续合约,再去遍历查询合约的资金费率,然后排序取出资金费率前5的合约信息(这里用到的交易所接口都封装到了ExchangeSDK)
FutureRestApiClient restApiClient = FutureApiInternalFactory.getInstance()
                .createKucoinFutureRestApiClient(Constants.Future.KUCOIN_REST_API_BASE_URL, "your appKey", "your appSecret", "your passphrase");
List<FundingRate> fundingRateList = restApiClient.getFutures()
        .stream()
        .filter(future -> "USDT".equals(future.getQuoteAsset()) && future.getFutureType().equals(FutureType.PERPETUAL))
        .map(future -> {
            Utils.sleep(500);
            return restApiClient.getFundingRate(future.getSymbol());
        })
        .sorted(sortFundingRate())
        .limit(5)
        .collect(toList());

String message = fundingRateList
        .stream()
        .map(fundingRate -> String.format("SYMBOL: %s, FundingRate: %s", fundingRate.getSymbol(), fundingRate.getFundingRate()))
        .collect(Collectors.joining("\n"));
log.info("current FundingRate: {}", message);

由于资金费率可能为正,也可能为负,所以我们在排序的时候需要使用绝对值比较

private Comparator<FundingRate> sortFundingRate() {
    return (o1, o2) -> {
        int compare = o1.getFundingRate().abs().compareTo(o2.getFundingRate().abs());
        if (compare > 0) {
            return -1;
        } else if (compare < 0) {
            return 1;
        }
        return 0;
    };
}

套利程序

设计套利程序的参数

  • symbol: 设置需要套利的交易对;在上面我们已经查询出来了最大的资金费率,通过会在前5进行选择
  • money: 设置需要套利的本金;
  • openSide: 设置开仓方向;资金费率为正,就去卖;资金费率为负,就去买
  • leverage: 设置开仓杠杆(通常是逐仓使用,全仓使用的全局杠杆)
public void start() throws Exception {
    Future future = this.restApiClient.getFuture(this.symbol);
    SymbolPrice ticker = this.restApiClient.getSymbolPriceTicker(this.symbol);
    BigDecimal tradeAmount = this.money.multiply(new BigDecimal(this.leverage))
            .divide(ticker.getPrice(), 10, RoundingMode.DOWN)
            .divide(future.getMultiplier(), 0, RoundingMode.DOWN);
    log.info("current market price:{}, tradeAmount:{}", ticker.getPrice(), tradeAmount);
    if (tradeAmount.doubleValue() <= 0) {
        return;
    }

    this.restApiClient.postOrder(symbol, openSide, PositionSide.BOTH, OrderType.MARKET, TimeInForce.GTC, tradeAmount, ticker.getPrice(), false, Utils.uuid(), null, null, leverage);

    Utils.sleep(200);

    this.restApiClient.postOrder(symbol, openSide.oppositeSide(), PositionSide.BOTH, OrderType.MARKET, TimeInForce.GTC, tradeAmount, ticker.getPrice(), false, Utils.uuid(), null, null, leverage);
    log.info("FutureQuickInOutPolicy Finish");
}

由于开仓和平仓都是使用的市价单,所以该策略很依赖盘口深度,如果深度太差会导致滑点很大

若需完整源码加微信silently9527,免费分享

原文链接: https://herman7z.site/Notes/No2TechColumn/05%20Trader/01%20%E6%B0%B8%E7%BB%AD%E5%90%88%E7%BA%A6%E5%BF%AB%E8%BF%9B%E5%BF%AB%E5%87%BA%E5%A5%97%E5%88%A9%E7%AD%96%E7%95%A5.html

最后(看完不点关注,你们想白嫖我吗)

文中或许会存在或多或少的不足、错误之处,有建议或者意见也非常欢迎大家在评论交流。

最后,写作不易,请不要白嫖我哟,希望朋友们可以点赞评论关注三连,因为这些就是我分享的全部动力来源

标签:永续,费率,future,套利,进快,交易者,合约,资金
From: https://www.cnblogs.com/herman7z/p/18388537

相关文章

  • 白话双向套利原理
    在A,B两个交易所开立账户,一个执行买入,另一个执行卖出,就好比从便宜的地方进货,到贵的地方卖出,朴素的生意原理。 具体流程上,分为监听、判定、交易、提现、结算这几个步骤。1、监听到某一时刻,判定价差出现套利机会A所:1BTC价格10000USD20000USDTB所:1BTC 9000USD20000USDT ......
  • 数字资产自动化交易之DEX与CEX套利
    监控去中心化交易所(DEX)和中心化交易所(CEX)之间的套利机会涉及实时数据监控、分析和交易执行。以下是一个监控和执行套利机会的综合步骤指南:1.数据收集实时价格数据DEX:使用DEX的API获取交易对的实时价格数据。常见的DEX包括Uniswap、SushiSwap、PancakeSwap等。这些......
  • 龙哥量化:通达信60日均线套利战法(图解)
    如果您需要代写技术指标公式,请联系我。龙哥QQ:591438821龙哥微信:Long622889一般用于牛股的一段下跌之后的小反弹。在股票前面经过一段不错的上涨后出现了一段大幅下跌,5日、10、20日均线均出现拐头向下,但是60日线却仍是斜着往右上走的状态。股票跌到60日线以下,待股票企稳出现......
  • 主动算法交易!减持回购/套利/大单拆分/篮子交易/预埋单神器工具!
    主动算法致力于服务机构投资者,为其提供以成交为目的的自动化交易执行。在有限容量内,充分追求客户个性化需求,保证执行效率、降低冲击成本、减少人力成本、保护交易意图、捕捉交易机会、符合监管要求和获取交易环节的ALpha收益。能够帮助解决的问题:1.优化交易成本,降低冲击成......
  • 量化交易:miniQMT的可转债与正股折价套利策略python代码
    哈喽,大家好,我是木头左!套利是一种艺术,一种利用市场的价格差异来获取无风险利润的艺术。而可转债与正股之间的折价套利,更是量化交易者眼中的香饽饽。今天,我们将一起揭开这层神秘的面纱,探索如何使用miniQMT和Python来实现这一策略。......
  • 套利(spfa判环+STL)
    套利题目描述套利是利用汇率差异实现货币增值。例如,1美元可以兑换0.5英镑、1英镑可以兑换10法郎、1法郎可以兑换0.21美元。接下来,一个聪明的交易商就可以从1美元开始,0.5*10.0*0.21=1.05美元,获得了5%的利润。你的任务是写一个程序,从输入文件读入汇率清单,然后决定套利......
  • 交易策略-网格策略(一):震荡行情的套利神器
    作者:麦克煎蛋  出处:https://www.cnblogs.com/mazhiyong/转载请保留这段声明,谢谢!网格交易,又称渔网策略,最早的发明人,网络上的信息有分歧。有一种说法是,它的发明人是著名数学家克劳德·艾尔伍德·香农(ClaudeElwoodShannon),在研究学术之余自己炒股,将自己的数学知识发扬光大。另......
  • 对刷套利技巧你懂多少呢?
    冠亚和值对刷说明第一步,先找到两个台子的飞艇冠亚和值大小单双在哪里【必须和值11为小】第二步,找到合适的赔率台子详细操作如下:xx娱乐大和双的赔率是xxx小和单的赔率是1.90xx娱乐大和双的赔率是2.2小和单的赔率是xxx第三步,知道赔率之后开始计算利润xx......
  • eth 套利案例五
    交易hash:0xb69981d437af7b9b705b3eb459df89d69901b5aff1cf2f99673372c873d50daf时间:2024.02.24获利:9699刀交易流程:2923762268+17040592=2940802860先贷出230个weth,然后再换成eth再换成2940802860个kekec,然后再用2923762268个kekec换成229.44个wet......
  • 大宗物资快进快出场景下收款信息的及时获取
    前言    大宗物资行业实现货物的快速周转,对公司利润率影响很大,大宗物资特性决定了资金的大额收入,往往单次资金支付都是过百万,所以必须是通过银行支付,没办法通过微信或者支付宝。现有的一些银企直联系统,实际17点之后的收付流水就会在第二日做推送,但往往业务对资金......