پچھلے مضمون میں ہم نے کراس ایکسچینج میں لیڈ لیگ سودے کا تعارف کرایا تھا۔ اس بار ہم گہرائی سے دیکھیں گے کہ کس طرح لیڈ لیگ اثر کو ہائی فریکوئنسی ٹریڈنگ پر لاگو کیا جاسکتا ہے ، جہاں ہائی فریکوئنسی ٹریڈنگ میں بہت کم وقت میں معمولی قیمتوں میں فرق کو پکڑنے اور تیزی سے منافع کمانے کی ضرورت ہوتی ہے۔ لیڈ لیگ اثر تاجروں کو پیش گوئی کی معلومات فراہم کرتا ہے جو انہیں قیمتوں کی مختصر مدت کی حرکت کا اندازہ کرنے میں مدد کرتا ہے ، جس سے مختلف تبادلے کے درمیان سودے کا احساس ہوتا ہے۔
ذیل میں صحیح ہے:اوپن کوڈ کو آسان بنانااس کی بنیادی حکمت عملی کا کوڈ اصول بہت آسان ہے ، اور یہ ایک بار بہت منافع بخش تھا ، اور یہ فی الحال دستیاب نہیں ہے ، صرف حوالہ کے لئے ہے۔
لیڈ-لاگ (Lead-Lag) کے طور پر جانا جاتا ہے، یہ سمجھا جا سکتا ہے کہ بعض تبادلے کی قیمتیں (یا کچھ اشارے) مجموعی مارکیٹ میں تبدیلیوں میں زیادہ تیزی سے آگے بڑھیں گی (Lead) جبکہ دیگر تبادلے یا دیگر اشارے نسبتاً دیر سے پیچھے رہ جائیں گے۔ اس حکمت عملی میں، لیڈ قیمتیں، قیمتیں، قیمتیں، یا قیمتیں، مختلف تبادلے کے رجحانات کی نمائندگی کرتی ہیں، وہ اہم تبادلے ہیں، کیونکہ وہ مارکیٹ کی خبروں کے بارے میں زیادہ حساس ہیں، یا ان کے ٹریڈنگ کی گہرائی کے شرکاء مختلف ہیں، جب بڑی مقدار میں خریدنے یا فروخت کے احکامات ہوتے ہیں تو ان تبادلے کی قیمتوں میں پہلے سے ایک قدم بڑھتا ہے.
یہ حکمت عملی تقریباً بیک وقت مختلف تبادلے کی آرڈر لسٹ کے اعداد و شمار حاصل کرتی ہے، جیسے خرید، فروخت، آرڈر کی مقدار وغیرہ۔ پھر مختلف تبادلے کی درمیانی قیمتوں (یعنی خرید و فروخت کی اوسط) کا موازنہ کیا جاتا ہے تاکہ مارکیٹ کی حرکیات کا اندازہ لگایا جا سکے۔
یہ حکمت عملی بنیادی طور پر تین بیرونی تبادلے (okex، binance، huobipro) کی قیمتوں میں ہونے والی تبدیلیوں پر مرکوز ہے۔
یہاں ہر ٹرینڈ ایکس کا تعین ٹرینڈ کی موجودہ قیمت میں اضافے اور ٹرینڈ کی ماضی کی قیمت میں اضافے کے درمیان فرق سے ہوتا ہے۔ تینوں ایکسچینجز سے حاصل ہونے والے اضافے / کمی کے سگنل کو جمع کرنے کے بعد ، اگر مجموعی طور پر ٹرینڈ > 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}`);
}
}
}
مارکیٹیں موثر ہو گئیں
جب زیادہ سے زیادہ مقدار یا اعلی تعدد کی حکمت عملی شامل ہوتی ہے اور اسی لیڈ - لاگ تعلقات کو تلاش کرتی ہے تو ، بڑے پیمانے پر فنڈز اس قیمت کے فرق کو تیزی سے ختم کردیتے ہیں۔ جب مارکیٹ زیادہ سے زیادہ متضاد ہوجاتی ہے تو ، حکمت عملیوں کے لئے چھوٹی چھوٹی قیمتوں کے فرق سے خطرہ مول لینے یا مختصر مدت کے سودے کے بغیر فائدہ اٹھانا مشکل ہوجاتا ہے۔
تبادلے کی حدود یا فیسوں میں تبدیلی
مختلف تبادلے کی فیسوں کے ڈھانچے میں تبدیلی کے ساتھ ، جب آپریشنل لاگت سودے کی آمدنی سے زیادہ ہوجاتی ہے تو ، اعلی تعدد ٹریڈنگ کی حکمت عملی کی منافع بخش صلاحیت میں بہت زیادہ کمی واقع ہوتی ہے۔ یا تبادلے کی رفتار کو تیز کرنے ، تعدد کی حد کو محدود کرنے ، تاخیر کو کم کرنے ، یا متضاد تاخیر پر انحصار کرنے والی حکمت عملی کو ناکام بناتے ہیں۔
نقل و حرکت میں کمی اور سلائڈ پوائنٹس
جب مارکیٹ میں ٹرانزیکشن کی کمی ہوتی ہے تو ، اعلی تعدد کی حکمت عملی کو اکثر زیادہ سنگین سلائڈ پوائنٹس کا سامنا کرنا پڑتا ہے۔ یا بڑے آرڈر تیزی سے قیمتوں کو آگے بڑھاتے ہیں ، جس کی وجہ سے توقع کی گئی اونچی اونچائی کو کم خریدنے اور فروخت کرنے کے بجائے اپنے ہی حصوں پر اثر پڑتا ہے ، جس سے آمدنی میں کمی واقع ہوتی ہے۔
مارکیٹ میں اتار چڑھاؤ کا ماحول بدل رہا ہے
کچھ حکمت عملیاں بہت زیادہ اتار چڑھاؤ والی کرنسیوں یا مخصوص دورانیے کی کرنسیوں میں بہت اچھی طرح سے کام کرتی ہیں ، جب مارکیٹ ہموار یا اتار چڑھاؤ کی شرح میں کمی آتی ہے ، لیوریج کم ہوجاتی ہے ، تو حکمت عملی مناسب ماحول کھو دیتی ہے ، اور یہاں تک کہ کثرت سے نقصان بھی پہنچ سکتی ہے۔
اس ہائی فریکوئینسی ٹریڈنگ کی حکمت عملی کا بنیادی نقطہ یہ ہے کہ اس میں متعدد تبادلے کی قیمتوں کو پکڑنے اور رجحانات کو سنبھالنے کے بارے میں فیصلہ کیا جاتا ہے۔ اس نے لیڈ لیگ اصول پر مبنی ایک انتہائی اعلی تعدد ، فوری ان پٹ ٹریڈنگ کا طریقہ کار کو نافذ کیا ہے: کسی تبادلے کی قیمت کو پہلے دیکھنا ، پھر دوسرے تبادلے کی قیمتوں کو اس کے بعد آنے کے لئے آگے بڑھانا ، تاکہ فوری فرق یا مختصر مدت کے رجحانات کو پکڑ سکے۔ تاہم ، جیسا کہ مصنف نے کہا ، مارکیٹ کے ماحول ، حکمت عملی کی یکساں کاری ، طریقہ کار کی فیسوں اور تعدد کی تبدیلیوں پر انحصار کرنے والی یہ حکمت عملی آہستہ آہستہ اتنا اچھا نہیں بنتی ہے ، اور یہاں تک کہ منافع بخش ہونے کی صلاحیت کو بھی کھو دیتی ہے۔ ان لوگوں کے لئے جو اس طرح کی لیڈ لیگ حکمت عملی سے دوبارہ فائدہ اٹھانا چاہتے ہیں ، جدید ترین ڈھانچے کو جوڑنے کی ضرورت ہوتی ہے (سرمایہ کاری ، طریقہ کار کے قواعد ، حساب کتاب کی رفتار) ٹریڈنگ ماڈیول کو بہتر بنانے کے ساتھ ساتھ ساتھ ساتھ ہی مارکیٹ