예제 #1
0
 def test_get_market_all(self):
     upbit = Upbitpy()
     ret = upbit.get_market_all()
     self.assertIsNotNone(ret)
     self.assertNotEqual(len(ret), 0)
     logging.info(ret)
     logging.info(upbit.get_remaining_req())
예제 #2
0
def main():
    upbit = Upbitpy()

    # 모든 원화 market 얻어오기
    all_market = upbit.get_market_all()
    krw_markets = []
    for m in all_market:
        if m['market'].startswith('KRW'):
            krw_markets.append(m['market'])

    candles_7d = dict()
    # 7일간 거래량
    for m in krw_markets:
        candles_7d[m] = upbit.get_weeks_candles(m, count=1)[0]
        check_remaining_candles_req(upbit)

    while True:
        logging.info('평균 거래량 대비 {}분 거래량 비율========================'.format(
            INTERVAL_MIN))
        for m in krw_markets:
            vol = upbit.get_minutes_candles(
                1, m, count=1)[0]['candle_acc_trade_volume']
            vol_7d = candles_7d[m]['candle_acc_trade_volume']
            vol_7d_avg = (((vol_7d / 7.0) / 24.0) / 60.0) * INTERVAL_MIN
            vol_ratio = format((vol / vol_7d_avg) * 100.0, '.2f')
            logging.info('[{}] {}% (거래량:{}, 평균:{})'.format(
                m, vol_ratio, format(vol, '.2f'), format(vol_7d_avg, '.2f')))
            check_remaining_candles_req(upbit)
        wait(INTERVAL_MIN)
예제 #3
0
class Upbit:
    def __init__(self):
        self.__upbit = Upbitpy()
        self.__krw_markets = self.__get_krw_markets()

    def __get_krw_markets(self):
        krw_markets = dict()
        all_markets = self.__upbit.get_market_all()

        for market in all_markets:
            if market['market'].startswith('KRW-'):
                krw_markets[market['market']] = market
        return krw_markets

    def get_days_candles(self, market):
        if market not in self.__krw_markets.keys():
            return None
        candles = self.__upbit.get_days_candles(market, count=10)
        return candles

    def get_days_many_candles(self, market):
        if market not in self.__krw_markets.keys():
            return None
        candles = self.__upbit.get_days_candles(market, count=100)
        return candles
예제 #4
0
class MarketSearcher:
    def __init__(self):
        self.upbit = Upbitpy()
        self.markets = self.upbit.get_market_all()
        self.KRWmarkets = []
        self.BTCmarkets = [] 
        self.USDmarkets = []

        for market in markets:
            self.pair = market['market']
            self.marketname = pair[0:3]
            if self.marketname == 'BTC':
                self.BTCmarkets.append(pair)
            elif self.marketname == 'KRW':
                self.KRWmarkets.append(pair)
            else:
                self.USDmarkets.append(pair)


        
    def get_market_spread(self, makret): #market parameter must be list
        orderbook = upbit.get_orderbook(market)
        surfaceorder = orderbook[0]['orderbook_units'][0]
        spread = (surfaceorder['ask_price'] - surfaceorder['bid_price']) / surfaceorder['ask_price']
        return spread



    def get_mininum_tick(self, price):
        if price <= 10:
            return 0.01
        elif price <= 100:
            return 0.1
        elif price <= 1000:
            return 1
        elif price <= 10000:
            return 5
        elif price <= 100000:
            return 10
        elif price <= 5000000:
            return 50
        elif price <= 1000000:
            return 100
        elif price <= 2000000:
            return 500
        else:
            return 1000
예제 #5
0
파일: my.py 프로젝트: rachoA/secrettrading
def main():
    upbit = Upbitpy()

    # 모든 market 얻어오기
    all_market = upbit.get_market_all()

    # market 분류
    market_table = {'KRW': []}
    for m in all_market:
        for key in market_table.keys():
            if m['market'].startswith(key):
                market_table[key].append(m['market'])

    # 마켓 별 가격을 가져와 출력
    for key in market_table.keys():
        logging.info('{} 마켓:'.format(key))
        tickers = upbit.get_ticker(market_table[key])
        print_tickers(tickers)
예제 #6
0
        commit_db('INSERT INTO Transaction_history (uid, code, num, price, date, trade_type, completed) VALUES (?, ?, ?, ?, ?, ?, ?)', [data[0],data[1],data[2],data[3],strftime("%Y-%m-%d %H:%M:%S"),data[5],data[6]])


class ThreadCount(object):
    def __init__(self):
        self = []
    def append(self, thread):
        self = [thread]
    def getCount(self):
        return len(self)
    def join(self):
        self[0].join()


class User:
    def __init__(self, uid, uname, password):
        self.id = uid
        self.uname = uname
        self.password = password

# Now, run the app as a server in debug mode or public mode
if __name__ == '__main__':
    upbit = Upbitpy()
    markets = upbit.get_market_all()
    for market in markets:
        if 'KRW-' in market['market']:
            krw_markets.append(market['market'])
    #wsgi.server(eventlet.listen(('127.0.0.1', 5000)), app
    socketio.run(app, debug=True)
  #  app.run(debug=True)        # Debug mode will reload files when changed.
    # app.run(host='0.0.0.0')  # To make the server listen on all public IPs.
