技术图文:数字资产量化中的三角套利策略
背景
我們?cè)谇懊娴膱D文中介紹了一種跨市場(chǎng)的套利策略:
- 數(shù)字資產(chǎn)量化中的跨市場(chǎng)套利策略
該策略俗稱(chēng)搬磚,只要兩個(gè)交易所對(duì)于同一種數(shù)字資產(chǎn)出現(xiàn)價(jià)差,就可以進(jìn)行套利。
三角套利就是利用三種數(shù)字資產(chǎn)之間的價(jià)格差來(lái)獲利。
三角套利的過(guò)程就是規(guī)劃三角路徑的過(guò)程,三角路徑無(wú)外乎兩種:
- 第一種:買(mǎi)入 -> 賣(mài)出 -> 賣(mài)出
- 第二種:賣(mài)出 -> 買(mǎi)入 -> 買(mǎi)入
比如 BigOne 交易所有 ONE-USDT、ONE-EOS、EOS-USDT 交易對(duì)。
如果你手中擁有 USDT,可以通過(guò)第一種路徑進(jìn)行套利。即用 A 數(shù)量的 USDT 買(mǎi)入 ONE,然后把買(mǎi)入的 ONE 換成 EOS,最后賣(mài)出EOS 換回 USDT。在刨除手續(xù)費(fèi)之后,如果最后換回的 USDT 數(shù)量超過(guò) A,我們就可以依賴(lài)這個(gè)路徑進(jìn)行套利。
如果你手中擁有 ONE,可以通過(guò)第二種路徑進(jìn)行套利。即賣(mài)出 A 數(shù)量的 ONE 得到 USDT,然后用該 USDT 買(mǎi)入 EOS,最后用這些 EOS 換回 ONE。 在刨除手續(xù)費(fèi)之后,如果最后換回的 ONE 數(shù)量超過(guò) A,我們就可以依賴(lài)這個(gè)路徑進(jìn)行套利。
詳細(xì)的流程圖如下:
技術(shù)分析
以先買(mǎi)入后賣(mài)出的方式構(gòu)造三角套利的路徑:
假設(shè):USDT 起始數(shù)量為 A,交易手續(xù)費(fèi)為:0.1%
Step1:USDT -> ONE
以Q1的價(jià)格買(mǎi)入ONE。
- OneAmount = A ÷ Q1
- RealOneAmount = OneAmount × 0.999
Step2:ONE -> EOS
以 Q2 的價(jià)格賣(mài)出 ONE 得到 EOS
- EOSAmount = RealOneAmount × Q2
- RealEOSAmount = EosAmount × 0.999
Step3:EOS -> USDT
以 Q3 的價(jià)格賣(mài)出 EOS 得到 USDT
- UsdtAmount = RealEOSAmount × Q3
- RealUsdtAmount = UsdtAmount × 0.999
如果想獲得盈利,則需要 RealUsdtAmount > A 即可。
經(jīng)過(guò)簡(jiǎn)單的推導(dǎo),我們可以發(fā)現(xiàn)該三角套利路徑的盈利條件是:
(Q2 × Q3 × 0.999^3) ÷ Q1 > 1.0
以先賣(mài)出后買(mǎi)入的方式構(gòu)造三角套利的路徑:
假設(shè):ONE 起始數(shù)量為 A,交易手續(xù)費(fèi)為:0.1%
Step1:ONE -> USDT
以 P1 的價(jià)格賣(mài)出 ONE。
- UsdtAmount = A × P1
- RealUsdtAmount = UsdtAmount × 0.999
Step2:USDT -> EOS
以 P2 的價(jià)格買(mǎi)入 EOS。
- EosAmount = RealUsdtAmount ÷ P2
- RealEosAmount = EosAmount × 0.999
Step3:EOS -> ONE
以 P3 的價(jià)格買(mǎi)入 ONE
- OneAmount = RealEosAmount ÷ P3
- RealOneAmount = OneAmount × 0.999
如果想獲得盈利,則需要 RealOneAmount > A 即可。
經(jīng)過(guò)簡(jiǎn)單的推導(dǎo),我們可以發(fā)現(xiàn)該三角套利路徑的盈利條件是:
(P1 × 0.999^3) ÷ (P2 × P3) > 1.0
代碼實(shí)現(xiàn)
檢驗(yàn)是否具有套利機(jī)會(huì)
static double TestBuySellSell(double q1, double q2, double q3) {return q2 * q3 * Math.Pow(0.999, 3) / q1; }運(yùn)行先買(mǎi)入后賣(mài)出的套利模型
static void RunBuySellSell(double q1, double q2, double q3, double a) {double usdt = a;double oneAmount = 1.0*usdt/q1;double realOneAmount = oneAmount*0.999;double eosAmount = realOneAmount*q2;double realEosAmount = eosAmount*0.9999;double usdtAmount = realEosAmount*q3;double realUsdtAmount = usdtAmount*0.999;//用USDT換入ONEList<Order> orderOneUsdt = new List<Order>{new Order(q1, oneAmount),};_bigOneUtility.CreateBidOrders(orderOneUsdt, "ONE-USDT");//用ONE換入EOSList<Order> orderOneEos = new List<Order>{new Order(q2, realOneAmount),};//用EOS換入U(xiǎn)SDT_bigOneUtility.CreateAskOrders(orderOneEos, "ONE-EOS");List<Order> orderEosUsdt = new List<Order>{new Order(q3, realEosAmount),};_bigOneUtility.CreateAskOrders(orderEosUsdt, "EOS-USDT"); }檢驗(yàn)是否具有獲利機(jī)會(huì)
static double TestSellBuyBuy(double p1,double p2,double p3) {return p1*Math.Pow(0.999, 3)/(p2*p3); }運(yùn)行先賣(mài)出后買(mǎi)入的套利模型
static void RunSellBuyBuy(double p1, double p2, double p3, double a) {double one = a;double usdtAmount = one*p1;double realUsdtAmount = usdtAmount*0.999;double eosAmount = 1.0*realUsdtAmount/p2;double realEosAmount = eosAmount*0.999;double oneAmount = 1.0*realEosAmount/p3;double realOneAmount = oneAmount*0.999;//用One 換入U(xiǎn)SDTList<Order> orderOneUsdt = new List<Order>{new Order(p1, one),};_bigOneUtility.CreateAskOrders(orderOneUsdt, "ONE-USDT");//用USDT 換入EosList<Order> orderUsdtEos = new List<Order>{new Order(p2, eosAmount),};_bigOneUtility.CreateBidOrders(orderUsdtEos, "EOS-USDT");//用Eos 換入OneList<Order> orderEosOne = new List<Order>{new Order(p3, oneAmount),};_bigOneUtility.CreateBidOrders(orderEosOne, "ONE-EOS"); }總結(jié)
到此為止,有關(guān)于三角套利的模型以及具體實(shí)現(xiàn)就介紹完了。
由于市場(chǎng)中做市商的存在,這樣的套利機(jī)會(huì)雖然很多,但轉(zhuǎn)瞬即逝。通過(guò)手工掛單的方式已經(jīng)很難滿足速度要求了。如果要用該種方式套利,需要寫(xiě)程序讓計(jì)算機(jī)來(lái)執(zhí)行。我上面的代碼大家可以作為參考啊。今天就到這里吧!See You!
相關(guān)圖文:
- 如何利用 C# 實(shí)現(xiàn) K 最鄰近算法?
- 如何利用 C# 實(shí)現(xiàn) K-D Tree 結(jié)構(gòu)?
- 如何利用 C# + KDTree 實(shí)現(xiàn) K 最鄰近算法?
- 如何利用 C# 對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行抽象?
- 如何利用 C# 實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的感知器模型?
- 如何利用 C# 實(shí)現(xiàn) Delta 學(xué)習(xí)規(guī)則?
- 如何利用 C# 爬取帶 Token 驗(yàn)證的網(wǎng)站數(shù)據(jù)?
- 如何利用 C# 向 Access 數(shù)據(jù)庫(kù)插入大量數(shù)據(jù)?
- 如何利用 C# 開(kāi)發(fā)「桌面版百度翻譯」軟件!
- 如何利用 C# 開(kāi)發(fā)「股票數(shù)據(jù)分析軟件」(上)
- 如何利用 C# 開(kāi)發(fā)「股票數(shù)據(jù)分析軟件」(中)
- 如何利用 C# 開(kāi)發(fā)「股票數(shù)據(jù)分析軟件」(下)
- 如何利用 C# 爬取「財(cái)報(bào)說(shuō)」中的股票數(shù)據(jù)?
- 如何利用 C# 爬取 One 持有者返利數(shù)據(jù)!
- 如何利用 C# 爬取Gate.io交易所的公告!
- 如何利用 C# 爬取BigOne交易所的公告!
- 如何利用 C# 爬取 ONE 的交易數(shù)據(jù)?
- 如何利用 C# 爬取「貓眼電影:熱映口碑榜」及對(duì)應(yīng)影片信息!
- 如何利用 C# 爬取「貓眼電影專(zhuān)業(yè)版:票房」數(shù)據(jù)!
- 如何利用 C# 爬取「貓眼電影:最受期待榜」及對(duì)應(yīng)影片信息!
- 如何利用 C# 爬取「貓眼電影:國(guó)內(nèi)票房榜」及對(duì)應(yīng)影片信息!
- 如何利用 C# + Python 破解貓眼電影的反爬蟲(chóng)機(jī)制?
- 如何進(jìn)行代碼的重構(gòu)?以封裝 BigOne API 為例
- 如何利用BigOne的API制作自動(dòng)化交易系統(tǒng) – 身份驗(yàn)證
- 如何利用BigOne的API制作自動(dòng)化交易系統(tǒng) – 獲取賬戶(hù)資產(chǎn)
- 如何利用BigOne的API制作自動(dòng)化交易系統(tǒng) – 訂單系統(tǒng)
總結(jié)
以上是生活随笔為你收集整理的技术图文:数字资产量化中的三角套利策略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (含源码)利用NVIDIA VPI之透视
- 下一篇: 点击div外区域隐藏div操作(嵌套if