┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓

┃   Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃   Avg Duration ┃  Win  Draw  Loss  Win% ┃            Drawdown ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
│ EmptyShort │     54 │         0.75 │         422.136 │        42.21 │ 1 day, 5:07:00 │   25     0    29  46.3 │ 142.938 USDT  9.86% │
└────────────┴────────┴──────────────┴─────────────────┴──────────────┴────────────────┴────────────────────────┴─────────────────────┘
This commit is contained in:
Jérôme Delacotte
2026-03-29 23:32:09 +02:00
parent a599160501
commit 7954c518bd
3 changed files with 199 additions and 155 deletions

View File

@@ -4,9 +4,6 @@
"roi": {
"0": 5
},
"stoploss": {
"stoploss": -0.02
},
"trailing": {
"trailing_stop": false,
"trailing_stop_positive": null,
@@ -25,8 +22,11 @@
"protection": {
"drop_from_last_entry": 0.0,
"mises_bull": 4
},
"stoploss": {
"stoploss": -0.02
}
},
"ft_stratparam_v": 1,
"export_time": "2026-03-07 20:20:17.895644+00:00"
"export_time": "2026-03-29 18:29:54.986316+00:00"
}

View File

@@ -103,7 +103,7 @@ class EmptyShort(IStrategy):
# trailing_only_offset_is_reached = False
position_adjustment_enable = True
use_custom_stoploss = True
use_custom_stoploss = False
#max_open_trades = 3
@@ -494,7 +494,7 @@ class EmptyShort(IStrategy):
profit = trade.calc_profit(rate)
force = self.pairs[pair]['force_sell']
allow_to_sell = (last_candle['hapercent'] < 0 and profit > 0) or force \
or (trade.enter_tag == 'short' ) or (exit_reason == 'force_exit') or (exit_reason == 'stop_loss') or (exit_reason == 'trailing_stop_loss')
or (trade.is_short) or (exit_reason == 'force_exit') or (exit_reason == 'stop_loss') or (exit_reason == 'trailing_stop_loss')
minutes = int(round((current_time - trade.date_last_filled_utc).total_seconds() / 60, 0))
@@ -562,8 +562,7 @@ class EmptyShort(IStrategy):
dispo = round(self.wallets.get_available_stake_amount() + self.pairs[pair]['total_amount'])
is_short = (trade.enter_tag == 'short')
if trade.enter_tag == 'short':
if trade.is_short:
tp_price = max(0.02, self.pairs[pair]['take_profit'])
# if current_profit < self.sell_force_sell.value \
# and last_candle[f"close"] > last_candle[self.sell_indicator.value]:
@@ -572,11 +571,19 @@ class EmptyShort(IStrategy):
#
if current_profit > tp_price and \
(baisse > last_candle[f"range_pos"] and last_candle[f"close"] > last_candle[self.b30_indicateur.value]) \
and last_candle['hapercent'] > 0 and last_candle['sma12_deriv1_1h'] > -0.004:
and last_candle['hapercent'] > 0 and last_candle['sma12_deriv2_1h'] > 0.0:
self.pairs[pair]['force_sell'] = True
return 'B30Sht'
return None
# if current_profit < - 0.01 and last_candle['sma60_deriv1'] > 0 and last_candle['sma60_deriv2'] > 0:
# self.pairs[pair]['force_sell'] = True
# return 'StpSht'
# if last_candle['sma12_inv_1h'] == -1:
# return 'InvSht'
# return None
# self.log_trade(
# last_candle=last_candle,
# date=current_time,
@@ -655,41 +662,41 @@ class EmptyShort(IStrategy):
return None
def custom_stoploss(self, pair, trade, current_time, current_rate, current_profit, **kwargs):
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last_candle = dataframe.iloc[-1]
profit = trade.calc_profit(current_rate)
candle_at_buy = self.pairs[pair]['last_candle']
# if candle_at_buy['range_pos'] > self.range_pos_stoploss.value and candle_at_buy[self.stoploss_indicator.value] < 0:
# return self.stoploss_force.value
# # print(f'test stop loss {self.stoploss} {last_candle["stop_buying12_1h"]}')
# if last_candle[self.stoploss_indicator.value] and (trade.nr_of_successful_entries >= 4 or self.wallets.get_available_stake_amount() < 300): # and profit < - 30 :
# range_min = last_candle[f"min{self.stoploss_timeperiod.value}_1h"]
# range_max = last_candle[f"max{self.stoploss_timeperiod.value}_1h"]
# def custom_stoploss(self, pair, trade, current_time, current_rate, current_profit, **kwargs):
# dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
# last_candle = dataframe.iloc[-1]
# profit = trade.calc_profit(current_rate)
#
# if range_max == range_min:
# print(f'ranges={range_min}')
# return -0.1 # sécurité
# candle_at_buy = self.pairs[pair]['last_candle']
#
# range_pos = (current_rate - range_min) / (range_max - range_min)
# # if candle_at_buy['range_pos'] > self.range_pos_stoploss.value and candle_at_buy[self.stoploss_indicator.value] < 0:
# # return self.stoploss_force.value
#
# # # print(f'test stop loss {self.stoploss} {last_candle["stop_buying12_1h"]}')
# # if last_candle[self.stoploss_indicator.value] and (trade.nr_of_successful_entries >= 4 or self.wallets.get_available_stake_amount() < 300): # and profit < - 30 :
# # range_min = last_candle[f"min{self.stoploss_timeperiod.value}_1h"]
# # range_max = last_candle[f"max{self.stoploss_timeperiod.value}_1h"]
# #
# # if range_max == range_min:
# # print(f'ranges={range_min}')
# # return -0.1 # sécurité
# #
# # range_pos = (current_rate - range_min) / (range_max - range_min)
# #
# # if (range_pos > 1):
# # return -1
# #
# # sl_min = -0.02
# # sl_max = -0.1 #self.stoploss
# #
# # dynamic_sl = (sl_min + (1 - range_pos) * (sl_max - sl_min))
# #
# # print(f'{current_time} Loss ranges={round(range_min,0)} {round(range_max, 0)} range_pos={round(range_pos, 3)} dynamic_sl={round(dynamic_sl, 3)} '
# # f'profit={profit} current={current_profit} {self.stoploss_indicator.value} {self.stoploss_timeperiod.value} {last_candle[self.stoploss_indicator.value]}')
# #
# # return dynamic_sl
#
# if (range_pos > 1):
# return -1
#
# sl_min = -0.02
# sl_max = -0.1 #self.stoploss
#
# dynamic_sl = (sl_min + (1 - range_pos) * (sl_max - sl_min))
#
# print(f'{current_time} Loss ranges={round(range_min,0)} {round(range_max, 0)} range_pos={round(range_pos, 3)} dynamic_sl={round(dynamic_sl, 3)} '
# f'profit={profit} current={current_profit} {self.stoploss_indicator.value} {self.stoploss_timeperiod.value} {last_candle[self.stoploss_indicator.value]}')
#
# return dynamic_sl
return -1
def informative_pairs(self):
# get access to all pairs available in whitelist.
@@ -867,6 +874,13 @@ class EmptyShort(IStrategy):
# Compter les baisses / hausses consécutives
dataframe = self.calculateDownAndUp(dataframe, limit=0.0001)
dataframe['volume2'] = dataframe['volume']
dataframe.loc[dataframe['hapercent'] < 0, 'volume2'] *= -1
# Volume confirmation
dataframe['volume_spike'] = (abs(dataframe['volume2']) > abs(dataframe['volume2'].rolling(window=20).mean() * 5)) \
& (dataframe['volume'].rolling(window=5).max() > 1000)
# récupérer le dernier trade fermé
trades = Trade.get_trades_proxy(pair=pair,is_open=False)
if trades:
@@ -891,6 +905,17 @@ class EmptyShort(IStrategy):
['enter_long', 'enter_tag']
] = (1, 'long')
dataframe.loc[
(
(dataframe['volume_spike'] == 1)
& (dataframe['down_count'] >= 3)
& (dataframe['down_count'] < 15)
& (dataframe['hapercent'] > 0)
& (dataframe['sma60'] > dataframe['sma60'].shift(1))
),
['enter_long', 'enter_tag']
] = (1, 'long_spike')
dataframe.loc[
(
(dataframe['sma12_deriv1_1h'] < -0.0005)
@@ -903,9 +928,23 @@ class EmptyShort(IStrategy):
)
& (dataframe['hapercent'] < 0)
# & (dataframe['pct_min_max_12_1d'] > 0.04)
& (dataframe['down_count'] <= -3)
& (dataframe['down_count'] > -15)
),
['enter_short', 'enter_tag']
] = (1, 'short')
dataframe.loc[
(
(dataframe['volume_spike'] == 1)
& (dataframe['down_count'] <= -3)
& (dataframe['down_count'] > -15)
& (dataframe['hapercent'] < 0)
& (dataframe['sma60'] < dataframe['sma60'].shift(1))
),
['enter_short', 'enter_tag']
] = (1, 'short_spike')
dataframe['short'] = np.where(dataframe['enter_short'] == 1, dataframe['close'] * 0.99, np.nan)
dataframe['long'] = np.where(dataframe['enter_long'] == 1, dataframe['close'] * 1.01, np.nan)

View File

@@ -1,10 +1,10 @@
BACKTESTING REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 34 │ 1.08379.43237.94 │ 1 day, 10:30:00 │ 18 0 16 52.9
│ TOTAL │ 34 │ 1.08379.43237.94 │ 1 day, 10:30:00 │ 18 0 16 52.9
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴────────────────┴────────────────────────┘
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 54 │ 0.75422.13642.21 │ 1 day, 5:07:00 │ 25 0 29 46.3
│ TOTAL │ 54 │ 0.75422.13642.21 │ 1 day, 5:07:00 │ 25 0 29 46.3
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴────────────────┴────────────────────────┘
LEFT OPEN TRADES REPORT
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
@@ -12,31 +12,34 @@
│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │
└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
ENTER TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ short │ 33 │ 0.99343.25634.33 │ 1 day, 6:51:00 │ 17 0 16 51.5
┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
short │ 28 │ 0.72211.15421.12 │ 19:27:00 │ 13 0 15 46.4
│ short_spike │ 25 │ 0.65 │ 174.806 │ 17.48 │ 1 day, 10:54:00 │ 11 0 14 44.0 │
│ long │ 1 │ 3.75 │ 36.176 │ 3.62 │ 6 days, 10:57:00 │ 1 0 0 100 │
│ TOTAL │ 34 │ 1.08379.43237.94 │ 1 day, 10:30:00 │ 18 0 16 52.9
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
TOTAL │ 54 │ 0.75422.13642.21 1 day, 5:07:00 │ 25 0 29 46.3
└─────────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
EXIT REASON STATS
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ B30Sht │ 173.91 770.836 77.08 │ 1 day, 18:12:00 │ 17 0 0 100 │
│ B30Sht │ 244.061155.077115.51 │ 1 day, 10:30:00 │ 24 0 0 100 │
│ B30 │ 1 │ 3.75 │ 36.176 │ 3.62 │ 6 days, 10:57:00 │ 1 0 0 100 │
│ stop_loss │ 16 │ -2.1 │ -427.580 │ -42.7618:48:00 │ 0 0 16 0 │
│ TOTAL │ 34 │ 1.08379.43237.94 │ 1 day, 10:30:00 │ 18 0 16 52.9
│ stop_loss │ 29 │ -2.1 │ -769.117 │ -76.9120:19:00 │ 0 0 29 0 │
│ TOTAL │ 54 │ 0.75422.13642.21 1 day, 5:07:00 │ 25 0 29 46.3
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
MIXED TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ short │ B30Sht │ 17 │ 3.91770.83677.08 │ 1 day, 18:12:00 │ 17 0 0 100 │
┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
short │ B30Sht │ 13 │ 3.98601.64160.16 1 day, 9:46:00 │ 13 0 0 100 │
│ short_spike │ B30Sht │ 11 │ 4.16 │ 553.436 │ 55.34 │ 1 day, 11:22:00 │ 11 0 0 100 │
│ long │ B30 │ 1 │ 3.75 │ 36.176 │ 3.62 │ 6 days, 10:57:00 │ 1 0 0 100 │
short │ stop_loss │ 16 │ -2.1 │ -427.580 │ -42.76 │ 18:48:00 │ 0 0 16 0 │
TOTAL │ 341.08 379.432 37.94 │ 1 day, 10:30:00 │ 18 0 16 52.9
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
│ short_spike │ stop_loss │ 14 │ -2.1 │ -378.630 │ -37.86 │ 1 day, 10:32:00 │ 0 0 14 0 │
short │ stop_loss15-2.1-390.487-39.05 │ 7:03:00 │ 0 0 15 0
│ TOTAL │ │ 54 │ 0.75 │ 422.136 │ 42.21 │ 1 day, 5:07:00 │ 25 0 29 46.3 │
└─────────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
DAY BREAKDOWN
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Day ┃ Trades ┃ Tot Profit USDT ┃ Profit Factor ┃ Win Draw Loss Win% ┃
@@ -47,78 +50,80 @@
│ 10/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 11/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 12/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 13/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 13/01/2026 │ 1-20.15 │ 0.0 │ 0 0 1 0 │
│ 14/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 15/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 16/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 17/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 18/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 19/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 20/01/2026 │ 1 │ 49.877 │ 0.0 │ 1 0 0 100 │
│ 21/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 20/01/2026 │ 1 │ 49.664 │ 0.0 │ 1 0 0 100 │
│ 21/01/2026 │ 120.963 │ 0.0 │ 1 0 0 100 │
│ 22/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 23/01/2026 │ 1 │ -22.186 │ 0.0 │ 0 0 1 0 │
│ 23/01/2026 │ 1 │ -22.227 │ 0.0 │ 0 0 1 0 │
│ 24/01/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 25/01/2026 │ 1 │ 23.333 │ 0.0 │ 1 0 0 100 │
│ 26/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 27/01/2026 │ 1-21.693 │ 0.0 │ 0 0 1 0 │
│ 28/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 29/01/2026 │ 1 │ 44.977 │ 0.0 │ 1 0 0 100 │
│ 30/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 31/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 01/02/2026 │ 278.6 │ 0.0 │ 2 0 0 100 │
│ 02/02/2026 │ 3 │ -23.839 │ 0.52 │ 1 0 2 33.3 │
│ 03/02/2026 │ 1 │ 33.135 │ 0.0 │ 1 0 0 100 │
│ 04/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 05/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 06/02/2026 │ 2111.129 5.0 │ 1 0 1 50.0 │
│ 07/02/2026 │ 1-27.273 0.00 0 1 0 │
│ 08/02/2026 │ 1 │ -26.223 │ 0.0 │ 0 0 1 0 │
│ 09/02/2026 │ 0 0 0.00 0 0 0 │
│ 10/02/2026 │ 124.285 │ 0.0 │ 1 0 0 100 │
│ 11/02/2026 │ 3 │ 26.089 │ 1.94 │ 2 0 1 66.7
│ 12/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 13/02/2026 │ 1 │ -26.778 │ 0.0 │ 0 0 1 0 │
│ 25/01/2026 │ 1 │ 32.61 │ 0.0 │ 1 0 0 100 │
│ 26/01/2026 │ 1-21.707 │ 0.0 │ 0 0 1 0 │
│ 27/01/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 28/01/2026 │ 1-21.939 │ 0.0 │ 0 0 1 0 │
│ 29/01/2026 │ 1 │ 50.715 │ 0.0 │ 1 0 0 100 │
│ 30/01/2026 │ 1-22.455 │ 0.0 │ 0 0 1 0 │
│ 31/01/2026 │ 159.691 │ 0.0 │ 1 0 0 100 │
│ 01/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 02/02/2026 │ 3 │ -7.976 │ 0.83 │ 1 0 2 33.3 │
│ 03/02/2026 │ 1 │ 22.032 │ 0.0 │ 1 0 0 100 │
│ 04/02/2026 │ 133.959 │ 0.0 │ 1 0 0 100 │
│ 05/02/2026 │ 139.293 │ 0.0 │ 1 0 0 100 │
│ 06/02/2026 │ 4 74.3271.89 │ 1 0 3 25.0 │
│ 07/02/2026 │ 2 12.4851.461 0 1 50.0 │
│ 08/02/2026 │ 2 │ -54.289 │ 0.0 │ 0 0 2 0 │
│ 09/02/2026 │ 2-1.939 │ 0.931 0 1 50.0 │
│ 10/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 11/02/2026 │ 4 │ 20.391 │ 1.38 │ 2 0 2 50.0
│ 12/02/2026 │ 135.171 │ 0.0 │ 1 0 0 100 │
│ 13/02/2026 │ 1 │ -26.178 │ 0.0 │ 0 0 1 0 │
│ 14/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 15/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 16/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 17/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 18/02/2026 │ 1 │ 32.734 │ 0.0 │ 1 0 0 100 │
│ 19/02/2026 │ 125.775 │ 0.0 │ 1 0 0 100 │
│ 20/02/2026 │ 2-54.318 │ 0.0 │ 0 0 2 0 │
│ 21/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 18/02/2026 │ 1 │ 36.046 │ 0.0 │ 1 0 0 100 │
│ 19/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 20/02/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 21/02/2026 │ 1-26.642 │ 0.0 │ 0 0 1 0 │
│ 22/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 23/02/2026 │ 1 │ 40.137 │ 0.0 │ 1 0 0 100 │
│ 24/02/2026 │ 0 0 0.00 0 0 0 │
│ 23/02/2026 │ 1 │ 57.25 │ 0.0 │ 1 0 0 100 │
│ 24/02/2026 │ 27.1031.251 0 1 50.0 │
│ 25/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 26/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 27/02/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 28/02/2026 │ 1 │ 52.892 │ 0.0 │ 1 0 0 100 │
│ 01/03/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 02/03/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 28/02/2026 │ 1 │ 87.891 │ 0.0 │ 1 0 0 100 │
│ 01/03/2026 │ 1-29.21 │ 0.0 │ 0 0 1 0 │
│ 02/03/2026 │ 1-29.332 │ 0.0 │ 0 0 1 0 │
│ 03/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 04/03/2026 │ 1 │ -28.629 │ 0.0 │ 0 0 1 0 │
│ 05/03/2026 │ 1 │ -27.218 │ 0.0 │ 0 0 1 0 │
│ 04/03/2026 │ 2 │ -57.218 │ 0.0 │ 0 0 2 0 │
│ 05/03/2026 │ 1 │ -27.178 │ 0.0 │ 0 0 1 0 │
│ 06/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 07/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 08/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 09/03/2026 │ 1 │ 85.083 │ 0.0 │ 1 0 0 100 │
│ 09/03/2026 │ 1 │ 104.735 │ 0.0 │ 1 0 0 100 │
│ 10/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 11/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 12/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 13/03/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 13/03/2026 │ 1-30.23 │ 0.0 │ 0 0 1 0 │
│ 14/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 15/03/2026 │ 1 │ -28.661 │ 0.0 │ 0 0 1 0 │
│ 16/03/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 15/03/2026 │ 1 │ -28.727 │ 0.0 │ 0 0 1 0 │
│ 16/03/2026 │ 1-27.688 │ 0.0 │ 0 0 1 0 │
│ 17/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 18/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 19/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 20/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 21/03/2026 │ 1 │ 61.417 │ 0.0 │ 1 0 0 100 │
│ 21/03/2026 │ 1 │ 59.772 │ 0.0 │ 1 0 0 100 │
│ 22/03/2026 │ 0 │ 0 │ 0.0 │ 0 0 0 0 │
│ 23/03/2026 │ 1 │ -29.977 │ 0.0 │ 0 0 1 0 │
│ 24/03/2026 │ 0 0 │ 0.0 │ 0 0 0 0 │
│ 25/03/2026 │ 1 │ -29.414 │ 0.0 │ 0 0 1 0 │
│ 23/03/2026 │ 1 │ -29.287 │ 0.0 │ 0 0 1 0 │
│ 24/03/2026 │ 129.577 │ 0.0 │ 1 0 0 100 │
│ 25/03/2026 │ 1 │ -27.872 │ 0.0 │ 0 0 1 0 │
│ 26/03/2026 │ 1 │ 36.754 │ 0.0 │ 1 0 0 100 │
│ 27/03/2026 │ 1 │ 27.777 │ 0.0 │ 1 0 0 100 │
└────────────┴────────┴─────────────────┴───────────────┴────────────────────────┘
SUMMARY METRICS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
@@ -129,55 +134,55 @@
│ Trading Mode │ Isolated Futures │
│ Max open trades │ 1 │
│ │ │
│ Total/Daily Avg Trades │ 34 / 0.4
│ Total/Daily Avg Trades │ 54 / 0.64 │
│ Starting balance │ 1000 USDT │
│ Final balance │ 1379.432 USDT │
│ Absolute profit │ 379.432 USDT │
│ Total profit % │ 37.94% │
│ CAGR % │ 298.01% │
│ Sortino │ 37.32
│ Sharpe │ 2.08
│ Calmar │ 140.28
│ SQN │ 1.56
│ Profit factor │ 1.89
│ Expectancy (Ratio) │ 11.16 (0.42)
│ Avg. daily profit │ 4.464 USDT │
│ Avg. stake amount │ 1212.112 USDT │
│ Total trade volume │ 82120.278 USDT
│ Final balance │ 1422.136 USDT │
│ Absolute profit │ 422.136 USDT │
│ Total profit % │ 42.21% │
│ CAGR % │ 353.68% │
│ Sortino │ 36.18
│ Sharpe │ 2.25
│ Calmar │ 96.27
│ SQN │ 1.35 │
│ Profit factor │ 1.55
│ Expectancy (Ratio) │ 7.82 (0.29)
│ Avg. daily profit │ 4.966 USDT │
│ Avg. stake amount │ 1224.501 USDT │
│ Total trade volume │ 131900.967 USDT │
│ │ │
│ Long / Short trades │ 1 / 33 │
│ Long / Short profit % │ 3.62% / 34.33% │
│ Long / Short profit USDT │ 36.176 / 343.256
│ Long / Short trades │ 1 / 53 │
│ Long / Short profit % │ 3.62% / 38.60% │
│ Long / Short profit USDT │ 36.176 / 385.960
│ │ │
│ Best Pair │ BTC/USDT:USDT 37.94% │
│ Worst Pair │ BTC/USDT:USDT 37.94% │
│ Best trade │ BTC/USDT:USDT 12.24% │
│ Worst trade │ BTC/USDT:USDT -2.12% │
│ Best day │ 111.129 USDT │
│ Worst day │ -54.318 USDT │
│ Days win/draw/lose │ 15 / 51 / 12
│ Min/Max/Avg. Duration Winners │ 0d 00:58 / 6d 10:57 / 2d 00:28
│ Min/Max/Avg. Duration Losers │ 0d 02:23 / 2d 01:26 / 0d 18:48
│ Max Consecutive Wins / Loss │ 4 / 3
│ Best Pair │ BTC/USDT:USDT 42.21% │
│ Worst Pair │ BTC/USDT:USDT 42.21% │
│ Best trade │ BTC/USDT:USDT 13.07% │
│ Worst trade │ BTC/USDT:USDT -2.14% │
│ Best day │ 104.735 USDT │
│ Worst day │ -57.218 USDT │
│ Days win/draw/lose │ 22 / 39 / 19
│ Min/Max/Avg. Duration Winners │ 0d 00:58 / 6d 10:57 / 1d 15:19
│ Min/Max/Avg. Duration Losers │ 0d 00:18 / 5d 19:41 / 0d 20:19
│ Max Consecutive Wins / Loss │ 4 / 5
│ Rejected Entry signals │ 0 │
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 1036.176 USDT │
│ Max balance │ 1438.823 USDT │
│ Max % of account underwater │ 6.08% │
│ Absolute drawdown │ 81.299 USDT (6.08%)
│ Drawdown duration │ 2 days 02:32:00 │
│ Profit at drawdown start │ 337.312 USDT │
│ Profit at drawdown end │ 256.013 USDT │
│ Drawdown start │ 2026-02-06 06:00:00 │
│ Drawdown end │ 2026-02-08 08:32:00 │
│ Min balance │ 1016.026 USDT │
│ Max balance │ 1450.263 USDT │
│ Max % of account underwater │ 9.86% │
│ Absolute drawdown │ 142.938 USDT (9.86%) │
│ Drawdown duration │ 4 days 23:26:00 │
│ Profit at drawdown start │ 450.263 USDT │
│ Profit at drawdown end │ 307.325 USDT │
│ Drawdown start │ 2026-02-28 11:00:00 │
│ Drawdown end │ 2026-03-05 10:26:00 │
│ Market change │ -24.27% │
└───────────────────────────────┴────────────────────────────────┘
Backtested 2026-01-01 00:00:00 -> 2026-03-27 15:43:00 | Max open trades : 1
STRATEGY SUMMARY
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩
│ EmptyShort │ 34 │ 1.08379.43237.94 │ 1 day, 10:30:00 │ 18 0 16 52.9 │ 81.299 USDT 6.08% │
└────────────┴────────┴──────────────┴─────────────────┴──────────────┴────────────────┴────────────────────────┴────────────────────┘
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━
│ EmptyShort │ 54 │ 0.75422.13642.21 │ 1 day, 5:07:00 │ 25 0 29 46.3 │ 142.938 USDT 9.86% │
└────────────┴────────┴──────────────┴─────────────────┴──────────────┴────────────────┴────────────────────────┴────────────────────