본문 바로가기
Trading/PythonForFinance

ALT - 암호화폐 / 트레이딩하기1 (업비트)

by bents 2021. 1. 15.

1. 업비트를 선택한 이유

: 원화 입출금 관리 가장 편리하네...

: 아이디 잃어버려도 다시 찾을 수 있다. (빗썸 안됨)

: 보안인증후, open api key 발급 (로그인할 때마다 카톡옴)

: 케이뱅크로 입금신청 

 

 

KRW마켓은 업비트가 나음

 

 

2. Upbit API wrapper sample 코드 . [코드참조]

- Upbit API [개발가이드] [request-api]

- upbit json 데이터 간편하게 보기 : validate json [site]

# request api
>pyupbit.get_tickers(fiat="KRW")
>pyupbit.get_current_price("KRW-BTC")
>pyupbit.get_ohlcv("KRW-BTC", interval="minute30")

                           open        high         low       close       volume
2021-01-11 11:30:00  40863000.0  41349000.0  40300000.0  40300000.0   750.058472

>pyupbit.get_orderbook("KRW-BTC")

[{
	'market': 'KRW-BTC',
	'timestamp': 1610691109693,
	'total_ask_size': 7.17131072,
	'total_bid_size': 6.98827612,
	'orderbook_units': [{ 
    # best price
		'ask_price': 41278000.0,
		'bid_price': 41271000.0,
		'ask_size': 0.08933783,
		'bid_size': 4.61387771
	}, { 
    ...


# quotation api
>upbit = pyupbit.Upbit(access_key, secret_key)
>upbit.get_balances() # 보유수량

[{
	'currency': 'KRW',
	'balance': '200000.0',
	'locked': '0.0',
	'avg_buy_price': '0',
	'avg_buy_price_modified': True,
	'unit_currency': 'KRW'
}]

>upbit.get_amount(ticker='KRW', contain_req=False) # 총 매수대금
>upbit.get_avg_buy_price(ticker='KRW', contain_req=False) # 평균 매수가
>upbit.get_chance(ticker='KRW-BTC', contain_req=False) # 왜있는지 ...

{
	'bid_fee': '0.0005',
	'ask_fee': '0.0005',
	'maker_bid_fee': '0.0005',
	'maker_ask_fee': '0.0005',
	'market': {
		'id': 'KRW-BTC',
		'name': 'BTC/KRW',
        ...

>order = upbit.buy_limit_order("KRW-BTC", 31172000, 0.0005); order
#upbit.buy_limit_order(ticker, price, volume, contain_req=False)
#upbit.sell_limit_order(ticker, price, volume, contain_req=False)

{
	'uuid': 'HASHED_ORDER_ID',
	'side': 'bid',
	'ord_type': 'limit',
	'price': '31172000.0',
	'state': 'wait',
	'market': 'KRW-BTC',
	'created_at': '2021-01-15T16:07:16+09:00',
	'volume': '0.0005',
	'remaining_volume': '0.0005',
	'reserved_fee': '7.793',
	'remaining_fee': '7.793',
	'paid_fee': '0.0',
	'locked': '15593.793',
	'executed_volume': '0.0',
	'trades_count': 0
}


> upbit.buy_market_order("KRW-BTC", 1000)
#upbit.buy_market_order(ticker, price, contain_req=False)
#upbit.sell_market_order(ticker, volume, contain_req=False)

>upbit.get_order("KRW-BTC")
#upbit.get_order( ticker, state='wait', kind='normal', contain_req=False):
#state주문상태(wait, done, cancel)
#kind주문유형(normal, watch)

[{
	'uuid': 'HASHED_ORDER_ID',
	'side': 'bid',
	'ord_type': 'limit',
	'price': '31172000.0',
	'state': 'wait',
	'market': 'KRW-BTC',
	'created_at': '2021-01-15T16:07:16+09:00',
	'volume': '0.0005',
	'remaining_volume': '0.0005',
	'reserved_fee': '7.793',
	'remaining_fee': '7.793',
	'paid_fee': '0.0',
	'locked': '15593.793',
	'executed_volume': '0.0',
	'trades_count': 0
}]

>upbit.cancel_order(order['uuid'], contain_req=False)

{
	'uuid': 'HASHED_ORDER_ID',
	'side': 'bid',
	'ord_type': 'limit',
	'price': '31172000.0',
	'state': 'wait',
	'market': 'KRW-BTC',
	'created_at': '2021-01-15T16:07:16+09:00',
	'volume': '0.0005',
	'remaining_volume': '0.0005',
	'reserved_fee': '7.793',
	'remaining_fee': '7.793',
	'paid_fee': '0.0',
	'locked': '15593.793',
	'executed_volume': '0.0',
	'trades_count': 0
}

> upbit.get_order('KRW-BTC')
[]

 

3. 매매전략 코드 만들기만 하면 됨.

 

4. USDT 거래는 KRW마켓에서 불가.

- 매매방법

KRW / BTC / USDT 마켓존재

: 업비트에서 USDT 사려면 KRW으로 BTC 사고, BTC로 USDT사기