바이낸스 양방향 자동매매 하는 법 (헤지 모드)

바이낸스 양방향

바이낸스 양방향 자동매매 하는 법 (헤지 모드)

바이낸스 양방향

바이낸스에서도 양방향 매매를 할 수 있습니다.

롱 포지션과 숏 포지션을 동시에 잡을 수 있는 모드를 말하구요!

우리 클래스에서는 단방향 모드(One-way Mode)로 바이낸스 자동매매 봇을 만들었었는데,

설정에서 헤지 모드(Hedge Mode)로 바꾸면 양방향 매매도 가능해 집니다!

바이낸스 양방향

실제 제가 양방향 매매 봇을 소액으로 돌리는 모습,

일단 양방향 매매를 하려면 바이낸스 웹이나 앱에서

양방향 모드를 지원하게 셋팅을 바꿔야 합니다!


헤지 모드 셋팅 방법!

바이낸스 접속하셔서 선물거래 할 수 있는 차트화면 우측에 보시면 아래와 같은 버튼이 있습니다!

바이낸스 양방향

누르시면 여러 메뉴가 나오는데 Preference(설정) 메뉴를 클릭합니다!

바이낸스 양방향

그리고 Position Mode 를 누르고 One-way Mode에서 Hedge Mode로 변경합니다!

바이낸스 양방향

그러면 이제 양방향 매매(동시에 롱과 숏을 잡을 수 있음)를 할 수 있습니다!!!

자 이제 파이썬으로 어떻게 코딩해야 할지 알아야 겠죠?


“봇이 동작하지 않는다구요? 그럼 어떻게 자동매매 시스템을 만들죠?”

걱정마세요! 제가 어디를 수정해야 되는지 알려드릴테니깐 ^^

봇이 동작하지 않는 이유는 포지션 잡는 부분의

파이썬 코딩이 바뀌어야 되기 때문입니다.

당연하겠죠? 양방향 동시에 포지션을 잡을 수 있으니까요.

아래 내용 참고하여 기존의 봇들도 수정하면 양방향 모드 상태에서도

기존 봇들을 운영하실 수 있습니다~^^!

이 포스팅 마지막에 샘플 파이썬 코드를 다운로드할 수 있으니 받으시면 되는데

그전에 하나하나 정리를 해보죠! (정독하세요!!!)

수강생 분들은 챕터 7-4까지 완강하셔야 제공되는 코드가 이해되니

7-4까지 정주행 하시고 다시 오세요!

챕터 7-4에 수업노트에 또 안내해 드립니다 ^^!


먼저 롱 포지션 잡기!

1) 시장가로 롱 포지션 잡기!

params = { ‘positionSide’ : ‘LONG’ } 데이터 = binanceX . create_market_buy_order ( Target_Coin_Ticker , test_amt , params )

시장가로 롱 포지션 잡을 때는 위와 같이 코딩하면 됩니다.

함수 안의 첫번째 파라미터는 티커, 두번째는 수량, 세번째는 그냥 저렇게 넣으시면 됩니다.

2) 지정가로 롱 포지션 잡기!

params = { ‘positionSide’ : ‘LONG’ } 데이터 = binanceX . create_limit_buy_order ( Target_Coin_Ticker , test_amt , coin_price , params )

지정가로 롱 포지션 잡을 때는 위와 같이 코딩하면 됩니다.

함수 안의 첫번째 파라미터는 티커, 두번째는 수량, 세번째는 원하는가격, 네번째는 마찬가지로 저렇게 넣으시면 됩니다.

3) 시장가로 롱 포지션 종료하기!

params = { ‘positionSide’ : ‘LONG’ } 데이터 = binanceX . create_market_sell_order ( Target_Coin_Ticker , test_amt , params )

시장가로 롱 포지션 종료할 때는 위와 같이 코딩하면 됩니다.

포지션 잡을때랑 종료할때 어떻게 다른지 잘 비교해 보세요!

4) 지정가로 롱 포지션 종료하기

params = { ‘positionSide’ : ‘LONG’ } 데이터 = binanceX . create_limit_sell_order ( Target_Coin_Ticker , test_amt , coin_price , params )

지정가로 롱 포지션 종료할 때는 위와 같이 코딩하면 됩니다.

롱 포지션 잡을때는 LONG, buy 조합,

롱 포지션 종료할때는 LONG, sell 조합

이라고 이해하시면 되겠네요

original 4

다음 숏 포지션 잡기!

설명은 생략할께요~~ㅎ

1) 시장가로 숏 포지션 잡기!

params = { ‘positionSide’ : ‘SHORT’ } 데이터 = binanceX . create_market_sell_order ( Target_Coin_Ticker , test_amt , params )

2) 지정가로 숏 포지션 잡기!

params = { ‘positionSide’ : ‘SHORT’ } 데이터 = binanceX . create_limit_sell_order ( Target_Coin_Ticker , test_amt , coin_price , params )

3) 시장가로 숏 포지션 종료하기!

params = { ‘positionSide’ : ‘SHORT’ } 데이터 = binanceX . create_market_buy_order ( Target_Coin_Ticker , test_amt , params )

4) 지정가로 숏 포지션 종료하기

params = { ‘positionSide’ : ‘SHORT’ } 데이터 = binanceX . create_limit_buy_order ( Target_Coin_Ticker , test_amt , coin_price , params )

숏 포지션 잡을때는 SHORT, sell 조합,

숏 포지션 종료할때는 SHORT, buy 조합

이라고 이해하시면 되겠네요

