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


* * * * * 1 голосов

Betfair API-NG, тонкости


256 ответов в эту тему

#141 OFFLINE   Alexs

    Пунтер


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

Добавлено 26 August 2015 - 10:03

При нажатии кнопки Скачки сегодня (btnTodaysRaces_Click) выскакивает такая ошибка

Attached File(s)



#142 OFFLINE   denvb

    Специалист


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

Добавлено 26 August 2015 - 10:26

СообщенияAlexs, on 26 August 2015 - 10:03, сказал:

При нажатии кнопки Скачки сегодня (btnTodaysRaces_Click) выскакивает такая ошибка
ну это ни о чём. В какой именно функции летит ошибка? Подозреваю, что надо идти в GetMarketCayalogue() и глубже.
С недавних пор апи ругается на http-заголовок "Expect: 100-Continue", который HttpWebRequest добавляет всегда. Отключите его
System.Net.ServicePointManager.Expect100Continue = false;
но это всё догадки

Отредактировано denvb, 26 August 2015 - 10:32.


#143 OFFLINE   Alexs

    Пунтер


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

Добавлено 26 August 2015 - 10:28

Вот код этого участка

Sub TodaysRaces()
Try
Dim strCatalogue As String = GetMarketCatalogue()
Dim objJson = JsonConvert.DeserializeObject(Of MarketCatalogue)(strCatalogue)
Dim intNofRaces As Integer = nudNumOfRaces.Value '~~> 12 Default amount
Dim i As Integer = 0
Dim strMkt As String = ""
tvMarkets.Nodes.Clear()
tvMarkets.Nodes.Add(New TreeNode("ALL RACES"))
For i = 0 To intNofRaces - 1
With objJson.Result(i)
strMkt = .MarketStartTime.ToString("HH:mm") & " " & .EventInfo.MeetingName & " " & .RaceType & " " & " " & .MarketId
tvMarkets.Nodes(0).Nodes.Add(New TreeNode(strMkt))
End With
Next
tvMarkets.Nodes(0).Expand()
Catch ex As Exception
Static oops As Integer = nudNumOfRaces.Value
nudNumOfRaces.Value = oops - 1
Exit Sub
txtLog.Text = "Tree Problem" & vbCrLf & ex.Message
Exit Sub
End Try
End Sub



Private Sub btnTodaysRaces_Click(sender As Object, e As EventArgs) Handles btnTodaysRaces.Click
TodaysRaces()
End Sub

На скрине студия выделила красным координаты кнопки. Не понял почему.

Attached File(s)



#144 OFFLINE   denvb

    Специалист


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

Добавлено 26 August 2015 - 10:34

СообщенияAlexs, on 26 August 2015 - 10:28, сказал:

На скрине студия выделила красным координаты кнопки. Не понял почему.
потому что в это место прилетает ошибка?

#145 OFFLINE   Alexs

    Пунтер


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

Добавлено 26 August 2015 - 10:52

Сообщенияdenvb, on 26 August 2015 - 10:26, сказал:

ну это ни о чём. В какой именно функции летит ошибка? Подозреваю, что надо идти в GetMarketCayalogue() и глубже.
С недавних пор апи ругается на http-заголовок "Expect: 100-Continue", который HttpWebRequest добавляет всегда. Отключите его
System.Net.ServicePointManager.Expect100Continue = false;
но это всё догадки
Ура заработало. Помогло.
Без вас никогда бы не нашёл бы этой ошибки.
Огромнейшее спасибо.
Теперь у меня забегов стало на 12 больше.
А как получить все забеги?

Вот эта строка ограничивает количество забегов 12 штук
Dim intNofRaces As Integer = nudNumOfRaces.Value
А как её изменить чтобы получить все забеги UK?

#146 OFFLINE   Alexs

    Пунтер


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

Добавлено 26 August 2015 - 11:57

Для тех кто в нулях. Отвечаю на предыдущий свой вопрос. Количество забегов можно поменять изменяя значение в свойствах элемента значение value. Я сделал значение равным 200. Стало больше показывать забегов. По топорному. А как сделать правильно не знаю.
Может кто подскажет?
Теперь надо выводить суммы.

Отредактировано Alexs, 26 August 2015 - 12:02.


#147 OFFLINE   denvb

    Специалист


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

Добавлено 26 August 2015 - 12:45

1. у listMarketCatalogue масса параметров, которые влияют на число выдаваемых рынков. Бывает, что не все нужные можно получить одним запросом - есть ограничение по "весу"

2. nudNumOfRaces - это что?

Может сперва доки почитать, с платформой освоиться? Всё-таки с деньгами будите работать. Если не секрет, что конструируете?

#148 OFFLINE   Alexs

    Пунтер


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

Добавлено 26 August 2015 - 14:01

Сообщенияdenvb, on 26 August 2015 - 12:45, сказал:

1. у listMarketCatalogue масса параметров, которые влияют на число выдаваемых рынков. Бывает, что не все нужные можно получить одним запросом - есть ограничение по "весу"

2. nudNumOfRaces - это что?

