7
Follow
359
Followers
متعدد ایکسچینجز میں اسپاٹ پرائس کے فرق کی ثالثی حکمت عملی کی منطق کا اشتراک کرنا
Created 2022-06-27 21:26:27 Updated 2024-12-02 21:35:44
4
10034
حکمت عملی کا اصول
لیکویڈیٹی وجوہات کی بناء پر، جب مارکیٹ میں بڑی مقدار میں فروخت یا کھنچاؤ ہوتا ہے، تو لامحالہ قیمتوں میں بڑا اتار چڑھاو ہوتا ہے، اور تبادلے کے درمیان قیمتوں میں ایک لمحاتی فرق ہوتا ہے اور حکمت عملی یہ ہے کہ ان لمحات کو پکڑنا اور تیزی سے لین دین کرنا کم خریدنے اور زیادہ فروخت کرنے کا عمل مکمل کریں۔
کچھ کلائنٹس نے مجھ سے پوچھا کہ میرے پاس اتنے زیادہ تبادلے کیوں ہیں جو ہم تبادلے کے درمیان فوری قیمت کا فرق ہے، کراس اوور کے بعد قیمتوں میں فرق کے اتنے ہی زیادہ مواقع ہوں گے۔
حکمت عملی کی بنیادی منطق
- بیک وقت متعدد ایکسچینجز کی مارکیٹ کی معلومات حاصل کرنا ضروری ہے۔ملٹی ایکسچینج کنکرنٹ پلگ ان
- کوٹیشن کی مشترکہ معلومات حاصل کرنے کے لیے تمام ایکسچینجز کی طلب اور بولی کو یکجا کریں، جہاں ہینڈلنگ فیس کو کم کرنے کے بعد RealPrice قیمت ہے۔
function createOrders(depths, askOrders, bidOrders) {
let asksIndex = 0;
let bidIndex = 0;
for (let i = 0; i < depths.length; i++) {
let exchangeTariff = getExchangeTariff(i);
let asks = depths[i].Asks;
let bids = depths[i].Bids;
for (let j = 0; j < Math.min(asks.length, bids.length, 20); j++) {
if (asks[j].Amount >= minTakerAmount) {
askOrders[asksIndex] = {
"Price": asks[j].Price,
"Amount": asks[j].Amount,
"Fee": asks[j].Price * exchangeTariff,
"RealPrice": asks[j].Price * (1 + exchangeTariff),
"Index": i,
};
asksIndex++;
}
if (bids[j].Amount >= minTakerAmount) {
bidOrders[bidIndex] = {
"Price": bids[j].Price,
"Amount": bids[j].Amount,
"Fee": bids[j].Price * exchangeTariff,
"RealPrice": bids[j].Price * (1 - exchangeTariff),
"Index": i,
};
bidIndex++;
}
}
}
askOrders.sort(function (a, b) {
return a.RealPrice - b.RealPrice;
});
bidOrders.sort(function (a, b) {
return b.RealPrice - a.RealPrice;
});
}
- مشترکہ مارکیٹ کی معلومات سے سب سے زیادہ منافع بخش ثالثی پھیلاؤ کا حساب لگائیں۔ چونکہ ہم آرڈر لے رہے ہیں، یعنی سب سے کم قیمت سے خرید رہے ہیں اور سب سے زیادہ بولی کی قیمت سے فروخت کر رہے ہیں، جب تک کہ بولی۔ ریئل پرائس > پوچھیں۔
function getArbitrageOrders(askOrders, bidOrders) {
let ret = [];
for (let i = 0; i < askOrders.length; i++) {
for (let j = 0; j < bidOrders.length; j++) {
let bidOrder = bidOrders[j];
let askOrder = askOrders[i];
if (bidOrder.Index === askOrder.Index) {
continue
}
let minMigrateDiffPrice = ((askOrder.Price + bidOrder.Price) / 2 * minMigrateDiffPricePercent / 100);
if (bidOrder.RealPrice - askOrder.RealPrice > minMigrateDiffPrice) {
ret.push({
"Ask": askOrder,
"Bid": bidOrder,
})
}
}
}
if (ret.length === 0) {
ret.push({
"Ask": askOrders[0],
"Bid": bidOrders[0],
});
}
//按最优价差排序
ret.sort((a, b) => {
return (b.Bid.RealPrice - b.Ask.RealPrice) - (a.Bid.RealPrice - a.Ask.RealPrice);
});
return ret;
}
- اب جب کہ ہم نے مارکیٹ میں ثالثی کے پھیلاؤ کی معلومات حاصل کر لی ہیں، ہم یہ کیسے طے کرتے ہیں کہ لین دین کو انجام دینا ہے اور کتنی تجارت کرنی ہے؟
- موجودہ باقی اثاثے
- اسپریڈ کا سائز (اگر اسپریڈ بہت چھوٹا ہے، تو یہ صرف کرنسی کی مقدار کو متوازن کرے گا، اور اگر اسپریڈ کافی بڑا ہے، تو یہ لین دین کی تعداد کو زیادہ سے زیادہ کرے گا)
- زیر التواء آرڈرز کی تعداد
var askOrder = arbitrageOrder.Ask;
var bidOrder = arbitrageOrder.Bid;
var perAmountFee = arbitrageOrder.Ask.Fee + arbitrageOrder.Bid.Fee;
var minRealDiffPrice = (askOrder.Price + bidOrder.Price) / 2 * minDiffPricePercent / 100;
var minMigrateDiffPrice = ((askOrder.Price + bidOrder.Price) / 2 * minMigrateDiffPricePercent / 100);
var curRealDiffPrice = arbitrageOrder.Bid.RealPrice - arbitrageOrder.Ask.RealPrice;
var buyExchange = exchanges[arbitrageOrder.Ask.Index];
var sellExchange = exchanges[arbitrageOrder.Bid.Index];
var buySellAmount = 0;
if (curRealDiffPrice > minRealDiffPrice) {
buySellAmount = math.min(
bidOrder.Amount,
askOrder.Amount,
maxTakerAmount,
runningInfo.Accounts[bidOrder.Index].CurStocks,
runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price
);
} else if (bidOrder.Index !== askOrder.Index) {
if (migrateCoinEx == -1) {
if (curRealDiffPrice > minMigrateDiffPrice && runningInfo.Accounts[bidOrder.Index].CurStocks - runningInfo.Accounts[askOrder.Index].CurStocks > maxAmountDeviation) {
buySellAmount = math.min(
bidOrder.Amount,
askOrder.Amount,
maxTakerAmount,
runningInfo.Accounts[bidOrder.Index].CurStocks,
runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price,
runningInfo.Accounts[bidOrder.Index].CurStocks - ((runningInfo.Accounts[bidOrder.Index].CurStocks + runningInfo.Accounts[askOrder.Index].CurStocks) / 2)
);
if (buySellAmount >= minTakerAmount) {
Log("启动交易所平衡!");
}
}
} else if (migrateCoinEx == askOrder.Index) {
if (curRealDiffPrice > minMigrateDiffPrice && runningInfo.Accounts[bidOrder.Index].CurStocks > 0) {
buySellAmount = math.min(
bidOrder.Amount,
askOrder.Amount,
maxTakerAmount,
runningInfo.Accounts[bidOrder.Index].CurStocks,
runningInfo.Accounts[askOrder.Index].CurBalance / askOrder.Price
);
if (buySellAmount >= minTakerAmount) {
Log("启动货币迁移:", exchanges[bidOrder.Index].GetName(), "-->", exchanges[askOrder.Index].GetName());
}
}
}
}
- آرڈر کی مقدار کا حساب لگانے کے بعد، حکمت عملی ایک ہی وقت میں آرڈر لینے اور آرڈر دینے کے لیے براہ راست پھسلن کو شامل کرنے کا طریقہ استعمال کرتی ہے۔
var buyWait = buyExchange.Go("Buy", _N(askOrder.Price * (1.01), pricePrecision), buySellAmount);
var sellWait = sellExchange.Go("Sell", _N(bidOrder.Price * (0.99), pricePrecision), buySellAmount);
var startWaitTime = new Date().getTime()
Sleep(3000);
var buyOrder = buyWait.wait()
var sellOrder = sellWait.wait()
- جو چیز باقی رہ جاتی ہے وہ ہے منافع کا حساب لگانے، ناکام آرڈرز کے لیے سٹاپ لاسز کو سنبھالنا وغیرہ۔
اس حکمت عملی کے حقیقی فوائد
موجودہ ریئل ٹائم ڈسپلے، بنیادی منطق میں کوئی تبدیلی نہیں، متعدد کرنسیوں کو سپورٹ کرنے کے لیے بہتر بنایا گیا
https://www.fmz.com/robot/464965
آخر میں، لاؤقیو کوانٹیٹیو ایکسچینج میں شامل ہونے میں خوش آمدید: https://t.me/laoqiu_arbitrage
Related Recommendations
Cryptocurrency spot hedging strategy design(2)An example of general protocol contract access on FMZMulti-Exchange Spot Spread Arbitrage Strategy Logic SharingVisualization module to build trading strategies - in-depthUse the KLineChart function to make strategy drawing design easierJavaScript strategy backtesting is debugged in DevTools of Chrome browserDetailed Explanation of Equilibrium & Grid StrategiesDesign a Multiple-Chart Plotting LibraryRSI2 Mean Reversion Strategy using in futuresThe futures and cryptocurrency API explanation
Comment
All comments (4)
- 1





