upbitarbi / -

0 stars 0 forks source link

조코딩님 질문 있어요 #1

Open upbitarbi opened 3 years ago

upbitarbi commented 3 years ago

import time import pyupbit import datetime

access = "your-access" secret = "your-secret"

def get_target_price(ticker, k): """변동성 돌파 전략으로 매수 목표가 조회""" df = pyupbit.get_ohlcv(ticker, interval="day", count=2) target_price = df.iloc[0]['close'] + (df.iloc[0]['high'] - df.iloc[0]['low']) * k return target_price

def get_start_time(ticker): """시작 시간 조회""" df = pyupbit.get_ohlcv(ticker, interval="day", count=1) start_time = df.index[0] return start_time

def get_balance(ticker): """잔고 조회""" balances = upbit.get_balances() for b in balances: if b['currency'] == ticker: if b['balance'] is not None: return float(b['balance']) else: return 0

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

로그인

upbit = pyupbit.Upbit(access, secret) print("autotrade start")

자동매매 시작

while True: try: now = datetime.datetime.now() start_time = get_start_time("KRW-BTC") end_time = start_time + datetime.timedelta(days=1)

    if start_time < now < end_time - datetime.timedelta(seconds=10):
        target_price = get_target_price("KRW-BTC", 0.5)
        current_price = get_current_price("KRW-BTC")
        if target_price < current_price:
            krw = get_balance("KRW")
            if krw > 5000:
                upbit.buy_market_order("KRW-BTC", krw*0.9995)
    else:
        btc = get_balance("BTC")
        if btc > 0.00008:
            upbit.sell_market_order("KRW-BTC", btc*0.9995)
    time.sleep(1)
except Exception as e:
    print(e)
    time.sleep(1)

이게 조코딩님이 쓰신거고 제가 마지막 부분을 약간 바꿔 봤어요.

if start_time < now < end_time - datetime.timedelta(seconds=10):
krwprice = get_current_price("KRW-DOGE") btcprice = get_current_price("BTC-DOGE") if krwprice1.02 < btcprice
upbit.buy_market_order("KRW-DOGE", krw
0.9995) upbit.sell_market_order("BTC-DOGE") upbit.sell_market_order("KRW-BTC") elif btcprice1.02 < krwprice: upbit.buy_market_order("KRW-BTC", krw0.9995)
upbit.buy_market_order("BTC-DOGE", btc*0.9995)
upbit.sell_market_order("KRW-DOGE") if start_time < now < end_time - datetime.timedelta(seconds=10):

도지코인이 krw마켓에서 비싸면 btc를 사고 btc 마켓에서 도지코인을 사서 krw마켓에서 도지코인을 팔고 반대 경우에도 같은 방식으로 하는 재정거래 코드를 짜 봤어요 그런데 if krwprice*1.02<btcprice ^ SyntaxError: invalid syntax
이 부분이 오류가 나요. 조코딩님이라면 어떤 코인의 krw마켓과 btc혹은 usdt마켓의 시세 차이가 날때 거래하게 하는 코드를 어떻게 짜시는지 알려주시면 감사하겠습니다.

upbitarbi commented 3 years ago

if start_time < now < end_time - datetime.timedelta(seconds=10):
krwprice = get_current_price("KRW-DOGE") btcprice = get_current_price("BTC-DOGE") if krwprice1.02 < btcprice
upbit.buy_market_order("KRW-DOGE", krw
0.9995) upbit.sell_market_order("BTC-DOGE") upbit.sell_market_order("KRW-BTC") elif btcprice1.02 < krwprice: upbit.buy_market_order("KRW-BTC", krw0.9995)
upbit.buy_market_order("BTC-DOGE", btc*0.9995)
upbit.sell_market_order("KRW-DOGE")