Replace Bittrex references with ccxt exchange class

This commit is contained in:
enenn 2018-02-03 21:45:18 +01:00
parent 9f35d74e1d
commit 7be34310f5
3 changed files with 20 additions and 21 deletions

View File

@ -1,11 +1,11 @@
# pragma pylint: disable=missing-docstring, W0212, line-too-long, C0103 # pragma pylint: disable=missing-docstring, W0212, line-too-long, C0103
import logging import logging
import ccxt
import math import math
from unittest.mock import MagicMock from unittest.mock import MagicMock
import pandas as pd import pandas as pd
from freqtrade import exchange, optimize from freqtrade import exchange, optimize
from freqtrade.exchange import Bittrex
from freqtrade.optimize import preprocess from freqtrade.optimize import preprocess
from freqtrade.optimize.backtesting import backtest, generate_text_table, get_timeframe from freqtrade.optimize.backtesting import backtest, generate_text_table, get_timeframe
import freqtrade.optimize.backtesting as backtesting import freqtrade.optimize.backtesting as backtesting
@ -47,7 +47,7 @@ def test_get_timeframe(default_strategy):
def test_backtest(default_strategy, default_conf, mocker): def test_backtest(default_strategy, default_conf, mocker):
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
data = optimize.load_data(None, ticker_interval=5, pairs=['ETH/BTC']) data = optimize.load_data(None, ticker_interval=5, pairs=['ETH/BTC'])
data = trim_dictlist(data, -200) data = trim_dictlist(data, -200)
@ -60,7 +60,7 @@ def test_backtest(default_strategy, default_conf, mocker):
def test_backtest_1min_ticker_interval(default_strategy, default_conf, mocker): def test_backtest_1min_ticker_interval(default_strategy, default_conf, mocker):
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
# Run a backtesting for an exiting 5min ticker_interval # Run a backtesting for an exiting 5min ticker_interval
data = optimize.load_data(None, ticker_interval=1, pairs=['UNITTEST/BTC']) data = optimize.load_data(None, ticker_interval=1, pairs=['UNITTEST/BTC'])

View File

@ -3,10 +3,10 @@
import os import os
import json import json
import logging import logging
import ccxt
import uuid import uuid
from shutil import copyfile from shutil import copyfile
from freqtrade import exchange, optimize from freqtrade import exchange, optimize
from freqtrade.exchange import Bittrex
from freqtrade.optimize.__init__ import make_testdata_path, download_pairs,\ from freqtrade.optimize.__init__ import make_testdata_path, download_pairs,\
download_backtesting_testdata, load_tickerdata_file, trim_tickerlist, file_dump_json download_backtesting_testdata, load_tickerdata_file, trim_tickerlist, file_dump_json
@ -49,7 +49,7 @@ def test_load_data_30min_ticker(default_conf, ticker_history, mocker, caplog):
mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file = 'freqtrade/tests/testdata/UNITTEST_BTC-30.json' file = 'freqtrade/tests/testdata/UNITTEST_BTC-30.json'
_backup_file(file, copy_file=True) _backup_file(file, copy_file=True)
@ -65,7 +65,7 @@ def test_load_data_5min_ticker(default_conf, ticker_history, mocker, caplog):
mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file = 'freqtrade/tests/testdata/ETH_BTC-5.json' file = 'freqtrade/tests/testdata/ETH_BTC-5.json'
_backup_file(file, copy_file=True) _backup_file(file, copy_file=True)
@ -81,7 +81,7 @@ def test_load_data_1min_ticker(default_conf, ticker_history, mocker, caplog):
mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file = 'freqtrade/tests/testdata/ETH_BTC-1.json' file = 'freqtrade/tests/testdata/ETH_BTC-1.json'
_backup_file(file, copy_file=True) _backup_file(file, copy_file=True)
@ -97,7 +97,7 @@ def test_load_data_with_new_pair_1min(default_conf, ticker_history, mocker, capl
mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file = 'freqtrade/tests/testdata/MEME/BTC-1.json' file = 'freqtrade/tests/testdata/MEME/BTC-1.json'
_backup_file(file) _backup_file(file)
@ -116,7 +116,7 @@ def test_testdata_path():
def test_download_pairs(default_conf, ticker_history, mocker): def test_download_pairs(default_conf, ticker_history, mocker):
mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file1_1 = 'freqtrade/tests/testdata/MEME_BTC-1.json' file1_1 = 'freqtrade/tests/testdata/MEME_BTC-1.json'
file1_5 = 'freqtrade/tests/testdata/MEME_BTC-5.json' file1_5 = 'freqtrade/tests/testdata/MEME_BTC-5.json'
@ -158,7 +158,7 @@ def test_download_pairs_exception(default_conf, ticker_history, mocker, caplog):
mocker.patch('freqtrade.optimize.__init__.download_backtesting_testdata', mocker.patch('freqtrade.optimize.__init__.download_backtesting_testdata',
side_effect=BaseException('File Error')) side_effect=BaseException('File Error'))
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
file1_1 = 'freqtrade/tests/testdata/MEME_BTC-1.json' file1_1 = 'freqtrade/tests/testdata/MEME_BTC-1.json'
file1_5 = 'freqtrade/tests/testdata/MEME_BTC-5.json' file1_5 = 'freqtrade/tests/testdata/MEME_BTC-5.json'
@ -177,7 +177,7 @@ def test_download_pairs_exception(default_conf, ticker_history, mocker, caplog):
def test_download_backtesting_testdata(default_conf, ticker_history, mocker): def test_download_backtesting_testdata(default_conf, ticker_history, mocker):
mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history) mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history)
mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.dict('freqtrade.main._CONF', default_conf)
exchange._API = Bittrex({'key': '', 'secret': ''}) exchange._API = ccxt.binance({'key': '', 'secret': ''})
# Download a 1 min ticker file # Download a 1 min ticker file
file1 = 'freqtrade/tests/testdata/XEL_BTC-1.json' file1 = 'freqtrade/tests/testdata/XEL_BTC-1.json'

