remove dryrun log

This commit is contained in:
zhangkun9038@dingtalk.com 2025-05-14 02:44:25 +00:00
parent 8d071d1ef6
commit 114a0b584d
2 changed files with 7 additions and 31 deletions

View File

@ -3,9 +3,13 @@ from pandas import DataFrame
import numpy as np import numpy as np
import os import os
import datetime import datetime
import time
import pandas as pd import pandas as pd
import talib.abstract as ta import talib.abstract as ta
import freqtrade.vendor.qtpylib.indicators as qtpylib import freqtrade.vendor.qtpylib.indicators as qtpylib
from freqtrade.persistence import Trade # 必须导入 Trade 类
from tempfile import NamedTemporaryFile
import shutil
class TheForceV7(IStrategy): class TheForceV7(IStrategy):
@ -145,6 +149,7 @@ class TheForceV7(IStrategy):
return dataframe return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[ dataframe.loc[
( (
@ -192,35 +197,5 @@ class TheForceV7(IStrategy):
), ),
'exit_long'] = 1 'exit_long'] = 1
return dataframe return dataframe
def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float,
time_in_force: str, current_time: datetime, **kwargs) -> bool:
log_path = './user_data/dryrun_results/dry_run_trades.csv'
# 自动创建目录
os.makedirs(os.path.dirname(log_path), exist_ok=True)
# 写入日志
with open(log_path, 'a') as f:
f.write(f"{pair},{current_time},,,{rate},,{amount},,,,,,,,\n")
return True
def confirm_trade_exit(self, pair: str, trade: 'Trade', order_type: str, amount: float,
rate: float, time_in_force: str, exit_reason: str, current_time: 'datetime', **kwargs) -> bool:
log_path = './user_data/dryrun_results/dry_run_trades.csv'
# 自动创建目录
os.makedirs(os.path.dirname(log_path), exist_ok=True)
# 计算盈亏
profit_ratio = trade.calc_profit_ratio(rate)
profit_abs = trade.calc_profit(rate)
trade_duration = (current_time - trade.open_date).total_seconds() / 60
# 获取 min_rate 和 max_rate
df = self.trade_data.get(pair)
min_rate = max_rate = rate
if df is not None:
trade_period = df[(df['date'] >= trade.open_date) & (df['date'] <= current_time)]
min_rate = trade_period['low'].min() if not trade_period.empty else rate
max_rate = trade_period['high'].max() if not trade_period.empty else rate
# 写入日志
with open(log_path, 'a') as f:
f.write(f"{pair},{trade.open_date},{current_time},{trade.open_rate},{rate},"
f"{amount},{profit_ratio},{profit_abs},{exit_reason},"
f"{trade.fee_open},{trade.fee_close},{trade_duration},{min_rate},{max_rate}\n")
return True

View File

@ -8,6 +8,7 @@ cd ../
source .venv/bin/activate source .venv/bin/activate
rm -rf user_data/models/* rm -rf user_data/models/*
rm -rf ./freqtrade/user_data/data/backtest_results/* rm -rf ./freqtrade/user_data/data/backtest_results/*
rm -fr ./user_data/dryrun_results/*
#docker-compose -f docker-compose_backtest.yml run --rm freqtrade >output.log 2>&1 #docker-compose -f docker-compose_backtest.yml run --rm freqtrade >output.log 2>&1
freqtrade backtesting \ freqtrade backtesting \