Перепрыгнеть в содержание


* * * * * 5 голосов

Требуется бот


294 ответов в эту тему

#201 OFFLINE   proger

    Специалист


  • RSB
  • ПипПипПип
  • 193 сообщения
49

Добавлено 25 February 2013 - 07:28

Sub ProfitAndLoss(ByVal marketId As Integer)
  Print(vbCrLf & "*** Market P&L ***")
  Dim MPLreq As New BFUK.GetMarketProfitAndLossReq
  Dim MPLresp As BFUK.GetMarketProfitAndLossResp
  With MPLreq	 'Set up the request
    .header = oHeaderUK
    .marketID = MarketOfInterest
  End With
  MPLresp = BetfairUK.getMarketProfitAndLoss(MPLreq)    'Call the API
  With MPLresp    The response
    CheckHeader(.header)
    Print(.errorCode.ToString)
    If .errorCode = BFUK.GetMarketProfitAndLossErrorEnum.OK Then    'Process the response
	  For i = 0 To UBound(.annotations)
	    With .annotations(i)		 'Print the list of runner P&Ls
		  Print(.selectionId & " " & .selectionName & " " & .ifWin)
	    End With
	  Next
    End If
  End With
End Sub

forum.bdp.betfair.com/showthread.php?p=2201&highlight=profit+loss#post2201

Отредактировано koni, 25 February 2013 - 07:28.


#202 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 25 February 2013 - 13:01

Сообщенияmaxspace, on 24 February 2013 - 23:48, сказал:

народ, подскажите кто-нибудь пользуется функцией Betfair API Get Market Profit And Loss?

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

Кони опередил))) но я еще кину свой кусок на С#

	    public BFExchange.GetMarketProfitAndLossResp GetMarketProfitAndLoss(int m_MarketID)
	    {
		    string session = SessionTokenManager.GetSessionToken();
		    if (session == null)
		    {
			    session = MakeSession();
		    }
		    GetMarketProfitAndLossReq req = new GetMarketProfitAndLossReq();
		    GetMarketProfitAndLossResp m_resp = new GetMarketProfitAndLossResp();
		    req.header = new BFExchange.APIRequestHeader();
		    req.header.sessionToken = session;
		    req.marketID = m_MarketID;
		    GetMarketProfitAndLossResp resp = BFExchange.getMarketProfitAndLoss(req);
		    Log.WriteLog("getMarketProfitAndLoss: " + resp.errorCode.ToString());
		    if (resp.errorCode == GetMarketProfitAndLossErrorEnum.OK)
		    {
			    m_resp = resp;
		    }
		    return m_resp;
	    }

ненужное удалишь.
Кстати хороший выбор метода для ,быстрого получения selectionName 60 зарп/мин, чем getMarket 5 запр/мин

#203 OFFLINE   chipseto

    Пунтер


  • Участник
  • ПипПип
  • 35 сообщения
12

Добавлено 25 February 2013 - 15:10

А зачем получать selectionName 60 раз в минуту? Разве они где-то меняются?

#204 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 25 February 2013 - 16:00

Сообщенияchipseto, on 25 February 2013 - 15:10, сказал:

А зачем получать selectionName 60 раз в минуту? Разве они где-то меняются?
Конечно не меняются
Вот наглядный пример: если привязываться к id строки в методе getCompleteMarketPricesCompressed или getMarketPricesCompressed попадались 2 раза ошибки (с чем это связано явно с человеческим фактором) что id не соответствует ожидаемому исходу типа 0-0, 0-1, 1-0.
Это все вытикает в убытки если не контролировать постоянно (об автомате можно и забыть). После этого сделал привязку к selectionName. Представь у тебя в рабочем списке 60 событий где в каждом мониторятся минимум 5 маркетов. Необходимо один раз проставить selectionName. Методом getMarket это займет очень много времени хоть и разово.
Дело принципа люблю что бы работало как часы и быстро по возможности, а возможность позволяет.

Отредактировано AlexX, 25 February 2013 - 16:04.


#205 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 25 February 2013 - 16:21

Сообщенияchipseto, on 25 February 2013 - 15:10, сказал:

А зачем получать selectionName 60 раз в минуту? Разве они где-то меняются?

