கிரிப்டோவில் புள்ளியியல் ஆர்பிட்ரேஜ் — ஜோடி வர்த்தகம் மற்றும் சராசரி மீள்வு

புள்ளியியல் ஆர்பிட்ரேஜ் என்பது சமநிலை விலைகளில் இருந்து தற்காலிக விலகல்களைப் பயன்படுத்துகிறது. பொதுவாக ஒன்றாக நகரும் இரண்டு சொத்துகள் விலகி நின்றால், ஒரு புள்ளியியல் ஆர்பிட்ரேஜ் வர்த்தகர் குறைந்த செயல்திறன் கொண்டதை வாங்கி, அதிக செயல்திறன் கொண்டதை குறுகிய காலத்தில் விற்கிறார், ஒன்றிணைவதற்கு பந்தயம் கட்டுகிறார். கிரிப்டோவில், இது குறிப்பாக சக்திவாய்ந்தது, ஏனெனில் சொத்துக்கள் தொடர்புடையவை ஆனால் முழுமையாக இல்லை, இது லாபகரமான வாய்ப்புகளை உருவாக்குகிறது.

எடுத்துக்காட்டு: BTC மற்றும் ETH தொடர்பு 0.85 ஆகும். ETH 1 மணி நேரத்தில் BTCயை விட 3% குறைந்த செயல்திறன் கொண்டால் (அசாதாரணமானது), ஒரு புள்ளியியல் ஆர்பிட்ரேஜ் வர்த்தகர் BTCயை குறுகிய காலத்தில் விற்கிறார் மற்றும் ETHயை நீண்ட காலத்தில் வாங்குகிறார். வரலாற்று ரீதியாக, அவை 4-8 மணி நேரத்திற்குள் ஒன்றிணைகின்றன, ~1-1.5% லாபத்தை பூட்டுகின்றன.

ஜோடி வர்த்தக அடிப்படைகள்

ஜோடிகளைத் தேர்ந்தெடுத்தல்

அனைத்து ஜோடிகளும் வேலை செய்யாது. உங்களுக்கு தேவை:

பைதான் — ஜோடி தேர்வு
உள்ளமை பாண்டாஸ் pd
இருந்து scipy.stats உள்ளமை pearsonr
def find_cointegrated_pairs(symbols, data):
candidates = []
for i, sym1 in enumerate(symbols):
for sym2 in symbols[i+1:]:
# தொடர்பைக் கணக்கிடவும்
corr, p_value = pearsonr(data[sym1], data[sym2])
if corr > 0.75:
# கோஇன்டெக்ரேஷன் சோதனை (எங்கில்-கிரேங்கர் சோதனை)
residuals = data[sym1] - (data[sym2] * corr)
adf_stat = adf_test(residuals) # நிலைப்புத்தன்மை
if adf_stat < 0.05: # நிலையான
candidates.append((sym1, sym2, corr))
return candidates

கோஇன்டெக்ரேஷன் பகுப்பாய்வு

கோஇன்டெக்ரேஷன் என்றால் என்ன?

இரண்டு நிலையற்ற தொடர்கள் அவற்றின் நேரியல் கலவை நிலையானதாக இருந்தால் கோஇன்டெக்ரேடட் ஆகும். எளிய ஆங்கிலத்தில்: அவை காலப்போக்கில் ஒன்றாக நகரும், மற்றும் அந்த உறவிலிருந்து விலகல்கள் இறுதியில் மீண்டும் வரும்.

BTC மற்றும் ETHக்கு:

ஹெட்ஜ் விகிதத்தைக் கண்டறிதல்

உகந்த விகிதத்தைக் கண்டறிய சாதாரண குறைந்த சதுர பின்னடைவைப் பயன்படுத்தவும்:

பைதான் — ஹெட்ஜ் விகித கணக்கீடு
இருந்து sklearn.linear_model உள்ளமை LinearRegression
def get_hedge_ratio(price1, price2):
# பின்னடைவு 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
# பரவல் = price1 - (hedge_ratio × price2) + intercept
beta, alpha = get_hedge_ratio(btc_prices, eth_prices)
spread = btc - (beta * eth)

சராசரி மீள்வு உத்திகள்

Z-ஸ்கோர்களைப் பயன்படுத்துதல்

தீவிரங்களைக் கண்டறிய பரவலைத் தரநிலையாக்கவும். z-score > 2 ஆக இருக்கும்போது, பரவல் அசாதாரணமாக அகலமாக உள்ளது (வர்த்தக வாய்ப்பு):

பைதான் — சராசரி மீள்வு வர்த்தகம்
def mean_reversion_signal(spread, lookback=20):
# ரோலிங் சராசரி மற்றும் std ஐக் கணக்கிடவும்
mean = spread.rolling(window=lookback).mean()
std = spread.rolling(window=lookback).std()
# Z-ஸ்கோர்: சராசரியிலிருந்து எத்தனை std devs
z_score = (spread - mean) / std
# வர்த்தக சிக்னல்கள்
if z_score[-1] > 2.0:
return "LONG_SPREAD" # பரவல் மிகவும் அகலமாக உள்ளது, குறைந்த செயல்திறன் கொண்டதை வாங்கவும்
elif z_score[-1] < -2.0:
return "SHORT_SPREAD" # பரவல் மிகவும் இறுக்கமாக உள்ளது, குறைந்த செயல்திறன் கொண்டதை குறுகிய காலத்தில் விற்கவும்
else:
return "NEUTRAL"

