remove dryrun log
This commit is contained in:
parent
8d071d1ef6
commit
114a0b584d
@ -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
|
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user