Replace Bittrex references with ccxt exchange class
This commit is contained in:
parent
9f35d74e1d
commit
7be34310f5
@ -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'])
|
||||||
|
@ -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'
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user