즉 단방향 모드에서는 롱을 종료하기 위해 숏 주문을 넣었는데

양방향 모드에서는 롱을 종료하려면 롱 종료 주문을 넣어야 되는 겁니다.

또 단방향 모드에서는 롱을 종료하기 위해 숏 주문을 넣었는데 롱보다 수량을 많게 넣으면

롱 포지션 종료되고 남은 수량 만큼 숏 포지션이 잡혔는데

양방향 모드에서는 아까 언급했듯이

롱 포지션을 종료하려면 롱 종료 주문을 넣어야 되고

숏포지션을 잡으려면 숏 포지션 잡는 주문을 별도로 넣어야 되는 차이가 있습니다.


포지션 잡혔는지 여부랑 수익율 등은 어떻게 체크할 수 있을까요?

#잔고 데이타 가져오기 balance = binanceX.fetch_balance
( 매개변수 = { “유형” : “미래” } ) 시간 . 수면 ( 0.1 ) amt_s = 0 amt_b = 0
entryPrice_s = 0 #평균 매입 단가. 따라서 물을 타면 변경 된다.
entryPrice_b = 0 #평균 매입 단가. 따라서 물을 타면 변경 된다.
isolated = True #격리모드인지
#숏잔고 for posi in balance [ ‘info’ ] [ ‘positions’ ] : if posi [ ‘symbol’ ] == Target_Coin_Symbol
그리고 posi [ ‘positionSide’ ] == ‘SHORT’ : print ( posi ) amt_s = float ( posi [ ‘positionAmt’ ] )
entryPrice_s = float ( posi [ entryPrice ] ) _ _ _ _ _ _ _ _ _ _ _ _ _ _
#롱잔고 for posi in balance [ ‘info’ ] [ ‘positions’ ] : if posi [ ‘symbol’ ] == Target_Coin_Symbol and
posi [ ‘positionSide’ ] == ‘LONG’ : print ( posi ) amt_b = float ( posi [ ‘positionAmt’ ] )
entryPrice_b = float ( posi [ entryPrice ] ) _ _ _ _ _ _ _ _ _ _ _ _ _ _

롱과 숏 동시에 포지션을 잡을 수 있으니깐 관련 정보들을 저렇게 가져오시면 됩니다!

롱포지션이 잡혔는지 안잡혔는지 여부는 아래처럼 하면 되고

#롱 포지션이 없을 경우 if abs(amt_b) == 0: print(“No Position”) else: print(“Long Position!!”)

숏포지션이 잡혔는지 안잡혔는지 여부는 아래처럼 하면 됩니다!

#롱 포지션이 없을 경우 if abs(amt_s) == 0: print(“No Position”) else: print(“Short Position!!”)

수익율을 각각 구해 볼까요?

롱 포지션의 수익율은 아래 처럼

#롱 포지션이 있는 경우 if abs(amt_b) > 0: #롱 수익율을 구한다
! Revenue_rate_b = ( coin_price entryPrice_b ) / entryPrice_b * 100.0 인쇄 ( “revenue_rate_b : ” , income_rate_b )

숏 포지션의 수익율은 아래 처럼

#숏 포지션이 있는 경우 if abs(amt_s) > 0: #숏 수익율을 구한다!
Revenue_rate_s = ( entryPrice_s coin_price ) / entryPrice_s * 100.0 인쇄 ( “revenue_rate_s : ” , income_rate_s )

마지막으로 스탑로스 함수는…

제가 구현을 해놓았습니다 myBinance.py 파일에요~^^

클래스 챕터 7-4의 코드를 다운로드 하시면 myBinance.py을 확인하실 수 있습니다.

만약 아래 함수들이 없다면 다시 다운로드 해보세요 ^^!

기존과 다른 점은

setStopLossLongsetStopLossShort 함수가 추가되었다는 것인데요.

해당 함수만 가져다가 myBinance.py에 추가하셔도 되고

myBinance.py를 따로 변경한 적이 없다면 덮어쓰셔도 됩니다!

사용법

롱 포지션에 대한 스탑로스

마이 바이 낸스 SetStopLossLong ( binanceX , Target_Coin_Ticker , 0.2 )

이렇게 하면 들어간 원금의 -20%에 스탑로스가 걸립니다!

숏 포지션은

마이 바이 낸스 SetStopLossShort ( binanceX , Target_Coin_Ticker , 0.2 )

이렇게 하시면 됩니다!!


마무리

이렇게 보시면 이해가 어려울 수도 있으니 제가 샘플 예제 파이썬 코드를 공유합니다.

(위에서 언급했지만 스탑로스 함수는 myBinance.py (챕터 7-4) 에 있으니 함께 받으셔야 합니다)

첨부파일

binance_auto_both_test.py

파일 다운로드

봇을 실행하면 비트코인 0.001개를 레버리지 10을 써서 매수하는데요.

롱과 숏 동시에 잡습니다. 그리고 1%수익권에 익절 주문(지정가)을 걸어놓는 테스트용의 샘플 입니다.

실행하면 아래와 같이 됩니다!

%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7 2022 03 03 %EC%98%A4%ED%9B%84 4.20.46

이 포스팅에서 설명한 내용과 샘플 예제를 참고해서 양방향 자동 매매에 도전해보세요!


수강생이 아니신 분들 중에 코인 자동매매 봇 만들기에 관심 있으신 분들은 강의 후기를 보시고

직접 배워보세요 ^^

해당 링크로 가입하시면 바이낸스 수수료 20% 할인 받으실 수 있습니다.

%d 블로거가 이것을 좋아합니다: