unidao / MarsDAO

MarsDAO source
3 stars 1 forks source link

Identifying Arbitrage opportunities among DEX's #4

Open leomorozovskii opened 4 years ago

leomorozovskii commented 4 years ago

Creating a Script to identify arbitrage opportunities among DEXes.

leomorozovskii commented 4 years ago

ENG

Task: DEX's to Compare: Uniswap to Kyberswap,Oasis.app, Radar Relay

Parameters:

Definitions: Two side trading deal is the comparison between buy order price and sell order price for a particular pair of assets with Volume not less than minimum

Algorithm: 1) Not less often than setted update time collect data of two side trading deal on each pair of DEX's 2) After each update of trading orders compare each pair with Uniswap DEX to other DEX's 3) If the spread between buy price and sell price is positive it's an arbitrage opportunity 4) Collect all data in the form of a table with <date/time>, pair, DEX name, DEX name, Buy order price, Sell order Price, deal volume

Execution Code with instruction to set up and run

RUS

Задача сделать скрипт определяющий наличие арбитражных возможностей между разными DEX. • Сравнивать нужно ( это начальный список) Uniswap к площадкам Kyberswap, Oasis.app, Radar Relay

Параметры: • Список DEX • Список торговых пар (возможна на разных DEX будут разные названия для одинаковых пар, нужно будет соответствие) • Минимальный объем (возможно нужно будет сделать отдельно для каждой пары) • Минимальный процент перекрытия котировок для срабатывания • Максимальный период обновления котировок (если для конкретной DEX есть возможность сделать обновления по событиям то так и надо сделать, иначе опрашивать раз в период)

Определения: Двухсторонняя котировка это цены на покупку и продажу по которым можно совершить сделку покупки/продажи по соответствующей паре в объеме не меньше минимального.
Алгоритм

  1. Не реже чем раз в период обновления собирать двухсторонние котировки по всем парам на всех DEX
  2. После каждого обновления котировок проводить сравнения для каждой пары цены покупки на одной DEX с ценой продажи на всех остальных(сравнить все со всеми).
  3. Если цена покупки больше цены продажи на минимальный процент то это арбитражная возможность
  4. Сохранять в файл все арбитражные возможности в формате дата/время, пара, DEX покупки, DEX продажи, цена покупки, цена продажи, Объем сделки

Реализация Исходный код с инструкцией по настройке и запуску

pythonpete32 commented 4 years ago

Alot of the work on this has been done by humming bot. Its OSS and can serve as the basis for what mars DAO requires. New connectors will be needed for kyber and Uniswap. There is no budget assigned to this task nor is it clear how (if at all) you want this to interact with the DAO

leomorozovskii commented 4 years ago

We'll attach a budget to this task soon. It's just for identifying an opportunity for arbitrage at this point between Dexes

Humming bot is clearly doing it between Dexes and Cexes

The final product should be an Agent of MarsDAO connected to the bot, that tracks Arbitrage between mostly Uniswap and other Dexes to execute a risk free trade taking into account frontrunning opportunities and gas costs