Example #1
0
class TestCBEPublic(unittest.TestCase):
    def setUp(self):
        self.cbe = CoinbaseExchange()

    def test_getProducts(self):
        with my_vcr.use_cassette('public-getProducts.json'):
            correct = [{
                u'quote_currency': u'USD',
                u'display_name': u'BTC/USD',
                u'quote_increment': 0.01,
                u'base_max_size': 10000,
                u'base_currency': u'BTC',
                u'id': u'BTC-USD',
                u'base_min_size': 0.01
            }]
            self.assertEqual(self.cbe.getProducts(), correct)

    def test_getProductOrderBook_1(self):
        with my_vcr.use_cassette('public-getProductOrderBook-1.json'):
            correct = 10306972
            self.assertEqual(
                self.cbe.getProductOrderBook(level=1)['sequence'], correct)

    def test_getProductOrderBook_2(self):
        with my_vcr.use_cassette('public-getProductOrderBook-2.json'):
            correct = 10306974
            self.assertEqual(
                self.cbe.getProductOrderBook(level=2)['sequence'], correct)

    def test_getProductOrderBook_3(self):
        with my_vcr.use_cassette('public-getProductOrderBook-3.json'):
            correct = 10306989
            self.assertEqual(
                self.cbe.getProductOrderBook(level=3)['sequence'], correct)

    def test_getProductTicker(self):
        with my_vcr.use_cassette('public-getProductTicker.json'):
            correct = 220334
            self.assertEqual(self.cbe.getProductTicker()['trade_id'], correct)

    def test_getProductTrades(self):
        with my_vcr.use_cassette('public-getProductTrades.json'):
            correct = u'2015-02-15 18:59:44.240795+00'
            self.assertEqual(self.cbe.getProductTrades()[0]['time'], correct)

    def test_getProductStats(self):
        with my_vcr.use_cassette('public-getProductStats.json'):
            correct = u'19382.09151854'
            self.assertEqual(self.cbe.getProductStats()['volume'], correct)

    def test_getCurrencies(self):
        with my_vcr.use_cassette('public-getCurrencies.json'):
            correct = "USD"
            self.assertEqual(self.cbe.getCurrencies()[0]['id'], correct)

    def test_getTime(self):
        with my_vcr.use_cassette('public-getTime.json'):
            correct = 1424034007.831
            self.assertEqual(self.cbe.getTime()['epoch'], correct)
class TestCBEPublic(unittest.TestCase):
	def setUp(self):
		self.cbe = CoinbaseExchange()

	def test_getProducts(self):
		with my_vcr.use_cassette('public-getProducts.json'):
			correct = [{u'quote_currency': u'USD', u'display_name': u'BTC/USD', u'quote_increment': 0.01, u'base_max_size': 10000, u'base_currency': u'BTC', u'id': u'BTC-USD', u'base_min_size': 0.01}]
			self.assertEqual( self.cbe.getProducts(), correct )

	def test_getProductOrderBook_1(self):
		with my_vcr.use_cassette('public-getProductOrderBook-1.json'):
			correct = 10306972
			self.assertEqual( self.cbe.getProductOrderBook(level=1)['sequence'], correct )

	def test_getProductOrderBook_2(self):
		with my_vcr.use_cassette('public-getProductOrderBook-2.json'):
			correct = 10306974
			self.assertEqual( self.cbe.getProductOrderBook(level=2)['sequence'], correct )

	def test_getProductOrderBook_3(self):
		with my_vcr.use_cassette('public-getProductOrderBook-3.json'):
			correct = 10306989
			self.assertEqual( self.cbe.getProductOrderBook(level=3)['sequence'], correct )
					
	def test_getProductTicker(self):
		with my_vcr.use_cassette('public-getProductTicker.json'):
			correct = 220334
			self.assertEqual( self.cbe.getProductTicker()['trade_id'], correct )

	def test_getProductTrades(self):
		with my_vcr.use_cassette('public-getProductTrades.json'):
			correct = u'2015-02-15 18:59:44.240795+00'
			self.assertEqual( self.cbe.getProductTrades()[0]['time'], correct )

	def test_getProductStats(self):
		with my_vcr.use_cassette('public-getProductStats.json'):
			correct = u'19382.09151854'
			self.assertEqual( self.cbe.getProductStats()['volume'], correct)

	def test_getCurrencies(self):
		with my_vcr.use_cassette('public-getCurrencies.json'):
			correct = "USD"
			self.assertEqual( self.cbe.getCurrencies()[0]['id'], correct )

	def test_getTime(self):
		with my_vcr.use_cassette('public-getTime.json'):
			correct = 1424034007.831
			self.assertEqual( self.cbe.getTime()['epoch'], correct )
        print "sell at %f" % price[360], prediction
        buy = False
        sell = True
        hold = False
        num_sell += 1
        sold_at = price[360]
        profit = sold_at - bought_at
        total_profit += profit
        print profit
        print total_profit




    timer.sleep(10.0 - ((timer.time() - starttime) % 10.0))
    json_ticker = cb.getProductTicker()
    actual = float(json_ticker['price'])
    #print type(actual)
    price.append(actual)
    price.pop(0)


# this whole thing will need to be modified for classification - up or down
#is also not too useful, really, on a ten second basis. needs to be up or down
# by a certain amount.

# could possibly chain together different methods??

# get enough prices to make prediction, then keep making predictions,
#how does this work????
# if predicted price is x higher than current price, buy, if x lower than current
Example #4
0
#naive program to test model
from cbe import CoinbaseExchange
import json
import numpy as np
import pandas as pd
import time as timer
from sklearn.externals import joblib
model = joblib.load('brr_simple.pkl')

cb = CoinbaseExchange()

json_ticker = cb.getProductTicker()

price = []
time = []
prediction = 0.0
starttime=timer.time()
buy = False
sell = False
hold = False
profit = 0
total_profit = 0
sell_price = 0
num_buy = 1
num_sell = 0

#this will need to be own subprocess or method
while True:
    json_ticker = cb.getProductTicker()
    actual = float(json_ticker['price'])