Open mimus-assa opened 10 months ago
def is_brake_even(self):
# Define el umbral de beneficio para considerar el brake even
brake_even_threshold = 0.027 # 2.7%
pullback_threshold = 0.005 # 0.5%
if not self.in_position:
return False
current_price = self.environment.current_close
price_change_percentage = (current_price - self.entry_price) / self.entry_price
# Comprueba si el trade ha alcanzado el umbral de beneficio
if ((self.position_type == "long" and price_change_percentage >= brake_even_threshold) or
(self.position_type == "short" and price_change_percentage <= -brake_even_threshold)):
# Ajusta el stop loss y take profit
if self.position_type == "long":
adjusted_stop_loss = self.entry_price * (1 + pullback_threshold)
adjusted_take_profit = adjusted_stop_loss * self.ratio
else: # short position
adjusted_stop_loss = self.entry_price * (1 - pullback_threshold)
adjusted_take_profit = adjusted_stop_loss * self.ratio
# Actualiza los precios en el portfolio manager
self.stop_loss_price = adjusted_stop_loss
self.take_profit_price = adjusted_take_profit
# Decide si es necesario cerrar la posición
need_to_close = (self.position_type == "long" and current_price <= adjusted_stop_loss) or \
(self.position_type == "short" and current_price >= adjusted_stop_loss)
return need_to_close
return False
hay que probar esto
crear un metodo para salir brake eaven, esto es agregar un metodo en el evalualte para saber si hay que salir a brake evean si si retornamos need to close, esto puedeimplicar recalcular el valor del tp y sl