mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-02-11 00:30:40 +00:00
Merge branch 'develop' into api-server-list-custom-data
This commit is contained in:
@@ -408,20 +408,20 @@ def test_get_analyzed_dataframe(mocker, default_conf, ohlcv_history):
|
||||
|
||||
# Test backtest mode
|
||||
default_conf["runmode"] = RunMode.BACKTEST
|
||||
dp._set_dataframe_max_index(1)
|
||||
dp._set_dataframe_max_index("XRP/BTC", 1)
|
||||
dataframe, time = dp.get_analyzed_dataframe("XRP/BTC", timeframe)
|
||||
|
||||
assert len(dataframe) == 1
|
||||
|
||||
dp._set_dataframe_max_index(2)
|
||||
dp._set_dataframe_max_index("XRP/BTC", 2)
|
||||
dataframe, time = dp.get_analyzed_dataframe("XRP/BTC", timeframe)
|
||||
assert len(dataframe) == 2
|
||||
|
||||
dp._set_dataframe_max_index(3)
|
||||
dp._set_dataframe_max_index("XRP/BTC", 3)
|
||||
dataframe, time = dp.get_analyzed_dataframe("XRP/BTC", timeframe)
|
||||
assert len(dataframe) == 3
|
||||
|
||||
dp._set_dataframe_max_index(500)
|
||||
dp._set_dataframe_max_index("XRP/BTC", 500)
|
||||
dataframe, time = dp.get_analyzed_dataframe("XRP/BTC", timeframe)
|
||||
assert len(dataframe) == len(ohlcv_history)
|
||||
|
||||
|
||||
@@ -6077,44 +6077,47 @@ def test_get_liquidation_price1(mocker, default_conf):
|
||||
|
||||
@pytest.mark.parametrize("liquidation_buffer", [0.0])
|
||||
@pytest.mark.parametrize(
|
||||
"is_short,trading_mode,exchange_name,margin_mode,leverage,open_rate,amount,expected_liq",
|
||||
"is_short,trading_mode,exchange_name,margin_mode,leverage,open_rate,amount,mramt,expected_liq",
|
||||
[
|
||||
(False, "spot", "binance", "", 5.0, 10.0, 1.0, None),
|
||||
(True, "spot", "binance", "", 5.0, 10.0, 1.0, None),
|
||||
(False, "spot", "gate", "", 5.0, 10.0, 1.0, None),
|
||||
(True, "spot", "gate", "", 5.0, 10.0, 1.0, None),
|
||||
(False, "spot", "okx", "", 5.0, 10.0, 1.0, None),
|
||||
(True, "spot", "okx", "", 5.0, 10.0, 1.0, None),
|
||||
(False, "spot", "binance", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
(True, "spot", "binance", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
(False, "spot", "gate", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
(True, "spot", "gate", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
(False, "spot", "okx", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
(True, "spot", "okx", "", 5.0, 10.0, 1.0, (0.01, 0.01), None),
|
||||
# Binance, short
|
||||
(True, "futures", "binance", "isolated", 5.0, 10.0, 1.0, 11.89108910891089),
|
||||
(True, "futures", "binance", "isolated", 3.0, 10.0, 1.0, 13.211221122079207),
|
||||
(True, "futures", "binance", "isolated", 5.0, 8.0, 1.0, 9.514851485148514),
|
||||
(True, "futures", "binance", "isolated", 5.0, 10.0, 0.6, 11.897689768976898),
|
||||
(True, "futures", "binance", "isolated", 5.0, 10.0, 1.0, (0.01, 0.01), 11.89108910891089),
|
||||
(True, "futures", "binance", "isolated", 3.0, 10.0, 1.0, (0.01, 0.01), 13.211221122079207),
|
||||
(True, "futures", "binance", "isolated", 5.0, 8.0, 1.0, (0.01, 0.01), 9.514851485148514),
|
||||
(True, "futures", "binance", "isolated", 5.0, 10.0, 0.6, (0.01, 0.01), 11.897689768976898),
|
||||
# Binance, long
|
||||
(False, "futures", "binance", "isolated", 5, 10, 1.0, 8.070707070707071),
|
||||
(False, "futures", "binance", "isolated", 5, 8, 1.0, 6.454545454545454),
|
||||
(False, "futures", "binance", "isolated", 3, 10, 1.0, 6.723905723905723),
|
||||
(False, "futures", "binance", "isolated", 5, 10, 0.6, 8.063973063973064),
|
||||
(False, "futures", "binance", "isolated", 5, 10, 1.0, (0.01, 0.01), 8.070707070707071),
|
||||
(False, "futures", "binance", "isolated", 5, 8, 1.0, (0.01, 0.01), 6.454545454545454),
|
||||
(False, "futures", "binance", "isolated", 3, 10, 1.0, (0.01, 0.01), 6.723905723905723),
|
||||
(False, "futures", "binance", "isolated", 5, 10, 0.6, (0.01, 0.01), 8.063973063973064),
|
||||
# Gate/okx, short
|
||||
(True, "futures", "gate", "isolated", 5, 10, 1.0, 11.87413417771621),
|
||||
(True, "futures", "gate", "isolated", 5, 10, 2.0, 11.87413417771621),
|
||||
(True, "futures", "gate", "isolated", 3, 10, 1.0, 13.193482419684678),
|
||||
(True, "futures", "gate", "isolated", 5, 8, 1.0, 9.499307342172967),
|
||||
(True, "futures", "okx", "isolated", 3, 10, 1.0, 13.193482419684678),
|
||||
(True, "futures", "gate", "isolated", 5, 10, 1.0, (0.01, 0.01), 11.87413417771621),
|
||||
(True, "futures", "gate", "isolated", 5, 10, 2.0, (0.01, 0.01), 11.87413417771621),
|
||||
(True, "futures", "gate", "isolated", 3, 10, 1.0, (0.01, 0.01), 13.193482419684678),
|
||||
(True, "futures", "gate", "isolated", 5, 8, 1.0, (0.01, 0.01), 9.499307342172967),
|
||||
(True, "futures", "okx", "isolated", 3, 10, 1.0, (0.01, 0.01), 13.193482419684678),
|
||||
# Gate/okx, long
|
||||
(False, "futures", "gate", "isolated", 5.0, 10.0, 1.0, 8.085708510208207),
|
||||
(False, "futures", "gate", "isolated", 3.0, 10.0, 1.0, 6.738090425173506),
|
||||
(False, "futures", "okx", "isolated", 3.0, 10.0, 1.0, 6.738090425173506),
|
||||
(False, "futures", "gate", "isolated", 5.0, 10.0, 1.0, (0.01, 0.01), 8.085708510208207),
|
||||
(False, "futures", "gate", "isolated", 3.0, 10.0, 1.0, (0.01, 0.01), 6.738090425173506),
|
||||
(False, "futures", "okx", "isolated", 3.0, 10.0, 1.0, (0.01, 0.01), 6.738090425173506),
|
||||
# bybit, long
|
||||
(False, "futures", "bybit", "isolated", 1.0, 10.0, 1.0, 0.1),
|
||||
(False, "futures", "bybit", "isolated", 3.0, 10.0, 1.0, 6.7666666),
|
||||
(False, "futures", "bybit", "isolated", 5.0, 10.0, 1.0, 8.1),
|
||||
(False, "futures", "bybit", "isolated", 10.0, 10.0, 1.0, 9.1),
|
||||
(False, "futures", "bybit", "isolated", 1.0, 10.0, 1.0, (0.01, 0.01), 0.1),
|
||||
(False, "futures", "bybit", "isolated", 3.0, 10.0, 1.0, (0.01, 0.01), 6.7666666),
|
||||
(False, "futures", "bybit", "isolated", 5.0, 10.0, 1.0, (0.01, 0.01), 8.1),
|
||||
(False, "futures", "bybit", "isolated", 10.0, 10.0, 1.0, (0.01, 0.01), 9.1),
|
||||
# From the bybit example - without additional margin
|
||||
(False, "futures", "bybit", "isolated", 50.0, 40000.0, 1.0, (0.005, None), 39400),
|
||||
(False, "futures", "bybit", "isolated", 50.0, 20000.0, 1.0, (0.005, None), 19700),
|
||||
# bybit, short
|
||||
(True, "futures", "bybit", "isolated", 1.0, 10.0, 1.0, 19.9),
|
||||
(True, "futures", "bybit", "isolated", 3.0, 10.0, 1.0, 13.233333),
|
||||
(True, "futures", "bybit", "isolated", 5.0, 10.0, 1.0, 11.9),
|
||||
(True, "futures", "bybit", "isolated", 10.0, 10.0, 1.0, 10.9),
|
||||
(True, "futures", "bybit", "isolated", 1.0, 10.0, 1.0, (0.01, 0.01), 19.9),
|
||||
(True, "futures", "bybit", "isolated", 3.0, 10.0, 1.0, (0.01, 0.01), 13.233333),
|
||||
(True, "futures", "bybit", "isolated", 5.0, 10.0, 1.0, (0.01, 0.01), 11.9),
|
||||
(True, "futures", "bybit", "isolated", 10.0, 10.0, 1.0, (0.01, 0.01), 10.9),
|
||||
],
|
||||
)
|
||||
def test_get_liquidation_price(
|
||||
@@ -6127,6 +6130,7 @@ def test_get_liquidation_price(
|
||||
leverage,
|
||||
open_rate,
|
||||
amount,
|
||||
mramt,
|
||||
expected_liq,
|
||||
liquidation_buffer,
|
||||
):
|
||||
@@ -6190,7 +6194,7 @@ def test_get_liquidation_price(
|
||||
mocker.patch(f"{EXMS}.price_to_precision", lambda s, x, y, **kwargs: y)
|
||||
exchange = get_patched_exchange(mocker, default_conf_usdt, exchange=exchange_name)
|
||||
|
||||
exchange.get_maintenance_ratio_and_amt = MagicMock(return_value=(0.01, 0.01))
|
||||
exchange.get_maintenance_ratio_and_amt = MagicMock(return_value=mramt)
|
||||
exchange.name = exchange_name
|
||||
# default_conf_usdt.update({
|
||||
# "dry_run": False,
|
||||
|
||||
@@ -1543,8 +1543,7 @@ def test_backtest_multi_pair(default_conf, fee, mocker, tres, pair, testdatadir)
|
||||
assert len(evaluate_result_multi(results["results"], "5m", 3)) == 0
|
||||
|
||||
# Cached data correctly removed amounts
|
||||
offset = 1 if tres == 0 else 0
|
||||
removed_candles = len(data[pair]) - offset
|
||||
removed_candles = len(data[pair]) - 1
|
||||
assert len(backtesting.dataprovider.get_analyzed_dataframe(pair, "5m")[0]) == removed_candles
|
||||
assert (
|
||||
len(backtesting.dataprovider.get_analyzed_dataframe("NXT/BTC", "5m")[0])
|
||||
@@ -1663,8 +1662,7 @@ def test_backtest_multi_pair_detail(
|
||||
assert len(evaluate_result_multi(results["results"], "5m", 3)) == 0
|
||||
|
||||
# Cached data correctly removed amounts
|
||||
offset = 1 if tres == 0 else 0
|
||||
removed_candles = len(data[pair]) - offset
|
||||
removed_candles = len(data[pair]) - 1
|
||||
assert len(backtesting.dataprovider.get_analyzed_dataframe(pair, "5m")[0]) == removed_candles
|
||||
assert (
|
||||
len(backtesting.dataprovider.get_analyzed_dataframe("NXT/USDT", "5m")[0])
|
||||
@@ -1793,7 +1791,7 @@ def test_backtest_multi_pair_detail_simplified(
|
||||
assert len(evaluate_result_multi(results["results"], "1m", 3)) == 0
|
||||
|
||||
# # Cached data correctly removed amounts
|
||||
offset = 1 if tres == 0 else 0
|
||||
offset = 1
|
||||
removed_candles = len(data[pair]) - offset
|
||||
assert len(backtesting.dataprovider.get_analyzed_dataframe(pair, "1h")[0]) == removed_candles
|
||||
assert (
|
||||
|
||||
Reference in New Issue
Block a user