리소스 로딩... 로딩...

자신의 트레이딩 봇을 만드는 방법

저자:선함, 2019-03-16 10:29:22, 업데이트: 2019-03-16 10:29:54

전문

나는 확실히 훌륭한 프로그래머가 아닙니다, 하지만이 프로젝트를 작성하는 것은 많은 것을 가르쳐 (그리고 나를 바빴다). 내 코드의 대부분은FMZ.COM, 그리고 내가 파이썬 코드를 재조정한다면 나는 더 객체 지향 모델을 사용 할 것입니다. 그럼에도 불구하고, 나는 내가 얻은 결과에 대해 즐겁게 놀랐습니다. 그리고 봇은 지금까지 거의 100% 에테르 이익을 얻었습니다.

무슨 일이죠? 이것은 중재 봇입니다. 즉, 두 (또는 더 많은) 거래소에서 가격의 차이점을 거래하여 돈을 버는 것입니다. 현재는 일방적이고 Etherdelta와 Bittrex 사이에만 거래합니다: 그들은 대략 20 개의 eth / 토큰 쌍을 공유합니다. 이것이 어떻게 작동하는지 설명하는 다이어그램이 있습니다:img괄호가 있는 단어들은 스마트 계약 함수 호출을 하는 이더리움 거래입니다.

법규

내가 쓸 수 있었다fmz.com거래와 함수 호출을 생성하기 위해 플랫폼 파이썬 편집기를 사용했고 꽤 간단했을 것입니다. 더 신뢰할 수있는 것이 필요했습니다; 실패한 거래는 돈을 잃는 것을 의미합니다. 모든 GET 요청은 TCP 패킷이 손실되거나 다른 끝의 웹 서버가 일시적으로 다운되었더라도 응답이 필요했습니다. 따라서 저는 제 자신의 파이썬 이더스캔 API 래퍼를 구현하고 트랜잭션을 생성하고 이더스캔을 사용하여 퍼블리싱을 결정했습니다. 또한 제 자신의 요청.get 장식기를 작성했습니다. 이는 응답이 만족스러운 경우에만 종료되는 한 동안의 루프입니다.

여기 이더델타 json API 응답을 헥사데시마, rlp 코딩, 이더리움 트랜잭션으로 암호화하는 코드를 사용했습니다.img

아래쪽의 폐쇄에 있는 원한 제곱수 값은 각 함수와 대응하는 함수 서명이다. 함수 서명은 함수와 그 논리의 keccak에서 파생된다. 이 함수는 트랜잭션의 데이터 매개 변수에 첨부되어야 하며, 그 다음으로 논리를 구성하는 데이터가 따라야 한다. 전체적으로 내 코드는 약 400줄 길이이며 5개의 다른 파일에 포함된다.

결과

저는 pymatplotlib을 사용하여 기록한 데이터로 몇 개의 그래프를 만들었습니다.img img img

결론

전체적으로 전체 프로젝트는 학교에서 자유 시간 동안 두 주 정도 걸렸고 모든 방면에서 폭발했습니다. 나는 코딩에서 활발한 휴식을 취하고 현재 배당 봇 v2를 계획하고 있습니다. 다음 버전은 86 가지 다른 거래소와 많은 거래 쌍을 포함 할 것입니다.

달까지!


더 많은