Exemplo n.º 1
0
def search_coin():
    #------------------------------------------------------
    # - 모든 코인 중 원하는 전략의 코인을 탐색
    # - 각 전략 함수
    #   --> Input Type = List
    #   --> Output Type = List
    #   --> Input 과 Output은 'tickers'로 통일
    # - 소요시간 : 대상 코인을 찾는데 소요된 시간
    # - 대상코인수 : 추가된 전략 대상 코인의 갯수
    #-----------------------------------------------------
    tickers = pyupbit.get_tickers("KRW")
    start_time = datetime.datetime.now()

    #------------------------------------
    # Coin 검색 전략 추가
    #------------------------------------
    tickers = ma_golden_cross(tickers, 60)

    #------------------------------------
    # Strtegy End.
    #------------------------------------

    end_time = datetime.datetime.now()
    print("대상코인수:[", len(tickers), "]", "소요시간:[", end_time - start_time, "]")
    print("코인[", tickers, "]")
Exemplo n.º 2
0
def upper_market():
    tickers = pyupbit.get_tickers(fiat="KRW")

    for ticker in tickers:
        bull_market(ticker)

    return upper_list
Exemplo n.º 3
0
def most_traded(cnt, now, flag):  ###changed
    """24시간 누적 거래대금 최대 티커 선별"""
    tickers = pyupbit.get_tickers(fiat="KRW")
    res = requests.request('GET',
                           'https://api.upbit.com/v1/ticker',
                           params={'markets': ','.join(tickers)})
    ticker_data = res.json()
    traded = {}
    most_traded_set = set()

    if flag == 1:
        for i in ticker_data:
            # if i['market'] not in ["KRW-BTC", "KRW-ETH", "KRW-XRP"]:
            traded[i['market']] = i['acc_trade_price']  ###changed
    elif flag == 2:
        for i in ticker_data:
            # if i['market'] not in ["KRW-BTC", "KRW-ETH", "KRW-XRP"]:
            traded[i['market']] = i['acc_trade_price_24h'] - i[
                'acc_trade_price']  ###changed
    else:
        return most_traded_set
    sorted_traded = sorted(traded.items(),
                           key=operator.itemgetter(1),
                           reverse=True)
    for i in range(cnt):
        most_traded_set.add(sorted_traded[i][0])
    return most_traded_set
Exemplo n.º 4
0
def main_bollinger():
    # Bollinger band check
    tickers = pyupbit.get_tickers(fiat='KRW')
    for ticker in tickers:
        #print(ticker)
        Bollinger_check(ticker)
        time.sleep(0.1)
Exemplo n.º 5
0
    def __init__(self, marketName="KRW"):
        self._marketName = marketName
        self._tickers = pyupbit.get_tickers(fiat=self._marketName)
        self._lookup = {}

        self.createContainers()
        self.getCandleData()
        self.analysisCandleData()
Exemplo n.º 6
0
 def setCodeToCombo(self):
     tickers = pyupbit.get_tickers()
     value_of_combo = [""]
     for i in tickers:
         if "KRW-" in i:
             value_of_combo.append(i)
     self.combo_code.addItems(value_of_combo)
     self.combo_code.setCurrentIndex(0)
