Баг в скринерах на Бинансе
Созрел испытать новый фунционал - скринеров. Написал своего скринера для бинанс фьючерс - использовал внутри скринера две вкладки - дневки и 1 минута. Пока инструментов было меньше 60 - проблем не было, все работало как задумано. Все данные идут с двух таймфреймов и я их могу удобно обрабатывать и торговать.
Как только перешел отметку 60 - оса отказалась стартовать - сервер не переходит в состояние коннект и ничего не загружается. Проблема в двух вкладках в одном скринере - если убираю одну - грузит все отлично - все 146 фьючей. Если ставлю в один скринер дневки, а в другой минутки - тоже в итоге грузит 2*146, но это занимает 7 минут, однако работает.
Но в рамках одного скринера и двух вкладок с разными таймфреймами больше 60 не тянет. Возможно где-то внутри таймаут срабатывает на загрузку и сервер не успевает перейти в активное состояние.
Я конечно могу сделать расчеты в одном скринере на дневках и подсунуть их другому минутному, чтобы торговал, но это выглядит кривовато. Прошу помощи - возможно мелочь какая-то, а я искать буду очень долго.
Ведь скринеры и задумывались для работы над огромным числом инструментов в рамках одного бота, а получается кривовато.
Оса последняя с гита - 1.7.4.4.
Отвечаю сам себе - т.к. премодерация заняла больше недели я сам нашел решение, однако хотел бы обрать внимание Алексея - он решить этот вопрос элегантней, т.к. я не программист.
Проблема решается так - надо создать и подключить сервер к бирже до момента загрузки вкладок скринера. Я просто добавил в бот таб скринер вот такую строку:
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
Отвечаю сам себе - т.к. премодерация заняла больше недели я сам нашел решение, однако хотел бы обрать внимание Алексея - он решить этот вопрос элегантней, т.к. я не программист.
Проблема решается так - надо создать и подключить сервер к бирже до момента загрузки вкладок скринера. Я просто добавил в бот таб скринер вот такую строку:
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, разные таймфреймы на разных вкладках скринера работают нормально.
Сама идея скринера отличная, нагрузка на систему при таком подходе падает в разы - и по памяти и по процессору. Спасибо за ваши труды!
Хороший костыль. Добавил в общую сборку
ООО «ВАН ТЕХНОЛОГИИ»т: +7 953 769 56 45
* Торговля на финансовых рынках связана с риском, который лежит на Вас.
* Ничто из написанного на сайте o-s-a.net не является рекомендацией.
* Если Вы этого не понимаете, не читайте этот сайт, ничего не покупайте.