ffeast / hacktrade

Nano-framework for HFT-robots development.
41 stars 8 forks source link

Определение цены сделки #1

Open ffeast opened 5 years ago

ffeast commented 5 years ago

Необходимо как-то вытаскивать цену исполнения ордера. Кроме того, может быть несколько цен исполнения, надо уметь вытаскивать их все Помимо полного списка цен исполнения и объемов можно выдавать средневзвешенную цену исполнения

spvik commented 5 years ago

Автор данного фреймоврка выпустил вторую версию, которая имеет много изменений, где многие вопросы уже решены, советую посмотреть https://github.com/BetterQuik/framework

ffeast commented 5 years ago

Я видел, часть вещей я перенесу оттуда - как минимум, багфиксы и MarketData через подписку, а ряд изменений я не понял - например, зачем он убрал Indicator, какое отношение к либе имеет json-парсер (если надо - его можно отдельно подключать). При этом SmartOrder без изменений.

Вообщем эта версия исходно проще для понимая идей автора и покрытия автотестами + для моих нужд хватает, поэтому я от нее отпачковался

spvik commented 5 years ago

У SmartOrder вашей версии есть одна проблема, если исполнения ордера на бирже происходит в одно время с исполнением, не всегда приходит результат о выставление ордера и тем самым теряется id сделки, и SmartOrder списывает прошлую попытку на ошибку и выставляет новую заявку, но в новом фреймворке это исправлено, и в моем форке проверено на реале все четко работает, можно развивать старую версию, но смарт ордер и все коллбеки нужно либо перенести с новой либо исправлять ,на горьком опыте все пройдено!!! )))

ffeast commented 5 years ago

Интересный кейс. Это вот для этого в новой версии order определяется до вызова транзакции? вот тут https://github.com/BetterQuik/framework/blob/master/src/engine.lua#L534 а было https://github.com/spvik/hacktrade/blob/develop/hacktrade.lua#L293

ffeast commented 5 years ago

Вообщем перенес этот fix и закрыл тестом https://github.com/ffeast/hacktrade/blob/develop/tests.lua#L84

spvik commented 5 years ago

Еще посмотри коллбак OnOrder там есть расчет позиции и определение цены открытой сделки, и в SmartOrder есть методы для получение цены открытой сделки SmartOrder:price_balance(market_price), тоже добавь к себе

ffeast commented 5 years ago

Видел это, заберу - пока более важные задачи есть