예제 #7
0
class Upbit:
    def __init__(self):
        self.__upbit = Upbitpy()
        self.__krw_markets = self.__get_krw_markets()

    def __get_krw_markets(self):
        krw_markets = dict()
        all_markets = self.__upbit.get_market_all()
        for market in all_markets:
            if market['market'].startswith('KRW-'):
                krw_markets[market['market']] = market
        # print(krw_markets)
        return krw_markets

    def get_15minutes_candle(self, market):
        '''
        주어진 코인명에 대하여 15분 봉의 200개 캔들을 조회
        :param market: 마켓 네임
        :return: 데이터 프레임 columns={"opening_price": "open", "high_price": "high", "low_price": "low", "trade_price": "close"})
        '''
        if market not in self.__krw_markets.keys():
            return None
        candles = self.__upbit.get_minutes_candles(15, market, count=1)
        dt_list = [datetime.datetime.strptime(x['candle_date_time_kst'], "%Y-%m-%dT%H:%M:%S") for x in candles]
        df = pd.DataFrame(candles, columns=['opening_price', 'high_price', 'low_price', 'trade_price',
                                            'candle_acc_trade_volume'], index=dt_list)
        df = df.rename(
            columns={"opening_price": "open", "high_price": "high", "low_price": "low", "trade_price": "close",
                     "candle_acc_trade_volume": "volume"})
        # print(candles, type(candles))
        return df

    def get_1hour_candle(self, market):
        '''
        주어진 코인명에 대하여 1시 봉의 1개 캔들을 조회
        :param market: 마켓 네임
        :return: 데이터 프레임 columns={"opening_price": "open", "high_price": "high", "low_price": "low", "trade_price": "close"})
        '''
        if market not in self.__krw_markets.keys():
            return None
        candles = self.__upbit.get_minutes_candles(60, market, count=1)
        dt_list = [datetime.datetime.strptime(x['candle_date_time_kst'], "%Y-%m-%dT%H:%M:%S") for x in candles]
        df = pd.DataFrame(candles, columns=['opening_price', 'high_price', 'low_price', 'trade_price',
                                            'candle_acc_trade_volume'], index=dt_list)
        df = df.rename(
            columns={"opening_price": "open", "high_price": "high", "low_price": "low", "trade_price": "close",
                     "candle_acc_trade_volume": "volume"})
        # print(candles, type(candles))
        return df

    def get_current_price(self, market):
        cp = self.__upbit.get_ticker(market)
        # print(cp)
        return cp

    def get_hour_candles(self, market):
        if market not in self.__krw_markets.keys():
            return None
        candles = self.__upbit.get_minutes_candles(15, market, count=60)
        # print(candles)
        return candles
예제 #8
0
from upbitpy import Upbitpy

upbitpy = Upbitpy()
allMarket = upbitpy.get_market_all()
KRWList = []
BTCList = []


def GetBTCList(MarketList):
    List = []
    for i in MarketList:
        if (i['market'][0:3] == 'BTC'):
            List.append(i['market'])

    global BTCList
    BTCList = List


def GetKRWList(MarketList):
    List = []
    for i in MarketList:
        if (i['market'][0:3] == 'KRW'):
            List.append(i['market'])

    global KRWList
    KRWList = List


def CanTradeKRWByBTC(KRWList, BTCList):
    List = []
    for i in KRWList:
예제 #9
0
# get withraws chance
# print_json_data(upbitpy.get_withraws_chance('QTUM'))

# withdraws coin (not tested)
# print_json_data(upbitpy.withdraws_coin('QTUM', 1, 'input address'))

# withdraws krw (not tested)
# print_json_data(upbitpy.withdraws_krw('1000000000'))

###############################################################
# QUOTATION API
###############################################################

# get market all
print_json_data_list(upbitpy.get_market_all())

# get candles - minutes
# print_json_data_list(upbitpy.get_minutes_candles(240, 'KRW-QTUM'))

# get candles - days
# print_json_data_list(upbitpy.get_days_candles('KRW-QTUM', count=10))

# get candles - weeks
# print_json_data_list(upbitpy.get_weeks_candles('KRW-EOS'))

# get candles - month
# print_json_data_list(upbitpy.get_months_candles('KRW-BTC'))

# get trades ticks
# print_json_data_list(upbitpy.get_trades_ticks('KRW-QTUM'))
예제 #10
0
from upbitpy import Upbitpy
from time import sleep
import datetime

if __name__ == '__main__':
    print("")
    print("")
    print("start")

    upbit = Upbitpy()

    all_market = upbit.get_market_all()
    market_table = {'KRW': []}

    for m in all_market:
        for key in market_table.keys():
            if m['market'].startswith(key):
                market_table[key].append(m['market'])

    count = 0
    before = 481

    while 1:
        for key in market_table.keys():
            tickers = upbit.get_ticker(market_table[key])
            for it in tickers:
                if it['market'].startswith('KRW-XRP'):
                    rate = (it['trade_price'] - before) / before * 100
                    if rate > 2:
                        now = datetime.datetime.now()
                        print('{} [{}] {} : {} = {}'.format(