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


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

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


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

#161 OFFLINE   Jericho

    Иерихон


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

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

Прежде вам нужно понять логику запросов и ответов. А вы в дебри лезете с начальным знанием.

Бирже вы передали запрос с определенными параметрами, в строковую переменную, получили ответ. Брякните на ней остановку, посмотрите что там пришло.. далее измените параметры в запросе и опять посмотрите. Подсказать вам не могут по той причине, что неизвестно какой у вас обработчик пришедшего ответа. Кто-то использует готовые классы json, чтобы заполнить структуру класса ответа от сервера. Я лично писал с нуля и обрабатывал (парсил) ответы сам. Поэтому и подсказать не могу, хочется глядя на такие муки))

Если "" возвращается в кефах и суммах, найдите место где приходит ответ и посмотрите общую строку ответа, может быть там пусто, а следовательно создан неверный запрос

#162 OFFLINE   denvb

    Специалист


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

Добавлено 28 August 2015 - 11:05

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

Я лично писал с нуля и обрабатывал (парсил) ответы сам
а месье знает толк в извращениях :)

кэфов, кстати, может не быть, особенно не виртуальных, вот и пусто в ответе

#163 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 11:07

Кф и сумма приходят как видно на скрине.
А вот как вытащить их оттуда. Для меня проблемма.
Где можно было бы почитать как вытаскивать эти данные.

Attached File(s)



#164 OFFLINE   Alexs

    Пунтер


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

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

Вот скрин по моей строке
dblBack = {.AvailableToBack(0).Price}

Attached File(s)



#165 OFFLINE   Jericho

    Иерихон


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

Добавлено 28 August 2015 - 11:21

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

а месье знает толк в извращениях :)
Это да) но зато понял структуру запросов-ответов))

#166 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 11:23

Вот что имею по скрину для dblBack
А как вытащить кф и сумму?

Attached File(s)


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


#167 OFFLINE   denvb

    Специалист


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

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

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

Кф и сумма приходят как видно на скрине.
А вот как вытащить их оттуда. Для меня проблемма.
Где можно было бы почитать как вытаскивать эти данные.
у меня ощущение, что я чего-то не понимаю...
кэф - .AvailableToBack(0).Price
сумма - .AvailableToBack(0).Size

#168 OFFLINE   Jericho

    Иерихон


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

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

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

Вот скрин по моей строке
dblBack = {.AvailableToBack(0).Price}
О, Боже, русская студия...))
Ну, в массив закидали, а дальше где выводится кефы на форму, или куда вы там хотите вывести?

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

у меня ощущение, что я чего-то не понимаю...
кэф - .AvailableToBack(0).Price
сумма - .AvailableToBack(0).Size
Все правильно, цена это кеф, размер - это сумма заявок под кефом

#169 OFFLINE   denvb

    Специалист


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

Добавлено 28 August 2015 - 11:33

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

О, Боже, русская студия...))
тссс... я обещал, что ржать не будем

раз dblBack это массив, то зачем заводить ещё dblBack1 и dblBack2, сохраняй всё в один

#170 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 11:35

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

О, Боже, русская студия...))
Ну, в массив закидали, а дальше где выводится кефы на форму, или куда вы там хотите вывести?


Все правильно, цена это кеф, размер - это сумма заявок под кефом
Сначало в переменную dblBack. А затем в ячейку objDataGrid

With objDataGrid
.Rows(i + 1).Cells(4).Value = dblBack
.Rows(i + 1).Cells(3).Value = dblBack1
.Rows(i + 1).Cells(2).Value = dblBack2

End With
Но туда вот что выводится

Отредактировано Jericho, 28 August 2015 - 11:44.


#171 OFFLINE   Jericho

    Иерихон


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

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

dblBack это массив типа double, одномерный.. Его первый параметр (0) вы заполняете. AvailableToBack(0).Price, тоесть кефом..
выводится это все как dblBack(0), я так понимаю в datagriview.

только зачем массивы, если заполняется всего 1 элемент...
можно просто Dim dblBack, dblBack1, dblBack2 as Double

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

Сначало в переменную dblBack. А затем в ячейку objDataGrid
Но туда вот что выводится

нужно выводить значения элементов массива, если уж берутся массивы
With objDataGrid
.Rows(i + 1).Cells(4).Value = dblBack(0).ToString
.Rows(i + 1).Cells(3).Value = dblBack1(0).ToString
.Rows(i + 1).Cells(2).Value = dblBack2(0).ToString
End With


Alexs, ты умный человек или нет? без обид...
картинку ты сейчас кинул, в ней логин и пароль к аккаунту биржи....

Картинку удалил. Беги пароль меняй

#172 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 12:05

Ура заработало!!! :hyper:
Спасибо всем огромное. Жаль только зелёная кнопка у меня не работает. Пишет ошибка.

#173 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 14:12

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

dblBack это массив типа double, одномерный.. Его первый параметр (0) вы заполняете. AvailableToBack(0).Price, тоесть кефом..
выводится это все как dblBack(0), я так понимаю в datagriview.

только зачем массивы, если заполняется всего 1 элемент...
можно просто Dim dblBack, dblBack1, dblBack2 as Double



нужно выводить значения элементов массива, если уж берутся массивы
With objDataGrid
.Rows(i + 1).Cells(4).Value = dblBack(0).ToString
.Rows(i + 1).Cells(3).Value = dblBack1(0).ToString
.Rows(i + 1).Cells(2).Value = dblBack2(0).ToString
End With


