Skip to content

Instantly share code, notes, and snippets.

/*
npm install ws lodash async moment
mkdir logs
node bfx_test_book_raw.js BTCUSD &
tail -f logs/ws-book-*
*/
var WS = require('ws')
/*USAGE:
npm install ws lodash async moment crc-32
mkdir logs
node bfx_test_book.js BTCUSD
*/
const WS = require('ws')
const _ = require('lodash')
const async = require('async')
const fs = require('fs')
// npm install ws crypto-js
const WebSocket = require('ws')
const crypto = require('crypto-js')
const apiKey = ''
const apiSecret = ''
const authNonce = Date.now() * 1000
const authPayload = 'AUTH' + authNonce
pair = 'BTCUSD'
csv = [['Date', 'Open', 'High', 'Low', 'Close', 'Volume']]
end_t = Time.now.to_i * 1000
loop do
body = HTTParty.get("https://api.bitfinex.com/v2/candles/trade:1h:t#{pair}/hist?_bfx=1&limit=1500&end="+end_t.to_s).body
body = Oj.load(body) rescue nil
break if body.nil?
break if body.size == 0
body.each do |e|
csv << [Time.at(e[0] / 1000).strftime('%Y-%m-%d %H:00:00'), e[1], e[3], e[4], e[2], e[5]]

Keybase proof

I hereby claim:

  • I am prdn on github.
  • I am prdn (https://keybase.io/prdn) on keybase.
  • I have a public key whose fingerprint is A27A CB60 3D97 4B61 87D2 34CE F830 2259 0E52 D8E9

To claim this, I am signing this object:

const WS = require('ws')
const _ = require('lodash')
const async = require('async')
const fs = require('fs')
const moment = require('moment')
const CRC = require('crc-32')
const pair = process.argv[2]
const conf = {
import requests # pip install requests
import json
import base64
import hashlib
import hmac
import time #for nonce
class Test(object):
BASE_URL = "https://api.bitfinex.com/"
KEY=""
/*USAGE:
npm install ws lodash async moment crc-32
mkdir logs
node bfx_test_book.js BTCUSD
*/
const WS = require('ws')
const _ = require('lodash')
const async = require('async')
const fs = require('fs')
@prdn
prdn / bfx_pub_shard.js
Last active August 30, 2018 08:11
Bitfinex Public Market Data sharding on multiple sockets
/*
npm install ws request crc-32
*/
const WebSocket = require('ws')
const request = require('request')
const CRC = require('crc-32')
const LIMIT_CHAN = 250
@prdn
prdn / bfx_ws2_aggressive.js
Last active September 8, 2018 22:40
bfx_ws2_aggressive.js
/*
mkdir bfx_test
cd bfx_test
// save this script as run.js, and add your api key/secret
npm install ws
npm install async
node run.js
*/
const WebSocket = require('ws');