BIBOT
BIBOT
BIBOT
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • 경제뉴스 일기 (11)
    • 바이낸스 (17)
    • 코딩 (15)
    • 기술적 트레이딩 (27)
    • 기타 (1)
    • 경제상식 (6)
    • 일상 (1)

블로그 메뉴

  • 홈
  • 선물거래 계산기
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 서버
  • 파이썬
  • 우분투
  • 파이썬 바이낸스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
BIBOT

BIBOT

바이낸스 펀딩피 전략 기본적인 파이썬 코드
코딩

바이낸스 펀딩피 전략 기본적인 파이썬 코드

2023. 3. 18. 14:41

 

펀딩 비율을 활용한 전략을 구현하려면, 먼저 바이낸스 API를 사용하여 펀딩 비율 데이터를 가져와야 합니다. 이를 위해 ccxt 라이브러리를 사용할 수 있습니다. 이 예제에서는 격리 마진 모드를 사용하고, USDT-M 시장의 펀딩 비율을 기반으로 전략을 구현합니다.

아래는 바이낸스 API를 활용해 펀딩피 전략을 구현한 파이썬 코드입니다.

 

import ccxt
import time

api_key = "your_api_key"
api_secret = "your_api_secret"

binance = ccxt.binance({
    'apiKey': api_key,
    'secret': api_secret,
    'timeout': 30000,
    'enableRateLimit': True,
})

symbol = 'BTC/USDT'
leverage = 10  # 레버리지 설정
target_profit_ratio = 0.002  # 목표 수익률

def get_funding_rate():
    data = binance.fapiPublic_get_fundingrate({"symbol": "BTCUSDT"})
    return float(data[-1]['fundingRate'])

def set_leverage(leverage):
    binance.fapiPrivate_post_leverage({"symbol": "BTCUSDT", "leverage": leverage})

def get_position():
    positions = binance.fapiPrivate_get_positionrisk()
    for position in positions:
        if position['symbol'] == 'BTCUSDT':
            return float(position['positionAmt'])
    return 0

def enter_position(direction):
    order = binance.fapiPrivate_post_order({
        "symbol": "BTCUSDT",
        "side": direction,
        "type": "MARKET",
        "quantity": 0.001,  # 투자 금액 설정
        "positionSide": "BOTH"
    })

def close_position():
    position = get_position()
    if position == 0:
        return

    direction = "SELL" if position > 0 else "BUY"
    order = binance.fapiPrivate_post_order({
        "symbol": "BTCUSDT",
        "side": direction,
        "type": "MARKET",
        "quantity": abs(position),
        "positionSide": "BOTH"
    })

set_leverage(leverage)

while True:
    funding_rate = get_funding_rate()
    position = get_position()

    if funding_rate > 0 and position <= 0:
        close_position()
        enter_position("BUY")
    elif funding_rate < 0 and position >= 0:
        close_position()
        enter_position("SELL")

    time.sleep(60 * 60 * 8)  # 8시간마다 실행

 

이 코드는 8시간마다 펀딩 비율을 확인하고, 펀딩 비율이 양수인 경우 롱 포지션을, 음수인 경우 숏 포지션을 차지합니다. 기대 수익률은 펀딩 비율과 레버리지에 따라 달라지며, 높은 레버리지를 사용할수록 리스크도 높아지므로 주의가 필요합니다. 이 전략은 과거 펀딩 비율이 일정 수준 이상인 경우에만 높은 수익률을 보여줄 수 있으며, 시장 상황에 따라 수익률이 크게 변동할 수 있습니다.

펀딩 비율이 양수일 때 롱 포지션을, 음수일 때 숏 포지션을 가지고 있으면 펀딩 비용을 받을 수 있습니다. 하지만 이러한 전략은 항상 이길 수 있는 전략이 아닙니다. 시장 상황에 따라 펀딩 비율이 예측과 다르게 움직일 수 있으며, 레버리지를 사용하는 경우 시장 변동성이 커질 때 리스크가 높아질 수 있습니다.

기대 수익률은 투자하는 시점의 펀딩 비율, 레버리지 설정 및 시장 상황에 따라 달라집니다. 과거 펀딩 비율의 평균값을 기반으로 전략의 기대 수익률을 추정할 수 있지만, 이는 미래의 수익률을 보장하지 않습니다. 이 코드를 사용할 때는 리스크 관리를 철저히 하고, 자본 손실에 대비하여 투자해야 합니다.

반응형
저작자표시 비영리 변경금지
    '코딩' 카테고리의 다른 글
    • 역사적으로 유명한 차트 패턴과 현재의 BTCUSDT의 차트 비교하여 가격 예측하기
    • Binance 거래소에서 전날 대비 거래량이 가장 많이 늘어난 코인 순으로 출력하는 파이썬 코드
    • 엘리어트 파동이론과 텐서플로우를 결합하여 바이낸스 BTCUSDT의 1시간 뒤 시세 예측하기
    • 텐서플로우로 1시간 뒤의 바이낸스 BTCUSDT 시가를 예측하는 프로그램 샘플 만들기
    BIBOT
    BIBOT

    티스토리툴바