ТЗ
Задача: написать скрипт на эликсире, который подключится к бирже bittrex.com по websocket, будет брать данные и проверять записи на выполнение.
Это уже реализовано на руби, но работает плохо и постоянно отваливается.
У друга есть рабочий скрипт на эликсире и он мне скинул исходники: https://pastebin.com/YRgEvLP1
Можно использовать его наработки.
Алгоритм:
- Подключаемся к вебсокету.
- Получаем данные по последней цене монетки.
- Накапливаем данные за 5 минут, нам нужно нарисовать "свечу", в которой есть параметры high, low, open, close. Если цена за 5 минут была $100, потом выросла до $110, потом упала до $98, и на истечении была $101 - тогда параметры будут: high - 110, low - 98, open - 100, close - 101.
- По прошествии 5 минут делаем запросы в базу по переменным close, low, high:
TradeSignal.where(pair_id: pair.id, status: :pending).where("entry >= ?", close).update(status: :active)
TradeSignal.where(pair_id: pair.id, status: :active).where("stop >= ?", low).update(status: :stoploss)
TradeSignal.where(pair_id: pair.id, status: :active).where("target <= ?", high).update(status: :takeprofit)