Может сперва доки почитать, с платформой освоиться? Всё-таки с деньгами будите работать. Если не секрет, что конструируете?

nudNumOfRaces Это элемент NumericUpDown с панели элементов. Который имеет свойтво value.
Исходник то что вы дали под 2 номером. Пытаюсь выжать с него то что смогу.
С удовольствием почитал бы. Но на русском нет. Через Google пробую, но много не понятно. Да и документы не совсем для чайников.
А вам большое спасибо за помощь.
Бот хочу сделать для получения графиков 1 и 2 лошади по всем забегам. Для поиска чисто ниспадающих, горизонтальных и растущих графиков. На графиках качелях постоянно залёты. А так уменьшаю вероятность залёта. Так вручную следить за графиками это издевательство над собой. А затем уже делать ставки.
А чтобы вы могли бы посоветовать почитать для такого бота. Какие главы?

Отредактировано Alexs, 26 August 2015 - 14:10.


#149 OFFLINE   mustang

    Новичок


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

Добавлено 27 August 2015 - 10:22

Ребят, подскажите нубу
как получить баланс
пытаюсь через getAccountFunds выдает ошибку что операции не существует

#150 OFFLINE   Jericho

    Иерихон


  • RSB
  • ПипПипПипПипПип
  • 2226 сообщения
859

Добавлено 27 August 2015 - 11:04

СообщенияAlexs, on 26 August 2015 - 08:55, сказал:


Получил ключи. Но всё равно получаю ошибку при запросе событий.
Логин и ключи затирайте. Изображение удалил. Логин свой от биржи вообще никому не показывайте в дальнейшем

#151 OFFLINE   Alexs

    Пунтер


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

Добавлено 27 August 2015 - 11:17

СообщенияJericho, on 27 August 2015 - 11:04, сказал:

Логин и ключи затирайте. Изображение удалил. Логин свой от биржи вообще никому не показывайте в дальнейшем
Понял. Спасибо. Больше не буду.

