반응형
  • Target : 비전공자를 위한 초딩 매뉴얼
  • 목표 :  아래를 이용해서 프로그램 만들어보고 이해하기
    1. 추상클래스
    2. 클래스
    3. Import
  • 설명
    • 아... 추상클래스, 클래스, Import 도대체 뭐지? 맨날 헷갈리네.
    • 어렵게 생각하지말고 쉽게 생각하자.
    • 프로그램 만들 때 함수가 20개 넘어간다고 생각해보자. 
    • 위에서 부터 아래까지 파이썬 파일이 200줄이됬다. 엄청 길다. 헷갈린다.
    • 파일을 나누고 관리하면 편하겠다. 내가 만드는 함수들을 파일로 관리하자. --> 클래스
    • 어?  클래스 파일도 많아지네?  --> 추상클래스로 일목요연하게 정리하자
    • 와... 이제 함수 100개만들었다. 함수101번째 함수는 2번 함수를 가져와야되네? --> Import 해서 쉽게 가져오자

<폴더구조>

 

폴더1 : MyClass

       - Abstract_Class_File.py : 추상클래스

       - My_Class1_File.py : 클래스

폴더2 : MyMath

       -  Test1.py : 클래스 만든거 가져와서 실행해보기

 

1. 추상클래스 (Abstract_Class_File.py)

2. 클래스 (My_Class1_File.py)

 

3. 실행 파일 (Test1.py)

4. 에러

 - 아래와 같은 에러가 뜬다

 - "attempted relative import with no known parent package" 부모 페키지가 없다고 하는거 보니 경로를 못찾는거같다.

5. 클래스 (My_Class1_File.py) 을 고치자

 - 파이썬에게 다음을 알려주자

 - 파이썬! 현재 작성되고 있는 파일의 폴더의 절대경로를 directory 에 저장할게

 - 그리고 너가 모듈들을 불러올때 사용하는 주소록에 다가 이 프로젝트의 최상위 폴더를 추가해줘

6. 실행파일도 고치자

 - 여기도 경로를 알려주자

7. 결과

 - 아래와 같이 결과가 잘 나오는걸 볼 수 있습니다.

반응형
반응형

가상환경을 설정하는 방법을 설명하겠습니다.

배경 : 프로젝트를 여러가지 하다보면 이것저것 패키지가 많이 쌓여서 어떤 프로젝트가 어떤 패키지를 쓰는지 모름

그러므로 가상환경(폴더)을 생성해서 거기서 한 프로젝트에 필요한 패키지를 관리하기 용이함

 

1. virtualenv 설치

pip install virtualenv

 

2. 가상 환경 폴더 생성

virtualenv 가상폴더명
(예: virtualenv test)

 

3. 가상폴더로 들어가기

source ./가상폴더명/bin/activate
(예 : source ./test/bin/activate)

 

4. 가상폴더 현황 체크해보기

pip list
python -V

 

5. 현재까지 pip으로 설치한 패키지 현황 txt로 저장 및 터미널에서 출력

pip freeze > requirements.txt
cat requirements.txt

 

6. 텍스트파일로 패키지 한꺼번에 설치하기

pip install -r requirements.txt

 

7. 가상환경 나가기

deactivate

 

반응형
반응형

1. 라이브러리 설치

import ccxt
import time
import pandas as pd
import pprint

2. API 키 

access = "DXXXX"
secret = "DXXXX"

3. 바이낸스에 연결

binance = ccxt.binance(config={
  'apiKey': access,
  'secret': secret,
  'enableRateLimit': True,
  'options': {
        'defaultType': 'future'
    }
})

4. 시장가 포지션

4.1 롱 포지션 생성 후 포지션 종료 - 시장가

Target_Coin_Ticker = "BTC/USDT"
binance.create_market_buy_order(Target_Coin_Ticker, 0.001)
binance.create_market_sell_order(Target_Coin_Ticker, 0.001)

4.2 숏 포지션 생성 후 포지션 종료 - 시장가

Target_Coin_Ticker = "BTC/USDT"
binance.create_market_sell_order(Target_Coin_Ticker, 0.001)
binance.create_market_buy_order(Target_Coin_Ticker, 0.001)

5. 지정가 포지션

5.1 롱 포지션 생성 후 포지션 종료 - 지정가

Target_Coin_Ticker = "BTC/USDT"
binance.create_market_se_order(Target_Coin_Ticker, 0.001)
binance.create_market_sell_order(Target_Coin_Ticker, 0.001)

5.2 숏 포지션 생성 후 포지션 종료 - 지정가

- 지정가로 숏 포지션 생성하기

 
Target_Coin_Ticker = "BTC/USDT"
btc = binance.fetch_ticker(Target_Coin_Ticker)
btc_price = btc['close']
binance.create_limit_sell_order(Target_Coin_Ticker, 0.005, btc_price)
 
5.2.1 잔고 가져오기
 - 선물(Future)거래 계정내 USDT 잔고가져오기
balance = binance.fetch_balance({'type':'future'})
print(balance['USDT'])
 
5.2.2 현재 손익 현황 
 - 숏 포지션에 대한 현재 손익 현황 가져오기
Target_Coin_Symbol = "BTCUSDT"
amt = 0
entryPrice = 0
leverage = 1
unrealizedProfit = 0

for posi in balance['info']['positions']:
  if posi['symbol'] == Target_Coin_Symbol:
    leverage = float(posi['leverage'])
    entryPrice = float(posi['entryPrice'])
    unrealizedProfit = float(posi['unrealizedProfit'])
    amt = float(posi['positionAmt'])

print("수량:",amt)
print("진입가:",entryPrice)
print("레버리지:",leverage)
print("미실현손익:",unrealizedProfit)
5.2.3 현재 투자자 현황 보기 (호가조회)
 - 호가창 조회하기
 
orderbook = binance.fetch_order_book(Target_Coin_Ticker)
def Selling_Amount(a):
    result = round(orderbook['asks'][a][0]*orderbook['asks'][a][1])
    return result
def Buying_Amount(a):
    result = round(orderbook['bids'][a][0]*orderbook['bids'][a][1])
    return result

print("현재 Ask(매도)가격:$",orderbook['asks'][0][0],", 수량:", orderbook['asks'][0][1], ", 총액:", Selling_Amount(0))
print("현재 Bid(매수)가격:$",orderbook['bids'][0][0],", 수량:", orderbook['bids'][0][1], ", 총액:", Buying_Amount(0))


5.2.4 숏 포지션 끝내기

 - 호가창 조회하기
abs_amt = abs(amt)
Terminate_entryPrice = entryPrice * 0.999
binance.create_limit_buy_order(Target_Coin_Ticker, abs_amt, Terminate_entryPrice)
반응형

+ Recent posts