ການຊື້ຂາຍ Arbitrage ທາງສະຖິຕິໃນຄຣິບໂຕ — ການຊື້ຂາຍຄູ່ ແລະ ການກັບຄືນສູ່ຄ່າກາງ

ການຊື້ຂາຍ Arbitrage ທາງສະຖິຕິໃຊ້ປະໂຫຍດຈາກການບ່ຽງເບນຊົ່ວຄາວຈາກລາຄາສົມດຸນ. ເມື່ອສອງຊັບສິນທີ່ໂດຍປົກກະຕິແລ້ວເຄື່ອນໄຫວຮ່ວມກັນແຕກຕ່າງກັນ, ຜູ້ຊື້ຂາຍ Arbitrage ທາງສະຖິຕິຈະຊື້ຊັບສິນທີ່ມີຜົນປະສິດຕິພາບຕໍ່າ ແລະ ຂາຍຊັບສິນທີ່ມີຜົນປະສິດຕິພາບສູງ, ພະນັກການວ່າຈະກັບມາຮ່ວມກັນ. ໃນຄຣິບໂຕ, ນີ້ແມ່ນມີປະສິດທິພາບໂດຍສະເພາະເພາະວ່າຊັບສິນມີຄວາມສຳພັນກັນແຕ່ບໍ່ສົມບູນ, ສ້າງຊ່ອງທີ່ມີກຳໄລ.

ຕົວຢ່າງ: ຄວາມສຳພັນຂອງ BTC ແລະ ETH ແມ່ນ 0.85. ເມື່ອ ETH ມີຜົນປະສິດຕິພາບຕໍ່າເປັນເວລາ 1 ຊົ່ວໂມງ (ຜິດປົກກະຕິ), ຜູ້ຊື້ຂາຍ Arbitrage ທາງສະຖິຕິຈະຂາຍ BTC ແລະ ຊື້ ETH. ໃນອະດີດ, ພວກມັນຈະກັບມາຮ່ວມກັນພາຍໃນ 4-8 ຊົ່ວໂມງ, ລ໋ອກກຳໄລ ~1-1.5%.

ພື້ນຖານການຊື້ຂາຍຄູ່

ການເລືອກຄູ່

ບໍ່ແມ່ນທຸກຄູ່ຈະໃຊ້ໄດ້. ທ່ານຕ້ອງການ:

Python — ການເລືອກຄູ່
import pandas as pd
from scipy.stats import pearsonr
def find_cointegrated_pairs(symbols, data):
candidates = []
for i, sym1 in enumerate(symbols):
for sym2 in symbols[i+1:]:
# Calculate correlation
corr, p_value = pearsonr(data[sym1], data[sym2])
if corr > 0.75:
# Test cointegration (Engle-Granger test)
residuals = data[sym1] - (data[sym2] * corr)
adf_stat = adf_test(residuals) # stationarity
if adf_stat < 0.05: # stationary
candidates.append((sym1, sym2, corr))
return candidates

ການວິເຄາະການຮ່ວມກັນຂອງຂໍ້ມູນ

ການຮ່ວມກັນຂອງຂໍ້ມູນແມ່ນຫຍັງ?

ສອງຊຸດທີ່ບໍ່ມີຄວາມສະຖຽນລະພາບແມ່ນຖືກຮ່ວມກັນຖ້າການປະສົມເສັ້ນຂອງພວກມັນມີຄວາມສະຖຽນລະພາບ. ເວົ້າງ່າຍໆ: ພວກມັນເຄື່ອນໄຫວຮ່ວມກັນໄປຕາມເວລາ, ແລະ ການບ່ຽງເບນຈາກຄວາມສຳພັນນັ້ນຈະກັບຄືນໃນທີ່ສຸດ.

ສຳລັບ BTC ແລະ ETH:

ການຊອກຫາອັດຕາສ່ວນ Hedge

ໃຊ້ການຖອດຖອນກຳມະຈຳປະລິມານນ້ອຍທີ່ສຸດເພື່ອຊອກຫາອັດຕາສ່ວນທີ່ເໝາະສົມ:

Python — ການຄຳນວນ Hedge ratio
from sklearn.linear_model import LinearRegression
def get_hedge_ratio(price1, price2):
# Regress price1 on price2 to find beta (hedge ratio)
X = price2.reshape(-1, 1)
y = price1
model = LinearRegression().fit(X, y)
hedge_ratio = model.coef_[0]
intercept = model.intercept_
return hedge_ratio, intercept
# Spread = price1 - (hedge_ratio × price2) + intercept
beta, alpha = get_hedge_ratio(btc_prices, eth_prices)
spread = btc - (beta * eth)

ຍຸດທະສາດການກັບຄືນສູ່ຄ່າກາງ

ການໃຊ້ Z-Scores