Exemplo n.º 7
0
    def updateData(self, data):
        f = open("api.txt")
        lines = f.readlines()   # 모든 라인 읽어오기
        access = lines[0].strip()  # 0번째 줄 가져오기 strip()메소드를 사용해 '\n'을 없애기.
        secret = lines[1].strip()
        f.close()

        self.upbit = pyupbit.Upbit(access, secret)
        balances = self.upbit.get_balances()

        # 업비트가 지원하는 모든 원화마켓 가져오기
        krw_market = pyupbit.get_tickers(fiat="KRW")
        
        for j in range(len(balances)):
            ticker= "KRW-"+balances[j]['currency']
            
            # 지원하는 원화마켓과 다른 티커는 제외(비상장 코인이나 KRW-KRW문제)
            if ticker in krw_market:
                price = pyupbit.get_current_price(ticker)
                for i in range(len(balances)):
                    # 0) 코인명 
                    item_0 = self.tableBalances.item(i, 0)
                    item_0.setText(f"{balances[i]['currency']}")

                    # 1) 보유수량
                    item_1 = self.tableBalances.item(i, 1)
                    amount1 = float(balances[i]['balance']) + float(balances[i]['locked'])
                    item_1.setText(f"{amount1}")
                    
                    if "KRW-"+balances[i]['currency'] not in krw_market : pass
                    else :
                        # 2) 매수평균가
                        item_2 = self.tableBalances.item(i, 2)
                        item_2.setText(f"{balances[i]['avg_buy_price']} 원")

                        # 3) 평가금액
                        amount2 = price * (float(balances[i]['balance'])+float(balances[i]['locked']))  # 현재가 * (주문가능 금액 + 주문 묶여있는 금액)

                        item_3 = self.tableBalances.item(i, 3)
                        item_3.setText(f"{int(amount2)} 원")

                        # 4) 매수금액
                        amount3 = round(float(balances[i]['avg_buy_price']) * (float(balances[i]['balance']) + float(balances[i]['locked']))) # 매수평균가 * (주문가능 금액 + 주문 묶여있는 금액) 반올림
                        item_4 = self.tableBalances.item(i, 4)
                        item_4.setText(f"{str(amount3)} 원")

                        # 5) 평가손익
                        amount4 = round(amount2 - amount3, 2) # 평가금액 - 매수금액 -> 소수 둘째자리까지 반올림
                        item_5 = self.tableBalances.item(i, 5)
                        item_5.setText(f"{amount4}")
                    
                        try :
                            # 수익률
                            amount5 = round(amount4 / amount3 * 100,2) # 평가손익 / 매수금액
                            item_6 = self.tableBalances.item(i, 6)
                            item_6.setText(f"{str(amount5)} %")

                        except: pass
Exemplo n.º 8
0
    def run(self):
        krw_tickers = pyupbit.get_tickers(fiat="KRW")
        wm = pyupbit.WebSocketManager("ticker", krw_tickers)

        while True:
            data = wm.get()
            trade_date = data.get("trade_date")
            self.check_today(trade_date)
            self.hooking(**data)
Exemplo n.º 9
0
    def get_current_price(self):
        tickers = pyupbit.get_tickers(fiat="KRW")

        while True:
            markets = pyupbit.get_current_price(tickers)
            client.emit(
                "send_price",
                dict(tickers=tickers, markets=markets, size=len(markets)))
            time.sleep(1)
Exemplo n.º 10
0
def findListTarget():

    krw_tickers = pyupbit.get_tickers("KRW")
    arList = []

    for ticker in krw_tickers:
        df = pyupbit.get_ohlcv(ticker, interval="minute" + str(intervalMinute))
        tVolume = sum(df['volume']) / len(df['volume'])

        close = df['close']

        ma15 = deque(maxlen=15)
        ma50 = deque(maxlen=50)
        ma120 = deque(maxlen=120)

        ma15.extend(df['close'])
        ma50.extend(df['close'])
        ma120.extend(df['close'])

        curr_ma15 = sum(ma15) / len(ma15)
        curr_ma50 = sum(ma50) / len(ma50)
        curr_ma120 = sum(ma120) / len(ma120)

        window = close.rolling(3)
        ma5 = window.mean()
        avg_ma3 = ma5[-1]
        avg_ma3_2 = ma5[-2]
        avg_ma3_3 = ma5[-3]

        window = close.rolling(15)
        ma5 = window.mean()
        avg_ma15 = ma5[-1]
        avg_ma15_2 = ma5[-2]
        avg_ma15_3 = ma5[-3]

        if curr_ma15 > curr_ma50 > curr_ma120:
            print("a")
            if avg_ma15 < avg_ma3:
                print(
                    str(avg_ma15_3) + " > " + str(avg_ma3_3) + " , " +
                    str(avg_ma15_2) + " > " + str(avg_ma3_2) + " , ")
                if (avg_ma15_3 > avg_ma3_3 or avg_ma15_2 > avg_ma3_2):
                    print("c")
                    arList.append([ticker, tVolume])

        # if curr_ma15 > curr_ma50 > curr_ma120 and \
        #     avg_ma15 < avg_ma3 and \
        #     (avg_ma15_3 > avg_ma3_3 or avg_ma15_2 > avg_ma3_2 ):
        #     arList.append([ticker ,tVolume])
        time.sleep(0.05)

    if len(arList) > 0:
        arList.sort(reverse=True, key=lambda x: x[1])
        return arList[0][0]
    else:
        return None
