Kravcov 4 Posted December 20, 2019 Добрый день. Использую 5.34 версию скрипта. Подскажите, пожалуйста, где я могу получить данные о последней сматченной сумме (см. на рисунке)? В marketbook есть только lastPriceTraded. Очень нужен этот параметр. Заранее спасибо. Quote Share this post Link to post Share on other sites
Admin 90 Posted December 20, 2019 6 hours ago, Kravcov said: Добрый день. Использую 5.34 версию скрипта. Подскажите, пожалуйста, где я могу получить данные о последней сматченной сумме (см. на рисунке)? В marketbook есть только lastPriceTraded. Очень нужен этот параметр. Заранее спасибо. Это расчетный параметр, через API не передается. Посмотрел в 34 версии его нет. В новой 39 есть Last - последняя цена Value - значение, объем 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 20, 2019 Чуть позже покажу как сделать скрипт и перейти на 5.39 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 20, 2019 Спасибо большое, с нетерпением жду)) С Наступающим Вас Рождеством и Новым Годом! 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 22, 2019 Установил 5.39 версию. Есть пару вопросов. 1. Отсутствуют звуковые эффекты (в настройках они вкл.) 2. В окне "Не принятые ставки" видно только 3 ставки (4-той ставки не видно), полоса прокрутки появляется только после 5 ставки, но и она не отображает всех ставок. (см. на рис.) 3. В этих же окнах нет возможности включить скрипт, потому что в версии 5.39 скрипта класс MarketScript не наследуется (в Botbeetle.Types нет класса MarketSkript). По этому остается и предыдущий вопрос в первом сообщении темы. 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 22, 2019 1. Звук заработал. Может надо было перегрузить прогу. 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 22, 2019 1 hour ago, Kravcov said: Установил 5.39 версию. Есть пару вопросов. 2. В окне "Не принятые ставки" видно только 3 ставки (4-той ставки не видно), полоса прокрутки появляется только после 5 ставки, но и она не отображает всех ставок. (см. на рис.) 3. В этих же окнах нет возможности включить скрипт, потому что в версии 5.39 скрипта класс MarketScript не наследуется (в Botbeetle.Types нет класса MarketSkript). По этому остается и предыдущий вопрос в первом сообщении темы. Пункт 2 проверю, ошибка критическая, обновление в ближайшие дни, спасибо за сообщение. По 3 - MarketScript больше не будет эти классы предусматривал для работы в окне, но это, как потом стало понятно, бессмысленно для автоматизации круглосуточной работы, пользователь должен открывать окно сам. Рекомендация унаследовать текший скрипт от EventScript и подключать его к окну расписания. Quote Share this post Link to post Share on other sites
Admin 90 Posted December 22, 2019 Отображение ставок поправил, все типы ставок текущие (1), не принятые (2) и принятые (3) отображаются с прокруткой 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 22, 2019 Удалите текущую версию и скачайте снова версию 5.39 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 23, 2019 3 hours ago, Admin said: Удалите текущую версию и скачайте снова версию 5.39 Спасибо, работает! Я вот уже целый день ломаю голову с этим EventScript, весь wiki пересмотрел но так и не нашел ничего. Можете вкратце объяснить об свойствах и методах этого класса. Quote Share this post Link to post Share on other sites
Admin 90 Posted December 23, 2019 Если кратко: Главные базовые классы - это классы бетфайр, и в них есть все переменные описанные в API документации бетфайр. Для удобства в них добавлен ряд переменных. 1. Event он содержит MarketCatalogue (MatchOdds), а также список MarketCatalogues в котором будут рынки если список будет раскрыт в ручную или командой Api.Expand(Event) . 2. MarketCatalogue содержит список RunnerCatalog, у этих классов можно использовать такие переменные как: IsLive - рынок перешел в игру IsGreen - рынок не выровнен IsOrders - есть ордера IsMatched - есть принятые ордера IsUnMatched - есть не принятые ордера IsExluded - сейчас не используется IsChanged - эта переменная отвечает за перерисовку в окне при изменениях данных 3. RunnerCatalog переменные: List<Order> Orders - список всех ордеров List<Order> UnmatchedOrders - список не принятых ордеров List<Match> Matches - список принятых ставок Back - последняя цена back Lay - последняя цена lay CurrentResult - возможный результат MatchedResult - принятый результат 3. Api.Green(RunnerCatalog) - выравнивает линию, по текущим ценам 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 23, 2019 Как только появится время, сделаю описание. И самая большая проблема в том что нет обратной связи по скриптам. Я не знаю что кому нужно (какие функции какие переменные). Все что сейчас сделано, сделано для самого себя ?. После создания активных графиков, есть много идей по сохранению истории и тестированию скриптов по истории, поиску стратегий и параметров к ним. 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 23, 2019 Спасибо Вам за Ваш труд! Вы действительно очень много сделали и потратили кучу времени на это, я понимаю. Мне нужно получить список все цен и сумм. Но в MarketCatalouge только одна наилучшая. Как можно получить список List< MarketBook > listMarketBook ( List<String>marketIds , PriceProjection priceProjection, OrderProjection orderProjection, MatchProjection matchProjection, boolean includeOverallPosition, boolean partitionMatchedByStrategyRef, Set<String> customerStrategyRefs, StringcurrencyCode,Stringlocale, Date matchedSince, Set<BetId> betIds) Quote Share this post Link to post Share on other sites
Admin 90 Posted December 23, 2019 Без проблем, в следующем обновлении добавлю в класс MarketCatalouge переменную MarketBook - это и будет последние полученные данные MarketBook. Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 25, 2019 Всех с Рождеством!!! Помогите, пожалуйста со скриптом на футбол. Есть заранее выставленные ставки на тоталах. Нужно: 1. Выбрать и отобразить только те рынки (тоталы) где размещены непринятые ставки (на одном татале может быть несколько ставок). 2. Проверить, если ставка непринятая - continue. 3. Если принятая часть ставки - рассчитать green только на ту часть (при том чтоб не было уравнения по всему рынку так как могут быть и другие непринятые ставки в этом же рынке) 4. Если принятая вся ставка - выравниваем только ее, остальные так же не трогаем. Quote Share this post Link to post Share on other sites
Admin 90 Posted December 27, 2019 1. Чтобы показать тоталы, их нужно открыть. Для открытия можно использовать функцию Api.Expand(Event) - откроет все тоталы. или более экономно, только те что нужно, например: Api.Expand(liveEvent, new List<MarketTypeEnum> { MarketTypeEnum.OVER_UNDER_05,MarketTypeEnum.OVER_UNDER_15,MarketTypeEnum.OVER_UNDER_25, }); 2. Есть ли ордера на открытом, можно определить по переменной IsOrders 3. Если ордеров нет и событие не нужно его можно закрыть Api.Collapse(Event) для экономии времени обновления (Чем меньше открыто рынков в окне - тем быстрее каждый из них получает информацию) 4. Api.Green(RunnerCatalog) - команда выравнивания - закрывает только принятый объем (даже если это несколько принятых частично) по текущей цене, не принятые ставки в расчете не участвуют. 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 27, 2019 Для того чтобы уравнивание было доступно при наличии не принятых ставок, нужно включить опцию (1) - "Всегда отображать уравнивание" 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 28, 2019 On 12/23/2019 at 10:41 PM, Kravcov said: Мне нужно получить список все цен и сумм. Но в MarketCatalouge только одна наилучшая. Как можно получить список List< MarketBook > listMarketBook ( List<String>marketIds , PriceProjection priceProjection, OrderProjection orderProjection, MatchProjection matchProjection, boolean includeOverallPosition, boolean partitionMatchedByStrategyRef, Set<String> customerStrategyRefs, StringcurrencyCode,Stringlocale, Date matchedSince, Set<BetId> betIds) В 5.40 в класс MarketCatalouge добавлен класс MarketBook 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 28, 2019 On 12/27/2019 at 3:02 PM, Admin said: 3. Если ордеров нет и событие не нужно его можно закрыть Api.Collapse(Event) для экономии времени обновления (Чем меньше открыто рынков в окне - тем быстрее каждый из них получает информацию) Можно ли как то в общем окне расписаний оставить лишь те события в которых на рынка тоталах есть непринятые ставки? Quote Share this post Link to post Share on other sites
Admin 90 Posted December 28, 2019 Сейчас технически нет, чтобы понять если там ставки нужно вделать запрос по рынку. 1 Quote Share this post Link to post Share on other sites
Admin 90 Posted December 28, 2019 Хотя идея хорошая, те рынки которые не нужны можно удалять. В следующем обновлении сделаю что-то типа Api.Delete(Event) - удалить событие Api.Delete(MarketCatalouge) - удалить рынок 1 1 Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 28, 2019 Тогда отметить как то это события (event) чтоб при следующим обновлении уже не раскрывать его. Quote Share this post Link to post Share on other sites
Admin 90 Posted December 28, 2019 On 12/23/2019 at 12:13 PM, Admin said: IsExluded - сейчас не используется Можно этой переменной задать значение и исключить не нужное событие Quote Share this post Link to post Share on other sites
Kravcov 4 Posted December 29, 2019 On 12/27/2019 at 3:02 PM, Admin said: 2. Есть ли ордера на открытом, можно определить по переменной IsOrders Почему то скрипт не видит ордеров после Api.Expand(event) Quote Share this post Link to post Share on other sites
Admin 90 Posted December 29, 2019 По этому коду не видно где проверяется переменная IsOrders. Она должна проверяться непосредственно в MarketCatalouge в каждом рынке отдельно. Quote Share this post Link to post Share on other sites