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, "]")
def upper_market(): tickers = pyupbit.get_tickers(fiat="KRW") for ticker in tickers: bull_market(ticker) return upper_list
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
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)
def __init__(self, marketName="KRW"): self._marketName = marketName self._tickers = pyupbit.get_tickers(fiat=self._marketName) self._lookup = {} self.createContainers() self.getCandleData() self.analysisCandleData()
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)
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
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)
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)
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
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()
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
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]
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)
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
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
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()) #키값만 뽑아서 리스트 형식으로 넘긴다.
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
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
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
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
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")
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
_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,
# 객체생성 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) # 각 가상화폐에 대해 매도 시도
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)
"""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()
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 # 매수 작업