Poloniex API를 사용하여 지정된 금액이되면 거래 (IFD) 프로그램

배경



  • Poloniex 에서 가상 통화를 거래하고 있지만 법정 통화가 USDT 밖에 없다.
  • ETH/BTC나 USDT/BTC가 메인. JPY는 존재하지 않는다.

  • 문제와 해결


  • 「일본엔으로 지정 금액이 되면 주문한다」라고 하는 유스 케이스를 실현할 수 없다.
  • 예를 들면, 「ETH가 50000엔이 되면, 51000엔으로 가리키고 가격 주문해 ETH를 팔아 BTC를 사는다」라고 하는 주문을 할 수 없다.
  • Poloniex에서 API가 공개되어 있기 때문에 프로그램 작성
  • htps : // 기주 b. 코 m / 속눈썹 / 포에니 x_o r


  • 사양


  • Stop Limit Order를 실시하고 있습니다.
  • 1 분에 1 회율 얻기
  • 지정된 금액이되면 macos의 notification center에 통지 표시
  • 일단, 1분 기다린다.
  • 1% 높은 곳에서 손가락 값(Limit order)을 넣는다.
  • 프로그램 종료

  • 24시간 가동시키고 싶다면 서버에서 움직여 두면 된다.

  • 스크린샷





    소스 코드


    require 'rubygems'
    require 'bundler/setup'
    
    Bundler.require(:default)
    Dotenv.load
    
    Poloniex.setup do |config|
      config.key = ENV['POLONIEX_KEY']
      config.secret = ENV['POLONIEX_SECRET']
    end
    
    check_currency_pair = 'USDT_ETH'
    sell_currency_pair = 'ETH_BTC'
    
    usd_jpy = 110.24
    
    sell_amount = 0.1
    
    loop do
      ticker = Poloniex.ticker
      usdt_btc = JSON.parse(ticker)[check_currency_pair]['last']
    
      jpy_btc = usdt_btc.to_f * usd_jpy
    
      puts Time.now.to_s + "\t" + jpy_btc.to_s
    
      if jpy_btc > 38_000
        contents = jpy_btc
        title = 'Rate alert'
        system('osascript -e \'display notification "%s" with title "%s" \'' % %w[contents title])
    
        # execute order
        sleep 60
        rate = JSON.parse(ticker)['BTC_ETH']['lowestAsk'].to_f * 1.01
        Poloniex.sell(sell_currency_pair, rate, sell_amount)
    
        contents = rate
        title = 'Placed and selling order'
        system('osascript -e \'display notification "%s" with title "%s" \'' % %w[contents title])
    
        break
      end
    
      sleep 60
    end
    

    Happy FX life!

    좋은 웹페이지 즐겨찾기