На моем примере выше: методом getMarket ты будешь ждать 60 минут, а при getMarketProfitAndLoss 5 минут. Разница существенная. Но это все относительно... Смотря для чего использовать возможно Вас и устроит getMarket.

Отредактировано AlexX, 25 February 2013 - 16:22.


#206 OFFLINE   maxspace

    Пунтер


  • Участник II
  • ПипПип
  • 72 сообщения
11
  • МестоположениеРБ Гомель

Добавлено 26 February 2013 - 21:06

Спасибо koni и AlexX за примеры. У меня данная функция постоянно возвращает INVALID_MARKET, вот мой пример:
public void GetProfitAndLoss(ref Job PLJob)
	    {
		    GetMarketProfitAndLossReq UKReq = new GetMarketProfitAndLossReq();
		    UKReq.header = new APIRequestHeader();
		    UKReq.header.sessionToken = _Token;
		    UKReq.marketID = PLJob.MarketId;
		    UKReq.includeBspBets = false;
		    GetMarketProfitAndLossResp Resp = _UKClient.getMarketProfitAndLoss(UKReq);
		    _Token = Resp.header.sessionToken;
		    if (Resp.errorCode == GetMarketProfitAndLossErrorEnum.OK)
		    {
			    for (int i = 0; i < Resp.annotations.Length; i++)
			    {
				    if (Resp.annotations[i].selectionId == PLJob.MarketInfo.Runners[PLJob.FavoriteId].Id)
				    {
					    PLJob.PaL = Resp.annotations[i].ifWin;
				    }
				    else
				    {
					    PLJob.PaL = Resp.annotations[i].selectionId;
				    }
			    }
		    }
		    else
		    {
			    PLJob.PaL = UKReq.marketID;
		    }
		    return;

подскажите, пожалуйста, какие еще могут быть причины данного ответа, помимо тех что описаны в мануале Betfair API

уже пробовал получить результаты через функцию GetBetHistory, там ответ - NO_RESULT

#207 OFFLINE   maxspace

    Пунтер


  • Участник II
  • ПипПип
  • 72 сообщения
11
  • МестоположениеРБ Гомель

Добавлено 26 February 2013 - 21:56

public void GetBetHistory(ref Job BHJob)
        {
            GetBetHistoryReq UKReq = new GetBetHistoryReq();
            UKReq.header = new APIRequestHeader();
            UKReq.header.sessionToken = _Token;
            UKReq.betTypesIncluded = BetStatusEnum.S;
            UKReq.detailed = true;
            UKReq.eventTypeIds = new int?[] { 15 };
            UKReq.marketTypesIncluded = new MarketTypeEnum?[] { MarketTypeEnum.O };
            UKReq.placedDateFrom = DateTime.Today.AddDays(-1);
            UKReq.placedDateTo = DateTime.Now;
            UKReq.recordCount = 100;
            UKReq.sortBetsBy = BetsOrderByEnum.BET_ID;
            UKReq.startRecord = 0;


            GetBetHistoryResp Resp = _UKClient.getBetHistory(UKReq);
            _Token = Resp.header.sessionToken;

            if (Resp.errorCode == GetBetHistoryErrorEnum.OK)
            {

                for (int i = 0; i < Resp.betHistoryItems.Length; i++)
                {
                    if (Resp.betHistoryItems[i].marketId == BHJob.MarketId && Resp.betHistoryItems[i].selectionId == BHJob.MarketInfo.Runners[BHJob.FavoriteId].Id)
                    {
                        BHJob.PaL = Resp.betHistoryItems[i].profitAndLoss;
                    }

                    else
                    {
                        BHJob.PaL = Resp.betHistoryItems[i].selectionId;
                    }
                }
                
            }
            else 
            {
                BHJob.PaL = 0;
            }
            return;
        }


#208 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 27 February 2013 - 07:58

Вот это убери (UKReq.includeBspBets = false; ) можно и без него вызывать. Но дело не в этом возможно возможно ты пихаешь прошедший рынок. Для метода getMarketProfitAndLoss только действительнае или ненаступившие маркеты.

#209 OFFLINE   maxspace

    Пунтер


  • Участник II
  • ПипПип
  • 72 сообщения
11
  • МестоположениеРБ Гомель

Добавлено 27 February 2013 - 08:34

СообщенияAlexX, on 27 February 2013 - 07:58, сказал:

возможно ты пихаешь прошедший рынок. Для метода getMarketProfitAndLoss только действительнае или ненаступившие маркеты.
скорее всего проблема в этом т.к. метод у меня начинает выполняться после перехода рынка в статус CLOSE

#210 OFFLINE   BIM

    Пунтер


  • Участник II
  • ПипПип
  • 52 сообщения
2

Добавлено 06 March 2013 - 16:16

В теме искал не нашел, программа Dyra2 показывает с очень большой задержкой. Пока не уловил сколько задержка, но речь идет не о секундах, а о десятках минут. От куда берутся кефы? Думал может по последнему сматченному, но и тут не подходит. В данный момент наблюдаю за Ольборг - оденсе, прога выдает на тотал1,5 4,1/4,6, на самом деле 4,4/4,6
последней сматченный 4,2. С частотой обновления все ок, поэкспериментировал. До написания сообщения минут 10 висит, не спеша пишу - это еще 10 минут

#211 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 06 March 2013 - 16:22

СообщенияBIM, on 06 March 2013 - 16:16, сказал:

В теме искал не нашел, программа Dyra2 показывает с очень большой задержкой. Пока не уловил сколько задержка, но речь идет не о секундах, а о десятках минут. От куда берутся кефы? Думал может по последнему сматченному, но и тут не подходит. В данный момент наблюдаю за Ольборг - оденсе, прога выдает на тотал1,5 4,1/4,6, на самом деле 4,4/4,6
последней сматченный 4,2. С частотой обновления все ок, поэкспериментировал. До написания сообщения минут 10 висит, не спеша пишу - это еще 10 минут

Вы наверное смотрите на рынки которые не набрали ликвидность. Betfair API дает только реальные заявки пользователей. Есть такое понятие виртуальные котировки Betfair. (здесь об этом подробно написано faqbetfair.blogspot.ru/2010/09/betfair.html)

Отредактировано AlexX, 06 March 2013 - 16:24.


#212 OFFLINE   бостон

    Специалист


  • Участник II
  • ПипПипПипПип
  • 830 сообщения
121
  • МестоположениеКрым, Алушта

Добавлено 06 March 2013 - 16:35

СообщенияBIM, on 06 March 2013 - 16:16, сказал:

В теме искал не нашел, программа Dyra2 показывает с очень большой задержкой. Пока не уловил сколько задержка, но речь идет не о секундах, а о десятках минут. От куда берутся кефы? Думал может по последнему сматченному, но и тут не подходит. В данный момент наблюдаю за Ольборг - оденсе, прога выдает на тотал1,5 4,1/4,6, на самом деле 4,4/4,6
последней сматченный 4,2. С частотой обновления все ок, поэкспериментировал. До написания сообщения минут 10 висит, не спеша пишу - это еще 10 минут
А у Вас ликвидность стоит какая? если 1000, то может стоит ее увеличить хотя бы до 10000? Возможно, что программе приходится собирать кэфы со слишком большого количества рынков. Проверьте, может в этом дело.

#213 OFFLINE   BIM

    Пунтер


  • Участник II
  • ПипПип
  • 52 сообщения
2

Добавлено 06 March 2013 - 17:05

бостон, спасибо, действительно в этом дело наверное было. Подскажите пожалуйста, какой рефреш выставлять, что бы лимит не исчерпать? У меня максимум что бывает открыто - это две вкладки биржи в браузерах и пару ботов с частотой обновления 1 сек.

#214 OFFLINE   бостон

    Специалист


  • Участник II
  • ПипПипПипПип
  • 830 сообщения
121
  • МестоположениеКрым, Алушта

Добавлено 06 March 2013 - 17:16

СообщенияBIM, on 06 March 2013 - 17:05, сказал:

бостон, спасибо, действительно в этом дело наверное было. Подскажите пожалуйста, какой рефреш выставлять, что бы лимит не исчерпать? У меня максимум что бывает открыто - это две вкладки биржи в браузерах и пару ботов с частотой обновления 1 сек.
По поводу рефреша лучше спросить koni. Я после сканирования рынков нажимаю Stop, а когда надо посмотреть то опять Start, эта программа ведь не бот, а помощник в быстром поиске нужных рынков..

#215 OFFLINE   Nordick

    Новичок


  • Участник
  • Пип
  • 19 сообщения
0

Добавлено 23 April 2013 - 15:10

Сообщенияclubm, on 25 December 2012 - 03:20, сказал:

Перевожу на понятный язык. Если дельта Больше -0.25, то за 0-0НТ и против 0-0, если Меньше -0.55, то наоборот. (про абсолютные значения пропускаем). Если дельта попадает в интервал от -0.55 до -0.25, лучше не ставить. В теме уже не раз разъяснялось. :)