Для получения не сматченных ставок пытаюсь использовать listMarketBook.
Использую такие строки
Dim strBookRequest As String = "{""jsonrpc"": ""2.0"", ""method"": ""SportsAPING/v1.0/listMarketBook"", ""params"": {""marketIds"":[""" & txtMktID.Text & """],""priceProjection"":{""priceData"":[""EX_BEST_OFFERS"",""SP_AVAILABLE""],""exBestOffersOverrides"":{""bestPricesDepth"":1} }}, ""id"": 1}"

ListMarketBookResponse = CreateRequest(UseAppKey, GetSessToken, strBookRequest)
Результата нет. Количество денег на Lay и Back не получаю.
Что делаю не так?
Как правильно получить суммы на на Lay и Back?

Отредактировано Alexs, 27 August 2015 - 11:23.


#152 OFFLINE   Alexs

    Пунтер


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

Добавлено 27 August 2015 - 12:34

Для тех кто в нуле. Начал получать значения сумм через такой код

Public Class MarketBook
	Private m_result As List(Of BookInfo) '~~> "result"
	<JsonProperty(PropertyName:="result")> _
	Public Property Result() As List(Of BookInfo) '~~> This can now be called anything InfoResult etc
		Get
			Return m_result
		End Get
		Set(value As List(Of BookInfo))
			m_result = value
		End Set
	End Property '"result"
End Class 'MarketBook Top Level
****************************************************************************
Sub TreeClick(MarketID As String, e As Object)
...........................................................................
Dim strPrices As String = ""
Dim BackList As New List(Of Double)
Dim LayList As New List(Of Double)
			BackList.Clear()
			LayList.Clear()
Dim strBookRequest As String = "{""jsonrpc"": ""2.0"", ""method"": ""SportsAPING/v1.0/listMarketBook"", ""params"": {""marketIds"":[""" & txtMktID.Text & """],""priceProjection"":{""priceData"":[""EX_BEST_OFFERS"",""SP_AVAILABLE""],""exBestOffersOverrides"":{""bestPricesDepth"":1} }}, ""id"": 1}"
			 ListMarketBookResponse = CreateRequest(UseAppKey, GetSessToken, strBookRequest)
Dim jsonBookObject = Newtonsoft.Json.JsonConvert.DeserializeObject(Of MarketBook)(ListMarketBookResponse)
			For i = 0 To objDataGrid.RowCount - 2
				With jsonBookObject.Result(0).Runners(i).ExchangePrices
					Dim dblBack() As Double = {}
					Dim dblLay() As Double = {}
					'Get the Prices in the array
					For t = 0 To .AvailableToBack.Count  'I only have the one here
						If .AvailableToBack IsNot Nothing AndAlso .AvailableToBack.Count > 0 Then
							dblBack = {.AvailableToBack(0).Price} '
						Else
							dblBack = {0.0} 'Use zero rather than nothing
						End If
						If .AvailableToLay IsNot Nothing AndAlso .AvailableToLay.Count > 0 Then
							dblLay = {.AvailableToLay(0).Price}
						Else
							dblLay = {0.0} 'Use zero rather than nothing
						End If '
					Next t
					strPrices = dblBack(0) & "  |  " & dblLay(0) & vbCrLf 'Use/Test in a TextBox etc
					BackList.Add(dblBack(0)) 'Add to our List
					LayList.Add(dblLay(0)) 'Add to our List
				End With 'Json Book Exchange prices
			Next
...........................................................................................................
End Sub

Теперь осталось переделать код под нашу форму. И пойду дальше.
Следущий ход.
Как получать графики по первой лошади каждого забега?
Какие функции можно использовать для этого?

Отредактировано Alexs, 27 August 2015 - 12:44.


#153 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 08:03

Привет.
Возник вопрос по суммам.
Имеем
.Available To Back(0).Price
А как получить Price на Back(1), Back(2)?
Аналогично на Lay.
Буду очень благодарен тому кто поможет.

#154 OFFLINE   denvb

    Специалист


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

Добавлено 28 August 2015 - 08:20

СообщенияAlexs, on 28 August 2015 - 08:03, сказал:

Имеем
.Available To Back(0).Price
А как получить Price на Back(1), Back(2)?
Аналогично на Lay.
.AvailableToBack(1).Price и .AvailableToBack(2).Price, аналогично на Lay... только не забудьте проверять, что эти элементы есть в списке

вам график то может лучше строить по сматченным, а не по ценам?

Отредактировано denvb, 28 August 2015 - 08:25.


#155 OFFLINE   AlexX

    Специалист


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

Добавлено 28 August 2015 - 08:27

СообщенияAlexs, on 28 August 2015 - 08:03, сказал:

А как получить Price на Back(1), Back(2)?

ты сам ответил на свой вопрос. Back[0].Price Back[1].Price Back[2].Price Back[3].Price Back[n].Price

#156 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 08:55

Ответ на предидущий вопрос.
Надо поменять запрос
EX_BEST_OFFERS
на
EX_ALL_OFFERS
В строке
Dim strBookRequest As String = "{""jsonrpc"": ""2.0"", ""method"": ""SportsAPING/v1.0/listMarketBook"", ""params"": {""marketIds"":[""" & txtMktID.Text & """],""priceProjection"":{""priceData"":[""EX_ALL_OFFERS"",""SP_AVAILABLE""],""exBestOffersOverrides"":{""bestPricesDepth"":1} }}, ""id"": 1}"

Сразу получаем все кф и суммы для них.

Может кому то поможет.

#157 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 09:10

Сообщенияdenvb, on 28 August 2015 - 08:20, сказал:

.AvailableToBack(1).Price и .AvailableToBack(2).Price, аналогично на Lay... только не забудьте проверять, что эти элементы есть в списке

вам график то может лучше строить по сматченным, а не по ценам?
Стараюсь сделать приличный внешний вид рынка. Для себя делаю.
Надо стараться делать дело как можно лучше, хуже оно само получиться.
А вот по графикам. Думаю добавить на форму табконтрол, чтобы все графики поместить на одном экране.
Чтобы было сразу видно - какой график лучше для моих целей подходит.
Графики буду брать готовые с сайта и обновлять их постоянно.
Буду очень благодарен всем кто что то подскажет своё.

Отредактировано Alexs, 28 August 2015 - 09:16.


#158 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 09:25

Возник новый вопрос. А как разместить в одной клеточке кф и сумму в два этажа? Чтобы было как в браузере.

#159 OFFLINE   denvb

    Специалист


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

Добавлено 28 August 2015 - 09:55

СообщенияAlexs, on 28 August 2015 - 09:25, сказал:

А как разместить в одной клеточке кф и сумму в два этажа?
слушай, а ты VB.NET умеешь или по ходу осваиваешь? Если нет, то по мне это странный выбор, уж тогда лучше С# - хоть примеров больше... Нашёл у себя такую ссылку, там правда ещё под старое апи, но можно посмотреть как интерфейс сделан и структура у него довольно продумана. Полистай, на какой-то странице была готовая функция для двухэтажного вывода.

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

#160 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 10:42

Где ошибка. Хочу получить кф. Использую такую строку
dblBack = {.AvailableToBack(0).Price}
Кф не получаю.
Подскажите пожалуйста как получить кф и сумму под этот кф.

Сообщенияdenvb, on 28 August 2015 - 09:55, сказал:

слушай, а ты VB.NET умеешь или по ходу осваиваешь? Если нет, то по мне это странный выбор, уж тогда лучше С# - хоть примеров больше... Нашёл у себя такую ссылку, там правда ещё под старое апи, но можно посмотреть как интерфейс сделан и структура у него довольно продумана. Полистай, на какой-то странице была готовая функция для двухэтажного вывода.

Про графики - я то думал ты хочешь ботом их анализировать и тогда нужно самому их собирать. А если просто глазами посмотреть, то такие сервисы есть, где показаны несколько сразу, на форуме недавно давали ссылку. Так что может и не запариваться с кодом?
В дальнейшем хотел следить за своёй ставкой по сматченным суммам. Но пока хотя бы освоить это.
Писал макросы для Excel . Поэтому vb net ближе мне.
За ссылку спасибо. Сейчас посмотрю.