[TOC]

Baru-baru ini, seorang teman bertanya apakah mungkin untuk membuat strategi arbitrase tingkat pendanaan. Misalnya, seringkali ada ketidakkonsistenan dalam tingkat pendanaan antara CEX dan DEX, dan strategi tersebut dapat mengumpulkan peluang arbitrase dan menggunakan AI untuk menentukan apakah layak untuk membuka posisi. Namun, selalu ada kendala:Tidak ada alat pendeteksi peluang arbitrase yang baik.。
Secara kebetulan, seorang tokoh penting merekomendasikannya.VarFundingPlatform ini mengumpulkan data tingkat pendanaan secara real-time dari berbagai bursa, termasuk Binance, Hyperliquid, Lightner, dan Bybit, yang semuanya terdaftar di platform ini. Lebih penting lagi, dengan membandingkan data tingkat pendanaan real-time ini, platform ini menyediakan kombinasi peluang arbitrase yang optimal.

Ini seperti bantal yang diantar tepat saat Anda mengantuk! Hari ini, saya akan memandu Anda langkah demi langkah melalui desain strategi arbitrase tingkat pendanaan ini.
Sebelum membahas strategi lebih lanjut, mari kita klarifikasi satu pertanyaan terlebih dahulu:Apa sebenarnya arbitrase tingkat pendanaan itu?
Kontrak abadi memiliki mekanisme yang disebutTingkat PendanaanSiklus penyelesaian transaksi bervariasi dari satu bursa ke bursa lainnya; beberapa memiliki periode penyelesaian 8 jam, beberapa memiliki periode penyelesaian 4 jam, dan beberapa bahkan memiliki periode penyelesaian 1 jam.
Berbagai bursa memiliki struktur pengguna dan likuiditas yang berbeda, sehingga menghasilkan keseimbangan kekuatan yang berbeda antara pembeli (bulls) dan penjual (bears). Oleh karena itu, tingkat pendanaan untuk mata uang kripto yang sama seringkali berbeda antara bursa yang berbeda.
Sebagai contoh, tarif biaya BTC di bursa A adalah…+0.1%Bursa B adalah+0.05%。
Pada titik ini kita dapat:
Dengan melakukan hedging pada kedua sisi, keuntungan dan kerugian dari fluktuasi harga saling meniadakan, tetapi selisih biaya (0,05%) terus dikantongi.

Inilah logika inti dari arbitrase suku bunga pendanaan: Anda memperoleh keuntungan dari selisih suku bunga, bukan dari fluktuasi harga.
Setelah memahami prinsip arbitrase tingkat pendanaan, pertanyaan selanjutnya adalah: bagaimana cara kita menerapkannya?
Pendekatan tradisional adalah menulis program lengkap, tetapi kali ini kami memilih untuk menggunakan…Alur kerjaHal ini dicapai melalui alur kerja. Alur kerja memiliki beberapa keunggulan unik:
Setiap node bertanggung jawab atas fungsi independen: pengumpulan data, penyaringan, evaluasi AI, dan eksekusi. Setiap node memiliki tanggung jawabnya masing-masing, logikanya jelas, dan mudah untuk di-debug dan dimodifikasi.
Seluruh proses operasional strategi ini jelas terlihat sekilas, dan setiap masalah di setiap tahapan dapat dengan cepat ditemukan.
Untuk mengubah kriteria penyaringan atau mengoptimalkan logika transaksi, Anda hanya perlu memodifikasi node yang bersangkutan; Anda tidak perlu menyentuh bagian lain.
Alur kerja secara alami mendukung pemanggilan model besar, sehingga sangat mudah bagi AI untuk berpartisipasi dalam pengambilan keputusan.
Untuk kebutuhan iniBerbagai sumber data, pemrosesan multi-tahapUntuk strategi arbitrase, alur kerja merupakan metode implementasi yang sangat cocok.
Strategi ini dibagi menjadiDua jalur utama:


