Futures & Spot Spread Return Arbitrage Analyse in Krypto-Margin-Kontrakten

Schriftsteller:- Ich bin ein Idiot., Erstellt: 2022-04-12 10:06:51, Aktualisiert: 2022-04-13 09:20:56

Futures & Spot-Spread-Rendite-Arbitrage

Letztes Mal führten wir eine dauerhafte Vertragsfinanzierung (https://www.fmz.com/digest-topic/6381Im Falle einer großen negativen Prämie kann es auch Geld und Prämie machen, um Gewinn zurückzugeben. Im Bullenmarkt im August und September erreichte die jährliche Rate einmal 100%, so dass es eine relativ beliebte Strategie ist.

Bei der risikoarmen Kryptowährungs-Arbitrage gibt es eine weitere Strategie, die noch nicht eingeführt wurde - die Basis-Rendite-Arbitrage.

1.Es gibt eine Preisdifferenz zwischen dem Futures-Vertrag und dem Spot. Das Merkmal des Liefervertrags ist, dass er bis zum Lieferdatum nicht zum Spotpreis abgerechnet wird. Wenn daher das Lieferdatum weit entfernt ist, wird die Lieferung des Vertrags leicht von der Marktstimmung beeinflusst. Wenn der Markt gut abschneidet, werden mehr Leute optimistisch über den zukünftigen Preis sein, so dass es eine positive Prämie geben wird. Wenn es einen starken Rückgang gibt, gibt es oft eine negative Prämie. Aber im Allgemeinen wird die Lieferung des Vertrages nicht zu sehr vom Spot abweichen und immer am Liefertag zurückkehren.

2.Es gibt auf Währung basierende Lieferverträge. Zum Beispiel hat Binance aktuelle Quartals- und nächstes Quartal Lieferverträge. Es gibt einen großen Unterschied zwischen einem Krypto-Margin-Liefervertrag und einem USDT-Margin-Perpetual-Vertrag. Die Krypto-Margin-Abwicklung verwendet Währung, und der Währungspreis ändert sich ständig, was im Folgenden ausführlich vorgestellt wird.

Der Code in diesem Artikel kann direkt ausgeführt werden, aber aufgrund von Netzwerkgründen erfordert der Crawling-Datenteil einen wissenschaftlichen Internetzugang, es ist am besten, Ihren eigenen Computer zu verwenden, um ihn auszuführen, oder Google Collab zu verwenden.

Berechnung des Gewinns und Verlusts von Krypto-Margin-Kontrakten

Gemäß der Binance-Dokumentation sind Einnahmen = Handelsrichtung × ausgeführtes Volumen × Vertragsvielfaches × (1 / offener Preis - 1 / Schlusskurs) = Positionswert × (1 / offener Preis - 1 / Schlusskurs); wenn Sie kurz machen, ist der Positionswert negativ. Wenn Sie 100 BTCUSD Lieferverträge halten, die jeweils 100USD wert sind, und der offene Preis 10.000USD beträgt, dann ist der Gewinn und Verlust bei der Preisänderung wie folgt:

Durch Berechnung und Analyse sind die Gewinne aus kryptogebundenen Short- oder Long-Positionen nichtlinear und werden durch Währungsgewinne gemessen; wenn bei einer Short-Position ein Verlust auftritt, verlieren Sie höchstens nur den Währungsbetrag einer Position, aber es gibt keine obere Grenze für den verdienten Währungsbetrag; wenn bei einer Long-Position ein Gewinn auftritt, profitieren Sie höchstens nur von der Währungsmenge einer Position, und es gibt keine obere Grenze für Verluste. Es scheint, dass es kostengünstiger ist, Short zu machen, aber der Gewinn durch Short zu machen sinkt, wenn der Kurs sinkt, was nicht so hoch in USD berechnet wird. Wenn Sie den USD-Gewinn berechnen, ist die Situation genau das Gegenteil.

Gleichzeitig müssen Sie beim Handel mit Krypto-Margin-Kontrakten ursprünglich Währungen halten. Wenn Sie USD als Quote-Währung betrachten, dann ist der Gesamtkontowert = (Kontowährungsbetrag + Positionswert × (1 / offener Preis - 1 / Schlusskurs)) × Spotpreis. Wenn der Wert der Position = - Währungsbetrag im Konto × offener Preis, dh einmaliges Hebel zur Kurzstellung, und der Gesamtkontowert = Währungsbetrag im Konto × offener Preis × Spotpreis der Schließposition / Schlusskurs. In Anbetracht dessen, dass der Preis des Liefervertrags schließlich zum Spotpreis zurückkehrt, im letzten Fall der Gesamtkontowert = Währungsbetrag im Konto × offener Preis. Das heißt, der Kontowert wird am offenen Preis gesperrt und ändert sich nicht mit dem aktuellen Preis. Gemäß der Analyse wird die Position nicht liquidiert, wenn der Preis unendlich steigt. Dies ist das Prinzip der Hebelwirkung.

Wenn die Währung des Futures-Kontos auf dem Spotmarkt erworben wird, dannder Gesamtwert des Kontos = Währungsbetrag auf dem Konto × (Offenkurs - Spotkaufpreis)Wenn die Position geöffnet ist, ist unser Gewinn festgesetzt, und der aktuelle Preis spielt keine Rolle.

Natürlich müssen wir in den meisten Fällen nicht bis zum Lieferdatum warten. Wenn der Preisspread sinkt, können wir die Position im Voraus schließen.der Gesamtrückstellungswert = Spotwert × (Futures-Spot-Verhältnis des Eröffnungszeitraums / Futures-Spot-Verhältnis des Schluszeitraums - 1)Solange das Futures- und Spotpreisverhältnis in der Eröffnungsphase größer ist als in der Schließphase und die Gebühr decken kann, dann wird es Gewinne geben.

In [15]: Einfuhranträge ab Datum/Zeit Datum der Einfuhr,Datum/Zeit Einfuhrzeit Import von Pandas als PD Import von Numpy als np Import von matplotlib.pyplot als plt % Matplotlib inline In [96]: Wert = 100100 #Positionswert Open_price = 10000 #Open-Positionspreis 10000USD lang_profit_list = [] short_profit_list = [] lang_usdt_profit_list = [] short_usdt_profit_list = [] close_range = range ((1000,30000,10) für p in close_range: Gewinn = Wert(1/open_price-1/p) lang_profit_list.append ((Gewinn)) lange_usdt_profit_list.append(Gewinnp) short_profit_list.append ((-Gewinn) - Ich bin nicht derjenige, der das Problem hat.p) In [97]: #Krypto-Margin-Gewinn Plt.figure ((figsize=(12, 7), dpi=80) Plt.plot ((close_range,long_profit_list,label=long); Plt.plot ((close_range,short_profit_list); plt.plot ((close_range,[1]*len ((close_range),r); Plt.plot ((close_range,[-1]*len ((close_range),g); Plt.ylabel (( Gewinn); plt.xlabel ((naher Preis); Plt.grid ((True)) Plt.annotate ((Kurzer Gewinn, xy=(4500, 1.5), xytext=(7000, 2.5),Arrowprops=dict(facecolor=black)); Plt.annotate ((Long Profit, xy=(4500, -1.5), xytext=(7000, -2.5), Arrowprops=dict ((facecolor=black));
plt.annotate ((Open price, xy=(10000, 0), xytext=(13000, 2.5),arrowprops=dict ((facecolor=black)); Ausgeschaltet[1]:imgIn [101]: #Gewinn in USD berechnet Plt.figure ((figsize=(12, 7), dpi=80) Plt.plot ((close_range,long_usdt_profit_list,label=long); plt.plot ((close_range,short_usdt_profit_list);

Plt.ylabel (( Gewinn); plt.xlabel ((naher Preis); Plt.annotate ((Kürzer Gewinn, xy=(5000, 5000), xytext=(7000, 10000),Arrowprops=dict ((Gesichtsfarbe=schwarz)); Plt.annotate ((Long Profit, xy=(5000, -5000), xytext=(7000, -10000),arrowprops=dict ((facecolor=black));
Plt.grid ((True)) Außen[101]:img

Futures und Spot-Schiedsverfahren

1.Echtzeitüberwachung der Veränderungen der Futures- und Spotprämie. Nach Erreichen des festgelegten Wertes wird das Spot-Währungssymbol gekauft und sofort auf die Futures übertragen, um Short zu machen. Der Wert des Shorting ist der Spotbetrag × der offene Preis. 2.Wartet auf die Rückzahlung der Prämie und schließt die Futuresposition nach Erreichen des festgelegten Wertes, überträgt sie zum Verkaufsplatz und erzielt Gewinne.

Einzelheiten

1.Die Prämien für verschiedene Liefertermine haben unterschiedliche Bedeutungen. Wenn es beispielsweise eine vierteljährliche Prämie von 5% und eine vierteljährliche Prämie für das nächste Quartal von 5% gibt, wird für die Arbitrage definitiv die vierteljährliche bevorzugt. Der entsprechende jährliche Satz muss auf der Grundlage des Liefertermins berechnet werden. 2.Es ist die Servicegebühr zu berücksichtigen, die sowohl den Spot-Kauf und Verkauf als auch die offene und geschlossene Futures-Position umfasst, die insgesamt 4 Trades umfasst. 3.Futures und Spotgeschäfte müssen gleichzeitig durchgeführt werden, um die Prämie zu sichern.Um Marktschocks zu vermeiden, können Positionen in mehreren Geschäften reduziert werden. 4.Wenn auf dem Futures-Konto eine Währung vorhanden ist, können Sie direkt gleichzeitige offene Positionsarbitrage durchführen, ohne auf die Übertragung zu warten.In ähnlicher Weise muss die Spot-Währung nicht vollständig auf Futures übertragen werden, was für das gleichzeitige Schließen von Positionen praktisch ist.5.ToBeobachten Sie alle Handelspare, je nachdem, welche Chancen hat und welche eine höhere Prämie hat. 6.Die Auswahl der zu schließenden Positionen ist sehr wichtig.Sie können Positionen nach Ebenen schließen; Sie können eine Null-Prämie oder eine negative Prämie verwenden, um alle zu schließen.

Historie Premiumänderungen

Wenn wir die Lieferdaten von Binance als Beispiel nehmen, gibt es 9 Handelspare, nämlich BTCUSDT, ETHUSDT, ADAUSDT, LINKUSDT, BCHUSDT, DOTUSDT, XRPUSDT, LTCUSDT und BNBUSDT, die für den Arbitragehandel verwendet werden können. Hier wird ETH ausgewählt, um speziell die Prämienänderungen zwischen dem Liefervertrag und dem Spot zu analysieren.

Seit Beginn dieses Jahres (2021) begann ETH von 600U und stieg im Mai auf ein Maximum von 4000U, fiel dann im Juni und Juli auf 2000U und kam kürzlich auf 3500U zurück, was bedeutet, dass der Markt boomt. Betrachten Sie die drei Lieferverträge mit Ablaufdaten von 210625, 210924 und 211231. Die Prämie von 210625 bleibt lange Zeit bei 8%; wenn Sie die Arbitrage bei 10% starten und Positionen bei 6% schließen, gibt es in 4 Monaten etwa 4 Möglichkeiten, und die jährliche Rate wird über 50% betragen. 210924 hat eine Prämie, maximal über 15%, die jetzt zurückgekehrt ist. 211231, die noch lange vor dem Ablaufdatum liegt, hat eine maximale Prämie von 5%. Es kann gesehen werden, dass, solange Sie geduldig warten, es viele Arbitragemöglichkeiten auf ETH gibt.

Die Leser können das Handelspaar selbst wechseln; die Situation ist im Grunde ähnlich; im Allgemeinen ist es eine ziemlich gute Zeitzone von Januar bis April in diesem Jahr. In [103]: ##das aktuelle Handelspaar Info = Anfragen.get(https://dapi.binance.com/dapi/v1/exchangeInfo’) Symbole = [s[symbol] für s in Info.json() [symbols]] In [106]: Symbole_nq = Liste (filter) (lambda x:x.split)) [-1]==211231, Symbole)) # nächstes Quartal Vertrag Symbole_q = Liste(Filter(Lambda x:x.split() [-1]==210924, Symbole)) #Vierteljahresvertrag symbols_s = [s.split(_) [0]+T für s in symbols_nq] #Spot-Handelspaar In [108]: ,.beitreten (Symbole) Außen[108]: In [109]: def GetKlines ((Symbol=BTCUSDT,start=2020-8-10,end=2021-8-10,Periode=1h,Basis=fapi,v = v1): Kline = [] Start_zeit = int(zeit.mktime(datetime.strptime(start, %Y-%m-%d).Mehrfachzeit)))1000 + 860601 000 end_time = int(time.mktime(datetime.strptime(end, %Y-%m-%d).Mehrfachzeit)))1000 + 860601 000 Interval_map = {m:601000,h:60601000,d:2460601000} während Start_zeit < End_zeit: Mittelzeit = min(Startzeit+1000In diesem Fall ist die Anzahl der Daten zu berücksichtigen.Interval_map[Zeitraum[-1], Endzeit] url = https://+base+.binance.com/+base+/+v+/klines?symbol=%s&interval=%s&startTime=%s&endTime=%s&limit=1000%(symbol,period,start_time,mid_time) Res = Requests.get (URL) Res_list = res.json() wenn type ((res_list) == list und len ((res_list) > 0: Startzeit = Res_list[-1][0] Klines += Res_list E-Mail-Adresse: http://www.e-mail.eu/ Startzeit = Startzeit+1000In diesem Fall ist die Anzahl der Daten zu berücksichtigen.Interval_map[Zeit[-1]] andere: Print (URL) df = pd.DataFrame ((Klines,columns=[time,open,high,low,close,amount,end_time,volume,count,buy_amount,buy_volume,null]).astype ((float) df.index = pd.to_datetime ((df.time,unit=ms) Rückgabe df In [110]: Symbol = ETH df_s = GetKlines ((symbol=symbol+USDT,start=2020-12-26,end=2021-9-15,period=1h,base=api,v=v3) df_nq = GetKlines ((symbol=symbol+USD_211231,start=2021-6-26,end=2021-9-15,period=1h,base=dapi) df_q = GetKlines ((symbol=symbol+USD_210924,start=2021-3-26,end=2021-9-15,period=1h,base=dapi) df_lq = GetKlines ((symbol=symbol+USD_210625,start=2020-12-26,end=2021-6-24,period=1h,base=dapi) In [128]: #Spotpreis df_s.close.dropna (().plot ((figsize=(16,6),grid=True); Ausgeschaltet[1]:imgIn [139]: #Vertragsprämie im letzten Quartal (100(df_lq.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6),grid=True); #vierteljährliche Vertragsprämie (100(df_q.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6),grid=True); #neues Quartal Vertragsprämie (100*(df_nq.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6),grid=True); Ausgeschaltet[1]:img

##die aktuelle Handelsmöglichkeit Für den Vertrag 210924 geht ablaufen, hier beobachten wir hauptsächlich Vertrag 211231, die noch drei Monate zu verfallen hat. Für den Moment beträgt die Grundprämie etwa 3%, und die höchste Prämie beträgt 5%. Wir könnten sagen, dass die Gelegenheit nicht sehr vielversprechend ist. Nach Ablauf des Vertrags 210924 wird jedoch ein neuer Vertrag für das nächste Quartal generiert, und es wird 6 Monate dauern, um zu liefern, was bedeutet, dass es noch viele Möglichkeiten geben wird.

In [143]: df_all = pd.DataFrame ((index=pd.date_range ((start=2021-6-26, end=2021-9-16, freq=1H),Spalten=Symbole_s) für i im Bereich ((len(symbols_nq)): Symbol_nq = Symbole_nq[i] Symbol_s = Symbol_s[i] df_s = GetKlines ((symbol=symbol_s,start=2021-6-26,end=2021-9-16,period=1h,base=api,v=v3) df_nq = GetKlines ((symbol=symbol_nq,start=2021-6-26,end=2021-9-16,period=1h,base=dapi) df_all[symbol_s] = (100*(df_nq.close-df_s.close) /df_s.close).drop_duplicates() In [144]: df_all.dropna (().plot ((figsize=(16,10),Gitter=True); Ausgelassen[144]:img

Schlussfolgerung

In diesem Artikel wird vor allem ein Arbitrage-Handel eingeführt, bei dem die Spread-Rendite zwischen dem Liefervertrag und dem Spot verwendet wird.

1.Niedriges Risiko: Da eine Leerposition mit 1x Hebelwirkung nicht liquidiert wird, besteht kein Risiko, auch wenn sich die Prämie erhöht, und es handelt sich um eine nahezu risikofreie Arbitrage. 2.Hohe Gewissheit. Der Preis des Liefervertrags wird stets wieder auf den Punkt kommen. Nach Abschluss der Arbitrage wird er nicht von den aktuellen Preisschwankungen beeinflusst. 3.Das Funktionsprinzip ist einfach und kann mit mehreren Währungssymbolen gehandelt werden, was für relativ große Fonds geeignet ist, um stabile Gewinne zu erzielen. 4.Der Gewinn ist nicht gering, und manchmal gibt es eine tiefe negative Prämie.Wenn man Glück hat und den Rhythmus beherrscht, ist der Gewinn sehr beträchtlich.

Hauptrisiken: 1.Wenn die Prämie für eine lange Zeit steigt, entsteht für eine lange Zeit ein schwimmender Verlust. 2.Plattform-API-Ausfall; Handel mit einem Bein. 3.Die Liquidität der Handelsverträge ist gering, und es gibt zu viele Strategien desselben Typs, was zu einem übermäßigen Schwankungsgrad und einer Erschöpfung der Gewinne führt.


Mehr