ມາດຕະຖານຄວາມກວ້າງເພື່ອກວດສອບຄວາມສຸດຂອງ. ເມື່ອ z-score > 2, ຄວາມກວ້າງແມ່ນກວ້າງເກີນໄປ (ໂອກາດທີ່ຈະຊື້ຂາຍ):

Python — ການຊື້ຂາຍການກັບຄືນສູ່ຄ່າກາງ
def mean_reversion_signal(spread, lookback=20):
# Calculate rolling mean and std
mean = spread.rolling(window=lookback).mean()
std = spread.rolling(window=lookback).std()
# Z-score: how many std devs from mean
z_score = (spread - mean) / std
# Trading signals
if z_score[-1] > 2.0:
return "LONG_SPREAD" # spread too wide, buy underperformer
elif z_score[-1] < -2.0:
return "SHORT_SPREAD" # spread too tight, short underperformer
else:
return "NEUTRAL"

ກົດລະບຽບການອອກ

ປິດເມື່ອຄວາມກວ້າງກັບຄືນສູ່ຄ່າກາງ (z-score → 0) ຫຼື ເຖິງເກັດການສູນເສຍ (ຢຸດທີ່ z-score ກັບຄືນ):

Python — ຕັກກະສາດການອອກ
def check_exit(entry_z_score, current_z_score, entry_price):
# Take profit: spread converged halfway back to mean
if abs(current_z_score) < abs(entry_z_score) * 0.5:
return ອອກ, ເປົ້າໝາຍກຳໄລ
# ຢຸດຂາດທຶນ: z-score ເຄື່ອນຍ້າຍໄປໃນທິດທາງຜິດຫຼາຍກວ່າ 1
if (entry_z_score > 0 and current_z_score < entry_z_score + 1.0):
return ອອກ, ຢຸດຂາດທຶນ
elif (entry_z_score < 0 and current_z_score > entry_z_score - 1.0):
return ອອກ, ຢຸດຂາດທຶນ
return ຖື, None

ການທົດສອບຍ້ອນກັບຍຸດທະສາດ Stat Arb

ຕົວຊີ້ວັດສຳຄັນສຳລັບ stat arb:

Python — ທົດສອບຍ້ອນກັບຍຸດທະສາດຄູ່
def backtest_pairs_strategy(price1, price2, hedge_ratio):
spread = price1 - (hedge_ratio * price2)
mean = spread.rolling(20).mean()
std = spread.rolling(20).std()
z_score = (spread - mean) / std
trades = []
position = None
for i in range(len(z_score)):
if position is None:
if z_score[i] > 2.0:
position = {entry: spread[i], z_entry: z_score[i], idx: i}
else:
exit_reason = check_exit(position[z_entry], z_score[i], spread[i])[1]
if exit_reason:
pnl = position[entry] - spread[i]
trades.append({pnl: pnl, reason: exit_reason})
position = None
return pd.DataFrame(trades)

ການເພີ່ມຄວາມສະຫຼາດຂອງ Smart Money

ປັບປຸງການຊື້ຂາຍຄູ່ໂດຍການກັ່ນຕອງການຊື້ຂາຍດ້ວຍການຢືນຢັນຈາກ Smart Money:

Python — ຍຸດທະສາດຄູ່ທີ່ຖືກກັ່ນຕອງ
def smart_money_pairs_strategy(symbol1, symbol2, z_score):
# ກວດສອບການຢືນຢັນ Smart Money ລະດັບຄູ່
sm1 = get_smart_money_signal(symbol1)
sm2 = get_smart_money_signal(symbol2)
# ຖ້າຫນຶ່ງເປັນຂາຍສູງແລະອີກຫນຶ່ງເປັນຊື້ຕໍ່າ = ຄວາມແຕກຕ່າງທີ່ເຂັ້ມແຂງ
# ເວລາທີ່ດີທີ່ຈະຊື້ຂາຍ spread
divergence_score = abs(sm1[composite] - sm2[composite])
if z_score > 2.0 and divergence_score > 0.3 and sm1[confidence] != VETO:
return TRADE # ສັນຍານຄວາມໝັ້ນໃຈສູງ
else:
return SKIP # ລໍຖ້າການຈັດວາງ

ປັບປຸງຍຸດທະສາດ Stat Arb ດ້ວຍສັນຍານ Smart Money ຄູ່

ກັ່ນຕອງການຊື້ຂາຍ mean reversion ດ້ວຍຄວາມຕົກລົງຂອງ whale ແລະຂໍ້ມູນ derivatives. API ຂອງພວກເຮົາຢືນຢັນຄວາມຖືກຕ້ອງຂອງຄວາມແຕກຕ່າງຄູ່ດ້ວຍການປັບປຸງຄວາມຖືກຕ້ອງ 62%.

ເລີ່ມຊື້ຂາຍຄູ່ →