View File

@ -2,7 +2,6 @@
import os import os
import pytest import pytest
from sqlalchemy import create_engine from sqlalchemy import create_engine
from freqtrade.exchange import Exchanges
from freqtrade.persistence import Trade, init, clean_dry_run_db from freqtrade.persistence import Trade, init, clean_dry_run_db
@ -120,7 +119,7 @@ def test_update_with_bittrex(limit_buy_order, limit_sell_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
assert trade.open_order_id is None assert trade.open_order_id is None
assert trade.open_rate is None assert trade.open_rate is None
@ -147,7 +146,7 @@ def test_calc_open_close_trade_price(limit_buy_order, limit_sell_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'something' trade.open_order_id = 'something'
@ -169,7 +168,7 @@ def test_calc_close_trade_price_exception(limit_buy_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'something' trade.open_order_id = 'something'
@ -182,7 +181,7 @@ def test_update_open_order(limit_buy_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=1.00, stake_amount=1.00,
fee=0.1, fee=0.1,
exchange=Exchanges.BITTREX, exchange='binance',
) )
assert trade.open_order_id is None assert trade.open_order_id is None
@ -204,7 +203,7 @@ def test_update_invalid_order(limit_buy_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=1.00, stake_amount=1.00,
fee=0.1, fee=0.1,
exchange=Exchanges.BITTREX, exchange='binance',
) )
limit_buy_order['type'] = 'invalid' limit_buy_order['type'] = 'invalid'
with pytest.raises(ValueError, match=r'Unknown order type'): with pytest.raises(ValueError, match=r'Unknown order type'):
@ -216,7 +215,7 @@ def test_calc_open_trade_price(limit_buy_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'open_trade' trade.open_order_id = 'open_trade'
trade.update(limit_buy_order) # Buy @ 0.00001099 trade.update(limit_buy_order) # Buy @ 0.00001099
@ -233,7 +232,7 @@ def test_calc_close_trade_price(limit_buy_order, limit_sell_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'close_trade' trade.open_order_id = 'close_trade'
trade.update(limit_buy_order) # Buy @ 0.00001099 trade.update(limit_buy_order) # Buy @ 0.00001099
@ -254,7 +253,7 @@ def test_calc_profit(limit_buy_order, limit_sell_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'profit_percent' trade.open_order_id = 'profit_percent'
trade.update(limit_buy_order) # Buy @ 0.00001099 trade.update(limit_buy_order) # Buy @ 0.00001099
@ -288,7 +287,7 @@ def test_calc_profit_percent(limit_buy_order, limit_sell_order):
pair='ETH/BTC', pair='ETH/BTC',
stake_amount=0.001, stake_amount=0.001,
fee=0.0025, fee=0.0025,
exchange=Exchanges.BITTREX, exchange='binance',
) )
trade.open_order_id = 'profit_percent' trade.open_order_id = 'profit_percent'
trade.update(limit_buy_order) # Buy @ 0.00001099 trade.update(limit_buy_order) # Buy @ 0.00001099