This commit is contained in:
Oleg Sheynin 2025-07-24 07:44:33 +00:00
parent e30b0df4db
commit a7b4777f76

View File

@ -279,10 +279,12 @@ class TradingPair(ABC):
# print(f"time={predicted_row['tstamp']} current_return={current_return}")
#
if current_return >= config["stop_close_conditions"]["profit"]:
print(f"STOP PROFIT: {current_return}")
self.user_data_["stop_close_state"] = PairState.CLOSE_STOP_PROFIT
return True
if "loss" in config["stop_close_conditions"]:
if current_return <= config["stop_close_conditions"]["loss"]:
print(f"STOP LOSS: {current_return}")
self.user_data_["stop_close_state"] = PairState.CLOSE_STOP_LOSS
return True
return False
@ -302,9 +304,11 @@ class TradingPair(ABC):
return 0.0
def _single_instrument_return(symbol: str) -> float:
instrument_open_trades = open_trades[open_trades["symbol"] == symbol]
instrument_sign = -1 if instrument_open_trades["action"].iloc[0] == "SELL" else 1
instrument_open_price = instrument_open_trades["price"].iloc[0]
sign = -1 if instrument_open_trades["side"].iloc[0] == "SELL" else 1
instrument_price = predicted_row[f"{self.price_column_}_{symbol}"]
instrument_return = instrument_sign * (instrument_price - instrument_open_trades["price"].iloc[0]) / instrument_open_trades["price"].iloc[0]
instrument_return = sign * (instrument_price - instrument_open_price) / instrument_open_price
return float(instrument_return) * 100.0
instrument_a_return = _single_instrument_return(self.symbol_a_)