Alexs, ты умный человек или нет? без обид...
картинку ты сейчас кинул, в ней логин и пароль к аккаунту биржи....

Картинку удалил. Беги пароль меняй
Вряд ли умный. Увлёкся сильно. Спасибо за исправление моих ляпов.

#174 OFFLINE   Alexs

    Пунтер


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

Добавлено 28 August 2015 - 14:35

Подскажите люди добрые а можно ли в DataGrid изменить размер шрифта в ячейках? Нигде не нашёл. А хочется.

#175 OFFLINE   Jericho

    Иерихон


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

Добавлено 28 August 2015 - 15:11

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

Подскажите люди добрые а можно ли в DataGrid изменить размер шрифта в ячейках? Нигде не нашёл. А хочется.

перед выполнением загрузки данных в таблицу:

Dim mFont As New Font("Segoe UI", 9)
For i = 0 To DataGridView1.Columns.Count - 1
DataGridView1.Columns(i).DefaultCellStyle.Font = mFont
Next i


цикл переберет все столбцы и присвоит шрифт Segoe UI размером 9. Дал именно такой код перебора на случай вдруг захочешь потом жирным что-то выделить)

а это выровняет текст в ячейках по середине:
DataGridView1.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridView1.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter


тут конкретно для 3го столбика. (отсчет идет от 0)



вместо того чтобы ждать ответа на форуме по программированию можно зайти на https://code.msdn.microsoft.com/

это МСДН, не путать с БДСМ... здесь есть всё, для всех контролов студии, от переменной до классов... Прогеры даже качают его дистрибутивы на комп чтобы был всегда под рукой.

А вот если там не нашли) можно и сюда. Форум не по программированию азов, уж извините...
По API-NG для биржи поможем всегда, а шкурные вопросы по интерфейсу могут тут висеть днями...




т.е. в мсдн в поиске пишешь что хочешь спросить, например
datagridview font

получаешь ответ с примерами:
https://social.msdn....rmsdatacontrols

#176 OFFLINE   Alexs

    Пунтер


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

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

Я немного по другому но шрифт жирным уже сделал. И по центру выровнял. А вот как увеличить размер шрифта нигде не нашёл.
Спасибо за помощь и за ссылку.
Правда я не понял как там искать ответы на вопросы? Или надо зарегистрироваться чтобы появился поиск?

#177 OFFLINE   Alexs

    Пунтер


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

Добавлено 30 August 2015 - 07:33

Привет.
Есть такой код
Private Sub GetGraph()
		Dim MyWebClient As New System.Net.WebClient
		Dim ImageInBytes() As Byte = MyWebClient.DownloadData(" https://www.betfair.com/exchange/horse-racing/marketactivity?id=1.120336369&selectionId=9529153")
		Dim ImageStream As New IO.MemoryStream(ImageInBytes)
		PictureBox1.Image = New System.Drawing.Bitmap(ImageStream)
	End Sub
Любезно предоставленный всем желающим Jericho здесь
Ссылка Здесь
Под старым API он работал. Сейчвс на строке
PictureBox1.Image = New System.Drawing.Bitmap(ImageStream)
выдаёт такую ошибку
Необработанное исключение типа "System.ArgumentException" в System.Drawing.dll
Дополнительные сведения: Недопустимый параметр.
Как это дело исправить нигде не нашёл. Как правильно загрузить график в PictureBox?

#178 OFFLINE   Jericho

    Иерихон


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

Добавлено 30 August 2015 - 09:27

Вот рабочий код

Dim ImageInBytes() As Byte
Dim MyWebClient As New System.Net.WebClient
Dim mStr As String = "http://uk.sportsiteexweb.betfair.com/betting/LoadRunnerInfoChartAction.do?marketId=" & mMarketId & "&selectionId=" & mSelectionId
ImageInBytes = MyWebClient.DownloadData(mStr)
Dim ImageStream As New IO.MemoryStream(ImageInBytes)
PictureBox1.Image = New System.Drawing.Bitmap(ImageStream)


нужные mMarketId и mSelectionId подставить...

#179 OFFLINE   Jericho

    Иерихон


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

Добавлено 30 August 2015 - 09:46

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

https://msdn.microso...y/ck8bc5c6.aspx

Все-равно к этому придете когда надо будет делать ставки, уравнивать их и .т.д..

В двух словах:
Ваш бот это единственный поток на данный момент - весь ваш написанный код выполняется построчно, последовательно друг за другом каждая строка кода... Когда появляется строка, требующая на себя время (загрузка графиков, отправка ряда ставок, большие циклы расчетов) естественно дальнейшее выполнение программы не будет исполнено дальше пока не выполнится "долгий" участок кода... А это "залипание" основного потока.
Для этого добавляются новые треды(потоки) в которых и делаются все операции...

Контролы созданные в основном потоке - не могут обрабатываться в дочерних, т.е. создали поток, где загружаете график рынка, нельзя из этого потока сразу нарисовать график в picturebox... (на самом деле можно :) но это чуть попозже надо изучать)

#180 OFFLINE   Alexs

    Пунтер


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

Добавлено 30 August 2015 - 09:51

У меня и на новый код выдаёт ту же ошибку

Attached File(s)