Merged feat/short into lev-strat

This commit is contained in:
Sam Germain
2021-09-19 17:44:12 -06:00
parent a89c67787b
commit 778f0d9d0a
41 changed files with 3173 additions and 614 deletions

View File

@@ -18,7 +18,7 @@ from freqtrade import constants
from freqtrade.commands import Arguments
from freqtrade.data.converter import ohlcv_to_dataframe
from freqtrade.edge import Edge, PairInfo
from freqtrade.enums import RunMode
from freqtrade.enums import Collateral, RunMode, TradingMode
from freqtrade.enums.signaltype import SignalDirection
from freqtrade.exchange import Exchange
from freqtrade.freqtradebot import FreqtradeBot
@@ -82,7 +82,13 @@ def patched_configuration_load_config_file(mocker, config) -> None:
)
def patch_exchange(mocker, api_mock=None, id='binance', mock_markets=True) -> None:
def patch_exchange(
mocker,
api_mock=None,
id='binance',
mock_markets=True,
mock_supported_modes=True
) -> None:
mocker.patch('freqtrade.exchange.Exchange._load_async_markets', MagicMock(return_value={}))
mocker.patch('freqtrade.exchange.Exchange.validate_pairs', MagicMock())
mocker.patch('freqtrade.exchange.Exchange.validate_timeframes', MagicMock())
@@ -91,10 +97,22 @@ def patch_exchange(mocker, api_mock=None, id='binance', mock_markets=True) -> No
mocker.patch('freqtrade.exchange.Exchange.id', PropertyMock(return_value=id))
mocker.patch('freqtrade.exchange.Exchange.name', PropertyMock(return_value=id.title()))
mocker.patch('freqtrade.exchange.Exchange.precisionMode', PropertyMock(return_value=2))
if mock_markets:
mocker.patch('freqtrade.exchange.Exchange.markets',
PropertyMock(return_value=get_markets()))
if mock_supported_modes:
mocker.patch(
f'freqtrade.exchange.{id.capitalize()}._supported_trading_mode_collateral_pairs',
PropertyMock(return_value=[
(TradingMode.MARGIN, Collateral.CROSS),
(TradingMode.MARGIN, Collateral.ISOLATED),
(TradingMode.FUTURES, Collateral.CROSS),
(TradingMode.FUTURES, Collateral.ISOLATED)
])
)
if api_mock:
mocker.patch('freqtrade.exchange.Exchange._init_ccxt', MagicMock(return_value=api_mock))
else:
@@ -102,8 +120,8 @@ def patch_exchange(mocker, api_mock=None, id='binance', mock_markets=True) -> No
def get_patched_exchange(mocker, config, api_mock=None, id='binance',
mock_markets=True) -> Exchange:
patch_exchange(mocker, api_mock, id, mock_markets)
mock_markets=True, mock_supported_modes=True) -> Exchange:
patch_exchange(mocker, api_mock, id, mock_markets, mock_supported_modes)
config['exchange']['name'] = id
try:
exchange = ExchangeResolver.load_exchange(id, config)
@@ -465,7 +483,10 @@ def get_markets():
'max': 500000,
},
},
'info': {},
'info': {
'leverage_buy': ['2'],
'leverage_sell': ['2'],
},
},
'TKN/BTC': {
'id': 'tknbtc',
@@ -491,7 +512,10 @@ def get_markets():
'max': 500000,
},
},
'info': {},
'info': {
'leverage_buy': ['2', '3', '4', '5'],
'leverage_sell': ['2', '3', '4', '5'],
},
},
'BLK/BTC': {
'id': 'blkbtc',
@@ -516,7 +540,10 @@ def get_markets():
'max': 500000,
},
},
'info': {},
'info': {
'leverage_buy': ['2', '3'],
'leverage_sell': ['2', '3'],
},
},
'LTC/BTC': {
'id': 'ltcbtc',
@@ -541,7 +568,10 @@ def get_markets():
'max': 500000,
},
},
'info': {},
'info': {
'leverage_buy': [],
'leverage_sell': [],
},
},
'XRP/BTC': {
'id': 'xrpbtc',
@@ -619,7 +649,10 @@ def get_markets():
'max': None
}
},
'info': {},
'info': {
'leverage_buy': [],
'leverage_sell': [],
},
},
'ETH/USDT': {
'id': 'USDT-ETH',
@@ -735,6 +768,8 @@ def get_markets():
'max': None
}
},
'info': {
}
},
}