Skip to content

Instantly share code, notes, and snippets.

@mr-yoo
Created May 8, 2021 08:24
Show Gist options
  • Save mr-yoo/bf151d79eb0ccd553e339a13cf576cde to your computer and use it in GitHub Desktop.
Save mr-yoo/bf151d79eb0ccd553e339a13cf576cde to your computer and use it in GitHub Desktop.
실시간 1퍼센트 치고 빠지기 - 멀티 코인
import threading
import queue
import time
import pyupbit
import datetime
from collections import deque
import realcoin
tickers = ["KRW-ADA", "KRW-LTC"]
class Consumer(threading.Thread):
def __init__(self, q):
super().__init__()
self.q = q
with open("upbit.txt", "r") as f:
key0 = f.readline().strip()
key1 = f.readline().strip()
self.u = { }
for ticker in tickers:
self.u[ticker] = realcoin.Real1Percent(key0, key1, ticker)
def run(self):
price_curr = { }
for ticker in tickers:
price_curr[ticker] = None
i = 0
while True:
try:
if not self.q.empty():
price_open = self.q.get()
for ticker in price_open:
self.u[ticker].update(price_open[ticker], price_curr[ticker])
price_curr = pyupbit.get_current_price(tickers)
for ticker in tickers:
if self.u[ticker].can_i_buy(price_curr[ticker]) :
self.u[ticker].make_order()
if self.u[ticker].can_i_sell():
self.u[ticker].take_order()
# 1 minutes
if i == (5 * 60 * 1):
now = datetime.datetime.now()
for ticker in tickers:
print(f"[{now}] {ticker} : 현재가 {price_curr[ticker]}, 목표가 {self.u[ticker].price_buy}, ma {self.u[ticker].curr_ma15:.2f}/{self.u[ticker].curr_ma50:.2f}/{self.u[ticker].curr_ma120:.2f}, hold_flag {self.u[ticker].hold_flag}, wait_flag {self.u[ticker].wait_flag}")
i = 0
i += 1
except:
print("error")
time.sleep(0.2)
class Producer(threading.Thread):
def __init__(self, q):
super().__init__()
self.q = q
def run(self):
while True:
prices = pyupbit.get_current_price(tickers)
self.q.put(prices)
time.sleep(60)
q = queue.Queue()
Producer(q).start()
Consumer(q).start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment