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

┃   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": { "roi": {
"0": 5 "0": 5
}, },
"stoploss": {
"stoploss": -0.02
},
"trailing": { "trailing": {
"trailing_stop": false, "trailing_stop": false,
"trailing_stop_positive": null, "trailing_stop_positive": null,
@@ -25,8 +22,11 @@
"protection": { "protection": {
"drop_from_last_entry": 0.0, "drop_from_last_entry": 0.0,
"mises_bull": 4 "mises_bull": 4
},
"stoploss": {
"stoploss": -0.02
} }
}, },
"ft_stratparam_v": 1, "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 # trailing_only_offset_is_reached = False
position_adjustment_enable = True position_adjustment_enable = True
use_custom_stoploss = True use_custom_stoploss = False
#max_open_trades = 3 #max_open_trades = 3
@@ -494,7 +494,7 @@ class EmptyShort(IStrategy):
profit = trade.calc_profit(rate) profit = trade.calc_profit(rate)
force = self.pairs[pair]['force_sell'] force = self.pairs[pair]['force_sell']
allow_to_sell = (last_candle['hapercent'] < 0 and profit > 0) or force \ 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)) 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']) dispo = round(self.wallets.get_available_stake_amount() + self.pairs[pair]['total_amount'])
is_short = (trade.enter_tag == 'short') if trade.is_short:
if trade.enter_tag == 'short':
tp_price = max(0.02, self.pairs[pair]['take_profit']) tp_price = max(0.02, self.pairs[pair]['take_profit'])
# if current_profit < self.sell_force_sell.value \ # if current_profit < self.sell_force_sell.value \
# and last_candle[f"close"] > last_candle[self.sell_indicator.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 \ if current_profit > tp_price and \
(baisse > last_candle[f"range_pos"] and last_candle[f"close"] > last_candle[self.b30_indicateur.value]) \ (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 self.pairs[pair]['force_sell'] = True
return 'B30Sht' 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( # self.log_trade(
# last_candle=last_candle, # last_candle=last_candle,
# date=current_time, # date=current_time,
@@ -655,41 +662,41 @@ class EmptyShort(IStrategy):
return None return None
def custom_stoploss(self, pair, trade, current_time, current_rate, current_profit, **kwargs): # def custom_stoploss(self, pair, trade, current_time, current_rate, current_profit, **kwargs):
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe) # dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last_candle = dataframe.iloc[-1] # last_candle = dataframe.iloc[-1]
profit = trade.calc_profit(current_rate) # profit = trade.calc_profit(current_rate)
#
candle_at_buy = self.pairs[pair]['last_candle'] # 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: # # 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 # # return self.stoploss_force.value
#
# # print(f'test stop loss {self.stoploss} {last_candle["stop_buying12_1h"]}') # # # 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 : # # 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_min = last_candle[f"min{self.stoploss_timeperiod.value}_1h"]
# range_max = last_candle[f"max{self.stoploss_timeperiod.value}_1h"] # # range_max = last_candle[f"max{self.stoploss_timeperiod.value}_1h"]
# # #
# if range_max == range_min: # # if range_max == range_min:
# print(f'ranges={range_min}') # # print(f'ranges={range_min}')
# return -0.1 # sécurité # # return -0.1 # sécurité
# # #
# range_pos = (current_rate - range_min) / (range_max - range_min) # # range_pos = (current_rate - range_min) / (range_max - range_min)
# # #
# if (range_pos > 1): # # if (range_pos > 1):
# return -1 # # return -1
# # #
# sl_min = -0.02 # # sl_min = -0.02
# sl_max = -0.1 #self.stoploss # # sl_max = -0.1 #self.stoploss
# # #
# dynamic_sl = (sl_min + (1 - range_pos) * (sl_max - sl_min)) # # 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)} ' # # 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]}') # # f'profit={profit} current={current_profit} {self.stoploss_indicator.value} {self.stoploss_timeperiod.value} {last_candle[self.stoploss_indicator.value]}')
# # #
# return dynamic_sl # # return dynamic_sl
#
return -1 # return -1
def informative_pairs(self): def informative_pairs(self):
# get access to all pairs available in whitelist. # get access to all pairs available in whitelist.
@@ -867,6 +874,13 @@ class EmptyShort(IStrategy):
# Compter les baisses / hausses consécutives # Compter les baisses / hausses consécutives
dataframe = self.calculateDownAndUp(dataframe, limit=0.0001) 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é # récupérer le dernier trade fermé
trades = Trade.get_trades_proxy(pair=pair,is_open=False) trades = Trade.get_trades_proxy(pair=pair,is_open=False)
if trades: if trades:
@@ -891,6 +905,17 @@ class EmptyShort(IStrategy):
['enter_long', 'enter_tag'] ['enter_long', 'enter_tag']
] = (1, 'long') ] = (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.loc[
( (
(dataframe['sma12_deriv1_1h'] < -0.0005) (dataframe['sma12_deriv1_1h'] < -0.0005)
@@ -903,9 +928,23 @@ class EmptyShort(IStrategy):
) )
& (dataframe['hapercent'] < 0) & (dataframe['hapercent'] < 0)
# & (dataframe['pct_min_max_12_1d'] > 0.04) # & (dataframe['pct_min_max_12_1d'] > 0.04)
& (dataframe['down_count'] <= -3)
& (dataframe['down_count'] > -15)
), ),
['enter_short', 'enter_tag'] ['enter_short', 'enter_tag']
] = (1, 'short') ] = (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['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) dataframe['long'] = np.where(dataframe['enter_long'] == 1, dataframe['close'] * 1.01, np.nan)

View File

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