Die Ressourcen sind geladen. Beförderung...

Einführung der Lead-Lag-Suite in der Kryptowährung (3)

Schriftsteller:Das Gras, Erstellt: 2024-12-24 15:43:36, Aktualisiert: 2024-12-26 12:14:45

img

In einem früheren Artikel haben wir die Vorteile von Lead-Lag-Trading auf verschiedenen Börsen erläutert. Diesmal werden wir eingehend untersuchen, wie wir den Lead-Lag-Effekt auf Hochfrequenz-Trading anwenden können, bei dem hohe Frequenzen kleine Preisdifferenzen in kürzester Zeit erfassen und schnell profitieren müssen. Der Lead-Lag-Effekt bietet Tradern vorausschauende Informationen, die ihnen helfen, kurzfristige Kursbewegungen zu bestimmen und somit zwischen verschiedenen Börsen zu leisten.

Hier ist die Antwort:Vereinfachung von Open SourceDas Programm wurde in den letzten Jahren in den USA entwickelt und in die FMZ-API umgewandelt.


Das Prinzip der Lead-Lag-Hochfrequenzstrategie

Die sogenannte "Lead-Lag"-Schwelle kann verstanden werden, wenn die Preise einiger Börsen (oder bestimmter Indikatoren) in den allgemeinen Marktveränderungen stärker vorangehen (Lead), während andere Börsen oder andere Indikatoren relativ zurückbleiben (Lag). In dieser Strategie repräsentieren die "Lead-Price", "Lead-Price" und "Lead-Price" die Verhaltensweisen verschiedener Börsen, die Mainstream-Börsen sind, die aufgrund ihrer größeren Sensibilität für Marktnachrichten oder der Unterschiede in der Tiefe ihrer Handelspartner, wenn es einen großen Kauf- oder Verkaufsauftrag gibt, die Preise dieser Börsen einen Schritt voraus schwanken.

Die Auftragsbücher von mehreren Börsen wurden beschlagnahmt

Die Strategie bezieht sich nahezu gleichzeitig auf Bestellbuchdaten von verschiedenen Börsen, wie zum Beispiel Kaufpreis, Verkaufspreis, Aufschlag, etc.; dann wird der mittlere Preis (d. h. der Durchschnitt der Kauf- und Verkaufspreise) der verschiedenen Börsen verglichen, um die Marktdynamik abzuleiten.

Trendsignalentscheidung

Die Strategie konzentriert sich vor allem auf die Preisänderungen an drei externen Börsen (okex, binance, huobipro):

Jeder Trend X wird hier durch die Differenz zwischen der aktuellen und der vergangenen Kurssteigerung über einen bestimmten Threshold bestimmt. Wenn die Anstiegs-/Abstiegssignale aus den drei Börsen addiert werden, wird die Strategie gekauft, wenn der Gesamttrend > 0 ist; wenn der Trend < 0, dann wird die Strategie verkauft.

Einbahnfahrt und Windsteuerung

Die Strategie kauft oder verkauft nur, wenn der Trend bestätigt wurde, und annulliert die vorherigen Aufträge vor jedem Auftrag (d. h. um zu vermeiden, dass unerwartete Aufschlüsse zu einem Anstieg des Risikos führen). Gleichzeitig werden Module wie Hebel, Massenbetrieb, Windkontrolle und Überwachung in dem Skript festgelegt, um zu zeigen, dass in der Praxis mehrere Konten und mehrere Währungspaare gleichzeitig ausgeführt werden, wodurch die Handelsfrequenz der Strategie erhöht wird.

Die Strategie ist auch eine High-Frequency-Strategie, bei der man nicht auf jeden Gewinn oder Verlust jedes Auftrags achten muss, und man kann fortfahren, solange die Wahrscheinlichkeit von Gewinn besteht.


Umsetzung der FMZ-Strategie

Einstellung der Parameter

// 超参设置
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;

Kernlogik: Daten und Urteilstrends

// 获取订单簿数据
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); // 返回总体趋势
}

Bestellungen und Stornierungen

// 取消所有挂单
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}`);
    }
}

Strategische Logik

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}`);
        }
    }
}

Analyse der Gründe für die Strategieversagen

Die Märkte werden effektiv

Wenn mehr und mehr Quantitative oder Hochfrequenzstrategien eintreten und die gleiche Lead-Lag-Beziehung feststellen, werden große Mittel diese Preisdifferenz schnell ausmachen. Der Markt wird zunehmend synchronisiert und es ist schwierig, Strategien aus kleinen Preisdifferenzen ohne Risiko- oder kurzfristige Präferenzen zu gewinnen.

Änderungen der Börsenbeschränkungen oder der Bearbeitungsgebühren

Wenn sich die Prozedurengebühren an den verschiedenen Börsen ändern und die Prozedurenkosten über den Gewinn hinausgehen, wird die Profitabilität der Hochfrequenz-Handelsstrategien stark reduziert. Oder die Börse beschleunigt die Aufnahme, begrenzt die Frequenz und reduziert die Verzögerung.

Verringerte Mobilität und Gleitpunkte

Wenn der Markt nicht ausreichend verkauft ist, gerät die Hochfrequenzstrategie oft in einen schwereren Schlupfloch; oder die großen Bestellungen treiben die Preise schnell voran, was dazu führt, dass die erwarteten Hoherkäufe und Verkaufsrückgänge von den eigenen Hoherkäufen beeinflusst werden und die Erträge sinken.

Marktfluktuation verändert sich

Einige Strategien eignen sich sehr gut für hohe Schwankungen oder für spezifische Schwankungszyklen, wenn der Markt glatt oder schwankend ist und die Hebelung gesenkt wird, verlieren sie das geeignete Umfeld und können sogar häufig verlieren.


Zusammenfassung

Der Schlüsselpunkt dieser Hochfrequenz-Handelsstrategie liegt in der Erfassung von Preisen an mehreren Börsen und der Synthese von Trend- und Kursurteilen. Sie basierte auf dem Lead-Lag-Prinzip. Sie realisierte eine hochfrequente, schnell ausgehende Handelsmethode, bei der man beobachtet, welcher Preis an welcher Börse zuerst eintritt, und dann die Preise anderer Börsen anführt, um so einen Momentansprung oder kurzfristigen Trend zu erfassen.


Mehr