Как получить суммы которые обведены красным карандашом. С помощью какой функции. Функция getCompleteMarketPricesCompressed не дает эти суммы.
777.png 125.18K
2 downloads
2
Создание бота на VB Net
Started by vlad56, Apr 19 2012 13:25
8 replies to this topic
#1 OFFLINE
Posted 19 April 2012 - 13:25
#2 OFFLINE
Posted 19 April 2012 - 13:30
getDetailAvailableMktDepth
#3 OFFLINE
Posted 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
Posted 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 SubErrorCode теперь OK, Но данных все равно нет.
Edited by vlad56, 19 April 2012 - 14:47.
#5 OFFLINE
Posted 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?
#7 OFFLINE
Posted 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
Поэтому опять тормоза.
#9 OFFLINE
Posted 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