ichiV1 - 回测结果详情
返回列表基本信息
策略名称:
ichiV1
ichiV1
时间范围:
20211104-20230101
20211104-20230101
行情:
熊市
熊市
时间框架:
4h
4h
关键指标
回测天数
422
总交易数
6139
日均交易次数
14.55
总收益率
218060.00%
年化收益率
77133.00%
市场变化
-72.30%
超额收益
218132.00%
胜率
70.8%
盈亏比
4.59
SQN
23.01
最大回撤
0.26%
起始资金
10000
配置文件内容
策略文件内容
# --- Do not remove these libs ---
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
import talib.abstract as ta
import freqtrade.vendor.qtpylib.indicators as qtpylib
import pandas as pd # noqa
pd.options.mode.chained_assignment = None # default='warn'
import technical.indicators as ftt
from functools import reduce
from datetime import datetime, timedelta
from freqtrade.strategy import merge_informative_pair
import numpy as np
from freqtrade.strategy import stoploss_from_open
class ichiV1(IStrategy):
"""
ichiV1 策略 - V3版本
基于Ichimoku云图和多时间框架趋势分析的交易策略
策略核心思想:
1. 使用Ichimoku云图判断市场趋势方向
2. 通过多时间框架EMA分析确认趋势强度
3. 利用扇形幅度(fan magnitude)捕捉趋势加速信号
4. 结合Heikin Ashi蜡烛图平滑价格波动
"""
# NOTE: settings as of the 25th july 21
# Buy hyperspace params:
buy_params = {
# 趋势高于Senkou云图的级别要求 (1-8级别,数字越大要求越严格), 默认为1
# 级别1: 仅要求5分钟趋势高于云图
# 级别8: 要求所有时间框架(5m-8h)趋势都高于云图
"buy_trend_above_senkou_level": 1,
# 趋势看涨的级别要求 (1-8级别,数字越大要求越严格), 默认为6
# 级别1: 仅要求5分钟趋势看涨(收盘价>开盘价)
# 级别6: 要求6个时间框架趋势都看涨
# 级别8: 要求所有时间框架趋势都看涨
"buy_trend_bullish_level": 8,
# 扇形幅度连续上升的周期数 (默认3个周期)
# 用于确认趋势加速,要求当前扇形幅度大于前N个周期
"buy_fan_magnitude_shift_value": 3,
# 扇形幅度增益的最小要求 (默认1.002,即0.2%的增长)
# 1.002: 较宽松条件,胜率约70%,交易次数较多
# 1.008: 较严格条件,胜率约90%,仅捕捉最大的趋势移动
"buy_min_fan_magnitude_gain": 1.001 # NOTE: Good value (Win% ~70%), alot of trades
#"buy_min_fan_magnitude_gain": 1.008 # NOTE: Very save value (Win% ~90%), only the biggest moves 1.008,
}
# Sell hyperspace params:
# NOTE: was 15m but kept bailing out in dryrun
sell_params = {
# 卖出信号使用的趋势指标 (可选: trend_close_5m, trend_close_15m, trend_close_30m,
# trend_close_1h, trend_close_2h, trend_close_4h, trend_close_6h, trend_close_8h)
# 当5分钟趋势跌破选定的趋势线时触发卖出信号
# 使用2小时趋势线可以避免在模拟交易中过早退出
"sell_trend_indicator": "trend_close_1h",
}
# ROI table: 分阶段止盈设置
# "时间(分钟)": 止盈百分比
minimal_roi = {
"0": 0.059, # 开仓后立即可获利5.9%
"10": 0.037, # 10分钟后降至3.7%
"41": 0.012, # 41分钟后降至1.2%
"114": 0 # 114分钟后无止盈要求
}
# Stoploss: 止损设置 (-27.5%)
stoploss = -0.275
# Optimal timeframe for the strategy: 策略运行的最佳时间框架
timeframe = '5m'
# 启动时需要的历史蜡烛数量 (96根5分钟蜡烛 = 8小时)
startup_candle_count = 96
# 是否仅处理新蜡烛 (False表示每次tick都重新计算)
process_only_new_candles = False
# 追踪止损设置 (当前禁用)
trailing_stop = False
#trailing_stop_positive = 0.002 # 正向追踪止损阈值
#trailing_stop_positive_offset = 0.025 # 追踪止损偏移量
#trailing_only_offset_is_reached = True # 仅在达到偏移量后启用追踪
# 信号使用设置
use_sell_signal = True # 使用卖出信号
sell_profit_only = False # 不仅在盈利时卖出
ignore_roi_if_buy_signal = False # 有买入信号时不忽略ROI
# 图表配置 - 用于可视化策略指标
plot_config = {
'main_plot': {
# 在senkou_a和senkou_b之间填充区域 (Ichimoku云图)
'senkou_a': {
'color': 'green', #optional
'fill_to': 'senkou_b',
'fill_label': 'Ichimoku Cloud', #optional
'fill_color': 'rgba(255,76,46,0.2)', #optional
},
# 同时绘制senkou_b线
'senkou_b': {},
# 不同时间框架的趋势线,使用不同颜色区分
'trend_close_5m': {'color': '#FF5733'}, # 红色
'trend_close_15m': {'color': '#FF8333'}, # 橙红色
'trend_close_30m': {'color': '#FFB533'}, # 橙色
'trend_close_1h': {'color': '#FFE633'}, # 黄色
'trend_close_2h': {'color': '#E3FF33'}, # 黄绿色
'trend_close_4h': {'color': '#C4FF33'}, # 绿黄色
'trend_close_6h': {'color': '#61FF33'}, # 绿色
'trend_close_8h': {'color': '#33FF7D'} # 青绿色
},
'subplots': {
# 扇形幅度子图
'fan_magnitude': {
'fan_magnitude': {}
},
# 扇形幅度增益子图
'fan_magnitude_gain': {
'fan_magnitude_gain': {}
}
}
}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
填充技术指标
主要指标包括:
1. Heikin Ashi蜡烛图 - 平滑价格波动
2. 多时间框架EMA趋势线 - 分析不同周期趋势
3. 扇形幅度指标 - 衡量趋势强度和加速度
4. Ichimoku云图指标 - 判断趋势方向和支撑阻力
5. ATR指标 - 衡量市场波动性
"""
# 计算Heikin Ashi蜡烛图,用于平滑价格波动
heikinashi = qtpylib.heikinashi(dataframe)
dataframe['open'] = heikinashi['open']
#dataframe['close'] = heikinashi['close'] # 保持原始收盘价
dataframe['high'] = heikinashi['high']
dataframe['low'] = heikinashi['low']
# 计算多时间框架的收盘价趋势线 (使用EMA平滑)
dataframe['trend_close_5m'] = dataframe['close'] # 5分钟: 原始收盘价
dataframe['trend_close_15m'] = ta.EMA(dataframe['close'], timeperiod=3) # 15分钟: 3周期EMA
dataframe['trend_close_30m'] = ta.EMA(dataframe['close'], timeperiod=6) # 30分钟: 6周期EMA
dataframe['trend_close_1h'] = ta.EMA(dataframe['close'], timeperiod=12) # 1小时: 12周期EMA
dataframe['trend_close_2h'] = ta.EMA(dataframe['close'], timeperiod=24) # 2小时: 24周期EMA
dataframe['trend_close_4h'] = ta.EMA(dataframe['close'], timeperiod=48) # 4小时: 48周期EMA
dataframe['trend_close_6h'] = ta.EMA(dataframe['close'], timeperiod=72) # 6小时: 72周期EMA
dataframe['trend_close_8h'] = ta.EMA(dataframe['close'], timeperiod=96) # 8小时: 96周期EMA
# 计算多时间框架的开盘价趋势线 (使用EMA平滑)
dataframe['trend_open_5m'] = dataframe['open'] # 5分钟: 原始开盘价
dataframe['trend_open_15m'] = ta.EMA(dataframe['open'], timeperiod=3) # 15分钟: 3周期EMA
dataframe['trend_open_30m'] = ta.EMA(dataframe['open'], timeperiod=6) # 30分钟: 6周期EMA
dataframe['trend_open_1h'] = ta.EMA(dataframe['open'], timeperiod=12) # 1小时: 12周期EMA
dataframe['trend_open_2h'] = ta.EMA(dataframe['open'], timeperiod=24) # 2小时: 24周期EMA
dataframe['trend_open_4h'] = ta.EMA(dataframe['open'], timeperiod=48) # 4小时: 48周期EMA
dataframe['trend_open_6h'] = ta.EMA(dataframe['open'], timeperiod=72) # 6小时: 72周期EMA
dataframe['trend_open_8h'] = ta.EMA(dataframe['open'], timeperiod=96) # 8小时: 96周期EMA
# 计算扇形幅度 - 衡量短期趋势相对于长期趋势的强度
# 比值>1表示短期趋势强于长期趋势(看涨),<1表示相反(看跌)
dataframe['fan_magnitude'] = (dataframe['trend_close_1h'] / dataframe['trend_close_8h'])
# 计算扇形幅度增益 - 衡量趋势加速度
# >1表示趋势在加速,<1表示趋势在减速
dataframe['fan_magnitude_gain'] = dataframe['fan_magnitude'] / dataframe['fan_magnitude'].shift(1)
# 计算Ichimoku云图指标
# 使用自定义参数: 转换线20, 基准线60, 滞后跨度120, 位移30
ichimoku = ftt.ichimoku(dataframe, conversion_line_period=20, base_line_periods=60, laggin_span=120, displacement=30)
dataframe['chikou_span'] = ichimoku['chikou_span'] # 滞后跨度
dataframe['tenkan_sen'] = ichimoku['tenkan_sen'] # 转换线
dataframe['kijun_sen'] = ichimoku['kijun_sen'] # 基准线
dataframe['senkou_a'] = ichimoku['senkou_span_a'] # 先行跨度A
dataframe['senkou_b'] = ichimoku['senkou_span_b'] # 先行跨度B
dataframe['leading_senkou_span_a'] = ichimoku['leading_senkou_span_a'] # 领先先行跨度A
dataframe['leading_senkou_span_b'] = ichimoku['leading_senkou_span_b'] # 领先先行跨度B
dataframe['cloud_green'] = ichimoku['cloud_green'] # 绿云(看涨云)
dataframe['cloud_red'] = ichimoku['cloud_red'] # 红云(看跌云)
# 计算ATR (Average True Range) - 衡量市场波动性
dataframe['atr'] = ta.ATR(dataframe)
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
填充入场(买入)信号
入场条件组合:
1. 趋势高于Ichimoku云图条件 - 确保处于上升趋势
2. 多时间框架看涨条件 - 确保趋势一致性
3. 扇形幅度条件 - 确保趋势强度和加速度
所有条件必须同时满足才会产生买入信号
"""
conditions = []
# 条件组1: 趋势高于Senkou云图 - 确保价格在云图之上(看涨区域)
# 根据buy_trend_above_senkou_level参数决定检查多少个时间框架
if self.buy_params['buy_trend_above_senkou_level'] >= 1:
# 5分钟趋势必须高于云图上下边界
conditions.append(dataframe['trend_close_5m'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_5m'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 2:
# 15分钟趋势也必须高于云图
conditions.append(dataframe['trend_close_15m'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_15m'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 3:
# 30分钟趋势也必须高于云图
conditions.append(dataframe['trend_close_30m'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_30m'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 4:
# 1小时趋势也必须高于云图
conditions.append(dataframe['trend_close_1h'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_1h'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 5:
# 2小时趋势也必须高于云图
conditions.append(dataframe['trend_close_2h'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_2h'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 6:
# 4小时趋势也必须高于云图
conditions.append(dataframe['trend_close_4h'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_4h'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 7:
# 6小时趋势也必须高于云图
conditions.append(dataframe['trend_close_6h'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_6h'] > dataframe['senkou_b'])
if self.buy_params['buy_trend_above_senkou_level'] >= 8:
# 8小时趋势也必须高于云图
conditions.append(dataframe['trend_close_8h'] > dataframe['senkou_a'])
conditions.append(dataframe['trend_close_8h'] > dataframe['senkou_b'])
# 条件组2: 趋势看涨 - 确保各时间框架收盘价高于开盘价
# 根据buy_trend_bullish_level参数决定检查多少个时间框架
if self.buy_params['buy_trend_bullish_level'] >= 1:
# 5分钟趋势看涨
conditions.append(dataframe['trend_close_5m'] > dataframe['trend_open_5m'])
if self.buy_params['buy_trend_bullish_level'] >= 2:
# 15分钟趋势看涨
conditions.append(dataframe['trend_close_15m'] > dataframe['trend_open_15m'])
if self.buy_params['buy_trend_bullish_level'] >= 3:
# 30分钟趋势看涨
conditions.append(dataframe['trend_close_30m'] > dataframe['trend_open_30m'])
if self.buy_params['buy_trend_bullish_level'] >= 4:
# 1小时趋势看涨
conditions.append(dataframe['trend_close_1h'] > dataframe['trend_open_1h'])
if self.buy_params['buy_trend_bullish_level'] >= 5:
# 2小时趋势看涨
conditions.append(dataframe['trend_close_2h'] > dataframe['trend_open_2h'])
if self.buy_params['buy_trend_bullish_level'] >= 6:
# 4小时趋势看涨
conditions.append(dataframe['trend_close_4h'] > dataframe['trend_open_4h'])
if self.buy_params['buy_trend_bullish_level'] >= 7:
# 6小时趋势看涨
conditions.append(dataframe['trend_close_6h'] > dataframe['trend_open_6h'])
if self.buy_params['buy_trend_bullish_level'] >= 8:
# 8小时趋势看涨
conditions.append(dataframe['trend_close_8h'] > dataframe['trend_open_8h'])
# 条件组3: 扇形幅度条件 - 确保趋势强度和加速度
# 扇形幅度增益必须达到最小要求(趋势加速)
conditions.append(dataframe['fan_magnitude_gain'] >= self.buy_params['buy_min_fan_magnitude_gain'])
# 扇形幅度必须大于1(短期趋势强于长期趋势)
conditions.append(dataframe['fan_magnitude'] > 1)
# 扇形幅度必须连续上升(趋势持续加强)
# 检查前N个周期,确保当前值大于历史值
for x in range(self.buy_params['buy_fan_magnitude_shift_value']):
conditions.append(dataframe['fan_magnitude'].shift(x+1) < dataframe['fan_magnitude'])
# 当所有条件都满足时,设置买入信号
if conditions:
dataframe.loc[
reduce(lambda x, y: x & y, conditions),
'enter_long'] = 1 # V3版本使用enter_long替代buy
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
填充退场(卖出)信号
退场条件:
当5分钟趋势线跌破指定的长期趋势线时触发卖出信号
使用crossed_below函数检测趋势线的向下突破
默认使用2小时趋势线作为退场参考,可通过sell_trend_indicator参数调整
"""
conditions = []
# 主要退场条件: 5分钟趋势跌破选定的长期趋势线
# 这表明短期趋势开始转弱,应该退出多头仓位
conditions.append(qtpylib.crossed_below(
dataframe['trend_close_5m'],
dataframe[self.sell_params['sell_trend_indicator']]
))
# 当退场条件满足时,设置卖出信号
if conditions:
dataframe.loc[
reduce(lambda x, y: x & y, conditions),
'exit_long'] = 1 # V3版本使用exit_long替代sell
return dataframe
回测报告
Result for strategy ichiV1
BACKTESTING REPORT
┏━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win ┃
┃ ┃ ┃ ┃ Tot ┃ ┃ ┃ Draw ┃
┃ ┃ ┃ Avg ┃ Profit ┃ Tot ┃ Avg ┃ Loss ┃
┃ Pair ┃ Trades ┃ Profit % ┃ USDT ┃ Profit % ┃ Duration ┃ Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━┩
│ SOL/USDT │ 1284 │ 0.73 │ 4708454.… │ 47084.55 │ 0:37:00 │ 915 │
│ │ │ │ │ │ │ 0 369 │
│ │ │ │ │ │ │ 71.3 │
│ XRP/USDT │ 768 │ 0.68 │ 4147834.… │ 41478.34 │ 0:39:00 │ 529 │
│ │ │ │ │ │ │ 0 239 │
│ │ │ │ │ │ │ 68.9 │
│ DOGE/USDT │ 1012 │ 0.85 │ 3916764.… │ 39167.64 │ 0:35:00 │ 694 │
│ │ │ │ │ │ │ 0 318 │
│ │ │ │ │ │ │ 68.6 │
│ ETH/USDT │ 795 │ 0.64 │ 3627672.… │ 36276.73 │ 0:44:00 │ 569 │
│ │ │ │ │ │ │ 0 226 │
│ │ │ │ │ │ │ 71.6 │
│ BNB/USDT │ 516 │ 0.65 │ 2565978.… │ 25659.78 │ 0:44:00 │ 376 │
│ │ │ │ │ │ │ 0 140 │
│ │ │ │ │ │ │ 72.9 │
│ BTC/USDT │ 481 │ 0.59 │ 1540900.… │ 15409.0 │ 0:47:00 │ 359 │
│ │ │ │ │ │ │ 0 122 │
│ │ │ │ │ │ │ 74.6 │
│ ADA/USDT │ 895 │ 0.63 │ 794526.8… │ 7945.27 │ 0:38:00 │ 620 │
│ │ │ │ │ │ │ 0 275 │
│ │ │ │ │ │ │ 69.3 │
│ TRX/USDT │ 388 │ 0.83 │ 503847.8… │ 5038.48 │ 0:41:00 │ 287 │
│ │ │ │ │ │ │ 0 101 │
│ │ │ │ │ │ │ 74.0 │
│ TOTAL │ 6139 │ 0.71 │ 21805978… │ 218059.… │ 0:40:00 │ 4349 │
│ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ 70.8 │
└───────────┴────────┴───────────┴───────────┴──────────┴───────────┴──────────┘
LEFT OPEN TRADES REPORT
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win Draw ┃
┃ ┃ ┃ Avg ┃ Tot Profit ┃ Tot ┃ Avg ┃ Loss ┃
┃ Pair ┃ Trades ┃ Profit % ┃ USDT ┃ Profit % ┃ Duration ┃ Win% ┃
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 │
│ │ │ │ │ │ │ 0 0 │
│ │ │ │ │ │ │ 0 │
└───────┴────────┴───────────┴────────────┴───────────┴────────────┴───────────┘
ENTER TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win ┃
┃ ┃ ┃ ┃ Tot ┃ ┃ ┃ Draw ┃
┃ ┃ ┃ Avg ┃ Profit ┃ Tot ┃ Avg ┃ Loss ┃
┃ Enter Tag ┃ Entries ┃ Profit % ┃ USDT ┃ Profit % ┃ Duration ┃ Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━┩
│ OTHER │ 6139 │ 0.71 │ 21805978… │ 218059.… │ 0:40:00 │ 4349 │
│ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ 70.8 │
│ TOTAL │ 6139 │ 0.71 │ 21805978… │ 218059.… │ 0:40:00 │ 4349 │
│ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ 70.8 │
└───────────┴─────────┴──────────┴───────────┴──────────┴───────────┴──────────┘
EXIT REASON STATS
┏━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win ┃
┃ ┃ ┃ ┃ Tot ┃ ┃ ┃ Draw ┃
┃ Exit ┃ ┃ Avg ┃ Profit ┃ Tot ┃ Avg ┃ Loss ┃
┃ Reason ┃ Exits ┃ Profit % ┃ USDT ┃ Profit % ┃ Duration ┃ Win% ┃
┡━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━┩
│ roi │ 1970 │ 1.95 │ 19443480… │ 194434.8 │ 0:43:00 │ 1970 │
│ │ │ │ │ │ │ 0 0 │
│ │ │ │ │ │ │ 100 │
│ exit_sig… │ 4169 │ 0.12 │ 2362498.… │ 23624.98 │ 0:38:00 │ 2379 │
│ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ 57.1 │
│ TOTAL │ 6139 │ 0.71 │ 21805978… │ 218059.79 │ 0:40:00 │ 4349 │
│ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ 70.8 │
└───────────┴───────┴───────────┴───────────┴───────────┴───────────┴──────────┘
MIXED TAG STATS
┏━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Win ┃
┃ ┃ ┃ ┃ Avg ┃ Tot ┃ Tot ┃ ┃ Draw ┃
┃ Enter ┃ Exit ┃ ┃ Profit ┃ Profit ┃ Profit ┃ Avg ┃ Loss ┃
┃ Tag ┃ Reason ┃ Trades ┃ % ┃ USDT ┃ % ┃ Durati… ┃ Win% ┃
┡━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ │ roi │ 1970 │ 1.95 │ 194434… │ 194434… │ 0:43:00 │ 1970 │
│ │ │ │ │ │ │ │ 0 0 │
│ │ │ │ │ │ │ │ 100 │
│ │ exit_s… │ 4169 │ 0.12 │ 236249… │ 23624.… │ 0:38:00 │ 2379 │
│ │ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ │ 57.1 │
│ TOTAL │ │ 6139 │ 0.71 │ 218059… │ 218059… │ 0:40:00 │ 4349 │
│ │ │ │ │ │ │ │ 0 1790 │
│ │ │ │ │ │ │ │ 70.8 │
└─────────┴─────────┴────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
SUMMARY METRICS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backtesting from │ 2021-11-04 08:00:00 │
│ Backtesting to │ 2022-12-31 23:40:00 │
│ Trading Mode │ Spot │
│ Max open trades │ 5 │
│ │ │
│ Total/Daily Avg Trades │ 6139 / 14.55 │
│ Starting balance │ 10000 USDT │
│ Final balance │ 21815978.554 USDT │
│ Absolute profit │ 21805978.554 USDT │
│ Total profit % │ 218059.79% │
│ CAGR % │ 77132.97% │
│ Sortino │ 374.43 │
│ Sharpe │ 81.61 │
│ Calmar │ 3867429.96 │
│ SQN │ 23.01 │
│ Profit factor │ 11.45 │
│ Expectancy (Ratio) │ 3552.04 (3.05) │
│ Avg. daily profit │ 51672.935 USDT │
│ Avg. stake amount │ 477507.66 USDT │
│ Total trade volume │ 5896426099.564 USDT │
│ │ │
│ Best Pair │ SOL/USDT 47084.55% │
│ Worst Pair │ TRX/USDT 5038.48% │
│ Best trade │ DOGE/USDT 5.93% │
│ Worst trade │ DOGE/USDT -3.04% │
│ Best day │ 2040146.045 USDT │
│ Worst day │ -19327.471 USDT │
│ Days win/draw/lose │ 385 / 10 / 28 │
│ Min/Max/Avg. Duration Winners │ 0d 00:00 / 0d 01:55 / 0d 00:45 │
│ Min/Max/Avg. Duration Losers │ 0d 00:05 / 0d 01:45 / 0d 00:27 │
│ Max Consecutive Wins / Loss │ 40 / 7 │
│ Rejected Entry signals │ 1669 │
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 9996.313 USDT │
│ Max balance │ 21815978.554 USDT │
│ Max % of account underwater │ 0.90% │
│ Absolute drawdown │ 54897.405 USDT (0.26%) │
│ Drawdown duration │ 1 days 21:35:00 │
│ Profit at drawdown start │ 21496250.919 USDT │
│ Profit at drawdown end │ 21441353.515 USDT │
│ Drawdown start │ 2022-12-18 04:30:00 │
│ Drawdown end │ 2022-12-20 02:05:00 │
│ Market change │ -72.30% │
└───────────────────────────────┴────────────────────────────────┘
Backtested 2021-11-04 08:00:00 -> 2022-12-31 23:40:00 | Max open trades : 5
STRATEGY SUMMARY
┏━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ Win ┃ ┃
┃ ┃ ┃ Avg ┃ Tot ┃ Tot ┃ ┃ Draw ┃ ┃
┃ ┃ ┃ Profit ┃ Profit ┃ Profit ┃ Avg ┃ Loss ┃ ┃
┃ Strate… ┃ Trades ┃ % ┃ USDT ┃ % ┃ Durati… ┃ Win% ┃ Drawdo… ┃
┡━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ ichiV1 │ 6139 │ 0.71 │ 218059… │ 218059… │ 0:40:00 │ 4349 │ 54897.… │
│ │ │ │ │ │ │ 0 1790 │ USDT │
│ │ │ │ │ │ │ 70.8 │ 0.26% │
└─────────┴────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