Это вы говорите про дельту, которая столбец "М", приведенная к кф. 10?
Я вот тоже не понимаю, как и Mtigo: сейчас наблюдаю Back (0-0) = 14.5, Lay (0-0HT) = 3.35. Маткадовский расчет "Дыра 2" рисует нижний график с прибылью где-то 3% на конец первого периода. Получается надо ставить Back 0-0 и Lay 0-0HT? Хотя М при этом -0.28 - в запрещенном промежутке, и более того: М ближе к -0.25 - к границе, где надо ставить наоборот согласно вашим словам.

#216 OFFLINE   бостон

    Специалист


  • Участник II
  • ПипПипПипПип
  • 830 сообщения
121
  • МестоположениеКрым, Алушта

Добавлено 23 April 2013 - 17:27

СообщенияNordick, on 23 April 2013 - 15:10, сказал:

Это вы говорите про дельту, которая столбец "М", приведенная к кф. 10?
Я вот тоже не понимаю, как и Mtigo: сейчас наблюдаю Back (0-0) = 14.5, Lay (0-0HT) = 3.35. Маткадовский расчет "Дыра 2" рисует нижний график с прибылью где-то 3% на конец первого периода. Получается надо ставить Back 0-0 и Lay 0-0HT? Хотя М при этом -0.28 - в запрещенном промежутке, и более того: М ближе к -0.25 - к границе, где надо ставить наоборот согласно вашим словам.
Если на реальные деньги, то не надо ставить Back 0-0 и Lay 0-0HT. А надо приложить гигантские, невероятные усилия и прочитать полностью всю тему "Теория футбольного матча".

