Add Binance exchange support

- Updated the environment configuration to include Binance as a selectable exchange option.
- Enhanced the README documentation to reflect the addition of Binance.
- Implemented the Binance exchange adapter and integrated it into the existing exchange framework.
- Modified the basis arbitrage strategy to support Binance alongside existing exchanges.
- Added tests to ensure proper functionality and integration of Binance within the trading system.
This commit is contained in:
discountry
2026-02-27 11:21:47 +08:00
parent 227484152d
commit 4205d5dc12
18 changed files with 2143 additions and 17 deletions
+10 -1
View File
@@ -71,6 +71,13 @@ describe("BasisArbEngine", () => {
time: 2_000,
}),
};
const futuresClient = {
getPremiumIndex: vi.fn().mockResolvedValue({
fundingRate: "0.0001",
nextFundingTime: 3_600_000,
time: 2_000,
}),
};
const engine = new BasisArbEngine(
{
@@ -79,10 +86,12 @@ describe("BasisArbEngine", () => {
refreshIntervalMs: 1_000,
maxLogEntries: 10,
takerFeeRate: 0.0004,
arbAmount: 1,
},
adapter,
{
spotClient,
futuresClient,
now: () => 1_000,
}
);
@@ -111,7 +120,7 @@ describe("BasisArbEngine", () => {
const expectedNet = 1.04 * (1 - effectiveFee) - 1.05 * (1 + effectiveFee);
expect(snapshot.netSpread).toBeCloseTo(expectedNet, 6);
expect(snapshot.netSpreadBps).toBeCloseTo((expectedNet / 1.05) * 10_000, 6);
expect(snapshot.feedStatus).toEqual({ futures: true, spot: true });
expect(snapshot.feedStatus).toEqual({ futures: true, spot: true, funding: true });
expect(snapshot.opportunity).toBe(expectedNet >= 0);
engine.stop();