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


- - - - -

Создание бота на VB Net


8 ответов в эту тему

#1 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 19 April 2012 - 13:25

Как получить суммы которые обведены красным карандашом. С помощью какой функции. Функция getCompleteMarketPricesCompressed не дает эти суммы.

Прикрепленный файл  777.png   125.18K   2 Количество загрузок

#2 OFFLINE   triggers

    Триггер Мастер


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

Добавлено 19 April 2012 - 13:30

getDetailAvailableMktDepth

#3 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 19 April 2012 - 14:17

Сообщенияtriggers, on 19 April 2012 - 13:30, сказал:

getDetailAvailableMktDepth
Попробовал сделать вот так
Private Sub bDetailAvailableMkt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bDetailAvailableMkt.Click
	    Dim oCMPCreq As New BFUK.GetDetailedAvailableMktDepthReq
	    With oCMPCreq
		    .header = oHeaderUK()
		    .marketId = MarketId
	    End With
	    StateCount += 1
	    BetFairUK.getDetailAvailableMktDepthAsync(oCMPCreq, StateCount)
    End Sub

Private Sub BetFairUK_getDetailAvailableMktDepthCompleted(ByVal sender As Object, ByVal e As BFUK.getDetailAvailableMktDepthCompletedEventArgs) Handles BetFairUK.getDetailAvailableMktDepthCompleted
			   Try
		    If Not e.Cancelled Then
			    With e.Result
				    CheckHeader(.header)
				  
				   If .errorCode = BFUK.GetDetailedAvailMktDepthErrorEnum.OK Then
				    Dim oMarketPrices As New BFUK.GetDetailedAvailableMktDepthReq
				    With oMarketPrices
				    End With
				    End If
				   
			    End With
		    End If
	    Catch ex As ApplicationException
		   
	    End Try
    End Sub

.errorCode не OK. Как сделать так чтобы заработало и я получил суммы.
За все заранее спасибо.

#4 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 19 April 2012 - 14:46

Вношу поправку. Добавил в код строку
Private Sub bDetailAvailableMkt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bDetailAvailableMkt.Click
		Dim oCMPCreq As New BFUK.GetDetailedAvailableMktDepthReq
		With oCMPCreq
			.header = oHeaderUK()
			.marketId = MarketId
		    [size=5].selectionId = Selection[/size]
		End With
		StateCount += 1
		BetFairUK.getDetailAvailableMktDepthAsync(oCMPCreq, StateCount)
	End Sub
ErrorCode теперь OK, Но данных все равно нет.

Отредактировано vlad56, 19 April 2012 - 14:47.


#5 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 19 April 2012 - 17:23

На C# нашел такой код
public IList<BetfairE.AvailabilityInfo> GetDetailAvailableMktDepth(int exchangeId, int marketId, int selectionId)
	    {
		    BetfairE.BFExchangeService service = serviceExchanges[exchangeId];
		    BetfairE.GetDetailedAvailableMktDepthReq detailReq = new BetfairE.GetDetailedAvailableMktDepthReq();
		    detailReq.header = headerExchange;
		    detailReq.marketId = marketId;
		    detailReq.selectionId = selectionId;
		    BetfairE.GetDetailedAvailableMktDepthResp detailResp = service.getDetailAvailableMktDepth(detailReq);
		    ResetSessionToken(detailResp.header);
		    if(detailResp.errorCode == BetfairE.GetDetailedAvailMktDepthErrorEnum.OK)
		    {
			    return detailResp.priceItems;
		    }
		    else if(detailResp.errorCode == BetfairE.GetDetailedAvailMktDepthErrorEnum.NO_RESULTS)
		    {
			    return new BetfairE.AvailabilityInfo[0];
		    }
		    else if(ExchangeThrottleException.WasThrottled(detailResp))
		    {
			    throw new ExchangeThrottleException("getDetailAvailableMktDepth", detailResp);
		    }
		    else
		    {
			    throw new ExchangeException("getDetailAvailableMktDepth", detailResp);
		    }
	    }
Как перевести его на VB Net?

#6 OFFLINE   Jericho

    Иерихон


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

Добавлено 19 April 2012 - 22:08

Сообщенияvlad56, on 19 April 2012 - 17:23, сказал:

На C# нашел такой код, как перевести его на VB Net?

Есть конвертер, попробуй, может поможет.

#7 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 20 April 2012 - 08:41

СообщенияJericho, on 19 April 2012 - 22:08, сказал:

Есть конвертер, попробуй, может поможет.
Привет. Спасибо за конвертер.
После конвертации и обработки получил вот такой код. Но detailResp.errorCode не OK.
Private Sub BetFairUK_getDetailAvailableMktDepthCompleted(ByVal sender As Object, ByVal e As BFUK.getDetailAvailableMktDepthCompletedEventArgs) Handles BetFairUK.getDetailAvailableMktDepthCompleted
			   Try
		    Dim detailReq As New BFUK.GetDetailedAvailableMktDepthReq
		    detailReq.header = oHeaderUK()
		    detailReq.marketId = MarketId
		    detailReq.selectionId = Selection
		    Dim detailResp As BFUK.GetDetailedAvailableMktDepthResp = BetFairUK.getDetailAvailableMktDepth(detailReq)
		 
		    If detailResp.errorCode = BFUK.GetDetailedAvailMktDepthErrorEnum.OK Then
			    With detailResp
			    End With
			   
		    End If
		   
	    Catch ex As ApplicationException
		   
	    End Try
    End Sub

Поэтому опять тормоза.

#8 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 20 April 2012 - 14:11

Спасибо всем кто помогал. Получил инфу, но то чего хотел не нашел. Скрин прилагаю.Прикрепленный файл  Суммы.JPG   209.36K   4 Количество загрузок
Вопрос остается открытым. Как получить те суммы, которые обведены красным карандашом, в первом сообщении?

#9 OFFLINE   vlad56

    Специалист


  • Участник II
  • ПипПипПип
  • 460 сообщения
27
  • МестоположениеДнепропетровск

Добавлено 23 April 2012 - 15:00

Нашел функция GetMarketTradedVolume дает искомые суммы.
MarketId = DataMarkets.Item(2, i).Value()
					    Dim detailReq As New BFUK.GetMarketTradedVolumeReq
					    detailReq.header = oHeaderUK()
					    detailReq.marketId = MarketId
					    detailReq.selectionId = Selection
					    Dim detailResp As BFUK.GetMarketTradedVolumeResp = BetFairUK.getMarketTradedVolume(detailReq)
					    If detailResp.errorCode = BFUK.GetMarketTradedVolumeErrorEnum.OK Then
						    With detailResp
						    End With
					    End If