FTXのFunding rateを取得する

今回書いてみたもの

FTXのFunding rateを両建てで取る戦略は、現物と無期限先物の価格差を間接的に裁定取引しているのかな? と思ったので、FTXのFRを年利換算で取得するプログラムをJupyer Notebook上で書いて、状況を確認してみました。

import ccxt
import pandas as pd
import datetime
from tqdm import tqdm

# ターゲットの取引所を指定
TARGET_EXCHANGE = 'ftx'

pd.options.display.min_rows = 30
pd.options.display.max_rows = 100

# ターゲットの取引所を初期化
ccxt_exchange = getattr(ccxt, TARGET_EXCHANGE)()
ccxt_exchange.load_markets()

# Funding Rateの値を入れるデータフレーム
df_fr = pd.DataFrame()

# スポット取引可能な銘柄を入れるリスト
array_spot = []

# 全銘柄について直近のFunding Rate変化を入れたデータフレームを生成
for k, v in tqdm(ccxt_exchange.markets.items()):
    # スポット銘柄はスポット銘柄リストに追加
    if v['type'] == 'spot':
        array_spot.append(k)
        continue
    # スワップ銘柄でなければスキップ
    if v['type'] != 'swap':
        continue
    
    try:
        # CCXTの関数を利用して直近のFunding Rateの履歴をハッシュとして取得
        funding_rate_info_array = ccxt_exchange.fetchFundingRateHistory(k)
        
        # ハッシュからデータフレームを作成。長さが0なら次の銘柄へ
        df_temp = pd.DataFrame(funding_rate_info_array)
        if len(df_temp) == 0:
            continue
        
        # 必要ない列を削除する
        df_temp.drop(['info', 'datetime', 'symbol'], axis=1, inplace=True)
        
        # 列名を変更する
        df_temp.columns = [k.replace(':USD', ''), 'timestamp']

        # ミリ秒単位の時間をtimestampから切り捨て
        df_temp['timestamp'] = df_temp['timestamp'] // 1000
        
        # TimestampからDatetimeを生成してインデックスにし、Timestampは削除
        df_temp['datetime'] = pd.to_datetime(df_temp['timestamp'], unit='s')
        df_temp.drop(['timestamp'], axis=1, inplace=True)
        df_temp.set_index('datetime', inplace=True)
        
        # これまでの計算結果と結合する
        df_fr = pd.concat([df_fr, df_temp], axis=1).fillna(0)
    except:
        print(f'{k} exception occured')
        pass

# 年率換算した最新のFunding Rate利率を、スポット銘柄取引可能なものについてだけ表示する
series_fr = df_fr.iloc[-1]*100*24*365
series_fr = series_fr.filter(items=array_spot).sort_values()

display(series_fr)

実行した結果

結果は以下のようになりました。

SLP/USD       -395.076
ORBS/USD      -181.332
HOLY/USD      -176.076
OXY/USD       -161.184
FIDA/USD      -141.912
PROM/USD      -113.880
RAMP/USD      -102.492
MEDIA/USD      -98.112
DENT/USD       -78.840
SECO/USD       -69.204
PAXG/USD       -62.196
DODO/USD       -58.692
EDEN/USD       -56.940
KSHIB/USD      -56.064
LEO/USD        -54.312
                ...   
PEOPLE/USD      15.768
PUNDIX/USD      16.644
CVC/USD         17.520
KNC/USD         18.396
BRZ/USD         23.652
ASD/USD         27.156
BAO/USD         32.412
MNGO/USD        42.924
STMX/USD        45.552
MER/USD         51.684
ROOK/USD        69.204
CLV/USD         94.608
MTA/USD         94.608
DAWN/USD       388.068
AMPL/USD      1085.364
Name: 2022-01-09 13:00:00, Length: 122, dtype: float64

2022/1/9現在の値ですが、AMPL/USDは相当な状態になっていますね。

SLP/USDなどFunding rateがマイナスのものでも、マージントレードで現物売したうえで先物買いをすれば、マイナス利率からも利益をあげることができるのかな?

いいなと思ったら応援しよう!