#217 OFFLINE   Nordick

    Новичок


  • Участник
  • Пип
  • 19 сообщения
0

Добавлено 23 April 2013 - 18:23

Сообщениябостон, on 23 April 2013 - 17:27, сказал:

Если на реальные деньги, то не надо ставить Back 0-0 и Lay 0-0HT. А надо приложить гигантские, невероятные усилия и прочитать полностью всю тему "Теория футбольного матча".

Хорошо, я читаю ))
Пока читаю, можно еще вопрос: ставить лучше за полчаса до начала матча, или можно и раньше, если программа показывает подходящую дельту?

#218 OFFLINE   бостон

    Специалист


  • Участник II
  • ПипПипПипПип
  • 830 сообщения
121
  • МестоположениеКрым, Алушта

Добавлено 23 April 2013 - 19:06

СообщенияNordick, on 23 April 2013 - 18:23, сказал:

Хорошо, я читаю ))
Пока читаю, можно еще вопрос: ставить лучше за полчаса до начала матча, или можно и раньше, если программа показывает подходящую дельту?
Если свободные деньги есть и дельта хорошая, я бы за сколько хочешь часов поставил.

#219 OFFLINE   Dmitriy-timofeev

    Новичок


  • Участник
  • Пип
  • 1 сообщения
0

Добавлено 08 June 2013 - 03:02

Возможно что AGT ,будет разворачивать 3 окна при выборе команды игроков как в ролике на YouTube

#220 OFFLINE   Arenas

    Новичок


  • Banned
  • Пип
  • 5 сообщения
1
  • МестоположениеНижнекамск

Добавлено 28 June 2013 - 15:28

СообщенияJericho, on 13 June 2012 - 11:58, сказал:

Все зависит от вашего задания, пишите:

Йерихон
В настоящее время вы пишете боты под заказ?