def generate_pairs_filter_xml(maxpairs=None):

    lock = threading.Lock()
    exchanges = u.getExchangesFromXml('exchanges.xml')
    assets = u.getAssetsFromXml('assets.xml')
    logger = loggerHandler('generate_pairs_filter_xml',log_path='log/')
    
    u.initExchangesConcurrency(exchanges,assets,logger)
    pairs = u.getMostQuotedPairs(exchanges,logger)

    root = etree.Element('PairsFilter')

    if maxpairs:
        if maxpairs>len(pairs):
            maxpairs = len(pairs)
    else:
        maxpairs = len(pairs)
    
    for pair in pairs[:maxpairs]:
        node = etree.SubElement(root,'Pair',name=pair[1])
        
    str_xml = etree.tostring(root,pretty_print=True)
    outFile = open('pairs_filter.xml','w')
    outFile.write(str_xml.decode())
    outFile.close()
    logger.close()
#test if an exchange name exists in list of exchanges
def ExchangeExists(exchange_name,exchanges):
    for exchange in exchanges:
        if exchange.name.lower() == exchange_name.lower():
            return True
    return False

if __name__=="__main__":

    threads = []
    time_start = time.time()
    exchanges = u.getExchangesFromXml('exchanges.xml')
    assets = u.getAssetsFromXml('assets.xml')
    pairs_filter = u.getPairsFilterFromXml('pairs_filter.xml')
    logger = loggerHandler('exchange_listener',log_path='log/')
    loggerExchangeInfo = loggerHandler('exchange_info',log_path='log/')
    loggerArbitrage = loggerHandler('exchange_arbitrage',log_path='log/')

    #init exchanges
    u.initExchangesConcurrency(exchanges,assets,logger)
    
    #delete pair we are not listening
    u.deletePairsUnlistened(exchanges,pairs_filter)
    
    #listen to exchanges
    threads = u.launchExchangeListenersWithPairsFilter(exchanges,pairs_filter,logger)
    time.sleep(3)

    print('Launching shell....')
    print('****************************************************************')
Beispiel #3
0
try:
    import exchange_utils as u
    from exchange import Exchange
    from logger_handler import loggerHandler
    from worker import PriceListenerWorker
except ImportError:
    pass

import threading
import time

#test
if __name__=="__main__":

    logger = loggerHandler('test',log_path='log/')
    lock = threading.Lock()
    
    #getHttpResponse
    print('test getHttpResponse: ')
    print(u.getHttpResponse('https://btc-e.com/api/3/depth/btc_usd'))
    print('--------------------------------------')
    
    #getExchangesFromXml
    print('test getExchangesFromXml: ')
    exchanges = u.getExchangesFromXml('exchanges.xml')
    expected_len = 6
    for exchange in exchanges:
        print(exchange)
    if len(exchanges)!=expected_len:
        raise Exception('Expected # exchanges is ' + str(expected_len) +
                        ', only ' + str(len(exchanges)) + ' in the list')
Beispiel #4
0
    msg = 'Arbitrages stats:\n'
    for arb in listArb:
        prct,pair,avg_profit,listExchCouple = arb
        msg += pair + ': ' + str(round(prct*100,2)) + '% of total arbs for $' + str(avg_profit) + ' avg profit '
        for exchCouple in listExchCouple:
            exchFrom,exchTo = getExchFromCouple(exchCouple[1])
            msg += '[$' + str(exchCouple[0]) + ' ' + exchFrom + ' to ' + exchTo + ']'
        msg += '\n'
    s = '\n########################################################\n'
    logger.info(s + msg + s,bPrint=False)

    return msg
    
if __name__=='__main__':

    
    logger = loggerHandler('test_arbitrages_stats',log_path='log/')

    arbitrages = [[484.91,'btc-usd',[(444.3,'btc-e%%%okcoin'),(36.84,'btc-e%%%hitbtc'),(3.77,'btc-e%%%bter')]],
                  [484.91,'ltc-usd',[(444.3,'btc-e%%%okcoin'),(36.84,'btc-e%%%hitbtc'),(3.77,'btc-e%%%bter')]],
                  [384.91,'btc-usd',[(344.3,'btc-e%%%okcoin'),(36.84,'btc-e%%%hitbtc'),(3.77,'btc-e%%%bter')]],
                  [384.91,'ltc-usd',[(344.3,'btc-e%%%okcoin'),(36.84,'btc-e%%%hitbtc'),(3.77,'btc-e%%%bter')]],
                  [284.91,'btc-usd',[(184.91,'btc-e%%%okcoin'),(100.0,'btc-e%%%bter')]],
                  [284.91,'ltc-usd',[(184.91,'btc-e%%%okcoin'),(100.0,'btc-e%%%bter')]]]

    log_arbitrages_stats(arbitrages,logger)

    logger.close()