3
listCurrentOrders помогите с реализацией
maxspeed, Apr 21 2015 06:48
#1
21 April 2015 - 06:48
PLS помогите на c#
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
#2
21 April 2015 - 07:12
ISet<OrderBy> orderBy = new HashSet<OrderBy>();//{OrderBy.BY_MARKET};
orderBy.Add(OrderBy.BY_MARKET);
var listcurrentorders = client.listCurrentOrders(null,null,orderBy) ;
не работает
orderBy.Add(OrderBy.BY_MARKET);
var listcurrentorders = client.listCurrentOrders(null,null,orderBy) ;
не работает
#3
21 April 2015 - 13:18
не работает
не могу понять, что означает этот ваш паттерн
client.listCurrentOrders(null,null,orderBy);
1. как он накладывается на спецификацию ?
2. и разве не ругается, что вы подсовываете набор (Set) вместо одного OrderBy ?
#4
21 April 2015 - 13:53
PLS помогите на c#
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
вот такой запрос нужно передать
mRequest = "{""jsonrpc"": ""2.0"",""method"":""SportsAPING/v1.0/listCurrentOrders"",""params"": {""marketIds"":[""" & mMarketId & " ""],""orderProjection"":""ALL"",""dateRange"":{}}, ""id"": 1}"чтобы получить ответ в виде списка всех ставок, где mMarketId - MarketID нужного рынка
#5
21 April 2015 - 14:18
соответственно на вашем языке будет
client.listCurrentOrders(null,marketId,null);если придерживаться этому описанию класса https://github.com/j...irClientSync.cs
#6
21 April 2015 - 16:55
marketId это если я уже знаю какой конкретно рынок меня интересует
задача вызвав listCurrentOrders узнать какие ставки на данный момент у меня есть
если вызываю с 8-ю параметрами Null то выдает все ставки но хотелось отсортировать по рынку
задача вызвав listCurrentOrders узнать какие ставки на данный момент у меня есть
если вызываю с 8-ю параметрами Null то выдает все ставки но хотелось отсортировать по рынку
#7
21 April 2015 - 19:03
неверно сформулировали вопрос тогда с первого поста
чтобы отсортировать по рынку так и так необходим marketId
отсортировать вы можете ответ сервиса по следующим параметрам:
BY_BET
@Deprecated Use BY_PLACE_TIME instead. Order by placed time, then bet id.
BY_MARKET
Order by market id, then placed time, then bet id.
BY_MATCH_TIME
Order by time of last matched fragment (if any), then placed time, then bet id. Filters out orders which have no matched date. The dateRange filter (if specified) is applied to the matched date.
BY_PLACE_TIME
Order by placed time, then bet id. This is an alias of to be deprecated BY_BET. The dateRange filter (if specified) is applied to the placed date.
BY_SETTLED_TIME
Order by time of last settled fragment (if any due to partial market settlement), then by last match time, then placed time, then bet id. Filters out orders which have not been settled. The dateRange filter (if specified) is applied to the settled date.
BY_VOID_TIME
Order by time of last voided fragment (if any), then by last match time, then placed time, then bet id. Filters out orders which have not been voided. The dateRange filter (if specified) is applied to the voided date.
по времени размещения ставки, по времени сматчивания, по рынку и т.д.
попробуйте подсунуть только одну строковую переменную BY_MARKET
PLS помогите на c#
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
вызвать listCurrentOrders
без параметров не получается
нужно просто получить список всех ставок
спасибо
если вызываю с 8-ю параметрами Null то выдает все ставки но хотелось отсортировать по рынку
но хотелось отсортировать по рынку
отсортировать вы можете ответ сервиса по следующим параметрам:
BY_BET
@Deprecated Use BY_PLACE_TIME instead. Order by placed time, then bet id.
BY_MARKET
Order by market id, then placed time, then bet id.
BY_MATCH_TIME
Order by time of last matched fragment (if any), then placed time, then bet id. Filters out orders which have no matched date. The dateRange filter (if specified) is applied to the matched date.
BY_PLACE_TIME
Order by placed time, then bet id. This is an alias of to be deprecated BY_BET. The dateRange filter (if specified) is applied to the placed date.
BY_SETTLED_TIME
Order by time of last settled fragment (if any due to partial market settlement), then by last match time, then placed time, then bet id. Filters out orders which have not been settled. The dateRange filter (if specified) is applied to the settled date.
BY_VOID_TIME
Order by time of last voided fragment (if any), then by last match time, then placed time, then bet id. Filters out orders which have not been voided. The dateRange filter (if specified) is applied to the voided date.
по времени размещения ставки, по времени сматчивания, по рынку и т.д.
2. и разве не ругается, что вы подсовываете набор (Set) вместо одного OrderBy ?
#8
21 April 2015 - 20:39
да неправильно выразился
надо ответ сервиса отсортировать по рынку
CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
вот что в объявлении
не пойму какие аргументы обязательные а какие можно пропустить
надо ответ сервиса отсортировать по рынку
CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
вот что в объявлении
не пойму какие аргументы обязательные а какие можно пропустить
#9
21 April 2015 - 21:01
да неправильно выразился
надо ответ сервиса отсортировать по рынку
CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
вот что в объявлении
не пойму какие аргументы обязательные а какие можно пропустить
надо ответ сервиса отсортировать по рынку
CurrentOrderSummaryReport listCurrentOrders(ISet<String> betIds, ISet<String> marketIds, OrderProjection? orderProjection = null, TimeRange placedDateRange = null, OrderBy? orderBy = null, SortDir? sortDir = null, int? fromRecord = null, int? recordCount = null);
вот что в объявлении
не пойму какие аргументы обязательные а какие можно пропустить
null, null, ALL, null, BY_MARKET, null, 0, 100
#10
21 April 2015 - 21:38
var listcurrentorders = client.listCurrentOrders(new HashSet<string>(){"ALL"},new HashSet<string> (){"BY_MARKET"});
вот попробовал выдает:
You supplied one or more malformed bet IDs. Bet IDs are of the form "<exchangeId>:<betId>" where both the exchange ID and the bet ID parts are non-negative integers
c# не пропускает такую конструкцию
var listcurrentorders = client.listCurrentOrders(new HashSet<string>(){"ALL"},new HashSet<string> (){"BY_MARKET"});
эту пропускает но при выполнении ошибка
You supplied one or more malformed bet IDs. Bet IDs are of the form "<exchangeId>:<betId>" where both the exchange ID and the bet ID parts are non-negative integers
а вот так получилось:
var listcurrentorders = client.listCurrentOrders(null, null,OrderProjection.ALL, null, OrderBy.BY_MARKET, null, 0, 100);
спасибо большое за помощь
вот попробовал выдает:
You supplied one or more malformed bet IDs. Bet IDs are of the form "<exchangeId>:<betId>" where both the exchange ID and the bet ID parts are non-negative integers
поочередно:
null, null, ALL, null, BY_MARKET, null, 0, 100
null, null, ALL, null, BY_MARKET, null, 0, 100
var listcurrentorders = client.listCurrentOrders(new HashSet<string>(){"ALL"},new HashSet<string> (){"BY_MARKET"});
эту пропускает но при выполнении ошибка
You supplied one or more malformed bet IDs. Bet IDs are of the form "<exchangeId>:<betId>" where both the exchange ID and the bet ID parts are non-negative integers
а вот так получилось:
var listcurrentorders = client.listCurrentOrders(null, null,OrderProjection.ALL, null, OrderBy.BY_MARKET, null, 0, 100);
спасибо большое за помощь
#11
23 April 2015 - 02:12
еще проблема:
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
#12
23 April 2015 - 06:41
еще проблема:
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
CurrentOrderSummaryReport у вас класс, не может "перебраться" этим оператором.
Снова неверно вопрос задан)
Скорее всего обрабатываете вы какой-то список(массив)
Проверте в цикле foreach ,верно ли объявляются переменные списка которые хотите обработать
https://msdn.microso...y/bb383973.aspx
или подкорректировать foreach
или используйте for
www.dotnetperls.com/list
#13
23 April 2015 - 07:12
немного теории
отправив серверу listCurrentOrders (проблема выше была) - вы дали запрос бирже, - "дай ка мне список ставок, отсортированных по marketid"
listCurrentOrders классами формирует верный запрос в строку в формате json и отправляет тудысь, что-то вроде:
Биржа говорит - "на те список", и присылает ответ одной длинной срокой в формате json, соответсвеннно вашему запросу
а CurrentOrderSummaryReport из этой строки формирует список раскидывая все для вас удобно в структуры, из которых вы можете эти данные вывести или обработать.
все остальное это классы вашего "движка" по обработке запросов и ответов.
тут уже идет изучение языка C#, как правильно подсунуть переменные и обработать ответ.
в синтаксисе шарпа я не понимаю, поэтому подсказать не могу, для себя писал на php с нуля
будем изучать шарп вместе, пригодится)
отправив серверу listCurrentOrders (проблема выше была) - вы дали запрос бирже, - "дай ка мне список ставок, отсортированных по marketid"
listCurrentOrders классами формирует верный запрос в строку в формате json и отправляет тудысь, что-то вроде:
[{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/listCurrentOrders", "params": {"marketIds":["1.117020524"],"orderProjection":"ALL","dateRange":{}}, "id": 1}]
Биржа говорит - "на те список", и присылает ответ одной длинной срокой в формате json, соответсвеннно вашему запросу
[{"jsonrpc":"2.0","result":{"currentOrders":[{"betId":"45496907354","marketId":"1.117020524","selectionId":9170340,"handicap":0.0,"priceSize":{"price":10.0,"size":5.0},"bspLiability":0.0,"side":"BACK","status":"EXECUTABLE","persistenceType":"LAPSE","orderType":"LIMIT","placedDate":"2015-01-22T13:01:53.000Z","averagePriceMatched":0.0,"sizeMatched":0.0,"sizeRemaining":5.0,"sizeLapsed":0.0,"sizeCancelled":0.0,"sizeVoided":0.0,"regulatorCode":"GIBRALTAR REGULATOR"}],"moreAvailable":false},"id":1}]
а CurrentOrderSummaryReport из этой строки формирует список раскидывая все для вас удобно в структуры, из которых вы можете эти данные вывести или обработать.
все остальное это классы вашего "движка" по обработке запросов и ответов.
тут уже идет изучение языка C#, как правильно подсунуть переменные и обработать ответ.
в синтаксисе шарпа я не понимаю, поэтому подсказать не могу, для себя писал на php с нуля
будем изучать шарп вместе, пригодится)
#14
23 April 2015 - 09:44
еще проблема:
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
при обработке результата с помощью foreach
Ошибка 5 Оператор foreach не может использоваться для переменных типа "SearchMarket.TO.CurrentOrderSummaryReport", так как "SearchMarket.TO.CurrentOrderSummaryReport" не содержит открытого определения для "GetEnumerator"
CurrentOrderSummaryReport result = listCurrentOrders(bla-bla-bla); foreach (CurrentOrderSummary order in result.currentOrders) { Console.WriteLine(order); }
не знаю как у вас сделан доступ к полю класса, может result.currentOrders или result.currentOrders() или result.getCurrentOrders() или ещё как, это во второй строчке подправите если надо
#15
23 April 2015 - 11:06
спасибо получилось
теперь может посоветуете каким образом вывести в DataGridView список ставок с названиями матчей?
как связать матчи со ставками которые сделаны?
теперь может посоветуете каким образом вывести в DataGridView список ставок с названиями матчей?
как связать матчи со ставками которые сделаны?
#17
23 April 2015 - 15:38
сделать сначала listCurrentOrders потом listMarketCatalogue
и выбрать из listMarketCatalogue те marketId которые содержаться в ListCurrentOrders?
это лучше сделать через LINQ?
если это не будет наглостью можно пример через LINQ?
и выбрать из listMarketCatalogue те marketId которые содержаться в ListCurrentOrders?
это лучше сделать через LINQ?
если это не будет наглостью можно пример через LINQ?
#18
23 April 2015 - 15:56
сделать сначала listCurrentOrders потом listMarketCatalogue
и выбрать из listMarketCatalogue те marketId которые содержаться в ListCurrentOrders?
и выбрать из listMarketCatalogue те marketId которые содержаться в ListCurrentOrders?
без разницы в каком порядке.
получаете одним запросом listMarketCatalogue - массив рынков, в нем будут названия матчей, время начала, и marketid для каждого рынка и т.д.
далее получаете запросом список ставок через ListCurrentOrders
будете иметь два массива (списка)
Далее перебираете оба списка циклом for. Где в первом и втором списке совпадают marketid, там и будет соответсвие названия матча и ваших ставок
#19
23 April 2015 - 16:02
перебрать я понял
а куда поместить результат лучше? в массив?
насчет LINQ думал можно одной командой все выполнить
а куда поместить результат лучше? в массив?
насчет LINQ думал можно одной командой все выполнить
#20
23 April 2015 - 16:08
это лучше сделать через LINQ?
если это не будет наглостью можно пример через LINQ?
если это не будет наглостью можно пример через LINQ?
линк штука классная, но в данном случае проще сделать два цикла вложенных чтобы решить эту задачу.
синстаксисом не владею, код такой
есть:
список MarketCatalogue
список CurrentOrders
foreach (var currentOrder in CurrentOrders) { foreach (var Market in MarketCatalogue) { ЕСЛИ Market.marketId = currentOrder.marketId ТО вывод в таблицу Market.НАЗВАНИЕ РЫНКА + currentOrder.ВРЕМЯ СТАВКИ (итд) } }
вот этот говнокод переделайте под себя и будет работать