
Trong bài viết trước, chúng tôi đã giới thiệu về hình thức kinh doanh chênh lệch giá chéo sàn. Lần này, chúng ta sẽ đi sâu vào cách áp dụng hiệu ứng Lead-Lag vào giao dịch tần suất cao, đòi hỏi phải nắm bắt được những chênh lệch giá nhỏ trong thời gian rất ngắn và kiếm lợi nhuận nhanh chóng. Hiệu ứng Lead-Lag cung cấp cho các nhà giao dịch thông tin dự đoán, giúp họ xác định xu hướng giá ngắn hạn và do đó đạt được sự chênh lệch giá giữa các sàn giao dịch khác nhau.
Sau đây làĐơn giản hóa mã công khaivà được chuyển đổi sang dựa trên API FMZ. Nguyên lý mã của chiến lược ban đầu này rất đơn giản và đã từng rất có lợi nhuận. Hiện tại không có sẵn và chỉ để tham khảo.
Cái gọi là “Lead-Lag” có thể hiểu là giá (hoặc một số chỉ số nhất định) của một số sàn giao dịch sẽ “dẫn đầu” hơn trong những thay đổi chung của thị trường, trong khi các sàn giao dịch khác hoặc các chỉ số khác sẽ tương đối “trễ” (Lag). . Trong chiến lược này, “Price_1, Price_2, Price_3” đại diện cho các điều kiện thị trường của các sàn giao dịch khác nhau. Chúng là các sàn giao dịch chính thống, nhạy cảm hơn với tin tức thị trường hoặc độ sâu giao dịch và loại người tham gia của họ. Khi có lệnh mua hoặc bán lớn, giá của những sàn giao dịch này sẽ dao động đầu tiên. Biến động giá của các sàn giao dịch thực tế sẽ chậm hơn một chút do các yếu tố như cơ chế khớp lệnh và nhóm giao dịch. Đến thời điểm này, tình trạng “một số nước dẫn đầu, một số nước tụt hậu” sẽ xuất hiện.
Chiến lược này thu thập dữ liệu sổ lệnh từ nhiều sàn giao dịch khác nhau gần như đồng bộ, chẳng hạn như giá thầu tốt nhất, giá chào bán tốt nhất, khối lượng lệnh đang chờ xử lý, v.v. Giá trung bình (tức là giá mua và giá bán trung bình) của các sàn giao dịch khác nhau sau đó được so sánh để suy ra động lực thị trường.
Chiến lược này chủ yếu tập trung vào sự thay đổi giá của ba sàn giao dịch bên ngoài (okex, binance, huobipro):
Tại đây, mỗi xu hướngX được xác định bởi sự khác biệt giữa “giá hiện tại” và “giá trước đây” vượt quá một ngưỡng nhất định (mức * mức tăng giá). Sau khi cộng các tín hiệu “lên/xuống” từ ba sàn giao dịch, nếu xu hướng chung > 0, điều đó có nghĩa là thị trường nói chung đang tăng và chiến lược là mua; nếu xu hướng < 0, điều đó có nghĩa là thị trường nói chung đang đang giảm và chiến lược là bán.
Chiến lược này chỉ mua hoặc bán sau khi xu hướng được xác nhận và hủy lệnh trước đó trước khi đặt mỗi lệnh (tức là để tránh các lệnh chờ vô tình dẫn đến tích tụ rủi ro). Đồng thời, tập lệnh cũng thiết lập các mô-đun như đòn bẩy, hoạt động hàng loạt và giám sát kiểm soát rủi ro, nghĩa là nhiều tài khoản và nhiều cặp tiền tệ được sử dụng trong giao dịch thực tế, do đó mở rộng “tần suất giao dịch” và “Hiệu quả của sử dụng vốn”.
Ngoài ra, chiến lược này là chiến lược có tần suất cao. Bạn không cần phải chú ý đến lợi nhuận hoặc thua lỗ của mỗi lệnh, cũng không cần phải dừng lỗ. Bạn có thể tiếp tục miễn là có khả năng thực hiện cao lợi nhuận.
// 超参设置
const SYMBOL = "BTC_USDT"; // 交易对
const PRICE_INCREMENT = 0.1; // 价格增量
const LEVEL = 10; // 趋势判断的灵敏度
const RATIO = 10; // 下单价格调整比例
const INTERVAL = 200; // 时间间隔(毫秒)
const S_AMOUNT = 0.02; // 默认交易量
const MIN_AMOUNT = 0.005; // 最小交易量
// 初始状态
let buyOrders = [];
let sellOrders = [];
let previousPrices = [0, 0, 0]; // 存储之前的价格
let loop = 0;
// 获取订单簿数据
function fetchOrderBooks() {
let orderBooks = [];
let tasks = [];
// 启动所有交易所的异步获取订单簿任务
for (let i = 0; i < exchanges.length; i++) {
// 假设每个交易所对象都可以调用Go方法
let task = exchanges[i].Go("GetDepth");
tasks.push({ index: i, task: task });
}
// 等待所有任务完成并收集结果
for (let i = 0; i < tasks.length; i++) {
let { index, task } = tasks[i];
try {
// 等待异步任务返回结果
let depth = task.wait(1000);
// 检查返回的数据是否有效
if (!depth || !depth.Bids || !depth.Asks) {
throw new Error("返回的订单簿数据无效");
}
// 将有效的订单簿数据添加到结果数组
orderBooks[index] = depth;
} catch (error) {
// 记录错误日志
Log(`获取交易所${index}订单簿失败: ${error.message}`);
// 添加默认的订单簿数据以避免崩溃
orderBooks[index] = {
Bids: [[0, 0]],
Asks: [[0, 0]]
};
}
}
return orderBooks;
}
// 判断趋势
function calculateTrend(orderBooks) {
let trends = [];
for (let i = 0; i < orderBooks.length; i++) {
const midPrice = (orderBooks[i].Bids[0][0] + orderBooks[i].Asks[0][0]) / 2;
if (midPrice > previousPrices[i] + LEVEL * PRICE_INCREMENT) {
trends.push(1); // 上升趋势
} else if (midPrice < previousPrices[i] - LEVEL * PRICE_INCREMENT) {
trends.push(-1); // 下降趋势
} else {
trends.push(0); // 无显著趋势
}
previousPrices[i] = midPrice; // 更新价格记录
}
return trends.reduce((a, b) => a + b, 0); // 返回总体趋势
}
// 取消所有挂单
function cancelOrders(orders) {
for (let orderId of orders) {
try {
exchanges[0].CancelOrder(orderId); // 默认使用主交易所
Log(`取消订单: ${orderId}`);
} catch (error) {
Log(`取消订单失败: ${error.message}`);
}
}
}
// 创建买单
function createBuyOrder(price, amount) {
try {
const orderId = exchanges[0].Buy(price, amount);
buyOrders.push(orderId);
Log(`创建买单: 价格 ${price}, 数量 ${amount}`);
} catch (error) {
Log(`创建买单失败: ${error.message}`);
}
}
// 创建卖单
function createSellOrder(price, amount) {
try {
const orderId = exchanges[0].Sell(price, amount);
sellOrders.push(orderId);
Log(`创建卖单: 价格 ${price}, 数量 ${amount}`);
} catch (error) {
Log(`创建卖单失败: ${error.message}`);
}
}
function main() {
while (true) {
try {
// 获取订单簿数据
const orderBooks = fetchOrderBooks();
// 计算趋势
const trend = calculateTrend(orderBooks);
Log(`当前趋势: ${trend}`);
// 取消挂单
cancelOrders(buyOrders);
cancelOrders(sellOrders);
buyOrders = [];
sellOrders = [];
// 根据趋势下单
if (trend > 0 && loop > 0) {
const price = _N(orderBooks[0].Bids[0][0] + RATIO * PRICE_INCREMENT, 2);
const amount = _N(Math.max(S_AMOUNT, MIN_AMOUNT), 4);
createBuyOrder(price, amount);
} else if (trend < 0 && loop > 0) {
const price = _N(orderBooks[0].Asks[0][0] - RATIO * PRICE_INCREMENT, 2);
const amount = _N(Math.max(S_AMOUNT, MIN_AMOUNT), 4);
createSellOrder(price, amount);
}
// 循环计数与间隔
loop++;
Sleep(INTERVAL);
} catch (error) {
Log(`主逻辑错误: ${error.message}`);
}
}
}
Thị trường trở nên hiệu quả
Khi ngày càng có nhiều chiến lược định lượng hoặc tần suất cao được áp dụng và khám phá ra mối quan hệ Dẫn đầu-Trễ, một lượng tiền lớn sẽ nhanh chóng loại bỏ sự chênh lệch giá. Khi thị trường ngày càng trở nên “đồng bộ”, các chiến lược tạo ra lợi nhuận “không rủi ro” hoặc chênh lệch giá ngắn hạn từ những chênh lệch giá nhỏ ngày càng trở nên khó khăn hơn.
Hạn chế trao đổi hoặc thay đổi phí
Khi cơ cấu phí của các sàn giao dịch khác nhau thay đổi, một khi chi phí phí vượt quá lợi nhuận từ chênh lệch giá, lợi nhuận của các chiến lược giao dịch tần suất cao sẽ giảm đáng kể. Mặt khác, nếu sàn giao dịch tăng tốc quá trình khớp lệnh, hạn chế tần suất và số lượng, đồng thời giảm độ trễ thì các chiến lược dựa vào độ trễ không nhất quán sẽ trở nên kém hiệu quả.
Thanh khoản suy giảm và trượt giá
Khi khối lượng thị trường không đủ, các chiến lược tần suất cao thường gặp phải tình trạng trượt giá nghiêm trọng hơn; hoặc các lệnh lớn sẽ nhanh chóng đẩy giá lên cao, khiến cho lệnh “mua thấp bán cao” ban đầu được kỳ vọng bị ảnh hưởng bởi chính các lệnh của chúng, dẫn đến lợi nhuận giảm. .
Biến động thị trường thay đổi
Một số chiến lược hoạt động rất tốt trong “biến động cao” hoặc “chu kỳ cụ thể”. Khi thị trường đi ngang hoặc biến động giảm và đòn bẩy giảm, chiến lược mất đi môi trường phù hợp và thậm chí có thể phải chịu lỗ thường xuyên.
Điểm mấu chốt của chiến lược giao dịch tần suất cao này nằm ở việc nắm bắt giá từ nhiều sàn giao dịch và phán đoán “tổng hợp xu hướng”. Nó đã từng triển khai một phương pháp giao dịch vào và ra nhanh, tần suất cực cao dựa trên nguyên tắc Dẫn-Trễ: quan sát giá của sàn giao dịch nào biến động trước, sau đó thúc đẩy giá của các sàn giao dịch khác theo sau, qua đó nắm bắt được sự khác biệt giá tức thời hoặc xu hướng ngắn hạn. . Tuy nhiên, như tác giả đã nói, những thay đổi trong môi trường thị trường, tính đồng nhất của chiến lược, phí và giới hạn tần suất đã khiến chiến lược dựa vào “động thái đầu tiên, động thái cuối cùng” này dần trở nên kém hiệu quả và thậm chí mất đi lợi nhuận. Đối với những người muốn khám phá loại chiến lược Lead-Lag này, họ cần tối ưu hóa mô-đun giao dịch kết hợp với cấu trúc thị trường mới nhất (thanh khoản, quy tắc phí, tốc độ khớp lệnh của thuật toán) và chú ý đến quản lý kiểm soát rủi ro để tồn tại trong môi trường thị trường luôn thay đổi. Duy trì khả năng cạnh tranh liên tục.