Kedua jalur tersebut masing-masing memiliki tanggung jawabnya sendiri: jalur eksekusi menangani pengambilan keputusan dan transaksi, sementara jalur pengumpulan data bertanggung jawab atas pengumpulan dan visualisasi data. Desain ini memungkinkan strategi dieksekusi secara efisien sekaligus memungkinkan pemantauan status operasionalnya secara real-time.
Strategi ini memerlukan konfigurasi beberapa parameter kunci:
['binance', 'hyperliquid', 'lighter']['high', 'medium', 'low']Kita dapat mengatur parameter ini secara fleksibel sesuai dengan kebutuhan kita sendiri.
Langkah pertama dalam strategi ini adalah memperoleh data peluang arbitrase. Hal ini dilakukan dengan mengakses API VarFunding melalui permintaan HTTP, dengan memasukkan daftar bursa yang telah dikonfigurasi sebelumnya:
const url = `https://varfunding.xyz/api/funding?exchanges=${exchangeList.join(',')}`;
Platform ini menampilkan data biaya untuk semua mata uang kripto di berbagai bursa, beserta kombinasi arbitrase optimal yang telah dihitung. Namun, karena banyaknya data mentah, tidak semuanya dapat digunakan. Strategi akan difilter, hanya mempertahankan peluang di mana posisi long dan short tersedia di bursa yang tercantum dalam daftar konfigurasi kami:
const filteredMarkets = data.data.markets.filter(market => {
const bestExchange = market.bestRate?.exchange;
const worstExchange = market.worstRate?.exchange;
return exchangeList.includes(bestExchange) && exchangeList.includes(worstExchange);
});
Data yang telah difilter akan diekstrak ke dalam format yang ringkas, hanya mempertahankan informasi kunci: pasangan perdagangan, bursa beli, bursa jual, spread biaya, perkiraan pengembalian tahunan, dan tingkat kepercayaan. Data ini akan disimpan untuk analisis peluang arbitrase selanjutnya.
Hanya memiliki satu titik data tarif saja tidak cukup, karena tarif dapat berfluktuasi sementara. Oleh karena itu, strategi ini terus menerus mengumpulkan data snapshot, menyimpan data tarif terkini setiap menit dan hanya mempertahankan data historis dari N jam terakhir.
Setelah mengumpulkan sampel yang cukup, strategi ini akan melakukan analisis statistik untuk menghitung frekuensi setiap mata uang pada berbagai tingkat kepercayaan:
const stats = {};
for (const snapshot of savedData) {
for (const [baseAsset, info] of Object.entries(snapshot.data)) {
if (!stats[baseAsset]) {
stats[baseAsset] = { high: 0, medium: 0, low: 0, total: 0 };
}
stats[baseAsset].total++;
if (info.confidence === 'high') stats[baseAsset].high++;
// ... 统计其他置信度
}
}
Kemudian, mata uang dikategorikan berdasarkan tingkat kepercayaan yang paling sering muncul, dan skor tertimbang dihitung:
score = (high出现次数 × 3 + medium出现次数 × 2 + low出现次数) / 总次数
Peringkat ini mencerminkan stabilitas peluang arbitrase. Semakin tinggi peringkatnya, semakin konsisten kinerja peluang tersebut dalam data historis, dan semakin terpercaya peluang tersebut.
Setelah analisis biaya selesai, strategi akan memeriksa posisi yang ada menggunakan daftar peluang arbitrase terbaru. Logika inti dari deteksi penutupan posisi adalah dengan melakukan iterasi melalui semua bursa untuk menemukan status posisi saat ini:
function scanAllPositions() {
const allPositions = {};
for (const [exName, exIndex] of Object.entries(EXCHANGE_MAP)) {
const positions = exchanges[exIndex].GetPositions();
for (const pos of positions) {
const baseAsset = pos.Symbol.match(/^([A-Z0-9]+)_/)[1];
const isLong = pos.Amount > 0;
// 记录多空仓位信息
}
}
return allPositions;
}
Kemudian tentukan posisi mana yang perlu ditutup. Ada dua skenario:
Tipe pertamaPeluang arbitrase telah hilang. Jika mata uang yang sesuai dengan aset tertentu tidak lagi tercantum dalam daftar peluang arbitrase terbaru, itu berarti selisih biaya telah menyempit, dan Anda harus menutup posisi Anda untuk mengunci keuntungan.
Tipe keduaArahnya telah berubah. Misalnya, jika sebelumnya Anda memiliki posisi beli di titik A dan posisi jual di titik B, tetapi sekarang posisinya telah berbalik, Anda perlu menutup posisi lama terlebih dahulu.
Menutup satu posisi akan menutup kedua posisi secara bersamaan:
// 平多仓
exchanges[longExIndex].CreateOrder(symbol, "closebuy", -1, amount);
// 平空仓
exchanges[shortExIndex].CreateOrder(symbol, "closesell", -1, amount);
Dan bersihkan catatan kepemilikan untuk memastikan bahwa posisi yang sudah kadaluarsa ditangani sebelum mencari peluang baru.
Setelah pengecekan penutupan posisi, strategi akan melakukan perdagangan langsung untuk memverifikasi peluang arbitrase yang dipilih. Verifikasi tersebut mencakup dua aspek:
Hitung selisih harga historis dengan memperoleh data grafik candlestick dari kedua bursa:
// 获取240根K线
const recordsLong = EX_Long.GetRecords(symbol, PERIOD_M1, 240);
const recordsShort = EX_Short.GetRecords(symbol, PERIOD_M1, 240);
// 计算价差
const spreads = [];
for (const time of commonTimes) {
const midPrice = (priceMapLong[time] + priceMapShort[time]) / 2;
const spread = (priceMapLong[time] - priceMapShort[time]) / midPrice;
spreads.push(spread);
}
// 统计指标
const avgSpread = 平均值(spreads);
const range = 最大值(spreads) - 最小值(spreads);
const stdDev = 标准差(spreads);
Indikator-indikator ini mencerminkan konsistensi pergerakan harga antara kedua bursa. Fluktuasi harga yang besar menunjukkan risiko yang lebih tinggi.
Dapatkan data pasar secara real-time dan hitung biaya transaksi:
const tickerLong = EX_Long.GetTicker(symbol);
const tickerShort = EX_Short.GetTicker(symbol);
// 买卖价差(反映深度)
const longSpread = (tickerLong.Sell - tickerLong.Buy) / tickerLong.Last;
const shortSpread = (tickerShort.Sell - tickerShort.Buy) / tickerShort.Last;
// 开仓成本(在Long所买入,Short所卖出)
const openCost = (tickerLong.Sell - tickerShort.Buy) / midPrice;
// 平仓成本(在Short所买入,Long所卖出)
const closeCost = (tickerShort.Sell - tickerLong.Buy) / midPrice;
// 往返总成本
const roundTripCost = openCost + closeCost;
Jika biaya membuka dan menutup posisi terlalu tinggi, hal itu akan mengurangi pendapatan biaya, dan peluang seperti itu tidak layak untuk dikejar.
Setelah verifikasi, jika tidak ada peluang arbitrase yang tersedia dalam data (dataJika objek tersebut kosong, proses langsung berakhir. Jika muncul peluang entri baru, fase evaluasi AI dimulai.
Peluang keberhasilan verifikasi akan diberikan kepada AI untuk evaluasi komprehensif. Kami menggunakan petunjuk yang dirancang dengan cermat untuk membuat AI berpikir seperti analis arbitrase profesional.
AI akan menganalisis beberapa dimensi:
Apakah pendapatan biaya dapat menutupi risiko fluktuasi selisih harga. Logika penilaian intinya adalah:
如果 rateSpread(每8小时收益)> range × 0.3
说明即使价差波动到极端情况,1-2个结算周期就能覆盖风险
Jika spread rata-rata negatif dan posisi long berada di bursa dengan harga lebih rendah, maka membuka posisi memungkinkan Anda untuk membeli dengan harga lebih murah, yang merupakan kondisi menguntungkan untuk membuka posisi.
Apakah volume perdagangan di kedua bursa mencukupi, dan apakah selisih harga beli dan jual (bid-ask spread) wajar? Jika volume perdagangan 24 jam di salah satu bursa kurang dari $100.000, atau selisih harga beli dan jual melebihi 0,3%, likuiditas mungkin tidak mencukupi.
Apakah biaya pembukaan dan penutupan posisi dapat ditutupi oleh pendapatan biaya dalam jangka waktu yang wajar?
如果 roundTripCost < rateSpread × 2
意味着 2 个结算周期(16小时)就能覆盖交易成本
AI akan memberi skor pada setiap peluang (0-100 poin) dan menentukan tingkat risikonya (rendah/sedang/tinggi). Hanya peluang yang memenuhi skor yang akan dieksekusi. Secara bersamaan, AI akan menyarankan jumlah entry yang sesuai berdasarkan tingkat risiko.
Output dari AI berupa array JSON, dengan setiap elemen berisi: apakah merekomendasikan untuk membuka posisi, peringkat, jumlah yang direkomendasikan, tingkat risiko, dan alasan keputusan tersebut.
Setelah penilaian AI berhasil dilewati, strategi akan mengeksekusi posisi pembukaan. Proses eksekusinya sangat ketat:
Hitung berapa banyak kontrak yang perlu dibuka berdasarkan jumlah pembukaan yang disarankan dan harga saat ini:
const currentPrice = getCurrentPrice(ex, symbol);
const contractAmount = amountUSD / currentPrice / ctVal;
di dalam ctValIni adalah nilai nominal kontrak, yang dapat bervariasi antara bursa yang berbeda.
Cobalah menetapkan target leverage (standar 10x), dan jika tidak didukung, kurangi secara bertahap:
const leveragesToTry = [10, 5, 3, 2, 1];
for (let lev of leveragesToTry) {
const result = ex.SetMarginLevel(symbol, lev);
if (result === true) {
return lev; // 设置成功
}
}
Setelah melakukan pemesanan, pesanan tidak langsung dianggap berhasil; Anda harus menunggu konfirmasi pesanan.
const orderId = ex.CreateOrder(symbol, 'buy', -1, contractAmount);
// 循环检查订单状态
for (let i = 0; i < 20; i++) {
const order = ex.GetOrder(orderId);
if (order.Status === ORDER_STATE_CLOSED) {
// 完全成交
break;
}
Sleep(500);
}
Meskipun pesanan tertera sebagai telah terpenuhi, Anda tetap perlu memeriksa kembali stok yang sebenarnya:
const position = getPosition(ex, symbol);
if (!position || Math.abs(position.Amount) === 0) {
// 订单成交但无持仓,开仓失败
return { success: false };
}
Jika hanya satu arah posisi yang berhasil dibuka (misalnya, posisi beli berhasil dibuka, tetapi posisi jual gagal), strategi akan secara otomatis menutup posisi yang dibuka:
if (!results.short.success && results.long.success) {
// 尝试平掉多仓
const pos = getPosition(longEx, longSymbol);
executeClose(longEx, longSymbol, true, pos.Amount, longExchange);
}
Hal ini menghindari paparan satu sisi dan memastikan sifat lindung nilai dari arbitrase.
Setelah posisi berhasil dibuka, strategi akan menyimpan informasi posisi arbitrase, termasuk waktu pembukaan, harga, dan kuantitas, untuk digunakan dalam pengecekan penutupan selanjutnya.
Selama eksekusi strategi, semua informasi ditampilkan secara real-time pada panel pemantauan, dibagi menjadi lima tabel: Ikhtisar Akun menampilkan saldo, jumlah yang dibekukan, total ekuitas, dan ringkasan total laba dan rugi untuk setiap bursa; Sinyal Arbitrase menyajikan peluang arbitrase yang saat ini terdeteksi, status eksekusi, dan alasan kegagalan; Detail Keputusan Pembukaan Posisi mencatat skor AI, tingkat risiko, dan dasar penilaian untuk setiap peluang; Posisi Arbitrase Real-time menampilkan portofolio arbitrase yang saat ini dipegang, laba dan rugi long/short, dan durasi kepemilikan; Statistik Keuntungan Arbitrase merangkum keuntungan dan pengembalian arbitrase untuk hari ini, minggu ini, bulan ini, dan secara kumulatif.

Panel-panel ini memungkinkan Anda untuk memantau status strategi secara real-time, termasuk kesehatan akun, peluang saat ini, dan semua informasi penting seperti laba dan rugi portofolio.
Terakhir, mari kita bahas risiko dan tindakan pencegahannya:
Meskipun arbitrase tingkat pendanaan merupakan strategi lindung nilai, strategi ini bukanlah tanpa risiko. Perbedaan harga antara dua bursa dapat berfluktuasi, dan jika fluktuasi tersebut melebihi keuntungan tingkat pendanaan, maka akan terjadi kerugian. Inilah mengapa strategi ini perlu memverifikasi stabilitas perbedaan harga tersebut.
Jika bursa memiliki likuiditas yang tidak mencukupi, selip harga saat membuka dan menutup posisi dapat signifikan. Misalnya, jika kedalaman buku pesanan tidak mencukupi, pesanan pasar Anda mungkin dieksekusi dengan harga yang sangat buruk, sehingga biaya sebenarnya untuk membuka posisi jauh lebih tinggi daripada yang diharapkan.
Secara khusus, beberapa DEX baru mungkin memiliki masalah dengan kerentanan kontrak atau kekurangan likuiditas. Ada kasus di mana pengguna kehilangan dana karena kerentanan kontrak pintar di DEX.
Strategi ini mengharuskan dana disimpan di beberapa bursa. Misalnya, jika Anda melakukan arbitrase di 3 bursa, dana akan tersebar di 3 tempat, sehingga menghasilkan pemanfaatan modal yang relatif rendah.
Saya sarankan Anda mencoba dengan sejumlah kecil uang terlebih dahulu.Setelah memahami logika kerja strategi ini, tingkatkan investasi Anda secara bertahap. Anda dapat memulai dengan melakukan arbitrase antara dua bursa utama untuk mengumpulkan pengalaman sebelum beralih ke bursa lain.
Hari ini, kami memperkenalkan strategi arbitrase tingkat pendanaan ini berdasarkan platform VarFunding. Strategi ini menerapkan proses lengkap mulai dari pengumpulan data, verifikasi stabilitas, evaluasi AI hingga eksekusi otomatis, dan menyediakan pemantauan visual yang jelas.
Ide inti dari strategi ini adalah:
Tentu saja, ini hanyalah kerangka dasar, dan masih banyak ruang untuk optimasi:
Kode lengkapnya telah dipublikasikan di Inventors Quantification Platform.Strategi arbitrase tingkat pendanaan alur kerjaKami mempersilakan siapa pun untuk menggunakan dan memperbaikinya.