前回の記事では,取引所の間での利回りを紹介しました. 今回は,利回りの効果を高周波取引に適用する方法について詳しく説明します. 高周波取引は,非常に短時間で微小な価格差を捕獲し,迅速に利益を得る必要があります. 利回りの効果は,取引者に予測情報を提供し,異なる取引所の間での価格の短期動向を判断し,利回りを実現するのに役立ちます.
これは正しい公開コードの簡素化この戦略のコード原理はシンプルで,以前は非常に儲けていたが,現在利用できない. 参照のみである.
戦略は,ほぼ同時に,異なる取引所からの注文簿データ,例えば,買取価格,売出価格,注文量等を入手し,また,異なる取引所の中間価格 (すなわち,買取価格の平均値) を比較して市場動向を推論する.
この戦略は3つの外部取引所 (okex,binance,huobipro) の価格変動に重点を置いています.
ここでは,それぞれのトレンドXは,トレンドの現在の価格上昇とトレンドの過去価格上昇の差が一定値 (level * price_increment) を超えていることから決定される. 3つの取引所からの上昇/下落のトレンド信号を足すと,全体的なトレンド > 0であれば,戦略は買い,トレンド < 0ならば,市場全体的なトレンドを意味する,戦略は売る.
戦略は,傾向が確認された後にのみ購入または売却する.また,各注文の前に以前の注文をキャンセルする (すなわち,意外な預金によるリスク蓄積を避ける).同時に,脚本には,レバレッジ加算,大量運用,風力制御モニタリングなどのモジュールが設定されており,実際の実況では複数のアカウント,多通貨ペアが同時に実行されるため,戦略の
また,この戦略は高周波戦略であり,各注文の利益損失を考慮せず,停止損失を考慮せず,利益の可能性が高い限り継続する.
// 超参设置
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}`);
}
}
}
市場が有効になった
より多くの量化や高周波戦略が関与し,同じリード・ラグ関係が発見されると,大量資金がこの格差を迅速に抹消する.市場がますます不協和的になり,戦略は小さな格差からリスク回避利率や短期利率を得ることが難しくなります.
取引所の制限や手数料の変更
異なる取引所の手数料構造が変化すると,手数料が利息利得を超えると,高周波取引戦略の収益性は大きく低下する.または,取引所の撮影速度を加速,周波数制限,遅延を削減することで,遅延不一致を頼る戦略が失敗する.
流動性の低下と滑り点
市場の取引量が不足すると,高周波戦略はより深刻な滑り点に遭遇する傾向がある.または,大きな注文が迅速に価格を押し上げ,予想されていた低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格の低価格が
市場変動環境の変化
ある戦略は,高波動の
この高周波取引戦略の鍵は,複数の取引所の価格を把握し,