পূর্ববর্তী নিবন্ধে, আমরা ক্রস-এক্সচেঞ্জের জন্য লিড-ল্যাগ সুইচ সম্পর্কে আলোচনা করেছি। এবার আমরা গভীরভাবে আলোচনা করব কিভাবে লিড-ল্যাগ ইফেক্টকে উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ের ক্ষেত্রে প্রয়োগ করা যায়, যেখানে উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ের জন্য খুব অল্প সময়ের মধ্যে ক্ষুদ্রতম দামের পার্থক্যগুলি ক্যাপচার করা এবং দ্রুত মুনাফা অর্জন করা প্রয়োজন। লিড-ল্যাগ ইফেক্ট ব্যবসায়ীদের ভবিষ্যদ্বাণীমূলক তথ্য সরবরাহ করে, যা তাদের বিভিন্ন এক্সচেঞ্জের মধ্যে মূল্যের স্বল্পমেয়াদী গতি নির্ধারণে সহায়তা করে, যার ফলে সুইচ অর্জন করা যায়।
নীচে একটি জবাব দেওয়া হয়েছেউন্মুক্ত কোডের সরলীকরণএই নীতির কোডিং সহজ, এবং খুব লাভজনক ছিল, এবং বর্তমানে কেবলমাত্র রেফারেন্সের জন্য উপলব্ধ নয়।
লিড-ল্যাগ (Lead-Lag) বলতে বোঝা যায় যে কিছু এক্সচেঞ্জের দাম (বা কিছু সূচক) সামগ্রিক বাজারের পরিবর্তনে আরও বেশি লিড (Lead) হয়, যখন অন্য এক্সচেঞ্জ বা অন্যান্য সূচকগুলি তুলনামূলকভাবে লেগ (Lag) হয়। এই কৌশলটিতে, লিড মূল্য (১), লিড মূল্য (২) এবং লিড মূল্য (৩) পৃথকভাবে বিভিন্ন এক্সচেঞ্জের আচরণকে প্রতিনিধিত্ব করে। এগুলি মূলধারার এক্সচেঞ্জ, যা বাজারের সংবাদে আরও সংবেদনশীল হওয়ার কারণে বা তাদের লেনদেনের গভীরতা অংশীদারদের মধ্যে ভিন্ন, যখন বড় পরিমাণে অর্ডার বা বিক্রয় আদেশ থাকে, তখন এই এক্সচেঞ্জগুলির দামগুলি প্রথম পদক্ষেপের জন্য ওঠানামা করে। প্রকৃত ট্রেডিংয়ের জন্য, ট্রেডিংয়ের মেশিন, ট্রেডিং গ্রুপের কারণগুলি, ইত্যাদির কারণে, দামের তরঙ্গগুলি কিছুটা লেগ হয়ে যায়। এই সময়ে একটি প্রকারের লিড (Lead), একটি প্রকারের লেগ (Leg) অবস্থা দেখা দেয়।
কৌশলটি প্রায় একই সময়ে বিভিন্ন এক্সচেঞ্জের অর্ডার বুকের তথ্য যেমন কিনুন, বিক্রি করুন, অর্ডার পরিমাণ ইত্যাদি সংগ্রহ করে; তারপর বিভিন্ন এক্সচেঞ্জের মধ্যবর্তী মূল্যের সাথে তুলনা করে (অর্থাৎ কিনুন, বিক্রি করুন) যা বাজারের গতিবিধি অনুমান করে।
এই কৌশলটি মূলত তিনটি বাইনারি এক্সচেঞ্জের (ওকেএক্স, বিন্যান্স, হুবিপ্রো) মূল্য পরিবর্তনের উপর দৃষ্টি নিবদ্ধ করেঃ
এখানে, প্রতিটি ট্রেন্ড এক্স নির্ধারিত হয় বর্তমান মূল্যবৃদ্ধি এবং পূর্ববর্তী মূল্যবৃদ্ধি একটি নির্দিষ্ট স্তরের (level * price_increment) অতিক্রম করে। তিনটি এক্সচেঞ্জ থেকে প্রাপ্ত উর্ধ্বগামী / নিম্নগামী প্রবৃদ্ধি সংকেত যোগ করার পরে, যদি সামগ্রিক প্রবণতা > 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}`);
}
}
}
বাজারের কার্যকারিতা
যখন ক্রমবর্ধমান পরিমাণ বা উচ্চ-ফ্রিকোয়েন্সি কৌশলগুলি জড়িত হয় এবং একই লিড-ল্যাগ সম্পর্কটি খুঁজে পায়, তখন প্রচুর তহবিল দ্রুত এই দামের পার্থক্যটি মেটাতে পারে।
এক্সচেঞ্জের সীমাবদ্ধতা বা ফি পরিবর্তন
বিভিন্ন এক্সচেঞ্জের ফি কাঠামোর পরিবর্তনের সাথে সাথে, যখন প্রক্রিয়া খরচ সুইচ উপার্জনের চেয়ে বেশি হয়, তখন উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং কৌশলগুলির লাভজনকতা ব্যাপকভাবে হ্রাস পায়; অথবা এক্সচেঞ্জগুলি দ্রুততর গতিতে, ফ্রিকোয়েন্সি সীমাবদ্ধতা, কম বিলম্বিততা, এবং অসম্পূর্ণ বিলম্বের উপর নির্ভরশীল কৌশলগুলি ব্যর্থ করে।
নমনীয়তা হ্রাস এবং স্লাইড পয়েন্ট
যখন বাজার কম লেনদেন করে, তখন উচ্চ-ফ্রিকোয়েন্সি কৌশলটি প্রায়শই আরও গুরুতর স্লিপিংয়ের মুখোমুখি হয়; অথবা বড় আদেশগুলি দ্রুত দামকে ত্বরান্বিত করে, যার ফলে প্রত্যাশিত উচ্চতর আদেশগুলি হ্রাস পায় এবং তাদের নিজস্ব আদেশগুলি প্রভাবিত হয়, আয় হ্রাস পায়।
বাজারের উদ্বায়ী পরিবেশ পরিবর্তন
কিছু কৌশল উচ্চতর ওঠানামা বা নির্দিষ্ট চক্রের জন্য বিশেষভাবে কার্যকর হয়, যখন বাজারটি সমতল বা অস্থিরতা হ্রাস পায়, লিভারেজ হ্রাস পায়, কৌশলটি উপযুক্ত পরিবেশ হারাতে পারে, এমনকি ঘন ঘন ক্ষতি হতে পারে।
এই হাইফ্রিকোয়েন্সি ট্রেডিং কৌশলটির মূল বিষয় হল মাল্টি-এক্সচেঞ্জের দামের ধরন এবং প্রবণতা সমন্বয় করা। এটি লিড-ল্যাগ নীতির উপর ভিত্তি করে একটি অতি-উচ্চ-প্রবণতা, দ্রুত-ইনগ্রিড ট্রেডিং পদ্ধতি বাস্তবায়ন করেছেঃ কোন এক্সচেঞ্জের দাম প্রথমে দেখুন এবং তারপরে অন্যান্য এক্সচেঞ্জের দাম অনুসরণ করুন, তাত্ক্ষণিক পার্থক্য বা স্বল্পমেয়াদী প্রবণতা ক্যাপচার করুন। যাইহোক, লেখক বলেছেন যে, বাজারের পরিবেশ, কৌশল সমতুল্যতা, পদ্ধতির ফি এবং ফ্রিকোয়েন্সি সীমাবদ্ধতার পরিবর্তনের উপর নির্ভর করে, এই কৌশলটি ধীরে ধীরে এত ভাল হয়ে যায় না, এমনকি লাভজনকতা হারাতে পারে। যারা এই ধরনের লিড-ল্যাগ কৌশলগুলি পুনরায় খনি করতে চান তাদের জন্য সর্বশেষতম কাঠামোগুলির সমন্বয় প্রয়োজন (বাজার গতিশীলতা, পদ্ধতির ফি, অ্যালগরিয়াম ফটোগ্রাফ) ট্রেডিং মডিউলগুলিকে অপ্টিমাইজ করার জন্য, পাশাপাশি বাজারে প্রতিযোগিতামূলক