Баг в скринерах на Бинансе

Баг в скринерах на Бинансе

  1. Robin&Bobin

    Регистрация:
    28.02.19
    Сообщения:
    22
    Был на сайте:
    22.09.23

    Созрел испытать новый фунционал - скринеров. Написал своего скринера для бинанс фьючерс - использовал внутри скринера две вкладки - дневки и 1 минута. Пока инструментов было меньше 60 - проблем не было, все работало как задумано. Все данные идут с двух таймфреймов и я их могу удобно обрабатывать и торговать.

    Как только перешел отметку 60 - оса отказалась стартовать - сервер не переходит в состояние коннект и ничего не загружается. Проблема в двух вкладках в одном скринере - если убираю одну - грузит все отлично - все 146 фьючей. Если ставлю в один скринер дневки, а в другой минутки - тоже в итоге грузит 2*146, но это занимает 7 минут, однако работает.

    Но в рамках одного скринера и двух вкладок с разными таймфреймами больше 60 не тянет. Возможно где-то внутри таймаут срабатывает на загрузку и сервер не успевает перейти в активное состояние.

    Я конечно могу сделать расчеты в одном скринере на дневках и подсунуть их другому минутному, чтобы торговал, но это выглядит кривовато. Прошу помощи - возможно мелочь какая-то, а я искать буду очень долго.

    Ведь скринеры и задумывались для работы над огромным числом инструментов в рамках одного бота, а получается кривовато.

    Оса последняя с гита - 1.7.4.4.

    Robin&Bobin
    05.05.2022 01:17
    #1
  2. Robin&Bobin

    Регистрация:
    28.02.19
    Сообщения:
    22
    Был на сайте:
    22.09.23

    Отвечаю сам себе - т.к. премодерация заняла больше недели я сам нашел решение, однако хотел бы обрать внимание Алексея - он решить этот вопрос элегантней, т.к. я не программист.

    Проблема решается так - надо создать и подключить сервер к бирже до момента загрузки вкладок скринера. Я просто добавил в бот таб скринер вот такую строку:

            public void TryLoadTabs()
            {
                          
                if (ServerMaster.ActiveServersTypes.Count==0)
                {
                    return;
                }
                if (ServerMaster.GetServers().Find(x => x.ServerType == ServerType.BinanceFutures).ServerStatus ==    Market.Servers.ServerConnectStatus.Disconnect)
                {
                    return;
                }

    А автомат подключения к бирже реализован в виде стандартного Engine бота с подпиской на биток например - оса при старте видит этого бота - подключает сервер. Далее бот на основе скринера видит подключенный сервер и загружает все свои вкладки - проверено - грузиться все отлично, много вкладок в одном боте > 160, разные таймфреймы на разных вкладках скринера работают нормально.

    Сама идея скринера отличная, нагрузка на систему при таком подходе падает в разы - и по памяти и по процессору. Спасибо за ваши труды!

    Robin&Bobin
    13.05.2022 23:42
    #2
  3. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1172
    Был на сайте:
    20.04.24
    Цитата: Robin&Bobin

    Отвечаю сам себе - т.к. премодерация заняла больше недели я сам нашел решение, однако хотел бы обрать внимание Алексея - он решить этот вопрос элегантней, т.к. я не программист.

    Проблема решается так - надо создать и подключить сервер к бирже до момента загрузки вкладок скринера. Я просто добавил в бот таб скринер вот такую строку:

            public void TryLoadTabs()
            {
                          
                if (ServerMaster.ActiveServersTypes.Count==0)
                {
                    return;
                }
                if (ServerMaster.GetServers().Find(x => x.ServerType == ServerType.BinanceFutures).ServerStatus ==    Market.Servers.ServerConnectStatus.Disconnect)
                {
                    return;
                }

    А автомат подключения к бирже реализован в виде стандартного Engine бота с подпиской на биток например - оса при старте видит этого бота - подключает сервер. Далее бот на основе скринера видит подключенный сервер и загружает все свои вкладки - проверено - грузиться все отлично, много вкладок в одном боте > 160, разные таймфреймы на разных вкладках скринера работают нормально.

    Сама идея скринера отличная, нагрузка на систему при таком подходе падает в разы - и по памяти и по процессору. Спасибо за ваши труды!

    Хороший костыль. Добавил в общую сборку

    Алексей Ван
    25.05.2022 10:12
    #3