வெளியேறும் விதிகள்

பரவல் சராசரிக்கு திரும்பும் போது மூடவும் (z-score → 0) அல்லது இழப்பு வாசலை (z-score தலைகீழாக நிறுத்தவும்):

பைதான் — வெளியேறும் தர்க்கம்
def check_exit(entry_z_score, current_z_score, entry_price):
# லாபம் எடுக்கவும்: பரவல் சராசரிக்கு பாதி தூரம் திரும்பியது
if abs(current_z_score) < abs(entry_z_score) * 0.5:
return வெளியேறு, லாப இலக்கு
# நிறுத்தம் இழப்பு: z-மதிப்பெண் தவறான திசையில் >1 ஆல் நகர்ந்தது
என்றால் (நுழைவு_z_மதிப்பெண் > 0 மற்றும் தற்போதைய_z_மதிப்பெண் < நுழைவு_z_மதிப்பெண் + 1.0):
திரும்பவும் வெளியேறு, நிறுத்தம் இழப்பு
இல்லையென்றால் (நுழைவு_z_மதிப்பெண் < 0 மற்றும் தற்போதைய_z_மதிப்பெண் > நுழைவு_z_மதிப்பெண் - 1.0):
திரும்பவும் வெளியேறு, நிறுத்தம் இழப்பு
திரும்பவும் பிடி, None

பின்புல சோதனை புள்ளிவிவர ஆர்ப் உத்திகள்

புள்ளிவிவர ஆர்ப்-க்கான முக்கிய அளவைகள்:

Python — ஜோடி உத்தியை பின்புல சோதனை செய்க
def backtest_pairs_strategy(விலை1, விலை2, ஹெட்ஜ்_விகிதம்):
பரவல் = விலை1 - (ஹெட்ஜ்_விகிதம் * விலை2)
சராசரி = பரவல்.rolling(20).mean()
std = பரவல்.rolling(20).std()
z_மதிப்பெண் = (பரவல் - சராசரி) / std
வர்த்தகங்கள் = []
நிலை = None
க்கு i இல் range(len(z_மதிப்பெண்)):
என்றால் நிலை என்பது None:
என்றால் z_மதிப்பெண்[i] > 2.0:
நிலை = {"நுழைவு": பரவல்[i], "z_நுழைவு": z_மதிப்பெண்[i], "idx": i}
இல்லையெனில்:
exit_reason = check_exit(position["z_entry"], z_score[i], spread[i])[1]
என்றால் exit_reason:
pnl = position["entry"] - spread[i]
trades.append({"pnl": pnl, "reason": exit_reason})
position = None
திரும்ப pd.DataFrame(trades)

ஸ்மார்ட் மணி இன்டெலிஜென்ஸை சேர்த்தல்

ஸ்மார்ட் மணி உறுதிப்பாட்டுடன் ஜோடி வர்த்தகங்களை வடிகட்டி மேம்படுத்தவும்:

பைதான் — வடிகட்டப்பட்ட ஜோடி மூலோபாயம்
def smart_money_pairs_strategy(symbol1, symbol2, z_score):
# ஜோடி-நிலை ஸ்மார்ட் மணி உறுதிப்பாட்டை சரிபார்க்கவும்
sm1 = get_smart_money_signal(symbol1)
sm2 = get_smart_money_signal(symbol2)
# ஒன்று HIGH ராட்சதமாகவும் மற்றொன்று HIGH கரடியாகவும் இருந்தால் = வலுவான வேறுபாடு
# ஸ்ப்ரெட் வர்த்தகம் செய்ய சிறந்த நேரம்
divergence_score = abs(sm1["composite"] - sm2["composite"])
என்றால் z_score > 2.0 மற்றும் divergence_score > 0.3 மற்றும் sm1["confidence"] != "VETO":
திரும்ப "TRADE" # உயர் நம்பிக்கை சிக்னல்
இல்லையெனில்:
திரும்ப "SKIP" # சீரமைப்புக்காக காத்திருக்கவும்

ஸ்மார்ட் மணி ஜோடி சிக்னல்களுடன் ஸ்டாட் ஆர்பை சூப்பர்சார்ஜ் செய்யவும்

திமிங்கலம் ஒருமித்த மற்றும் டெரிவேடிவ் தரவுகளுடன் சராசரி திரும்பும் வர்த்தகங்களை வடிகட்டவும். எங்கள் API ஜோடி வேறுபாட்டின் செல்லத்தகுதியை 62% துல்லிய மேம்பாட்டுடன் உறுதிப்படுத்துகிறது.

ஜோடி வர்த்தகத்தைத் தொடங்கவும் →