Exemplo n.º 11
0
    def __init__(self, api_key): # api_key : dict 형태 --> api_key['access', 'secret']
        super().__init__(api_key['access'], api_key['secret'])
        self.ticker_list = pyupbit.get_tickers(fiat="KRW")  # 거래가능한 KRW 코인 추출
        self.account_info = self.get_balances()
        self.monitoring_list = dict()

        for ticker in self.ticker_list:
            self.monitoring_list[ticker] = 0

        """ 구조 재조정 필요
def main():
    try:
        #####################################################초기화##################################################### 
        print('Setting Parameters!')
        FEE = 0.9995
        MIN_ORDER_PRICE = 5000
        BUY_STACK = 1.25
        SELL_STACK = -2.25
        # BUY_HIGH_TO_CURRENCT = 10
        SELL_MIN_VAL = 1.25   #판매가 %
        
        SLEEP_TIME = 0.16
        CHECK_TIME = 180            #3분
        CHECK_TIME_SELL = 60        #1분
        DAY_CHECK_TIME = 43200       #12시간

        MAX_COIN_COUNT = 5

        markets = pu.get_tickers(fiat="KRW")
        market_count = len(markets)

        balance_f = get_total_balance()

        day_markets = []

        for market in markets:
            day_info = pu.get_ohlcv(market,interval='day',count=13)['close']
            time.sleep(SLEEP_TIME)
            ten_day_line = np.asarray(list(day_info.rolling(10).mean()[-3:]))
            five_day_line = np.asarray(list(day_info.rolling(5).mean()[-3:]))

            day_markets.append((five_day_line>ten_day_line).min())

        buy_markets,ordered_markets = get_buy_markets()
    
        print('start with {}'.format(buy_markets))
        print('start balance : {}'.format(balance_f))
        
        #####################################################실행#####################################################
        buy_process = multiprocessing.Process(target=buy_worker,args=('upbitbot_buy_module.py',FEE,MIN_ORDER_PRICE,BUY_STACK
        ,SLEEP_TIME,CHECK_TIME,DAY_CHECK_TIME,MAX_COIN_COUNT,markets,market_count,day_markets))

        sell_process = multiprocessing.Process(target=sell_worker,args=('upbitbot_sell_module.py',SLEEP_TIME,CHECK_TIME_SELL,markets,market_count,SELL_MIN_VAL,SELL_STACK))
        
        buy_process.start()
        sell_process.start()
        
        buy_process.join()
        sell_process.join()
        
    except:
        print('start balance : {}, last balance : {}'.format(balance_f,get_total_balance()))
        print('exit the program!')
        sys.exit()
Exemplo n.º 13
0
def get_tickers_global():
    tickers_KRW_global = pyupbit.get_tickers(fiat="KRW")
    exclusions = [
        'MARO', 'PCI', 'OBSR', 'SOLVE', 'QTCON', 'BTC', 'ETH', 'KMD', 'ADX',
        'LBC', 'IGNIS', 'DMT', 'EMC2', 'TSHP', 'LAMB', 'EDR', 'PXL'
    ]

    for exclusion in exclusions:
        exclusion_KRW = 'KRW-' + exclusion

        tickers_KRW_global.remove(exclusion_KRW)

    return tickers_KRW_global
Exemplo n.º 14
0
    def GetVolume(self):
        pairs = dict()
        tickers = pyupbit.get_tickers(fiat="KRW")

        self.SendMsg("Finding the Target Coins")
        for i in range(len(tickers)):
            time.sleep(0.5)
            df = pyupbit.get_ohlcv(tickers[i], "day")
            pairs['%s' % tickers[i]] = df.iloc[-1]["volume"] * df.iloc[-1]["close"]
        
        res = sorted(pairs.items(), key=lambda x: x[1], reverse=True)
        self.SendMsg(f"Found Target Coin\nTarget Coin : {res[0][0]}")
        return res[0][0]
Exemplo n.º 15
0
def DB_InserTacker():
    icount = 0

    sql = """SELECT * FROM tacker WHERE id = %s"""
    cursor.execute(sql, (id))
    result = cursor.fetchall()

    if len(result) < 1:
        balances = pyupbit.get_tickers("KRW")
        for b in balances:
            icount = icount + 1
            sql = """insert into tacker(id ,currency ,avgprice ,selper1,selper1_1 ,selper2,selper2_1 ,selper3,selper3_1) values (%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
            cursor.execute(sql, (id ,b ,0,1,20,2,30,3,50))
            print(cursor._executed)
Exemplo n.º 16
0
def KRW_Market():

    url = "https://api.upbit.com/v1/ticker?markets="
    market = str(pyupbit.get_tickers(fiat="KRW")).replace("[",
                                                          "").replace("]", "")
    market = market.replace("'", "")
    url = url + market

    response = requests.get(url)
    market_list = response.json()
    """for dic in market_list:
        del dic['trade_date', 'trade_time', 'trade_date_kst', 'trade_time_kst',
                'trade_timestamp', 'opening_price', 'high_price', 'low_price', 'change_price', 'change_rate',
                'acc_trade_price', 'acc_trade_volume', 'highest_52_week_date', 'lowest_52_week_date', 'timestamp']"""

    return market_list
Exemplo n.º 17
0
    def coin_search(self, coin_cnt=1):
        try:
            start_time = datetime.datetime.now()

            while True:
                _LOG_("coin_search()", "Coin Search Start!!")

                self.target_coin_list = pyupbit.get_tickers("KRW")

                #------------------------------------
                # Coin 검색 전략 추가
                #------------------------------------
                #tickers = ma_golden_cross(tickers, interval='day', term=60)
                #tickers = ma_golden_cross(tickers, interval='day', term=20)
                #tickers = ma_golden_cross(tickers, interval='day', term=1)
                #tickers = ma_golden_cross(tickers, interval='minutes1', term=5)
                #tickers = ma_golden_cross(tickers, interval='minutes1', term=3)
                #tickers = ma_golden_cross(tickers, interval='minutes1', term=1)

                if self.target_coin_list:
                    self.target_coin_list = net_change_desc(
                        self.target_coin_list)

                # 검색 전략에 해당하는 coin이 있는지 확인
                self.target_coin_list = [
                    i for i in self.target_coin_list
                    if i['price'] < self.current_invest_asset
                ]

                if self.target_coin_list:
                    break

            end_time = datetime.datetime.now()

            self.invest_possible = True

            print(self.target_coin_list)
            _LOG_(
                "coin_search()",
                f"소요시간:{end_time-start_time}, 전량 대상 코인 수:{len(self.target_coin_list)}"
            )
            return self.target_coin_list

        except Exception as x:
            print(x.__class__.__name__)
            print(traceback.format_exc())
            return None
Exemplo n.º 18
0
def firstfilter():  #첫번째 필터로 거래량 상위 10위까지 걸러낸다.
    coin = pyupbit.get_tickers(fiat="KRW")  #코인 이름 불러오기
    tikervolume = {}  #딕셔너리 초기화

    for i in range(len(coin)):
        try:  #예외처리
            df = pyupbit.get_ohlcv(coin[i], count=1)  #코인 고,저,종,거래량 불러오기
            tiker = coin[i]  #코인 이름을 담는다
            volumeup = df['volume']  #거래량만 담는다.
            tikervolume[tiker] = int(volumeup)  #key = tiker : value = volumeup
        except Exception as x:
            pass
    VolumeAscendingOrder = sorted(tikervolume.items(),
                                  key=lambda x: x[1])  #거래량 기준 오름차순
    ten = VolumeAscendingOrder[-10:]
    vo = dict(ten)  #딕셔너리 형식으로 넘겨준다.
    return list(vo.keys())  #키값만 뽑아서 리스트 형식으로 넘긴다.
Exemplo n.º 19
0
 def Serach_Target_Coin(self):
     candles_7d = dict()
     # 7일간
     krw_markets = pyupbit.get_tickers(fiat="KRW")
     print('평균 거래량 대비 60분 거래량 비율========================')
     max = -9999
     targetcoin=''
     for m in krw_markets:
         vol = self.upbit.get_minutes_candles(60, m, count=1)[0]['candle_acc_trade_volume']
         print('[{}]  (거래량:{}, )'.format(m,  format(vol, '.2f'), ))
         if vol>max:
             max=vol
             targetcoin=m
         time.sleep(0.2)
     print('거래량이 높은 타겟 코인'+targetcoin)
     self.target_coin = targetcoin
     return targetcoin
Exemplo n.º 20
0
def get_tickers_global(value_top_n=80):
    tickers_KRW_global = pyupbit.get_tickers(fiat="KRW")
    exclusions = ['BORA', 'BTC', 'ETH']

    for exclusion in exclusions:
        exclusion_KRW = 'KRW-' + exclusion
        # print(exclusion)
        tickers_KRW_global.remove(exclusion_KRW)
        
    values_global = np.array([])
    for ticker_KRW in tickers_KRW_global:
        values_global = np.append(values_global, get_value(ticker_KRW))
        
    
    """ 거래대금 상위 n 개 거래종목"""
    ids_high = values_global.argsort()[::-1][:value_top_n]
    tickers_value_high = []

    for i_high in ids_high:
        ticker_KRW = tickers_KRW_global[i_high]
        tickers_value_high.append(ticker_KRW)
        
    return tickers_value_high
Exemplo n.º 21
0
Arquivo: song.py Projeto: b0gus/play
def ticker_selection(flag, now_pick):  ###changed
    """24시간 누적 거래대금 최대 티커 선별"""
    tickers = pyupbit.get_tickers(fiat="KRW")
    res = requests.request('GET',
                           'https://api.upbit.com/v1/ticker',
                           params={'markets': ','.join(tickers)})
    ticker_dat = res.json()
    traded = {}
    ticker_data = list()
    ticker_trade_price = 0

    for i in ticker_dat:
        if 0.01 < i['signed_change_rate']:
            ticker_data.append(i)

    ticker = ''

    if flag == 1:
        for i in ticker_data:
            traded[i['market']] = i['acc_trade_price']
            if ticker_trade_price < i['acc_trade_price']:
                ticker = i['market']
                ticker_trade_price = i['acc_trade_price']
    elif flag == 2:
        for i in ticker_data:
            traded[
                i['market']] = i['acc_trade_price_24h'] - i['acc_trade_price']
            if ticker_trade_price < i['acc_trade_price_24h'] - i[
                    'acc_trade_price']:
                ticker = i['market']
                ticker_trade_price = i['acc_trade_price_24h'] - i[
                    'acc_trade_price']
    else:
        return None

    if ticker != now_pick:
        return ticker
Exemplo n.º 22
0
def select_tkrs(c):       # c==1 : 당일 Data, c==2 : 전일 Data
	# 데이터 스크래핑
    tkrs = pyupbit.get_tickers(fiat="KRW")
    vol =[0]*len(tkrs)
    data = [("tkr",0)] * len(tkrs)
    for i in range(0,len(tkrs)):
        df = pyupbit.get_ohlcv(tkrs[i], 'day', c)
        vol[i] = df.iloc[0]['volume'] * df.iloc[0]['close']
        data[i] = (tkrs[i], vol[i])
        time.sleep(0.1)
    data = sorted(data, key = lambda data: data[1], reverse = True)
	# 매수종목 선정
    selected = 0
    for i in range(0,20):
        tkr_top20[i] = data[i][0]
        if get_ma5(tkr_top20[i]) < get_current_price(tkr_top20[i]):         # 현재가가 5일 이평선보다 높은 경우 매수종목에 추가
            df = pyupbit.get_ohlcv(tkr_top20[i], interval="day", count=c)
            y_low_price[i] = df.iloc[0]['low']
            tkr_buy[selected] = tkr_top20[i]
            fBuy[i] = fSell[i] = 0
            selected += 1
            time.sleep(0.1)
    
    return selected
Exemplo n.º 23
0
def selectCode():
    allcode = pyupbit.get_tickers(fiat="KRW")

    todaylist = [] * len(allcode)

    for c in allcode:
        i = 0
        print(c)
        dfTemp = pyupbit.get_ohlcv(c, count=2)
        t0amount = dfTemp.iloc[0][4] * (dfTemp.iloc[0][1] +
                                        dfTemp.iloc[0][2]) / 2
        todaylist.append([c, t0amount])
        print(todaylist)
        print(dfTemp, "\n\n\n\n\n\n")

        time.sleep(0.3)
        i = i + 1

    col_name = ['code', 'am']
    list_df = pd.DataFrame(todaylist, columns=col_name)
    list_df = list_df.sort_values(by=['am'], ascending=False)
    print(list_df.head(5))

    list_df.to_csv("today_list.csv")
Exemplo n.º 24
0
import pyupbit
import numpy as np
import time
from datetime import datetime
import pandas as pd

start_time = datetime.now()

tickers = pyupbit.get_tickers(fiat="KRW")

start_day = datetime(2021, 8, 10)
today = datetime.now()
days = days = (today - start_day).days

################################################ Function ################################################


def backtest_and_bestk(ticker, days):
    def get_ror(ticker, k=0.5):
        df = pyupbit.get_ohlcv(ticker, interval="day", count=200)
        time.sleep(0.3)
        df['range'] = (df['high'] - df['low']) * k
        df['target'] = df['open'] + df['range'].shift(1)

        fee = 0.0005
        df['ror'] = np.where(df['high'] > df['target'],
                             df['close'] / df['target'] - fee, 1)

        ror = df['ror'].cumprod()[-2]
        return ror
Exemplo n.º 25
0
    _gain = gains.ewm(com=(period - 1), min_periods=period).mean()
    _loss = declines.abs().ewm(com=(period - 1), min_periods=period).mean()

    RS = _gain / _loss
    return pd.Series(100 - (100 / (1 + RS)), name="RSI")


interval = 30

upbit = pyupbit.Upbit("C0Az21yejT3prbheZAUdZMCUGi9Tr1R0OlSNgIp3",
                      "ZRozlBWm55cYlLjSmf9eBzYjhpuxUWeXKPFNzf4Q")

# ticker = "KRW-EOS"
iCount = 0
while True:
    tickers = pyupbit.get_tickers("KRW")
    time.sleep(0.1)

    for ticker in tickers:
        # ticker = "KRW-TFUEL"
        # df = pyupbit.get_ohlcv(ticker, interval="minute" + str(interval), count=int(200))
        # time.sleep(0.1)
        df1 = pyupbit.get_ohlcv(ticker,
                                interval="minute" + str(1),
                                count=int(200))
        time.sleep(0.1)
        df3 = pyupbit.get_ohlcv(ticker,
                                interval="minute" + str(3),
                                count=int(200))
        time.sleep(0.1)
        df5 = pyupbit.get_ohlcv(ticker,
Exemplo n.º 26
0
# 객체생성
f = open("C:\\Users\\GDC7\\Desktop\\pytext.txt")
lines = f.readlines()
access = lines[0].strip()
secret = lines[1].strip()
f.close
upbit = pyupbit.Upbit(access, secret)

# 변수설정
coin_name = []
coin_prices = []
coin_2nd_prices = []
fst_time = datetime.datetime(2020, 3, 14, hour=17, minute=34, second=50)
snd_time = datetime.datetime(2020, 3, 14, hour=17, minute=36, second=20)
tickers = pyupbit.get_tickers()

# 특정 두시간 사이의 가격을 가져오는 함수


def get_price_at_time(set_time):
    now = datetime.datetime.now()
    coin_name_list = []
    coin_prices_list = []
    # 첫번째 시간의 가격
    if now.hour == set_time.hour and now.minute == set_time.minute and set_time.second <= now.second <= set_time.second + 9:

        print(f"it's {now}")
        get_current_price = pyupbit.get_current_price(ticker=tickers)
        coin_name_list, coin_prices_list = list(
            get_current_price.keys()), list(get_current_price.values())
        for ticker in portfolio:
            print("{:<10} 목표가: {:>8} 현재가: {:>8} 고가: {:>8}".format(
                ticker, int(targets[ticker]), int(prices[ticker]),
                int(high_prices[ticker])))
    except:
        pass


#----------------------------------------------------------------------------------------------------------------------
# 매매 알고리즘 시작
#---------------------------------------------------------------------------------------------------------------------
now = datetime.datetime.now()  # 현재 시간 조회
sell_time1, sell_time2 = make_sell_times(now)  # 초기 매도 시간 설정
setup_time1, setup_time2 = make_setup_times(now)  # 초기 셋업 시간 설정

tickers = pyupbit.get_tickers(fiat="KRW")  # 티커 리스트 얻기
portfolio = select_portfolio(tickers)  # 듀얼 노이즈 전략 기반으로 portfolio 선정

targets = inquiry_targets(portfolio)  # 코인별 목표가 계산
mas = inquiry_moving_average(portfolio)  # 코인별로 5일 이동평균 계산
budget_per_coin = cal_budget()  # 코인별 최대 배팅 금액 계산

holdings = {ticker: False for ticker in portfolio}  # 보유 상태 초기화
high_prices = inquiry_high_prices(portfolio)  # 코인별 당일 고가 저장

while True:
    now = datetime.datetime.now()

    # 1차 청산 (08:50:00 ~ 08:50:10)
    if sell_time1 < now < sell_time2:
        try_sell(tickers)  # 각 가상화폐에 대해 매도 시도
Exemplo n.º 28
0
from tensorflow.python.client import device_lib 
device_lib.list_local_devices() 
tf.test.is_gpu_available()

## 개인정보 관리 주의 -----------------------------------------------##
access = "naahaVSh29BJPu3pfBZPEWSyjsGwytkYiexmAuHR"
secret = "e0fJfTu1BjPnn35Qc2pAOheSn7xCOXIMxG0Dzluj"
=======
access = "fqrmAq1mNy7tSeRYHy7ZOYXcEKqcWm9KcHCh8y6X"
secret = "LrmFrIUqve88d3yCF1W8n9KGEZ3rP0GYxb5EMjlT"
>>>>>>> Stashed changes
myToken = "xoxb-1995417427669-2004663172180-7lt6OQoJLd2U5hbnMg8pirL9"
##-------------------------------------------------------------------##

upbit = pyupbit.Upbit(access, secret)
tickers = pyupbit.get_tickers('KRW')

# 모델 학습 함수
def model_train(train_size = 10, interval_time = 'minute60', data_limit = 300):
  tickers_count = 0

  for item in tickers:
    tickers_count += 1
    df = pyupbit.get_ohlcv(item, interval=interval_time, count=data_limit)
    # orderbook = pyupbit.get_orderbook(item)
    
    X = np.array([np.array(df.close.iloc[a:a+train_size]) for a in range(len(df) - train_size)])
    Y = np.array(df.close.iloc[train_size:])

    # 훈련, 테스트 셋 분리
    X_train, X_test, y_train, y_test = train_test_split(X, Y, train_size=0.80, test_size=0.20, random_state=2)
Exemplo n.º 29
0
    """20봉 전 금액 조회"""
    df = pyupbit.get_ohlcv(ticker,
                           interval="minute" + str(intervalMinute),
                           count=icount + 1)
    global a20
    global a21

    a20 = df['close'][1]
    a21 = df['close'][0]


def get_current_price(ticker):
    """현재가 조회"""
    return pyupbit.get_orderbook(
        tickers=ticker)[0]["orderbook_units"][0]["ask_price"]


upbit = pyupbit.Upbit("LM6x7zWpGDRsx3xyQuLhAeEf4aVI22KLxtCogCfM",
                      "Pm9xi0Jl14auFBJgBq5SwICpvyTLFVRQ95IVOdzv")

while (True):
    print("START---------------")
    for ticker in pyupbit.get_tickers("KRW"):
        m20 = get_ma20(ticker, 20)
        get_After2(ticker, 20)
        np = get_current_price(ticker)
        if m20 < np and a20 < np and np < a21:
            print(ticker + " -> a20 : " + str(a20) + "  . np : " + str(np))
        time.sleep(1)
    print("---------------END")
#balances = upbit.get_balances()
Exemplo n.º 30
0
        start_time = get_start_time("KRW-BTC")  #9:00
        end_time = start_time + datetime.timedelta(days=1)  #9:00 + 1일

        # 9:00:02 시간에 전략값 갱신
        if now == start_time + datetime.timedelta(seconds=2):
            i = 0

        # 9:00 < 현재 < 다음날 8:59:50
        if start_time < now < end_time - datetime.timedelta(seconds=10):
            # else 갱신 키 : j
            j = 0
            # 전략값
            if i == 0:
                # 변동성 돌파 전략 list
                target_prices = []
                for bitcoin in pyupbit.get_tickers():
                    if bitcoin[0] == 'K' and bitcoin[1] == 'R' and bitcoin[
                            2] == 'W':
                        target_prices.append(get_target_price(
                            bitcoin, k_value))
                        time.sleep(0.1)

                # 이동평균선 15일 list
                ma15 = []
                for bitcoin in pyupbit.get_tickers():
                    if bitcoin[0] == 'K' and bitcoin[1] == 'R' and bitcoin[
                            2] == 'W':
                        ma15.append(get_ma15(bitcoin))
                        time.sleep(0.1)
                i = 1
            # 매수 작업