コード例 #1
0
    public void Go()
    {
        // find all the upcoming UK horse races (EventTypeId 7)
        var marketFilter = new MarketFilter();
        marketFilter.EventTypeIds = new HashSet<string>() { "7" };
        marketFilter.MarketStartTime = new TimeRange()
        {
            From = DateTime.Now,
            To = DateTime.Now.AddDays(2)
        };
        marketFilter.MarketTypeCodes = new HashSet<String>() { "WIN" };

        Console.WriteLine("BetfairClient.ListEvents()");
        var events = _client.ListEvents(marketFilter).Result;
        if (events.HasError)
            throw new ApplicationException();
        var firstEvent = events.Response.First();
        Console.WriteLine("First Event {0} {1}", firstEvent.Event.Id, firstEvent.Event.Name);

        var marketCatalogues = _client.ListMarketCatalogue(
          BFHelpers.HorseRaceFilter(),
          BFHelpers.HorseRaceProjection(),
          MarketSort.FIRST_TO_START,
          25).Result.Response;

        marketCatalogues.ForEach(c =>
        {
            _markets.Enqueue(c);
            Console.WriteLine(c.MarketName);
        });
        Console.WriteLine();

        while (_markets.Count > 0)
        {
            AutoResetEvent waitHandle = new AutoResetEvent(false);
            MarketCatalogue marketCatalogue;
            _markets.TryDequeue(out marketCatalogue);

            var marketSubscription = _streamingClient.SubscribeMarket(marketCatalogue.MarketId)
                .SubscribeOn(Scheduler.Default)
                .Subscribe(
                tick =>
                {
                    Console.WriteLine(BFHelpers.MarketSnapConsole(tick, marketCatalogue.Runners));
                },
                () =>
                {
                    Console.WriteLine("Market finished");
                    waitHandle.Set();
                });

            waitHandle.WaitOne();
            marketSubscription.Dispose();
        }
    }
コード例 #2
0
 public BetfairServerResponse<List<TimeRangeResult>> ListTimeRanges(MarketFilter marketFilter, TimeGranularity timeGranularity)
 {
     return client.ListTimeRanges(marketFilter, timeGranularity).Result;
 }
コード例 #3
0
 public BetfairServerResponse<List<VenueResult>> ListVenues(MarketFilter marketFilter)
 {
     return client.ListVenues(marketFilter).Result;
 }
コード例 #4
0
 public BetfairServerResponse<List<MarketCatalogue>> ListMarketCatalogue(
     MarketFilter marketFilter,
     ISet<MarketProjection> marketProjections = null,
     MarketSort? sort = null,
     int maxResult = 1)
 {
     return client.ListMarketCatalogue(
         marketFilter,
         marketProjections,
         sort,
         maxResult).Result;
 }
コード例 #5
0
 public BetfairServerResponse<List<EventTypeResult>> ListEventTypes(MarketFilter marketFilter)
 {
     return client.ListEventTypes(marketFilter).Result;
 }
コード例 #6
0
 public BetfairServerResponse<List<CountryCodeResult>> ListCountries(MarketFilter marketFilter)
 {
     return client.ListCountries(marketFilter).Result;
 }
コード例 #7
0
 public BetfairServerResponse<List<CompetitionResult>> ListCompetitions(MarketFilter marketFilter)
 {
     return client.ListCompetitions(marketFilter).Result;
 }
コード例 #8
0
    public void Go()
    {
        // find all the upcoming UK horse races (EventTypeId 7)
        var marketFilter = new MarketFilter();
        marketFilter.EventTypeIds = new HashSet<string>() { "7" };
        marketFilter.MarketStartTime = new TimeRange()
        {
            From = DateTime.Now,
            To = DateTime.Now.AddDays(2)
        };
        marketFilter.MarketTypeCodes = new HashSet<String>() { "WIN" };

        Console.WriteLine("BetfairClient.ListEvents()");
        var events = _client.ListEvents(marketFilter).Result;
        if (events.HasError)
            throw new ApplicationException();
        var firstEvent = events.Response.First();
        Console.WriteLine("First Event {0} {1}", firstEvent.Event.Id, firstEvent.Event.Name);

        Console.WriteLine("BetfairClient.ListTimeRanges()");
        var timeRanges = _client.ListTimeRanges(marketFilter, TimeGranularity.HOURS).Result;
        if (timeRanges.HasError)
            throw new ApplicationException();

        Console.WriteLine("BetfairClient.ListCurrentOrders()");
        var currentOrders = _client.ListCurrentOrders().Result;
        if (currentOrders.HasError)
            throw new ApplicationException();

        Console.WriteLine("BetfairClient.ListVenues()");
        var venues = _client.ListVenues(marketFilter).Result;
        if (venues.HasError)
            throw new ApplicationException();

        Console.WriteLine("BetfairClient.GetAccountDetails()");
        var accountDetails = _client.GetAccountDetails().Result;
        if (accountDetails.HasError)
            throw new ApplicationException();

        Console.WriteLine("BetfairClient.GetAccountStatement()");
        var accountStatement = _client.GetAccountStatement().Result;
        if (accountStatement.HasError)
            throw new ApplicationException();

        Console.Write("BetfairClient.GetAccountFunds() ");
        var acc = _client.GetAccountFunds(Wallet.UK).Result;
        if (acc.HasError)
            throw new ApplicationException();
        Console.WriteLine(acc.Response.AvailableToBetBalance);

        Console.WriteLine("BetfairClient.ListClearedOrders()");
        var clearedOrders = _client.ListClearedOrders(BetStatus.SETTLED).Result;
        if (clearedOrders.HasError)
            throw new ApplicationException();

        var marketCatalogues = _client.ListMarketCatalogue(
          BFHelpers.HorseRaceFilter(),
          BFHelpers.HorseRaceProjection(),
          MarketSort.FIRST_TO_START,
          25).Result.Response;

        marketCatalogues.ForEach(c =>
        {
            _markets.Enqueue(c);
            Console.WriteLine(c.MarketName);
        });
        Console.WriteLine();

        Console.WriteLine("BetfairClient.ListRaceDetails()");
        var firstMarket = marketCatalogues.First();
        var raceDetails = _client.ListRaceDetails(new HashSet<string>() { firstMarket.Event.Id }).Result;
        Console.WriteLine("ListRaceDetails {0} {1}", raceDetails.Response.First().MeetingId, raceDetails.Response.First().RaceStatus.ToString());

        var marketListener = MarketListener.Create(_client, BFHelpers.HorseRacePriceProjection(), 1);

        while (_markets.Count > 0)
        {
            AutoResetEvent waitHandle = new AutoResetEvent(false);
            MarketCatalogue marketCatalogue;
            _markets.TryDequeue(out marketCatalogue);

            var marketSubscription = marketListener.SubscribeMarketBook(marketCatalogue.MarketId)
                .SubscribeOn(Scheduler.Default)
                .Subscribe(
                tick =>
                {
                    Console.WriteLine(BFHelpers.MarketBookConsole(marketCatalogue, tick, marketCatalogue.Runners));
                },
                () =>
                {
                    Console.WriteLine("Market finished");
                    waitHandle.Set();
                });

            waitHandle.WaitOne();
            marketSubscription.Dispose();
        }
    }