Пример #1
0
def pastPlay(betfairClient, exchangeId, marketId, timeId):
    """Clean up the race (delete betstore and datastore for that race)
    If timeId > 500 or timeId > 200 and no horses have been selected.
    Before deleting cancel any unmatched bets
    Executes clean_up
    """
    if ((timeId > 500 and collectData.Datastore[marketId]['inPlayDelay'] == 0) or
        (timeId > 200 and len(collectData.Datastore[marketId]['selectedRunnerIds']) == 0)):
        qwertybet.cancelBetsInMarket(betfairClient, marketId, timeId)
        cleanUp.clean_up(betfairClient, marketId)
        raise InPlayClause(1)
Пример #2
0
def inPlay(betfairClient, exchangeId, marketId, timeId):
    """
    This method handles the event when a market goes into play
    It monitors the event for 30 seconds before executing the clean up.
    """
    logger.debug('In Play Delay: %s', collectData.Datastore[marketId]['inPlayDelay'])
    if collectData.Datastore[marketId]['inPlayDelay'] > 0:
        #start counter for 30 seconds
        if 'initialInPlayTime' not in collectData.Datastore[marketId].keys():
            logger.info("~~~~~~~~~~~~~Market race has started!~~~~~~~~~~~~~")
            collectData.Datastore[marketId]['initialInPlayTime'] = collectData.Datastore[marketId]['timeDelta']
        logger.debug('Current time in play: %s',
                    (collectData.Datastore[marketId]['timeDelta'] -
                    collectData.Datastore[marketId]['initialInPlayTime']))
        if collectData.Datastore[marketId]['timeDelta'] - collectData.Datastore[marketId]['initialInPlayTime'] >= 30:
            qwertybet.cancelBetsInMarket(betfairClient, marketId, timeId)
            cleanUp.clean_up(betfairClient, marketId)
            raise InPlayClause(1)
Пример #3
0
def handle_IndexError(betfairClient, exchangeId, marketId):
    """IndexError caught check the market status is active.
    Return false if it is not active, else true
    """
    logger.warning('IndexError caught, check marketStatus is ACTIVE')
    market_price = qwertymarket.getMarketPricesCompressed(betfairClient,
                                                        exchangeId,
                                                        marketId)
    market_status = qwertymarket.marketStatus(market_price)
    if market_status != 'ACTIVE':
        time.sleep(5)
        market_price = qwertymarket.getMarketPricesCompressed(betfairClient,
                                                            exchangeId,
                                                            marketId)
        market_status = qwertymarket.marketStatus(market_price)
        if market_status != 'ACTIVE':
            cleanUp.clean_up(betfairClient, marketId)
            return False
        else:
            return True
Пример #4
0
     logger.exception('Error: Running Analysis or selecting horses at timeId: %s',
                     timeId)
     logger.exception("timeId: %s", timeId)
     raise e
 market_price = qwertymarket.getMarketPricesCompressed(betfairClient,
                                                         exchangeId,
                                                         marketId)
 market_status = qwertymarket.marketStatus(market_price)
 if market_status != 'ACTIVE':
     time.sleep(10)
     market_price = qwertymarket.getMarketPricesCompressed(betfairClient,
                                                             exchangeId,
                                                             marketId)
     market_status = qwertymarket.marketStatus(market_price)
     if market_status != 'ACTIVE':
         cleanUp.clean_up(betfairClient, marketId)
         break
     else:
         continue
 if collectData.Datastore[marketId]['selectedRunnerIds']:
     logger.debug('Selected RunnerIds: %s',
                 collectData.Datastore[marketId]['selectedRunnerIds'])
     if timeId >= 30:
         try:
             strategy.betsInMarket(betfairClient, marketId, timeId)
             logger.debug('Running strategy...')
             for selectionId in collectData.Datastore[marketId]['selectedRunnerIds']:
                 strategy.RunStrategy(betfairClient, marketId,
                                     selectionId, timeId)
             logger.debug('strategy calculation success.')
         except IndexError: